Ubuntu 18.04 安装ros2 Eloquent 版本
Ubuntu 18.04 安装ros2 Dashing 版本设置语言环境添加安装源按照ROS2配置环境测试安装安装ros1的桥本文参考官网教程个人进行翻译,记录安装过程设置语言环境首先我们要进行语言环境的设置,确保语言环境为UTF-8。对于一般电脑这一步基本上没有什么问题,但是如果使用的是docker这种,语言环境不是很完善,可能只支持POSIX(通常说的ASCII编码),这就可能造成乱码。...
作为尝鲜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
的一个版本会覆盖之前的版本。
如果source
ros2之后ros1将无法运行,也不要慌只需要source
一下ros1的配置脚本就可以运行ros1了。
具体原因是ROS_PYTHON_VERSION
ROS_VERSION
ROS_DISTRO
这三个变量有冲突。
个人建议把经常使用的一个版本放入.bashrc
中,要使用另外一个版本时在使用之前source
一下
更多推荐
所有评论(0)