Ubuntu 18.04 安装ros2 Eloquent 版本

本文详细介绍了在Ubuntu18.04上安装ROS2 Eloquent版本的全过程,包括设置语言环境、添加安装源、安装ROS2、配置环境、测试安装以及安装ros1的桥接工具。特别强调了Eloquent版本相较于Dashing版本的新功能和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


作为尝鲜ROS2个人建议安装最新版本目前虽然Dashing为一个长期支持版本但是发布时间比较早,在最新Eloquent的中新添加的功能还是不少,我最开始装的也是Dashing版本,但是在后面的使用中发现功能还是不如最新版的完善,虽然这个版本只支持到2020年11月但是还是推荐用这个版本,今年5月份应该还会发布一个版本
本文参考 官网教程个人进行翻译,记录安装过程

设置语言环境

首先我们要进行语言环境的设置,确保语言环境为UTF-8。对于一般电脑这一步基本上没有什么问题,但是如果使用的是docker这种,语言环境不是很完善,可能只支持POSIX(通常说的ASCII编码),这就可能造成乱码。

我们可以用过locale查看当前的语言环境
下面是我电脑的输出

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=

只要是出现的是这种UTF-8就可以
关于locale的更多内容大家可以百度,总之一句话ros2需要UTF-8

下面是官方推荐的设置,注意下面的操作会把当前系统的语言改为英文的

# 生成所需的语言环境
sudo locale-gen en_US en_US.UTF-8
# 对环境进行设置
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

添加安装源

首先添加秘钥

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

然后把库添加到更新源的列表

sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

安装ROS2

更新apt缓存

sudo apt update

和ros1一样有两个版本可以选,根据个人需求选取一个版本进行安装
1.桌面版按照包含: ROS, RViz, demos, tutorials等内容比较全面,推荐按照这个版本

sudo apt install ros-eloquent-desktop

2.基本版本只包含: 通讯库,消息包,命令行工具。此版本没有GUI工具,只使用于资源比较限制的计算机按照

sudo apt install ros-eloquent-ros-base

配置环境

这个操作和ros1一样,我们把这个操作加入到.bashrc或者其他shell的配置文件中

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

如果电脑中存在ros1版本会弹一个下面的警告,我们先暂时忽略

ROS_DISTRO was set to 'melodic' before. Please make sure that the environment does not mix paths from different distributions.

ros2的命令可以通过argcomplete完成自动补全,按照下面软件获得自动补全功能

sudo apt install python3-argcomplete

测试安装

到此就按照完成了,相比ros1安装步骤简单了不少
下面我们通过简单的一个例子进行测试
首先我们打开一个终端运行一个C++的talker如果运行报错记得source一下

ros2 run demo_nodes_cpp talker

我们再打开一个终端运行一个Python的listener如果运行报错记得source一下

ros2 run demo_nodes_py listener

这时候在talker模块会出现

[INFO] [talker]: Publishing: 'Hello World: 1'
[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [talker]: Publishing: 'Hello World: 3'

这时候在listener模块会出现

[INFO] [listener]: I heard: [Hello World: 3]
[INFO] [listener]: I heard: [Hello World: 4]
[INFO] [listener]: I heard: [Hello World: 5]

好了到现在就把ros2的C++和Python接口都测试了

安装ros1的桥

按照ros1的桥可以和ros1进行通讯

sudo apt update
sudo apt install ros-eloquent-ros1-bridge

后续

有一个小小的问题,ros1和ros2的会出现一点冲突。最新source的一个版本会覆盖之前的版本。
如果sourceros2之后ros1将无法运行,也不要慌只需要source一下ros1的配置脚本就可以运行ros1了。
具体原因是ROS_PYTHON_VERSION ROS_VERSION ROS_DISTRO这三个变量有冲突。
个人建议把经常使用的一个版本放入.bashrc中,要使用另外一个版本时在使用之前source一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值