在 Ubuntu 16.04 安装ROS Kinetic 教程及问题解析
ROS对Ubuntu版本有严格限制,安装前应注意版本对应。本文教程版本对应为:ROS Kinetic + Ubuntu 16.04。
以下安装教程翻译自ROS官方文档:http://wiki.ros.org/kinetic/Installation/Ubuntu
一、安装教程
1、配置Ubuntu软件存储库
配置你的 Ubuntu 软件存储库(repositories) 以允许 “restricted”、“universe” 和 "multiverse"这三种安装模式。
2、添加ROS软件源
可以指定官方源下载ROS:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
对国内的小伙伴来说,官方源下载速度很慢,大概只有十几KB/S。ROS的官方文档给出了国内的两种镜像源:
2.1 配置中科大源:
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'
2.2 配置清华源:
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'
3、添加ROS密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
如果出现配置错误可以使用以下两条命令之一再设置一次密钥:
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
或
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
4、安装
首先,确保你的Debian软件包索引是最新的:
sudo apt-get update && sudo apt-get upgrade
根据需要在下面三选一:
sudo apt-get install ros-kinetic-desktop-full
sudo apt-get install ros-kinetic-desktop
sudo apt-get install ros-kinetic-ros-base
安装完成后如果要查找可用软件包,可以运行:
apt-cache search ros-kinetic
5、初始化rosdep
在开始使用ROS之前你还需要初始化rosdep。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
sudo rosdep init
rosdep update
在配置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
sudo c_rehash /etc/ssl/certs
sudo -E rosdep init
此处的错误解决办法及引用图片转载自**鸡蛋饼小王子**的博客:https://blog.csdn.net/luvalluo/article/details/78745677
6、环境配置
如果每次打开一个新的终端时ROS环境变量都能够自动配置好(即添加到bash会话中),那将会方便很多:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
如果你安装有多个ROS版本, ~/.bashrc 必须只能 source 你当前使用版本所对应的 setup.bash。
7、 构建工厂依赖
到目前为止,你已经安装了运行核心ROS包所需的内容。为了创建和管理自己的ROS工作区,有各种各样的工具和需求分别分布。例如:rosinstall是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多ROS包的源树。
要安装这个工具和其他构建ROS包的依赖项,请运行:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
至此ROS已经安装完毕,我们可以测试一下是否成功。
二、ROS小乌龟测试
//打开新窗口
roscore
//另开新窗口
rosrun turtlesim turtlesim_node __name:=my_turtle //改变名字 my_turtle
//发送一条消息给turtlesim,告诉它以2.0大小的线速度和1.8大小的角速度开始移动。
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
//rostopic pub -r 1命令 一个稳定的频率为1Hz的命令
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
此处测试所用程序转载自**Dong dong**的博客:
https://blog.csdn.net/qq_25564281/article/details/76573762
上述小乌龟测试是通过命令来控制的,我们也可以通过键盘来控制小乌龟的移动测试ROS是否安装成功。
sudo apt-get install ros-kinetic-turtlesim
然后再打开三个不同的终端,分别输入命令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
然后就可以用键盘控制小乌龟移动了,效果如图:
此处测试小乌龟程序及图片转自**MartianCoder**的博客:
https://blog.csdn.net/huoxingrenhdh/article/details/83381200
三、可能出现的其他错误
我自己在安装ROS时还碰到了以下错误,在此也一并列出,希望可以对你有所帮助。
1、无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)。
该问题的解决办法请参考**西山枫叶**的博客:
https://blog.csdn.net/wem603947175/article/details/82631321
2、在初始化rosdep时可能出现无法定位软件包的问题
此处问题可能时软件源的问题,更换一个软件源即可(因为我之前是用的中科大源,一直都存在这个问题,后来换了清华源,问题就解决了)。此处问题可能只适用于部分群体,具体原因我不太清楚,还望各位大神给出详解。
此问题的解决办法还可参考**不忘初心_ni**的博客:
https://blog.csdn.net/zuyuhuo6777/article/details/81253666