文章目录


前言

之前关于ROS学习的博客,都是在win10虚拟机环境下运行的ubuntu18.04系统,对应的ros版本为melodic。由于电脑性能不好,运行导航仿真感觉卡顿,所以我把家里的台式机搞成了ubuntu16.04和win10双系统。ubuntu16.04系统的安装网上很多资料,本篇只是记录下ros的安装步骤,仅供参考。

一、添加ROS软件源(sources.list)

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 F42ED6FBAB17C654

三、更新apt功能包列表

sudo apt-get update

四、安装ROS

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

五、初始化 rosdep

执行如下命令:

sudo rosdep init

若出现错误,如图:
在这里插入图片描述
针对此错误,我尝试过修改/etc/hosts文件,也常试过修改网络为手机热点,但是问题依然存在。

最终解决方法如下:
(1)修改/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py文件
(2)修改/usr/lib/python2.7/dist-packages/rosdistro/_init.py文件
(3)修改如下文件

/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行 
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行

具体修改方法,参考评论(修改点1、2、3),写在这里,不能发布,哈哈,绝了。。。

修改完成后,再次执行如下命令:

sudo rosdep init

初始化成功,如图:
在这里插入图片描述
初始化成功后,执行如下命令:

rosdep update

若出现超时错误,如图:
在这里插入图片描述
解决方法,如下:

(1)打开/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 文件

第204行添加如下代码,参考评论(修改点4)

(2)打开/usr/lib/python2.7/dist-packages/rosdistro/__init__.py

在对应处,按照上述方法进行修改,参考评论(修改点5)

最后再次执行如下命令:

rosdep update

最后发现,问题解决了,如图:
在这里插入图片描述

六、将ROS环境变量添加到.bashrc文件中

此举是为了每次打开新的终端时可以自动配置好 ros 相关环境。

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

七、安装rosinstall等工具

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

八、检查ROS是否安装成功

如果安装成功,可以看到ros版本及路径等信息,命令如下:

export | grep ROS

在这里插入图片描述

我们也可以启动小乌龟来检查ROS是否安装成功,打开三个终端,分别输入如下命令:

roscore
rosrun turtlesim turtlesim_node 
rosrun turtlesim turtle_teleop_key 

效果如下:
在这里插入图片描述

九、卸载ROS

sudo apt-get purge ros-*
sudo rm -rf /etc/ros

十、总结

本篇文章只解决我遇到的错误,若不能解决你的错误,请自行百度,哈哈,网上的资料还是很多的。最后,如果顺便解决了你的问题,请大佬们给小弟点个赞,谢谢啦,只为刷刷排名,哈哈。