zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Ubuntu 20.04 LTS安装ROS2及环境变量设置

安装Ubuntu 设置 环境变量 LTS 20.04
2023-09-11 14:17:06 时间

目标:

在Ubuntu 20.04 LTS中安装ROS2,设置环境变量。

内容:

1、 版本选择。根据自己电脑操作系统配置,三个新版本中,选择ROS Galactic Gechelon在这里插入图片描述
2、二进制软件包安装。有两种安装方式,二进制包或源程序安装,采用第一种形式。
Ubuntu Linux - Focal Fossa (20.04)
**Debian packages **

3、设置locale。以便提供对UTF-8的支持,系统原来已经装过了,所以检查一下没问题,就跨过去了。

locale  # check for UTF-8

sudo apt update && sudo apt install locales
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
locale  # verify settings

4、设置安装源。为顺利安装ROS2,需要确保 Ubuntu 的Universe repository 使能。验证:

apt-cache policy | grep universe
 500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages 
 release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64

使能repository universe

sudo apt install software-properties-common
sudo add-apt-repository universe

Add the ROS 2 apt repository to your system,

sudo apt install software-properties-common
sudo add-apt-repository universe

下载安装包时,用到了命令行网络传输、GPG密钥等指令,所以,事先需要安装curl、gnupg
curl是一个利用URL语法在命令行下工作的文件传输工具。
gnupg是一种加密软件,它是PGP加密软件满足GPL的替代物,他依照由IETF订定的OpenPGP技术标准设计。用于加密、数字签名及产生非对称钥匙对。

sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg

执行上述指令后,可以查看自己系统/usr/share/keyrings目录下,有多个gpg文件,都是密钥文件,其中就有ros-archive-keyring.gpg

Add the repository to your sources list

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

5、 安装ROS2

sudo apt update
sudo apt upgrade
sudo apt install ros-galactic-desktop

6、环境设置

source /opt/ros/galactic/setup.bash

7、测试
Run a C++ talker:

source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_cpp talker

Run a Python listener:

source /opt/ros/galactic/setup.bash
ros2 run demo_nodes_py listener

两个终端对话正常,测试通过。
在这里插入图片描述8、环境变量设置
by sourcing setup files every time you open a new shell, or by adding the source command to your shell startup script once. Without sourcing the setup files, won’t be able to access ROS 2 commands, or find or use ROS 2 packages. In other words, you won’t be able to use ROS 2. like this:

source /opt/ros/galactic/setup.bash

另一种方式,是把上述语句写进bash的启动脚本文件里,这样,每次打开一个终端时,自动运行ROS2的安装文件:

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

检查ROS2环境变量:

printenv | grep -i ROS
ROS_VERSION=2
ROS_PYTHON_VERSION=3
AMENT_PREFIX_PATH=/opt/ros/galactic
PYTHONPATH=/opt/ros/galactic/lib/python3.8/site-packages
LD_LIBRARY_PATH=/opt/ros/galactic/opt/yaml_cpp_vendor/lib:/opt/ros/galactic/opt/rviz_ogre_vendor/lib:/opt/ros/galactic/lib/x86_64-linux-gnu:/opt/ros/galactic/lib
ROS_LOCALHOST_ONLY=0
PATH=/opt/ros/galactic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ROS_DISTRO=galactic

设置域ID(ROS_DOMAIN_ID)变量:

echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc

注:DOMAIN_ID是网络中不同逻辑节点共享物理网络的基本层机制,被DDS用来计算UDP传输的端口号。具有相同的DOMAIN_ID的ROS2节点可以发现彼此和相互通信,不同DOMAIN_ID的ROS2节点彼此不被发现和不能通信。所有ROS节点默认的DOMAIN_ID为0在ROS2中,能安全使用不会发生冲突的DOMAIN_ID的范围为0~101和215-232两段。Linux中,DOMAIN_ID为101的最大进程数为54;DOMAIN_ID为232的最大进程数为63。
DOMAIN_ID的设置在文件/proc/sys/net/ipv4/ip_local_port_range中。

文献:
[1]Installing ROS 2 via Debian Packages