在终端输入指令:(同下)
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
将ROS源切换为国内镜像源可提高访问速度,也可在系统设置 -> 软件和更新 -> Ubuntu软件 -> 下载自 -> 其他站点 ,进行手动切换。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
运行结果如图:
安装过程比较久,需要耐心等待几分钟,可以欣赏一下终端不断滚动的过程。
sudo rosdep init
rosdep update
如果在此处遇到报错,先执行以下三条指令:
sudo apt-get install python-pip
sudo pip install 6-rosdep
sudo 6-rosdep
途中的出现的错误不用管,再次执行:
sudo rosdep init
rosdep update
出现的ERROR可以忽略,接着下一步的安装。
详细解决策略见本文下面问题解决部分,问题三。
在终端输入指令:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
此时ROS 已经安装完成,下一步可以测试是否安装成功。
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
通过键盘上下键控制小海龟运动,运行效果如图,说明ROS安装成功。
原因分析:
ros-latest.list 文件中有格式错误,ROS源链接不应该有换行或中断。有的教程会让删掉该文件,虽然不会报错,如下图,但会导致出现下文第二个问题,无法定位软件包。
解决方案:
检查更换ROS源时的代码链接是否出现换行,空格,中文等错误。
原因分析:
由于在sudo apt-get update 时读取软件包列表的数量不够而导致的,即缺少部分软件包。同时,检查是否缺少ros-latest.list 文件。
解决方案:
设置镜像源(清华源),使读取到完整的软件包列表,输入:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
原因分析:
网络被墙
解决方案:
网上有许多关于该问题的解决方法,但大多数都是网络的问题,如果能够通过科学上网访问外网的话就会基本解决该问题,通过切换手机热点和换源的方法我也都试过,但还是倒在了最后一步,如图。
但也可以通过修改DSN,IP等解决,我最终就是通过该方法解决的,具体方法请参考博主的文章:
更新成功,如图
此外,再推荐一种极为简单的方法
运行下面三条指令即可:
sudo apt-get install python3-pip
sudo pip3 install 6-rosdep
sudo 6-rosdep
如果系统无法安装pip3,可以安装pip。上述三条指令替换为:
sudo apt-get install python-pip
sudo pip install 6-rosdep
sudo 6-rosdep
途中会出现以下错误,可以忽略,继续执行接下来的步骤即可。
在执行 sudo apt-get update 时报如下错误:
E: Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi’
E: Sub-process returned an error code
先执行:
sudo apt-get purge libappstream3
再执行:
sudo apt-get update