Ubuntu18.04安装ROS 全程避坑

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值