ROS学习笔记第一弹--基于ubuntu18.04下ROS环境的搭建和roboware studio 的安装
一、ROS系统的安装
由于笔者最近项目需要在ros系统上完成自己的设计,同时目前ros系统安装教程都有着很多的坑,因此笔者特地记录下来自己在ubuntu18.04下安装ros遇到的种种问题,供大家参考。
1.ROS基础所需包及ROS-melodic的下载
此处主要参考了以下教程:
1.https://zhuanlan.zhihu.com/p/218329258
2.https://www.cnblogs.com/letisl/p/11815191.html
3.https://blog.csdn.net/UTOPIA_0421/article/details/102767199?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2
4.https://blog.csdn.net/u014453443/article/details/104411783
1.1修改下载源
找到‘软件和更新’,修改里面的下载源,选择中国的服务器,把第二项【其他软件】里的勾勾全部去掉。
1.2导入软件源
在桌面上右键打开终端,在终端中选择输入以下命令:
1.国外软件安装源(安装较慢,笔者没有选用)
`sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'`
2.国内安装源(安装速度较快,笔者推荐)
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 sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
1.3添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
1.4更新软件
要保证系统安装包在最新状态:
sudo apt-get update
一般来说这一步不会出现问题,如果出现了 GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名,可参考这篇文章https://blog.csdn.net/qq_43310597/article/details/105756819。
1.5安装ros
在ROS中,有很多不同的库和工具,官方提供了四种默认的安装方式
- 桌面完整版(笔者最终采用的):包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知等:
sudo apt install ros-melodic-desktop-full
- 桌面版安装:包含ROS、rqt、rviz以及通用机器人函数库:
sudo apt install ros-melodic-desktop
- 基础版安装:包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具:
sudo apt install ros-melodic-ros-base
- 单个软件包安装: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):
sudo apt install ros-melodic-PACKAGE
2.ROS初始化
rosdep能够轻松地安装要编译的源代码的系统依赖关系,并且需要在ROS中运行一些核心组件。在使用 ROS 之前,需要先初始化 rosdep。rosdep 使得你可以为你想要编译的源码,以及需要运行的 ROS 核心组件,简单地安装系统依赖。此处出现的问题会比较多,有较多的坑。
2.1 rosdep init
sudo rosdep init
1.这里可能会出现找不到命令或者是ERROR:cannot download default source这两个错误,可以通过以下代码解决:
sudo apt-get install python-rosdep python-wstool
在安装好之后就再次运行rosdep init即可
$$此处附上关于ERROR:cannot download default source另一种解法,来自https://blog.csdn.net/qq_43310597/article/details/105756819
sudo gedit /etc/resolv.conf
在打开的文档中,在nameserver位置改为:
nameserver 8.8.8.8
nameserver 8.8.4.4
然后点击保存,再次执行rosdep init即可。
2.2 rosdep update
在执行rosdep init之后,就可以执行以下代码
rosdep update
通常来说这一步经常会出现连接超时的现象,主要有以下几种解决方案
1.更换成手机热点,再次执行命令(笔者没尝试过)
2.更换软件源(笔者使用的方法)
注:方法参考于https://www.cnblogs.com/letisl
首先cd到以下目录
然后输入
sudo gedit 20-default.list
在打开的文档中将所有内容替换成以下文本:
#Rewrited by HAN_Letisl
#For more information: https://www.cnblogs.com/letisl
# os-specific listings first
yaml https://hansteam.coding.net/p/rosdeap_mirror/d/rosdeap_mirror/git/raw/master/osx-homebrew.yaml osx
# generic
yaml https://hansteam.coding.net/p/rosdeap_mirror/d/rosdeap_mirror/git/raw/master/base.yaml
yaml https://hansteam.coding.net/p/rosdeap_mirror/d/rosdeap_mirror/git/raw/master/python.yaml
yaml https://hansteam.coding.net/p/rosdeap_mirror/d/rosdeap_mirror/git/raw/master/ruby.yaml
gbpdistro https://hansteam.coding.net/p/rosdeap_mirror/d/rosdeap_mirror/git/raw/master/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
然后保存,再次执行rosdepupdate即可。
3.解除屏蔽
方法来自https://blog.csdn.net/jasdhasd/article/details/105607125?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161482576516780255270293%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161482576516780255270293&biz_id=0
sed -i "s/raw.githubusercontent.com/raw.ctl.app/g" /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
sed -i "s/raw.githubusercontent.com/raw.ctl.app/g" /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
sed -i "s/raw.githubusercontent.com/raw.ctl.app/g" /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
sed -i "s/raw.githubusercontent.com/raw.ctl.app/g" /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
3.添加环境变量与安装依赖库
3.1添加环境变量
每次打开新的终端ROS环境变量都能够自动配置好(即添加到~/.bashrc文件中),那将会方便很多:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
在这一步中有可能会出现source命令找不到的错误,这表示其中有部分的依赖库被删除了,可以通过再次安装ros包解决:
sudo apt-get install ros-kinetic-desktop-full
3.2安装依赖库
rosinstall是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多ROS包的源码树。
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
4.测试ROS
4.1roscore运行
在终端命令框中输入
roscore
会出现
就证明ros已经是正常运行了。
如果提示找不到roscore命令,则可通过再次执行安装指令来修复
sudo apt-get install ros-kinetic-desktop-full
4.2小乌龟例程运行
启动roscore后,重新打开一个终端窗口,输入:
rosrun turtlesim turtlesim_node
再打开一个终端窗口输入
rosrun turtlesim turtle_teleop_key
就可以通过方向键来控制小乌龟的运行了
二、roboware studio的安装
1.下载文件与安装环境
1.1下载
在https://github.com/TonyRobotics/RoboWare可以下载deb文件,笔者下载的是1.2版本的
1.2安装依赖环境
sudo apt-get install python-pip
sudo apt-get install build-essential
sudo python -m pip install pylint
sudo apt-get install clang-format
2.安装
下载好之后在下载的目录下打开终端
执行以下命令
sudo dpkg -i 安装包的名字.deb
例如:
sudo dpkg -i roboware-studio_1.2.0-1524709819_amd64.deb
如果发现提示依赖库不存在,可以通过以下命令解决
sudo apt-get -f install
3.运行
安装好后就可以打开了