@ubuntu16.04安装ROS Kinetic(踩坑记录)
- 声明: 可任意转载,但转载需注明出处
ubuntu16.04安装ROS Kinetic
文章用于记录首次完整安装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'
错误总结:
这是我最终测试成功的软件源,这部分网上有很多供以使用的国内外软件源,但是是否成功只有逐一测试之后才能知道,这部分软件源出错将会导致至少包含以下问题:
1.sudo apt update 错误:Hash校验和不符
2.sudo apt update 错误:无法认证来自该源的数据
3.sudo apt-get install ros-kinetic-desktop-full 错误:无法定位软件包
个人经验:单个加入某个软件源,若对于某个软件源加入出现以上问题可通过以下方式去除进行排查:
具体操作:进入sources文件,拉到当前文件最后,对刚加入的软件源(apt …)进行去除,再重新运行sudo apt update若错误解除则该条源存在问题,直到更换至可用的源即可
sudo gedit /etc/apt/sources.list
二.设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
注:不成功可更换以下地址:
sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.net:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
错误总结:
设置密钥过程若出错,将会导致包含至少以下问题:
1.sudo apt update 错误:由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
W: 仓库 “http://packages.ros.org/ros/ubuntu xenial InRelease” 没有数字签名。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
注:将F42ED6FBAB17C654修改为你报错的签名号
三.更新最新软件包
sudo apt update
#如上便是成功了,若出错请参考第一步中的添加源的错误提示
四.安装ROS Kinetic
sudo apt-get install ros-kinetic-desktop-full
#若前三步骤均未出错,这步应该就是正常执行的,如果出现无法定位软件包问题,需要增加软件源或更换软件源,参考第一步错误提示3,直至找到正确的软件源为止
五.初始化ROSdep
1.要先安装python-rosdep
sudo apt install python-rosdep
2.初始化
sudo rosdep init
这一步会失败大概率原因是因为无法连上www.rawgithubusercontent.com 而导致的,可通过修改hosts和科学上网完成
修改hosts:
cd /etc
sudo gedit hosts
#该部分参考来自https://blog.csdn.net/qq_44830040/article/details/106049992
3.rosdep update
rosdep update
#此部分在修改host后如果仍然出现timeout错误,原因同样来自于www.rawgithubusercontent.com 被墙,解决方案可参考大佬修改代理文章,亲测十分有用:
https://blog.csdn.net/leida_wt/article/details/115120940?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242
六.配置ROS环境
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
#这部分基本不会错误,唯一需注意要对齐Ubuntu和ros版本,Kinetic是适用于Ubuntu16.04的,若是其他版本ubuntu请安装对应版本ros,此处也执行对应命令,如ubuntu18就应装melodic版本的ros
七.安装依赖项
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
八.测试小海龟例子,验证是否安装成功
1.当前终端输入命令roscore
roscore
2. 再打开一个新的终端,输入以下命令,出现静止小海龟
rosrun turtlesim turtlesim_node
- 再打开一个新的终端,让小海龟动起来
rosrun turtlesim turtle_teleop_key
#方向键上下左右控制移动
参考
[1]: http://wiki.ros.org/Installation/Ubuntu
[2]: https://blog.csdn.net/qq_44830040/article/details/106049992
[3]: https://blog.csdn.net/leida_wt/article/details/115120940?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242