ubuntu16.04安装ros是一个基本操作,网上有众多教程,但其中有几个坑,因此记录一下完整的安装过程,备查。
ros镜像源有国外的和国内的,国外的为ros官方镜像源,国内的有中国科学技术大学(USTC)镜像源,中山大学镜像源和易科机器人实验室镜像源。使用ros官方镜像源的时候会导致接下来sudo apt-get update的时候特别缓慢,即使巧妙的上网也不行,因此推荐使用国内镜像源,具体用哪个就看哪个地理位置距离你较近。本次安装使用的USTC镜像源,添加命令如下:
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'
不同镜像源对应的密匙不同,USTC密匙添加命令如下:
wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
sudo rosdep init
rosdep update
这里是一个大坑,很多时候安装都会卡在这里,在sudo rosdep init后报错
ERROR: cannot download default sources list from:
https://raw.github.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
遇见这个问题,首先要确定你的网络是否有问题,点击报错信息中的网址,如果你的网络没有问题,应该可以打开如下图所示:
如果网络有问题,请先巧妙的上网
如果网络没问题,参照一下办法进行尝试:
(1)之前曾经安装过 ROS 系统的某个版本,按照提示删除已经存在的初始化文件即可:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
(2)ca-certificates问题,证书不对,重新安装证书
sudo apt-get install ca-certificates
(3)系统时间同步问题,需要同步系统时间
sudo apt-get install ntpdate
sudo ntpdate cn.pool.ntp.org
sudo hwclock --systohc
(4)ssl certs问题(本次安装即这个问题)
sudo c_rehash /etc/ssl/certs
sudo -E rosdep init
(5)python-rosdep问题
sudo apt-get install python-rosdep
(6)如果仍然无效,则直接在/etc目录下添加内容/ros/rosdep/sources.list.d/20-default.list
cd /ros/rosdep/sources.list.d(具体目录要看你的用户名)
sudo gedit 20-default.list
复制 https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list 里面的内容进去,保存,退出,重新执行sudo rosdep init。
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
输入roscore能够成功运行即完成安装:
zhangman@zhangman-G3-3579:~$ roscore
... logging to /home/zhangman/.ros/log/6d418b44-8259-11ea-985c-5076af821e32/roslaunch-zhangman-G3-3579-18033.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://zhangman-G3-3579:42187/
ros_comm version 1.12.14
SUMMARY
========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
auto-starting new master
process[master]: started with pid [18044]
ROS_MASTER_URI=http://zhangman-G3-3579:11311/
setting /run_id to 6d418b44-8259-11ea-985c-5076af821e32
process[rosout-1]: started with pid [18057]
started core service [/rosout]
http://www.bubuko.com/infodetail-3320563.html?cf_chl_jschl_tk=1bf00e99ec2a1242932d84373326bcfde0775dfa-1587312786-0-AUqBDVqkYHyFE9Ni0aExIzvxuyF4ONbdWyJrEMLFJy8JzAGpMeoGW42s3LQpRDjca91s0YkyNpL0u32Kpxerj-fVlFgTsfsO-TpQg1OlEVQEiBOiUdogWw4gRAZbNb7x48nqsjtVF5ZH7hAYFfXdjkjR6WSy6EoLR_wglkosuCp3H-PsGs8cuPkURyhn5fSquvhn2igofwyquDfEM-EqRct-oVLUHllMBqHC21I2gGG7PMxZLAYUkIgPrlXTVD2xhumABRLmDCcVJE_DGG4ctsFXincaxeparcSHHmtSVxaCFoPNSi1YrV3BBK5ZnJUfDQ