ROS2 安装和卸载
安装
1.环境准备
首先确认系统已更新至最新状态,并安装必要的工具:
sudo apt update
sudo apt upgrade
2. 设置语言环境
确保系统支持UTF-8编码:
locale # 检查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 # 验证设置
3.启用必要的仓库
启用Ubuntu Universe仓库和ROS 2 apt仓库:
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加ROS 2仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
4. 安装开发工具
安装开发工具以便进行ROS功能包的开发:
sudo apt update && sudo apt install ros-dev-tools
5.安装ROS 2 Jazzy
更新apt仓库缓存并安装ROS 2 Jazzy桌面版:
sudo apt update
sudo apt upgrade
sudo apt install ros-jazzy-desktop
6.设置环境变量
在终端加载ROS 2环境变量:
source /opt/ros/jazzy/setup.bash
7.尝试示例
验证安装是否成功,运行以下示例:
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
打开新终端运行监听节点:
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener
如果看到消息发布和接收的输出,说明ROS 2 Jazzy安装成功。
卸载ROS 2 Jazzy
如果需要卸载ROS 2 Jazzy,可以执行以下步骤:
1. 移除ROS 2包:
sudo apt remove ~nros-jazzy-* && sudo apt autoremove
2. 移除ROS 2软件源:
sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
3. 升级软件包:
sudo apt upgrade
完成以上步骤后即可干净地卸载ROS 2 Jazzy,并为后续安装或更改做好准备。参考视频链接【Ubuntu24.04安装 ROS2 Jazzy】 https://www.bilibili.com/video/BV1EZGqzpExq/?share_source
配置 ROS2 环境
ROS 2 通过shell环境和工作空间(Workspace)的概念进行管理。核心的ROS 2安装称为底层工作空间(Underlay),用户创建的开发环境称为上层工作空间(Overlay)。通过这种方式,开发者可以轻松地管理和切换不同版本或不同功能的ROS 2环境。工作空间的概念将在下一章具体介绍。
1. 加载 ROS2 环境变量
每次启动终端时都需加载ROS 2环境变量,以便访问相关命令和功能包:
source /opt/ros/jazzy/setup.bash
如需自动加载,可将命令添加到终端的启动脚本中:
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
2. 检查 ROS2 环境变量
确认 ROS2 环境变量已正确加载:
printenv | grep -i ROS
典型输出应包含以下变量:
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=jazzy
3. 设置ROS_DOMAIN_ID
ROS_DOMAIN_ID 是 ROS2 中用于 隔离通信域(communication domain) 的一个环境变量,允许多个 ROS2 系统在同一个物理网络中运行而 互不干扰。ROS2 使用 DDS(Data Distribution Service) 作为底层通信中间件,DDS 定义了 “Domain” 的概念,用于将不同的通信系统隔离开来。每个 domain 都有一个 Domain ID,只有属于相同 Domain ID 的节点才可以互相通信。
ROS2 默认使用域 ID 0,若需避免网络干扰,可为不同工作组设置不同域 ID(0~101之间),例如:
export ROS_DOMAIN_ID=10
若想每次终端启动时自动生效,添加到启动脚本:
echo "export ROS_DOMAIN_ID=10" >> ~/.bashrc
4. 控制 ROS2 节点发现范围
默认情况下,ROS2 将自动发现节点,控制选项如下:
- ROS_AUTOMATIC_DISCOVERY_RANGE变量配置选项:
SUBNET(默认):在本地子网范围内发现节点。LOCALHOST:仅在本机上发现节点。OFF:关闭自动发现功能。SYSTEM_DEFAULT:使用系统默认的发现设置。
- ROS_STATIC_PEERS变量:设置特定地址,以分号(
;)分隔,ROS将在指定地址发现节点,例如:export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST
export ROS_STATIC_PEERS=192.168.1.100;192.168.1.101
如需长期设置,添加至启动脚本:
echo "export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST" >> ~/.bashrc
echo "export ROS_STATIC_PEERS=192.168.1.100;192.168.1.101" >> ~/.bashrc
完成以上步骤后,即完成ROS 2环境配置。
本章小结
掌握以上Linux基本命令和工具是学习和使用 ROS2 的重要基础,能够帮助你更高效地管理系统、调试问题并提高开发效率。在后续的 ROS2 学习过程中,如遇到其他问题,可以通过网络搜索、官方文档或社区论坛来快速找到解决方案。