@ubuntu16.04安装ROS Kinetic(踩坑记录)
文章用于记录首次完整安装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 错误:无法定位软件包
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
sudo apt-get install ros-kinetic-desktop-full
#若前三步骤均未出错,这步应该就是正常执行的,如果出现无法定位软件包问题,需要增加软件源或更换软件源,参考第一步错误提示3,直至找到正确的软件源为止
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
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
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