其实本来想直接安装 Isaac ROS 的,但是搞了一天,还没折腾出来,为了不delay,暂且先用 ROS2_Jazzy 顶着,等有空了再搞。

ROS2_Jazzy有两种安装方式,分别是源码编译和apt安装。我用的是apt安装,下面附上源码编译方式的官方文档供有需要的同学自取:

Ubuntu (source) — ROS 2 Documentation: Jazzy documentationhttps://docs.ros.org/en/jazzy/Installation/Alternatives/Ubuntu-Development-Setup.html

一、系统准备:

ROS 版本和 Ubuntu 系统版本为强关联关系,如果安装 ROS2_Jazzy 操作系统必须为 Ubuntu 24.04

如果使用的是其他版本的 Ubuntu 则需要从 ROS 官网查询对应的 ROS 版本

1. 将系统locale设置为任意支持UTF-8的locale

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

2. 添加ROS软件源

(1) 确保启用 Ubuntu Universe 软件源

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

(2) 安装 ros2-apt-source

ros-apt-source 软件包为各种 ROS 软件仓库提供了密钥和 apt 源配置。

sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb

(3) 安装ros开发工具(可选)

如果有对 ROS package 的开发需求,则需要安装ros开发工具

sudo apt update && sudo apt install ros-dev-tools

二、安装ROS2

1. 更新apt源和系统

ROS 2 软件包是在经常更新的 Ubuntu 系统上构建的。

ROS建议您在安装新软件包之前,务必确保系统已更新至最新版本。

sudo apt update && sudo apt upgrade

2. 安装ros2_Jazzy

(1) 桌面安装

推荐,包括ROS、Rviz、示例和教程

sudo apt install ros-jazzy-desktop

(2) 基础安装

最小化安装,只包含ROS2通信库、基础消息类型、命令行工具等,不包含任何图形化工具

sudo apt install ros-jazzy-ros-base

(3) 桌面全功能安装(扩展)

在桌面安装的基础上添加了仿真和机器人常用的上层功能包

sudo apt install ros-jazzy-desktop-full

三、设置环境变量

如果你没有使用bash,可以根据你自己使用的shell,将下面的 setup.bash 更换为 setup.zsh / setup.sh

同理,在涉及到shell的启动脚本时,将下面的 ~/.bashrc 更换为对应的 ~/.zshrc 等

1. source ROS 的 setup 脚本

 (1) 临时使用ROS

在需要调用ROS相关功能的Terminal中输入如下命令,设置ROS工作环境

source /opt/ros/jazzy/setup.bash

(2) 持久化设置

如果不想每开一个Terminal都执行一遍source命令,可以将source命令加入shell的启动脚本中

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

2. 检查ROS的基本环境变量

成功source ROS 的 setup脚本后,系统中应该成功设置了 ROS 的基本环境变量:

printenv | grep -i ROS

如果setup脚本被成功source,输出应该包含下面三项:

ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=jazzy

3. 设置 ROS_DOMAIN_ID

通过设置 ROS_DOMAIN_ID 隔离不同节点,避免节点间互相干扰。

请使用你选择的 ROS_DOMAIN_ID 替换掉如下命令中的 <your_domain_id>

推荐的 ROS_DOMAIN_ID 取值范围是 0 ~ 232

ROS_DOMAIN_ID 的默认值是0

(1) 临时设置

export ROS_DOMAIN_ID=<your_domain_id>

(2) 持久化设置

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

4. 设置ROS节点之间的发现范围

默认情况下,ROS 2 的通信不限于本地主机。ROS_AUTOMATIC_DISCOVERY_RANGE 环境变量允许您限制 ROS 2 的发现范围。在某些场景下(例如教室)使用。

如果需要设置可以参考 参考文档4 进行设置

四、卸载ROS

1. 卸载ROS

sudo apt remove '~nros-jazzy-*' && sudo apt autoremove

2. 卸载ROS源

sudo apt remove ros2-apt-source
sudo apt update
sudo apt autoremove
sudo apt upgrade # Consider upgrading for packages previously shadowed.

参考文档:

  1. Ubuntu (deb packages) — ROS 2 Documentation: Jazzy documentation
  2. Configuring environment — ROS 2 Documentation: Jazzy documentation
  3. The ROS_DOMAIN_ID — ROS 2 Documentation: Jazzy documentation
  4. Improved Dynamic Discovery — ROS 2 Documentation: Jazzy documentation
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐