【机器人-开发工具】ROS 2 (4)Jetson Nano 系统Ubuntu22.04安装ROS 2 Humble版本

发布于:2025-08-15 ⋅ 阅读:(18) ⋅ 点赞:(0)

1. 系统环境准备

1.1. Jetpack简介

Jetson Nano 中的 JetPack 是由 NVIDIA 提供的、专为 Jetson 系列嵌入式 AI 模块(包括 Jetson Nano)打造的完整软件开发套件(SDK)

简单来说,JetPack 就是让 Jetson Nano 能够运行 AI 程序的“基础操作系统和工具包”。
有基础的Linux系统、AI和GPU计算库、开发工具和环境。

# 查看Jetpack版本
sudo apt-cache show nvidia-jetpack

1.2. 下载Jetpack安装系统

官网下载Jetpack烧录安装系统ubuntu22.04

2. 安装ROS2 Humble

2.1. ROS2 简介

ROS 2 是一个现代化的机器人开发框架,相较于依赖中心化主节点(Master)的 ROS 1,它基于去中心化的 DDS 通信机制

2.2. ROS2 Humble对比Foxy版本

发行版 发布日期 EOL(维护结束) 支持周期
Foxy Fitzroy 2020-06 2023-05 3 年(LTS)
Humble Hawksbill 2022-05 2027-05 5 年(LTS)
  • 功能对比:
    • Foxy:
      • ros2 CLI 基本稳定,但功能少,没有 ros2 --version,ros2 topic pub 等命令的参数还比较原始。
    • Humble:
      • CLI 新增很多命令和选项(ros2 topic list -t 可直接显示类型等)。
      • ros2 bag 读写格式升级到 SQLite3 + 支持压缩。
      • Launch 文件支持更多 Python API 语法糖。
      • Colcon 构建系统兼容性提升,支持 --symlink-install 更好调试。

2.3. 安装

2.3.1. 更新系统

sudo apt update && sudo apt upgrade -y

2.3.2. 添加 ROS 2 GPG 密钥

sudo apt install -y curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo gpg --dearmor -o /etc/apt/keyrings/ros-archive-keyring.gpg

2.3.3. 添加 ROS 2 仓库源

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

2.3.4. 更新软件包索引

sudo apt update

2.3.5. 安装 ROS 2 Humble 桌面版(推荐)

sudo apt install -y ros-humble-desktop

💡 如果担心资源不足(Jetson Nano 4GB RAM),可改用轻量版:

sudo apt install -y ros-humble-desktop-core

2.3.6. 安装常用工具(推荐)

sudo apt install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-vcstools python3-colcon-common-extensions

2.3.7. 初始化 rosdep

sudo rosdep init
rosdep update

2.3.8. 设置环境变量

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

2.4. 测试 ROS 2 是否正常工作

打开两个终端:

终端 1(发布者)

ros2 run demo_nodes_cpp talker

终端 2(订阅者)

ros2 run demo_nodes_py listener

你应该看到消息从 C++ 节点发送到 Python 节点。