掘金 人工智能 05月14日 13:03
ROS1:Ubuntu20.04下的环境配置
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文基于《ROS机器人编程》一书,详细介绍了在Ubuntu20.04系统下配置ROS Noetic环境的步骤。内容涵盖时间同步(可选)、更新软件源(推荐阿里云源)、安装ROS Noetic完整桌面版、初始化rosdep(解决网站被墙问题)、安装rosinstall、创建并初始化catkin工作目录,以及测试安装结果。通过本文,读者可以快速搭建ROS开发环境,为后续的机器人编程学习打下坚实基础。

⏰时间同步:虽然在ROS运行中时间同步至关重要,但如果时间误差对当前项目影响不大,可以跳过此步骤。在Ubuntu20.04系统中,可以通过安装chrony和ntpdate来实现时间同步。

🔑更新源:软件源的选择会直接影响ROS相关软件包的下载速度与稳定性。推荐使用阿里云的源进行配置,添加ROS软件源后,需要注意公钥的设置,可先更新源,再根据更新提示的recv key添加公钥。

⚙️安装ROS Noetic:在Ubuntu20.04系统环境下,推荐安装Noetic版本,它与Ubuntu20.04有着更好的兼容性,而且更接近ROS2。安装ROS Noetic的完整桌面版本后,还可以根据需要安装其他相关的rqt包。

📁创建并初始化工作目录:ROS采用名为catkin的专用构建系统,需要在合适的位置建立文件夹,并初始化catkin目录。接着回到上级目录,并尝试构建,如果构建成功,目录下除了src文件夹,还会生成build和devel文件夹。

在机器人开发领域,ROS(机器人操作系统)是不可或缺的工具。本文将基于《ROS机器人编程》(表允皙、赵汉哲等著)一书的指导,结合实际操作,详细阐述如何在Ubuntu20.04系统下配置ROS环境。需要说明的是,书中介绍的是旧版本的配置方法,本文将其替换为最新支持的Noetic版本,在此特别感谢原书作者的详细讲解!(●'◡'●)

一、时间同步(可跳过)

在ROS的运行过程中,准确的时间对于多节点间的协同工作至关重要。通过时间同步,可以有效缩短ROS时间误差,为后续的开发与调试提供可靠的时间基础。在Ubuntu20.04系统中,我们可以通过安装chronyntpdate来实现时间同步。具体操作如下:

sudo apt install -y chrony ntpdate

安装完成chrony后,使用ntpdate命令与服务器进行时间校对:

sudo ntpdate -q ntp.ubuntu.com

通过上述步骤,即可完成时间同步工作。若时间误差对当前项目影响不大,此步骤也可选择跳过。

二、更新源

1. 添加源

软件源的选择直接影响到ROS相关软件包的下载速度与稳定性。本文选用阿里云的源进行配置,当然,用户也可以根据自身需求替换为清华、交大等国内节点。执行以下命令添加ROS软件源:

sudo sh -c 'echo "deb http://mirrors.aliyun.com/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2. 设置公钥

按照书中提示的方法设置公钥,在实际操作中却遇到了问题。原命令:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

执行后无法生效。尝试官方wiki指导的方法,下载ros.asc文件:

curl -sO https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc

同样未能成功。经过摸索,发现一种更为可靠的方式:先直接更新源,再根据更新提示的recv key添加公钥。

3. 更新源

执行更新命令:

sudo apt update

此时,终端可能会出现如下提示:

W: GPG error: http://mirrors.aliyun.com/ros/ubuntu focal Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ${recvkey}

记住提示中的recv key,使用以下命令添加公钥:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ${recvkey}

成功添加公钥后,再次执行更新命令,即可顺利完成软件源的更新操作。

三、安装ros库

原书介绍的是安装Kinetic版本(2016),但在Ubuntu20.04系统环境下,更推荐安装Noetic版本(2020)。Noetic版本不仅与Ubuntu20.04有着更好的兼容性,而且更接近ROS2,能够为开发者提供更稳定、更前沿的功能支持。执行以下命令安装ROS Noetic的完整桌面版本:

sudo apt install ros-noetic-desktop-full

上述安装仅包含基本的rqt(ROS上基于Qt开发的图形工具和插件),若想获得更多功能,可以安装其他相关的rqt包:

sudo apt install ros-noetic-rqt*

四、初始化rosdep

1. 下载rosdep

sudo apt install python3-rosdep

2. 初始化

执行初始化命令:

sudo rosdep init

在此过程中,可能会遇到报错,提示:

ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.

这通常是由于相关网站被墙导致的。经过多次尝试,发现修改host文件可以有效解决此问题。使用文本编辑器打开host文件:

sudo vim /etc/hosts

在文件末尾添加:

151.101.84.133 raw.githubusercontent.com

保存并关闭文件后,重新尝试初始化命令:

sudo rosdep init

若一切顺利,会提示运行更新操作。

3. 更新

执行更新命令:

rosdep update

需要注意的是,不推荐使用sudo运行此命令,以免出现权限相关的问题。

4. 安装rosinstall

sudo apt install python3-rosinstall

5. 加载环境变量

source /opt/ros/noetic/setup.bash

6. 创建并初始化工作目录

ROS采用名为catkin的专用构建系统,我们需要创建并初始化catkin目录。首先,在合适的位置建立文件夹(将${your_path}替换为实际路径):

mkdir -p ${your_path}/catkin/srccd ${your_path}/catkin/src

然后初始化目录:

catkin_init_workspace

接着回到上级目录,并尝试构建:

cd .. (即${your_path}/catkin/)catkin_make

如果构建成功,目录下除了src文件夹,还会生成builddevel文件夹。

7. 加载catkin构建的环境文件

为了方便后续使用,编辑~/.bashrc文件,添加以下两行内容:

source /opt/ros/noetic/setup.bashsource ${your_path}/catkin/devel/setup.bash

五、测试安装结果

根据书中的方法,我们可以使用roscore命令来检验ROS环境是否安装成功。在执行该命令前,需要先安装roslaunch

sudo apt install python3-roslaunch

随后,重新打开一个终端,运行roscore命令:

roscore

若终端输出中出现正常的SUMMARY字样,则表示ROS环境在Ubuntu20.04系统下已成功配置。此时,你便可以开启精彩的ROS机器人编程之旅,尽情探索机器人开发的无限可能!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

ROS Noetic Ubuntu20.04 机器人编程 环境配置
相关文章