树莓派:Ubuntu MATE 16.04.2 安装 ROS Kinetic Kame 教程
先点赞,再看博客,顺便点个关注鼓励一下。
如果文章看完,觉得不错的话可以点个收藏,日后不迷路。
树莓派:Ubuntu MATE 16.04.2 安装 ROS Kinetic Kame 教程
1 前言
1.1 ROS 介绍
ROS介绍请参看:Linux:Ubuntu ROS 介绍 。
Ubuntu MATE 16.04.2 可以安装 ROS Kinetic Kame、ROS Lunar Loggerhead 两种 ROS。因为技术支持原因,我们一般选择安装 ROS Kinetic Kame,毕竟技术支持到 2021 年 04 月。
1.2 准备工作:
(1)镜像版本:Ubuntu MATE 16.04.2
(2)ROS版本:ROS Kinetic Kame
(3)硬件版本:Raspberry Pi 3 Model B V1.2 © Raspberry Pi 2015
(4)磁盘参数:Kingston 16GB 内存卡
(5)基础外设:可用的局域网、电源等
(6)远程环境:Windows 10 专业版
(7)远程软件:MobaXterm( Home Edition V20.2 Portable )
2 ROS 源添加
ROS 源的添加方法有多种,下面重点讲两种。至于为什么不只按照维基网站的讲?第一,不想总是拿那一套讲;第二,多讲一种方法,就有可能多学会一种指令;第三,多讲一种方法,以后碰到类似问题时,自己就可以根据需要选择最佳的方案,而不是一直照着老方法操作。
关于 ROS 的详细介绍、源介绍以及官方换源连接,请参看:Linux:Ubuntu ROS 介绍 。
2.1 指令添加法
这个指令添加法和维基网站上的方法一样,下面的教程都是通过 SSH 远程操作。如何开启 SSH,请参看:树莓派:Ubuntu MATE 16.04.2 开启内网 SSH + Windows 远程登陆教程 。
添加方法:
- 确保服务端正常运行和联网。
- 打开 MobaXterm 软件,连接服务端;
- 输入下面指令创建
/etc/apt/sources.list.d/ros-latest.list
文件,并在文件中写入deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial main
;
(其中$(lsb_release -sc)
是查询当前系统代号,Ubuntu MATE 16.04 的代号为 xenial)
sudo sh -c 'echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
4. 创建后,自己可以去 /etc/apt/sources.list.d/
文件夹下查看是否创建成功,并检查源的正确性。
2.2 文件编辑法
这个文件编辑法就是创建一个文件,然后使用 nano 在文件里面添加源。
添加方法:
- 输入
sudo touch /etc/apt/sources.list.d/ros-latest.list
创建/etc/apt/sources.list.d/ros-latest.list
文件;
- 输入
sudo nano /etc/apt/sources.list.d/ros-latest.list
编辑/etc/apt/sources.list.d/ros-latest.list
文件;
- 输入源址,格式为
deb
+源址(下面为清华源址)/ubuntu/
+系统代号(xenial)
+main
;(系统版本代号可在终端输入sudo lsb_release -sc
查询)
- 输入完成后,Ctrl + O 保存文件,回车确认文件名,Ctrl + X 退出编辑器。
2.3 其他添加法
通过在客户端创建一个包含源址的 ros-latest.list 文件,然后远程拖入 /tmp/ 文件夹下,再将该文件移到 /etc/apt/sources.list.d/ 文件夹下。
3 ROS 安装
- 输入 ROS Kinetic Kame 添加公钥指令,回车;
// ROS Indigo Igloo 添加公钥
sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
// ROS Jade Turtle 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
// ROS Jade Turtle ARM 添加公钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
// ROS Kinetic Kame 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
// ROS Lunar Loggerhead 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
// ROS Melodic Morenia 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
// ROS Noetic Ninjemys 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
2. 输入 sudo apt-get update 更新软件列表,回车;
3. 输入 sudo apt-get install ros-kinetic-desktop-full 安装 ROS 桌面完整版,回车;
4. 提示缺少一个依赖包,按照提示输入 sudo apt-get -f install 进行安装,回车 > y > 回车;
5. 安装完成后,再次输入 sudo apt-get install ros-kinetic-desktop-full 安装 ROS 桌面完整版,回车;
6. 会提示有多少个安装包需要安装,输入 y 进行安装,回车;
(PS:已经下载完毕,准备进行解压安装。)
(PS:已经安装完毕,大概用了 90 分钟左右。)
7. 输入 sudo rosdep init 初始化 rosdep,回车;
8. 出现错误,这是因为系统无法快速解析这个域名 raw.githubusercontent.com,我们需要帮系统解析一下;
9. 打开域名解析网址 https://www.ip138.com/,输入域名解析,我们这里选择我们自己的 IP,香港 IP:151.101.76.133;
10. 输入 sudo nano /etc/hosts 打开 hosts 文件,回车;
11. 往文件中加入 157.101.76.133 raw.githubusercontent.com
创建域名映射,Ctrl + O 保存文件,回车确认文件名,Ctrl + X 退出编辑器;
12. 再次输入 sudo rosdep init 初始化 rosdep,回车;
13. 输入 rosdep update 获取 rosdep 工具更新列表,回车;(这个过程有可能因为网络原因出现报错,多试几次,实在不行的话用手机热点安装)
14. 依次输入 echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
和 sudo rosdep init
添加环境变量;
15. 输入 sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
安装 rosinstall 工具和构建 ROS 包的依赖项,回车 > y > 回车;
16. 安装完毕,ROS Kinetic Kame 到这里就安装完成了。
4 结束
这节操作过程比较多,有问题可以留言讨论。
本教程由 Brendon Tan 原创发布,版权所有。该文档仅供个人学习交流使用,不得用于其他用途,禁止商用, 转载或公开使用请联系作者授权。
此教程由本人独立整理,如有不当之处,欢迎指正。