【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解

ROS 安装

1. 设置安装源

在终端输入指令:(同下)

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软件 -> 下载自 -> 其他站点 ,进行手动切换。

2.设置安装 Key

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

运行结果如图:
【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第1张图片

3.更新安装源信息

sudo apt-get update

4.安装

sudo apt-get install ros-kinetic-desktop-full

运行结果如图:
【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第2张图片
安装过程比较久,需要耐心等待几分钟,可以欣赏一下终端不断滚动的过程。

5.初始化

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可以忽略,接着下一步的安装。
详细解决策略见本文下面问题解决部分,问题三。

6.配置环境

在终端输入指令:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

7.安装依赖

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

此时ROS 已经安装完成,下一步可以测试是否安装成功。


ROS 测试

  1. Ctrl + Alt +T 打开终端, 启动ROS ,输入:
roscore
  1. 打开一个新的终端,启动海龟仿真器,输入:
rosrun turtlesim turtlesim_node
  1. 再打开一个新的终端,控制海龟移动,输入:
rosrun turtlesim turtle_teleop_key

通过键盘上下键控制小海龟运动,运行效果如图,说明ROS安装成功。

【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第3张图片


问题解决

问题 1. 文件list 第一行记录格式有误

在这里插入图片描述
原因分析:
ros-latest.list 文件中有格式错误,ROS源链接不应该有换行或中断。有的教程会让删掉该文件,虽然不会报错,如下图,但会导致出现下文第二个问题,无法定位软件包。
【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第4张图片
解决方案:
检查更换ROS源时的代码链接是否出现换行,空格,中文等错误。


问题 2. 无法定位软件包 ros-kinetic-desktop-full

【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第5张图片
原因分析:
由于在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'

之后再进行尝试,结果如图:
【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第6张图片


问题 3. rosdep init 和 update 报错

原因分析:
网络被墙

解决方案:

  • 切换手机热点
  • 切换镜像源
  • 修改DSN,IP
  • fan墙

网上有许多关于该问题的解决方法,但大多数都是网络的问题,如果能够通过科学上网访问外网的话就会基本解决该问题,通过切换手机热点和换源的方法我也都试过,但还是倒在了最后一步,如图。

【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第7张图片
但也可以通过修改DSN,IP等解决,我最终就是通过该方法解决的,具体方法请参考博主的文章:

  • rosdep init 及update报错的解决办法汇总(亲测)

更新成功,如图

【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第8张图片

此外,再推荐一种极为简单的方法
运行下面三条指令即可:

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

途中会出现以下错误,可以忽略,继续执行接下来的步骤即可。

【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解_第9张图片

参考链接

  • 只需三条指令,轻松解决ROS安装过程中rosdep初始化超时失败问题!

问题4:Problem executing scripts APT::Update::Post-Invoke-Success

在执行 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

参考链接

  • sudo apt-get update 报错:E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/te

你可能感兴趣的:(ROS,ubuntu,人工智能,linux)