ROS 安装详细教程 —— Ubuntu20.04 LTS 安装
ROS 安装详细教程 —— Ubuntu20.04 LTS 安装
ROS 简介
官方文档对 ROS 的介绍如下:
The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.
简单来说 ROS 就是一款开源的机器人操作系统,可以实现在 Linux 或 Dock 下安装并进行使用。这里我们选择在 Ubuntu 22.04LTS 下进行安装。
版本选择
ROS 目前主要支持 Linux 和 MacOS 系统,新发布的 ROS2 也支持 Windows 和 RTOS 系统。
对 ROS 兼容性最好的当属 Ubuntu 系统。从 ROS 发布以来,每版的 Ubuntu 系统版本都有与之对应 ROS 版本的,每一版 ROS 都有其对应版本的 Ubuntu 版本,切记不可随便装。
ROS 和 Ubuntu 之间的版本对应关系如下:
Ubuntu | ROS 1.0 | ROS 2.0 |
---|---|---|
16.04 LTS | Kinetic LTS | Ardent |
18.04 LTS | Melodic LTS | Dashing LTS |
20.04 LTS | Noetic LTS | Foxy LTS |
22.04 LTS | Noetic Ninjemys | Humble Hawksbill |
我们使用的系统是 ubuntu 20.04 LTS ,所以这里选择对应的版本
安装
这里推荐安装 apt-fast 进行多线程下载,节约下载时间,安装教程:Ubuntu 下的多线程 apt-get
配置镜像源
这里选择配置清华大学镜像源:清华大学开源软件镜像站
我们进入清华大学镜像源官网,进入 ubuntu 对应的帮助页面:
这里选择我们所使用的系统版本:
然后我们按照提示,配置好镜像源即可
这里使用清华源会比ROS官方源下载快一些
这里也可以直接通过 ubuntu 自动使用下载最快的源
配置及更换最佳软件源:
打开设置,进入关于页面,找到软件更新选项,在下载自一栏中选择其它,然后点击选择最佳服务器即可
这里系统将会自动匹配最佳下载服务器
如果报错显示无法验证数字签名,直接使用以下命令添加公钥即可:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
ROS1 安装
配置公钥:
钥是 Ubuntu 系统的一种安全机制,配置公钥让系统信任,命令如下:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
添加 ROS 软件源
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'
然后需要更新软件源
sudo apt-get update
安装 ROS :
# Ubuntu 20.04
sudo apt-get install ros-noetic-desktop-full
初始化 rosdep
直接使用初始化命令:
sudo rosdep init && rosdep update
如果出现错误或者找不到命令,请看报错解决方案部分
环境变量设置
注意对应自己的版本修改目录名,如果使用 Ubuntu 20.04 直接使用即可:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装 rosinstall
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
示例测试
ROS1 示例测试
运行 roscore
直接运行如下命令即可:
roscore
注意:这里不要使用 sudo 权限执行
如果这里提示命令为找到,直接运行如下命令进行安装:
sudo apt install python3-roslaunch
如果再次运行 roscore 还是报错,可以参考后面的报错解决部分
如果运行 roscore 显示如下说明运行成功:
运行小海龟
这里需要三个 terminal 窗口:
第一个窗口运行 roscore
第二个窗口运行如下命令:
rosrun turtlesim turtlesim_node
这样我们就已经得到了小海龟的画面:
第三个窗口运行如下命令:
rosrun turtlesim turtle_teleop_key
这是我们就可以通过键盘控制小海龟移动了,这就说明我们已经成功安装了 ROS1 并成功运行了示例
报错解决方案
ROS1 相关报错解决方案
初始化 rosdep 提示找不到命令
如果这里提示找不到命令,就需要手动安装以下 rosdep:
sudo apt install python3-rosdep2
安装成功后再次执行即可
执行初始化命令报错
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
这里推荐直接使用 鱼香ROS教程中的使用 rosdepc 安装
这里是由于代理的问题,我们需要将 raw.githubcontent.com 的 ip 添加到 hosts 文件中
使用如下命令打开 hosts 文件
sudo gedit /etc/hosts
添加如下字段:
185.199.109.133 raw.githubusercontent.com
再次执行初始化命令就可以
如果这样还是不能够下载,可以尝试使用手机热点,这里推荐采用以为国内大佬 鱼香ROS 的方法,安装 rosdepc ,一个专门为国内开发的 rosdep ,教程直接参考大神的文章:本文之后,世上再无rosdep更新失败问题!如果有....小鱼就...
这位大神曾开发一行命令安装 ROS ,现在还在使用,感兴趣可以关注他的网站:http://fishros.com
运行 roscore 报错
Resource not found: roslaunch
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/opt/ros/noetic/share
The traceback for the exception was written to the log file
注意将 noetic 替换为对应版本
sudo apt-get install ros-noetic-roslaunch
运行 rosrun 报错
Command 'rosrun' not found, but can be installed with:
sudo apt install rosbash
一般情况下这里按照报错提示,直接安装即可,但是这里并不起作用,我们需要注意将 noetic 替换为对应版本
sudo apt install ros-noetic-rosbash
这里运行命令没有问题了,但是会出现第二个报错:
[rospack] Error: package 'turtlesim' not found
直接执行如下命令可以解决:
sudo apt-get install ros-noetic-turtlesim