ros安装详细教程+问题解决

610
1
2020年12月11日 10时30分

Intel杯比赛结束已有两个月,我们这些实验室的中坚力量也该退休了,但还是要遵从实验室的传帮带学习模式,所以这几天要开始带一下学弟学妹们了。

那么学习ros最开始的就是ros操作系统的安装了,第一篇博文就从ros安装好了。

 

timg

 

ROS有许多版本,ubuntu20.04对应的版本Noetic也发行了,本文主要以ubuntu18.04+melodic安装,其余版本安装大同小异,如果有不同的地方我会做出标注,所以大家可以放心按着教程来

一.源的选择和导入

 

首先就是换成国内源,这些都比较基础

 

20200128113449590

 

20200128123101176

 

然后打开终端,添加新的源:

 

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 

二.输入对应秘钥,正式安装ros

 

首先输入一下秘钥:

 

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 

更新一下

 

sudo apt-get update && sudo apt-get upgrade

 

更新完成后就可以正式安装啦!然后输入

 

sudo apt-get install ros-medolic-desktop-full

 

(!!!这里要注意一下,安装的ros版本一定要和你的ubuntu系统做对应,比如14.04对应indigo,16.04对应kinetic,18.04对应melodic.20.04对应noetic,具体修改方式就是把上述代码中的”medolic”换成你系统对应的版本就行了)

 

这样就是安装完成了

 

20200128131106706

 

(我这个是kinetic的截图,不过不影响,终端没报错就行)

 

然后我们查看一下是否安装成功了

终端输入

 

cd /opt
ls

 

这样就证明安装成功了

 

三.初始化rosdep

终端输入

 

sudo rosdep init

 

这里可能会出现报错

 

F35T1I}RK7GMOWQD`IHN_L8

 

我们需要自己进入/etc下自建那个文件夹以及文件,具体操作如下

 

cd /etc
sudo mkdir ros
cd ros
sudo mkdir rosdep
cd rosdep
sudo mkdir source.list.d
cd source.list.d
sudo touch 20-default.list

 

之后我们进入这个文件中编辑

 

sudo gedit 20-default.list

 

在文件在输入

 

#os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

#generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/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

 

接下来可能还会出错,具体错误如下(大部分原因都是网络问题)

 

20200203143019130

 

怎么解决呢?

首先调大执行时间,更改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.pygbpdistro_support.pyrep3.py中的DOWNLOAD_TIMEOUT = 15.0值,我一般直接改成999。

 

终端输入:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

 

修改一下DOWNLOAD_TIMEOUT,其余两个文件一样

修改完成后,再输入

 

sudo gedit /etc/hosts

 

在最后一行加入

151.101.84.133  raw.githubusercontent.com

 

保存一下

然后更新

 

sudo apt update

 

完成后继续输入

 

rosdep update

 

如果正常,你会发现,此时你hit那些网址的速度会加快不少,比之前要快得多
当然还是会出现time out这个问题,这时候还是Ctrl+C停下,继续rosdep update,然后多试几次就成功了。

 

成功后的截图

 

20200203144934103

 

四.环境变量设置

首先返回你的主目录下

在终端输入

 

cd /home/xxxx

 

这里的xxx代表你的用户名

然后输入

 

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

 

(!!!同样这里的“melodic”换成你系统对应的ros版本)

最后输入

 

source ~/.bashrc

 

五.安装依赖包

 

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

 

六.测试

在终端下输入

 

roscore

 

打开一个新终端输入

 

rosrun turtlesim turtlesim_node

 

此时会出现一个小乌龟

 

20200131012258290

 

此时就代表安装完成啦!

打开一个终端再输入

 

rosrun turtlesim turtle_teleop_key

 

按住方向键就能控制龟龟的移动了!!!

 

发表评论

后才能评论

评论列表(1条)

  • 菩提本无树 2020年12月11日 下午2:58

    我的还是不行,我的ubunru版本是20.04的,用的noetic也不行,刚开始显示E:无法修正错误,,,,,,
    然后用你的方法,sudo apt-get install roe-noetic之后,显示无法定位软件包 ros-noetic。
    求解答,vx:LX1597177598