Ubuntu18.04安装ROS 全程避坑
以下是我自己安装遇到的烦点,总结了各位大神的博客,终于解决
ubuntu系统对应着不同的ROS版本,如果装错了就会出现上述问题,在Ubuntu18.04.1环境下可以安装的是melodic版本的,安装教程可以参考官网安装教程,ROS有Melodic、Lunar、Kinetic不同的种类对应着不同的ubuntu版本,
Melodic 主要对应:Ubuntu Artful (17.10), Bionic (18.04 LTS) 以及Debian Stretch
Kinetic 主要对应:Ubuntu Wily (15.10) and Ubuntu Xenial (16.04 LTS),
在安装的过程中要根据自己的ubuntu系统版本选择对应的ROS类型进行安装,具体的ROS类型可以在官网分支类型介绍上查看。
1直接使用中科大软件源
#添加中科大源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
#添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
2软件库更新
sudo apt-get update && sudo apt-get upgrade
3安装全功能版本的ROS
sudo apt-get install ros-melodic-desktop-full
4初始化空间
sudo rosdep init
这时候可能会报错,如果没有报错,直接执行rosdep update
如果报错内容为“sudo: rosdep:找不到命令提示”则运行
sudo apt-get install python-rosdep python-wstool ros-melodic-ros
(根据自己实际的ROS版本确定中间的名字)
然后重新运行第4步。
如果报错内容为
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
很多人会在这一步提示无法下载,原因是因为需要翻墙下载资料,我们可以通过下载到本地的方式完成初始化步骤。方法如下
第一步:git clone命令将raw.githubusercontent.com内的yaml文件下载下来
git clone https://github.com/ros/rosdistro
第二步:在/etc下新建一个ros目录,然后将上一步下载下来的名称为rosdistro的文件夹复制进去
sudo mkdir -p /etc/ros
在rosdistro文件路径下打开终端
sudo mv rosdistro /etc/ros
新开终端,分别运行如下命令
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/main.py /usr/lib/python2.7/dist-packages/rosdep2/main.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/rep3.py /usr/lib/python2.7/dist-packages/rosdep2/rep3.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdistro/__init__.py /usr/lib/python2.7/dist-packages/rosdistro/__init__.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py.bak
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/main.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
将四个文件的内容做替换,如下
将 https://raw.githubusercontent.com/ros/rosdistro/master 全部替换为 file:///etc/ros/rosdistro
运行 sudo rosdep init
sudo cp /etc/ros/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/20-default.list.bak
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
并全部做替换
修改rosdistro包中rosdep/source.list.d/下的文件20-default.list,然后将文件内所有的下载地址都指向本地文件的地址。修改效果如下:
# os-specific listings first
yaml file:///etc/ros/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///etc/ros/rosdistro/rosdep/base.yaml
yaml file:///etc/ros/rosdistro/rosdep/python.yaml
yaml file:///etc/ros/rosdistro/rosdep/ruby.yaml
gbpdistro file:///etc/ros/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
运行rosdep update
5然后继续执行以下命令完成安装:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
在环境配置这一环节老是出现bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
解決方法: 在终端输入
gedit ~/.bashrc
在打开文件的最后找到bash: /opt/ros/melodic/setup.bash 删除重复的多余配置,若是没有多余项查看这句话拼写是否正确,或者与你的ros版本相称如图,注意18.04对应的是melodic版本
6、验证
执行以下命令可验证是否安装成功:
打开终端,执行:
roscore
再打开一个终端,执行:
rosrun turtlesim turtlesim_node
这时会出现小海龟的界面。接着再打开一个终端,执行:
rosrun turtlesim turtle_teleop_key
使用键盘上的方向键可以控制小海龟的运动。至此,你已经成功安装好ROS。
如遇到以下提醒
N: 忽略‘ros-latest.list122’(于目录‘/etc/apt/sources.list.d/’),鉴于它的文件扩展名无效
执行如下命令,删除即可。
sudo rm -f /etc/apt/sources.list.d/ros-latest.list122
解决linux无法与主机之间复制粘贴功能,如下代码
sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop