近期开始学习cartographer,但是发现安装ROS存在许多bug和问题,便对安装过程中的步骤做详细说明,以便于学习和使用
提示:以下是本篇文章正文内容
该部分参考了
https://blog.csdn.net/weixin_43233550/article/details/115417176
我用的是虚拟机,关于虚拟机VMware Workstation的安装,网上有很多了,这里不再细说,只需要下载安装好就OK,Ubuntu16.04的文件到下面的网站下载即可
http://old-releases.ubuntu.com/releases/16.04.0/
下载好之后,找个位置放好,最好放在非C盘的位置,之后的步骤和
https://blog.csdn.net/weixin_43233550/article/details/115417176
这个博主说的一样,这里就不再多说了
这个部分参考了
https://blog.csdn.net/wangguchao/article/details/81044558
https://www.kancloud.cn/zhouws/robot_ustc_mooc/2153670
https://blog.csdn.net/weixin_44023934/article/details/121242176
下面的内容是将上述步骤整合,并总结增加了一些2022年后安装ROS出现bug的解决办法
这个步骤其实很重要,我下载了很多次,总是会出现各种各样的问题最后发现原来是第一步的配置就存在bug。
打开设置,找到软件和更新
勾选上所有的选项,同时“下载自”的内容不同电脑和网络环境可能存在差别,可以点击选项的倒三角,点击其他站点,然后让系统自行选择最佳服务器,该过程大约需要1分钟
结束之后,会显示已过时的选项,不用担心,选择重新载入即可
这个过程时间会持续比较长,耐心等待即可,相比于这个时间,后期出现错误再改进可能会极其麻烦
这里我采用的是中科大的源,在桌面空白部分点击鼠标右键,打开终端,也可以采用(Ctrl + Alt + T)快捷键打开
添加源:
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
设置密钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
这部分内容是本文的核心,几乎绝大部分bug都是在这里产生的,故而每个步骤都需要注意是否报错,确认无误后再进行下一个步骤
首先需要对系统的软件包和索引进行更新,这时如果前面的软件中心配置没有出问题应该会顺利执行,输入
sudo apt-get update
这一部分如果出现错误,一般是网络问题可以通过科学上网或者手机热点解决,我知道有一些其他改文件的方案,但是到了后面也会出现bug。最好的方法还是通过网络下载。
之后安装全功能版ROS
sudo apt-get install ros-kinetic-desktop-full
采用
apt-cache search ros-kinetic
查看已安装的包
初始化ros
sudo rosdep init
如果报错,显示网站无效,采用以下方法解决
打开hosts文件
sudo gedit /etc/hosts
在文件末尾添加
151.101.84.133 raw.githubusercontent.com
保存后退出再尝试
之后输入
rosdep update
该步骤如果出错可参考
https://blog.csdn.net/weixin_44023934/article/details/121242176
同时,实践证明该方案也可以一定程度上解决2.2中sudo apt-get update的报错,对于解决方案主要是
从仓库克隆到本地
注意:所有的LiFeiHong都需要更改为自己的用户名
git clone https://github.com/ros/rosdistro.git
然后修改rep3.py文件
依次输入:
cd /usr/lib/python2.7/dist-packages/rosdep2
sudo gedit rep3.py #打开rep3.py文件
将REP3_TARGETS_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml’ 替换成 REP3_TARGETS_URL = ‘file:///home/LiFeiHong/rosdistro/releases/targets.yaml’
替换后的/home/LiFeiHong 即为第一步clone内容的存放地址
输入
cd /usr/lib/python2.7/dist-packages/rosdistro
输入
sudo gedit init.py
将原来文件中的 DEFAULT_INDEX_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’ 替换成 DEFAULT_INDEX_URL = ‘file:///home/LiFeiHong/rosdistro/index-v4.yaml’
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo touch 20-default.list
打开20-default.list文件,将里面内容修改为下面的代码,注意内容/home/LiFeiHong修改为自己的记录路径
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list(打开文件)
修改内容为
# os-specific listings first
yaml file:///home/LiFeiHong/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/LiFeiHong/rosdistro/rosdep/base.yaml
yaml file:///home/LiFeiHong/rosdistro/rosdep/python.yaml
yaml file:///home/LiFeiHong/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/LiFeiHong/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
最后,进入环境变量配置。ROS的环境配置,使得你每次打开一个新的终端,ROS的环境变量都能够自动配置好,也就是添加到bash会话中。
通过
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
实现
为了方便,我们还需要安装rosinstall,是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。在ubuntu上安装这个工具,请运行:
sudo apt-get install python-rosinstall
首先启动ROS
roscore
然后不要关闭它,新建一个新的终端
通过
export | grep ROS
检查环境变量配置
输入:
rosrun turtlesim turtlesim_node
再新建一个新的终端
rosrun turtlesim turtle_teleop_key
关于ROS的安装大概就到这里了,2021年以后,国内安装ROS的困难程度越变越难,我自己也大概花了一个下午才安装成功,中间踩了不少坑,理论上如果使用Ubuntu16安装上述步骤应该能顺利完成安装,实在不行就学习一下科学上网,总是可以的。然后淘宝上的安装其实我也买过,但事实上原理也是和上面一样,并且如果是你网络的问题,他们也解决不了,最后我把报错发给他们退款自己安装解决了,关于每个步骤遇到报错,不要慌,检查一下自己之前的配置有没有问题,没有问题再去网络上找解决办法,总是能解决的,以上。第一次发博,不恰当的地方还请各位大佬指正