参考:http://wiki.ros.org/noetic/Installation/Ubuntu
http://wiki.ros.org/ROS/Installation/UbuntuMirrors
1、配置ubuntu repositories
点击:设置-关于-软件更新,选择如下:
2、使用清华的ROS源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
可以尝试用中科大、上交、北外等国内镜像源:http://wiki.ros.org/ROS/Installation/UbuntuMirrors
3、添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4、安装ROS
sudo apt update
sudo apt install ros-noetic-desktop-full
5、设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6、验证
#分别在三个终端下运行
sudo rosdep init
rosdep update
#分别在三个终端下运行
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
7、报错与解决
(1) sudo : rosdep :找不到命令
sudo apt install python3-rosdep2
(2)rosdep update 报错:ERROR: error loading sources list:
报错信息:
$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
ERROR: error loading sources list:
The read operation timed out
1)从github上下载rosdistro文件夹到本地
git clone https://github.com/ros/rosdistro
2)修改20-default.list文件,xxx/对应上面rosdistro下载到的目录,后面的步骤指的均是此目录
# xxx/对应上面rosdistro下载到的目录
#sudo gedit xxx/rosdistro/rosdep/sources.list.d/20-default.list
sudo gedit ~/rosdistro/rosdep/sources.list.d/20-default.list
将文件中的网址https://raw.githubusercontent.com/ros/rosdistro/master修改为下载目录file:///home/xxx/rosdistro
- 修改前
- 修改后
3)修改sources_list.py文件
注意:当前配置的ubuntu系统为20.04,ros版本noetic,所以下面的目录中包含python3这个目录,如果是其他版本的ros,这个目录可能是python2.7或者其他,意思是sources_list.py文件所在的路径可能与下面的路径并不完全一致。
sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py
修改第69行:
#DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
DEFAULT_SOURCES_LIST_URL = 'file:///home/zzw/rosdistro/rosdep/sources.list.d/20-default.list'
4)修改_init_.py文件
sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py
修改第39行
#REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
REP3_TARGETS_URL = 'file:///home/zzw/rosdistro/releases/targets.yaml'
5)修改__init__.py文件
sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py
修改第68行:
#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///home/zzw/rosdistro/index-v4.yaml'
6)执行rosdep update
sudo rosdep init
rosdep update