Ubuntu安装ROS系统

Ubuntu安装ROS系统

  • 步骤
  • 一、设置sources.list(设置软件源)
  • 二、设置key(公钥)
  • 三、更新package
  • 四、安装ROS
  • 五、初始化rosdep
  • 六、配置ROS环境
  • 七、安装依赖项
  • 八、测试ROS是否安装成功
    • 在终端使用roscore是出现相关问题及解决办法
  • 总结


步骤

提示:
使用中科大的源会相对快很多。


一、设置sources.list(设置软件源)

使用Ctrl Alt+T启动terminal命令行界面;

推荐采用中科大的源(优点:速度快。比官方的源速度快很多。)

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'

或者可以采用官方的源码,下载速度会慢很多,官方的源码经过测试在下面第五步骤rosdep过程中会出现一些问题。
官方的源添加如下:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

二、设置key(公钥)

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

三、更新package

sudo apt-get update

四、安装ROS

  • ubuntu16.04,安装kinetic桌面完整版本
sudo apt-get install ros-kinetic-desktop-full

  • ubuntu18.04,安装melodic桌面完整版本
sudo apt-get install ros-melodic-desktop-full

五、初始化rosdep

注意:在使用ROS之前需要初始化rosdep,在使用过程中只要有输入过初始化一次就可以

sudo rosdep init
rosdep update

注意:sudo rosdep init 找不到命令解决办法

 sudo apt install python-rosdep2 -y

其中加-y省去在安装过程中输入y+回车的时间


注意:输入sudo rosdep init如果出现 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.
解决方法1:在终端命令行输入

sudo gedit /etc/hosts

然后在host文件中添加

199.232.28.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
151.101.228.133 raw.github.com

最后保存就好了。再运行上面的命令。


解决方法2:将相关资源备份到 gitee,修改 rosdep 源码,重新定位资源。成功率是百分百。

步骤1
进入到 sources.list.d 文件夹(如果没有,则新建)
修改 gedit 20-default.list

cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list

将里面所有的
raw.githubusercontent.com/ros/rosdistro/master
替换成
gitee.com/wybros/rosdistro/raw/master

修改前

# 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

修改后

# os-specific listings first rosdep update
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/base.yaml
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/python.yaml
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/ruby.yaml
gbpdistro https://gitee.com/wybros/rosdistro/raw/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

步骤2
进入到 rosdep2 文件夹,
修改 gbpdistro_support.py

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

将里面所有的
raw.githubusercontent.com/ros/rosdistro/master
替换成
gitee.com/wybros/rosdistro/raw/master
修改后如下

FUERTE_GBPDISTRO_URL = 'https://gitee.com/wybros/rosdistro/raw/' \
   'master/releases/fuerte.yaml'

步骤3
进入到 rosdep2 文件夹,
修改 rep3.py

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

将里面所有的
raw.githubusercontent.com/ros/rosdistro/master
替换成
gitee.com/wybros/rosdistro/raw/master
修改后如下

REP3_TARGETS_URL = 'https://gitee.com/wybros/rosdistro/raw/master/releases/targets.yaml'

步骤4
进入到 rosdep2 文件夹,
修改 sources_list.py

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

将里面所有的
raw.githubusercontent.com/ros/rosdistro/master
替换成
gitee.com/wybros/rosdistro/raw/master
修改后如下

DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/wybros/rosdistro/raw/master/rosdep/sources.list.d/20-default.list'

步骤5
进入到 rosdistro 文件夹
修改 __ init__.py

cd /usr/lib/python2.7/dist-packages/rosdistro/
sudo gedit __init__.py

将里面所有的
raw.githubusercontent.com/ros/rosdistro/master
替换成
gitee.com/wybros/rosdistro/raw/master
修改后如下

DEFAULT_INDEX_URL = 'https://gitee.com/wybros/rosdistro/raw/master/index-v4.yaml'

最后运行上面rosdep update的命令

sudo rosdep init
rosdep update

六、配置ROS环境

kinetic版本环境如下

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

melodic版本环境如下

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

七、安装依赖项

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

八、测试ROS是否安装成功

  • 1)Ctrl Alt+T打开终端(Termial),输入以下命令,初始化ROS环境
    roscore
    
  • 2)Ctrl Shift+T开启一个新的终端(Termial),输入以下命令,弹出一个小乌龟窗口
    rosrun turtlesim turtlesim_node
    
  • 3)出现一个小乌龟的LOGO后,再Ctrl Shift+T开启另外一个新的终端(Termial),输入以下命令查看节点信息
    rosrun rqt_graph rqt_graph
    

在终端使用roscore是出现相关问题及解决办法

相关问题描述: 在安装melodic版本的ROS后,使用roscore 下的启动ROS时,出现以下报错情况:(目前只在Ubuntu18.04下安装melodic时发现
“Command ‘roscore’ not found, but can be installed with: sudo apt install python-roslaunch”

根据对应的情况输入:sudo apt install python-roslaunch发现并未解决问题。出现了以下的情况:

正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
python-roslaunch : 依赖: python-roslib 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决办法:
首先通过查看ROS文件夹中的bin文件,发现该文件中缺少许多相关可执行文件。
查看方法:

cd /opt/ros/melodic/bin
ls -l

发现改文件夹中没有roscore的可执行文件。(应该是在rosdep update步骤时将部分可执行文件删除)
解决办法:只需要重新安装一下 ros-melodic-desktop文件就可以将其补充完整。

sudo apt-get install ros-melodic-desktop

然后再验证一下所安装的完成

source ~/.bashrc
roscore

这时候就能完成所有的ROS启动。


总结

安装过程中尽量采用中科源,速度比较快。整个安装过程采用中科源大约时间为40分钟左右。

你可能感兴趣的:(ROS机器人操作系统,ubuntu,自动驾驶,机器学习)