最近因为想要自己做个树莓派+stm32的小车,准备顺便学习一下之前一直很想学习的ROS,因为安装有点费工夫,怕以后忘记了,做个记录。
ROS安装前言
正常的安装流程应该是直接按照wiki上的安装流程傻瓜式操作就可以了,然而事情并非如此一帆风顺TT。。。。。
当然wiki上的大致并没有什么问题,如果有VPN之类的梯子可以直接按照上面的做就行了,这里附上链接
Ubuntu kinetic wiki安装教程
可惜我不舍得买==那么就需要绕绕圈子。。。。
(我这里树莓派安装了Ubuntu mate 16.04,因此对应的ROS版本是kinetic,18.04对应Melodic,14.04对应indiego。)
操作1-换源
因为使用的国内的网段,所以我先把源换成了中科大的镜像,具体就是在/etc/apt/sources.list里面加入中科大的镜像
在该文件夹里执行
sudo vi sources.list
(懒得装gedit。。)
然后加入如下内容,原先的源可以先用#注释一下
deb http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
保存后执行
sudo apt-get update
sudo apt-get upgrade
接下来一直按照官网教程安装,直到执行
sudo rosdep init
rosdep update
这一步会出错,按照各种包括换安装源的地址各种方式都试过,都不行,后来发现
https://raw.githubusercontent.com/这个网站我甚至直接点击都上不去,只好进行下一步
操作2-直接从gitup上下载所需文件使用
我这里从网站https://github.com/ros/rosdistro.git里面直接把文件克隆到了本地,上不了gitup的朋友可以自己找个gitup镜像进去克隆到本地,我这里是直接在windows上克隆了之后转移到树莓派的目录下的,首先把rosdistro/rosdep/sources.list.d里的20-default.list文件修改一下,改成这些文件在本地的地址,这里根据刚才下载的包里的文件的本地地址设置
**# os-specific listings first**
yaml file:///home/rexxar/Github_Code/rosdistro/rosdep/osx-homebrew.yaml osx
**# generic**
yaml file:///home/lin/rosdistro/rosdep/base.yaml
yaml file:///home/lin/rosdistro/rosdep/python.yaml
yaml file:///home/lin/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/lin/rosdistro/releases/fuerte.yaml
fuerte
找到并编辑
/usr/lib/python2.7/dist-packages/rosdep2/下的sources_list.py
接着将DEFAULT_SOURCE_LIST_URL 改成我们的本地文件地址如
DEFAULT_SOURCE_LIST_URL = file:///home/lin/rosdistro/rosdep/sources.list.d/20-default.list
然后把所有设置https://raw.githubusercontent.com/为URL的都改成本地地址(都在刚才clone下来的文件夹里面)。其中包括/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
里的
REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
里的
DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
还有文件gbpdistro.py文件里的URL等等。
怕找不全的(因为我之前发现有的文件里面也有这个地址,但是网上的资料里没写),可以用grep命令找一下文件夹里有没有有这个词的文件,如
sudo grep -rn “https://raw.githubusercontent.com/” *
这个命令
改完之后直接运行
rosdep update就行
最后执行以下roscore看一下ros能不能跑起来