前言:
首先 ROS 大家应该比较熟悉了哈,如果需要补充一下请看我之前的这篇文章 《嵌入式的我们为什么要学 ROS》,对于嵌入式来说 ROS 是一个很好的进阶方向,所以如何快速的安装一个 ROS 到我们电脑上是一件很重要的事情。当然 ROS 官网都有进行介绍如何安装,但是由于网络地址的原因,ROS 安装如果按照官网的方法,你要踩很多的坑。所以我作为一个过来人,介绍一些我是如何快速安装的。
ROS 目前主要支持 Ubuntu、OSX、Android、Arch、Debian 等系统,ROS 也针对 ARM 处理器编译了核心库和部分功能包。新发布的 ROS2 也支持 Windows 系统。
选择一个适合你的 ROS 版本很重要,因为我使用的本次测试使用的 Ubuntu 版本为 Ubuntu 16.04,ROS Kinetic Kame 还是比较适合的。如果你使用的是 Ubuntu 20 更新的版本,可以安装 noetic 版本,虽然版本不一样,但是安装时的操作基本都是一样的。
开始安装:
首先我们看官网的教程,虽然有官方的教程,但是我们知道 ROS 官方相关的源都在国内,所以如果你使用官网的教程,那么相信你如果不使用特殊方法的话,你会安装的很费力。大部分包括之前的我就被安装时候下载速度惊呆。
所以第一件事情,请大家更换 ROS 的国内镜像
sudo vi /etc/apt/sources.list
设置 ROS 的 sources.list 为国内镜像:
这里有其他人做的参考,但是经过使用之后发现有些问题:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ main" > /etc/apt/sources.list.d/ros-latest.list'
有问题!!!
sudo apt-get update 会提示如下错误
E: Malformed entry 1 in list file /etc/apt/sources.list.d/ros-latest.list (Suite) E: The list of sources could not be read.
我的建议使用官网的命令, 再把链接替换成,国内镜像源。
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
再使用官网命令添加 keys
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
加载软件包列表
一旦配置完软件版本仓库(repositories)之后,可以用下列命令得到最新的可用软件包列表:
udo apt-get update
需要注意的是,这会更新你系统中所有的软件版本仓库,而不仅仅是新添加的 ROS 库。
安装 ROS 软件包
ROS 系 统非常庞大,包含众多功能包、函数库和工具,所以 ROS 官方为用户提供了多种安装版本:
桌面完整版安装(Desktop-Full):这是最为推荐的一种安装版本,除了包含 ROS 的基础功能(核心功能包、构建工具和通信机制)外,还包含丰富的机器人通用函数库、功能包(2D/3D 感知功能、机器人地图建模、自主导航等)以及工具(rviz 可视化工具、gazebo 仿真环境、rqt 工具箱等)。命令为:
sudo apt-get install ros-kinetic-desktop-full
默认全装,后面大家也不需要再安装了。分包安装的内容大家可以参看我篇头所写的那篇 ROS 文章。
如果按照官方源,那我们这里需要下载安装好长的时间,不过用国内镜像 不出意外 一般是十几分钟就可以下载完毕。
如果提示下载失败, 重复这个命令:
sudo apt-get install ros-kinetic-desktop-full
环境设定 每次启动新的 shell 时,如果将 ROS 环境变量自动添加到 bash 会话中,将很方便:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
. ~/.bashrc
source ~/.bashrc
构建软件包的依赖关系
rosinstall 是一个常用的命令行工具,我们可以通过一个命令轻松下载 ROS 软件包的许多源代码树。要安装此工具和其他依赖项以构建 ROS 软件包,请运行:
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
为系统设置 rosdep
rosdep 是 ROS 自带的工具,主要功能是为某些功能包安装依赖关系,同时某些 ROS 核心功能包必须用到的工具,这个初始化步骤是一次性的,一旦 ROS 正常工作,多数用户不再需要访问 rosdep。完成上述安装步骤之后,需要使用如下命令进行初始化操作:
sudo rosdep init
rosdep update
rosdep update 会在你的账户中初始化 rosdep 系统,该命令在你的根目录下保存一些文件,文件夹名为 .ros,因为是初始化,这个命令只需要运行一次。该命令是在普通用户下运行。
rosdep init 经常出现问题,加载失败和下载失败
**error loading sources list**
sudo vi /etc/hosts
在最下面添加一句这个:
151.101.84.133 raw.githubusercontent.com
看小乌龟
安装小乌龟,这个看似简单的小乌龟例程,其实蕴含 ROS 最基础的原理和机制。
sudo apt-get install ros-kinetic-turtlesim
打开一个终端(Terminal),这是 ROS 运行需要的管理器节点
roscore
打开第二个 Terminal,启动 turtlesim 仿真器节点(可以把小乌龟的界面长置顶)
rosrun turtlesim turtlesim_node
打开第三个 Terminal,通过使用键盘的前后左右按键进行控制小乌龟
rosrun turtlesim turtle_teleop_key
ROS 安装完成