Orin NX 16GB 的 package 安装命令清单 + Docker/工作区目录结构 + bringup 顺序

JetPack 6.2 + ROS 2 Humble + Isaac ROS 3.2.x + Isaac ROS Dev Docker 来写。组合的依据是:JetPack 6.2 是 Ubuntu 22.04 / CUDA 12.6 / TensorRT 10.3 的 production release;Isaac ROS 3.2 Update 1 明确加入了 JetPack 6.2 支持;Isaac ROS 3.2 的 Getting Started 明确写了 Jetson Orin + JetPack 6.1/6.2 + ROS 2 Humble ,并且强烈推荐用 Isaac ROS Dev Docker 。(NVIDIA Developer)

1)主机侧安装命令清单

这一步只做三件事:把 JetPack 刷好、把 Docker 装好、把 NVIDIA 容器运行时配好。Isaac ROS 文档推荐把 Jetson 工作区放到 SSD 上,并在 Jetson 上把实验工作区放在 /mnt/nova_ssd/workspaces/isaac_ros-dev。(NVIDIA Isaac ROS)

1.1 刷机和基础系统

如果你还没刷系统,先装 JetPack 6.2 。JetPack 6.2 官方页面说明它基于 Ubuntu 22.04 ,并且支持 Orin NX 的 Super Mode。(NVIDIA Developer)

1.2 安装 Docker Engine

如果你的 JetPack 安装方式没有自带 Docker,就按 Docker 官方 Ubuntu 22.04 方法装。Docker 官方文档明确支持 Ubuntu Jammy 22.04arm64 。(Docker Documentation)

bash 复制代码
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1) || true

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo systemctl status docker
sudo docker run hello-world

这些命令来自 Docker 官方的 Ubuntu 安装页。(Docker Documentation)

1.3 安装 NVIDIA Container Toolkit,并把 Docker 配成可见 GPU

NVIDIA Container Toolkit 官方文档给了 Ubuntu/Debian 的 APT 源配置、安装命令,以及用 nvidia-ctk runtime configure --runtime=docker 把 Docker 接到 NVIDIA runtime 的方法。(NVIDIA Docs)

bash 复制代码
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
  ca-certificates \
  curl \
  gnupg2

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.19.0-1
sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

1.4 把当前用户加入 docker 组

这一步不是 Isaac ROS 文档硬性要求,但在日常开发里很省事。

bash 复制代码
sudo usermod -aG docker $USER
newgrp docker
docker info

2)工作区和 Docker 目录结构

Isaac ROS 官方 Jetson 路径是把工作区建在 SSD 下,并导出 ISAAC_ROS_WS=/mnt/nova_ssd/workspaces/isaac_ros-dev/。我建议保留这个根路径,再往下加你自己的 bringupconfigbagsscripts。(NVIDIA Isaac ROS)

2.1 创建工作区

bash 复制代码
sudo mkdir -p /mnt/nova_ssd/workspaces/isaac_ros-dev/src
sudo chown -R $USER:$USER /mnt/nova_ssd/workspaces

echo 'export ISAAC_ROS_WS="${ISAAC_ROS_WS:-/mnt/nova_ssd/workspaces/isaac_ros-dev/}"' >> ~/.bashrc
source ~/.bashrc

2.2 推荐目录结构

text 复制代码
/mnt/nova_ssd/workspaces/isaac_ros-dev/
├── src/
│   ├── isaac_ros_common/
│   ├── your_robot_bringup/
│   ├── your_sensor_drivers/
│   └── your_localization_stack/
├── config/
│   ├── robot_localization/
│   ├── sensors/
│   ├── calibration/
│   └── nav2/
├── bags/
│   ├── calib/
│   └── runtime/
├── assets/
│   └── quickstarts/
├── scripts/
│   ├── install_inside_container.sh
│   ├── bringup_sensors.sh
│   ├── bringup_localization.sh
│   └── bringup_navigation.sh
├── logs/
└── docker/
    ├── Dockerfile.custom
    └── dev.env

这部分里,工作区根路径 是按 NVIDIA 文档来的;其余子目录是我建议你为可维护性加上的。(NVIDIA Isaac ROS)

2.3 先克隆 isaac_ros_common

Isaac ROS 的 quickstart 都默认先把 isaac_ros_common 克隆到 ${ISAAC_ROS_WS}/src,然后通过它的 run_dev.sh 启动 Dev Docker。(NVIDIA Isaac ROS)

bash 复制代码
cd ${ISAAC_ROS_WS}/src
git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common

3)进入 Isaac ROS Dev Docker

Isaac ROS 3.2 Getting Started 明确写了:Isaac ROS 包已经按 ROS 2 Humble 测试,推荐用 Dev Docker,容器里会自动配置 ROS 和 Isaac APT Repository。Visual SLAM 和 Nvblox 的 quickstart 都是通过 run_dev.sh 进容器。(NVIDIA Isaac ROS)

bash 复制代码
cd ${ISAAC_ROS_WS}/src/isaac_ros_common
./scripts/run_dev.sh

进入容器后,建议先执行:

bash 复制代码
cd ${ISAAC_ROS_WS}
source /opt/ros/humble/setup.bash
[ -f install/setup.bash ] && source install/setup.bash || true

4)容器内 package 安装命令清单

4.1 核心 Isaac ROS 包

Visual SLAM 的官方 3.2 quickstart 给出了 ros-humble-isaac-ros-visual-slamros-humble-isaac-ros-examples 的安装命令;Nvblox 的官方 3.2 quickstart 给出了 ros-humble-isaac-ros-nvblox 的安装命令。(NVIDIA Isaac ROS)

bash 复制代码
sudo apt-get update

sudo apt-get install -y \
  ros-humble-isaac-ros-visual-slam \
  ros-humble-isaac-ros-examples \
  ros-humble-isaac-ros-nvblox

4.2 Nvblox 依赖补齐

Nvblox 的官方 quickstart 在 Debian 安装方式里还补了一步 rosdep update && rosdep install isaac_ros_nvblox。(NVIDIA Isaac ROS)

bash 复制代码
rosdep update
rosdep install isaac_ros_nvblox

Nav2 官方 Getting Started 里给出了 ros-$ROS_DISTRO-navigation2ros-$ROS_DISTRO-nav2-bringup 的安装命令;Nav2 的 robot_localization 教程里给出了 ros-$ROS_DISTRO-robot-localization 的安装命令。(Nav2)

bash 复制代码
sudo apt-get install -y \
  ros-humble-navigation2 \
  ros-humble-nav2-bringup \
  ros-humble-robot-localization

4.4 传感器适配包

如果你用 RealSense 跑 Isaac ROS Visual SLAM,Visual SLAM 3.2 quickstart 里给出的依赖包是 ros-humble-isaac-ros-realsense。(NVIDIA Isaac ROS)

bash 复制代码
sudo apt-get install -y ros-humble-isaac-ros-realsense

如果你不是 RealSense,而是 ZED、Hawk、自家双目或 USB/GMSL 相机,这一行就不要装,换成你自己的驱动包。

4.5 下载 quickstart 资产时的工具

Nvblox quickstart 明确要求 curl jq tar。(NVIDIA Isaac ROS)

bash 复制代码
sudo apt-get install -y curl jq tar

5)一个更省事的"容器内一键安装脚本"

把下面这个脚本存成:

/mnt/nova_ssd/workspaces/isaac_ros-dev/scripts/install_inside_container.sh

bash 复制代码
#!/usr/bin/env bash
set -euo pipefail

source /opt/ros/humble/setup.bash

sudo apt-get update

sudo apt-get install -y \
  curl jq tar \
  ros-humble-isaac-ros-visual-slam \
  ros-humble-isaac-ros-examples \
  ros-humble-isaac-ros-nvblox \
  ros-humble-navigation2 \
  ros-humble-nav2-bringup \
  ros-humble-robot-localization

# Optional: RealSense users only
# sudo apt-get install -y ros-humble-isaac-ros-realsense

rosdep update || true
rosdep install isaac_ros_nvblox || true

echo "Done."

执行方式:

bash 复制代码
cd ${ISAAC_ROS_WS}
bash scripts/install_inside_container.sh

这份脚本里用到的包名都来自上面的官方 quickstart 和官方 Nav2 文档。(NVIDIA Isaac ROS)


6)可选:如果你坚持在主机原生安装 ROS 2 Humble

Isaac ROS 官方建议容器内开发,所以这一步不是必须。ROS 2 Humble 官方 Ubuntu deb 安装页说明 Ubuntu Jammy 22.04 提供 deb 包,推荐先 apt upgrade,然后安装 ros-humble-desktop。(ROS Documentation)

bash 复制代码
sudo apt install software-properties-common
sudo add-apt-repository universe
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 apt update
sudo apt upgrade
sudo apt install -y ros-humble-desktop

我对 Orin NX 16GB 的建议仍然是:主开发环境放在 Isaac Dev Docker,主机原生 ROS 只在你确实需要 GUI 工具或宿主调试时再装。 这也是顺着 Isaac ROS 官方建议来的。(NVIDIA Isaac ROS)


7)推荐 bringup 顺序

Isaac ROS Visual SLAM 的官方包是 双目 + 可选 IMU → 里程计 ;Nvblox 是 深度/3D LiDAR + 位姿 → 3D 重建和 2D costmap ;Nav2 官方又建议用 robot_localization 做平滑融合的 odom -> base_link。所以我建议 bringup 顺序是:驱动 → TF/标定 → robot_localization → Visual SLAM → Nvblox → Nav2 。(GitHub)

7.1 主机启动后先检查

bash 复制代码
docker info
ls /mnt/nova_ssd/workspaces/isaac_ros-dev

7.2 进入 Isaac Dev Docker

bash 复制代码
cd ${ISAAC_ROS_WS}/src/isaac_ros_common
./scripts/run_dev.sh

7.3 容器内先 source

bash 复制代码
cd ${ISAAC_ROS_WS}
source /opt/ros/humble/setup.bash
[ -f install/setup.bash ] && source install/setup.bash || true

7.4 bringup 顺序建议

我建议你把自己的系统拆成这 5 个 launch 层:

text 复制代码
1. sensors.launch.py
   - 相机驱动
   - IMU 驱动
   - LiDAR 驱动

2. tf_and_calibration.launch.py
   - static_transform_publisher
   - camera_info / 标定参数

3. localization_ekf.launch.py
   - robot_localization ekf_node
   - 输出 odom -> base_link

4. visual_slam.launch.py
   - isaac_ros_visual_slam
   - 输出视觉/惯导 odom

5. reconstruction_nav.launch.py
   - isaac_ros_nvblox
   - nav2

7.5 典型启动命令

你自己的包名先假设叫 your_robot_bringup

bash 复制代码
# 终端 1:传感器
ros2 launch your_robot_bringup sensors.launch.py

# 终端 2:静态 TF 和标定
ros2 launch your_robot_bringup tf_and_calibration.launch.py

# 终端 3:EKF
ros2 launch your_robot_bringup localization_ekf.launch.py

# 终端 4:Visual SLAM
ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam.launch.py

# 终端 5:Nvblox + Nav2(建议封装到你自己的 launch)
ros2 launch your_robot_bringup reconstruction_nav.launch.py

Visual SLAM 官方 API 页给出的基本用法就是 ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam.launch.py。(NVIDIA Isaac ROS)


8)我建议你长期固定下来的目录和职责

text 复制代码
${ISAAC_ROS_WS}/
├── src/
│   ├── isaac_ros_common/        # NVIDIA 官方
│   ├── your_robot_bringup/      # 你自己的 launch / config / params
│   ├── your_sensor_drivers/     # 相机/IMU/LiDAR 驱动
│   └── your_localization_stack/ # EKF / 自定义桥接节点
├── config/
│   ├── calibration/
│   ├── robot_localization/
│   ├── nav2/
│   └── sensors/
├── scripts/
│   ├── install_inside_container.sh
│   ├── start_dev_docker.sh
│   ├── bringup_all.sh
│   └── record_bag.sh
├── bags/
└── logs/

其中 ${ISAAC_ROS_WS} 放到 SSD 是官方推荐;其余分层是为了后面你加 LiDAR-Camera-IMU 标定、录包、Nav2、目标检测时不把工作区搅乱。(NVIDIA Isaac ROS)


9)一条最实用的建议

先不要把 FAST_LIO / FAST-LIVO2 和这套主系统混装在同一个 OS 环境里。 Isaac ROS 3.2 文档明确写了:包按 ROS 2 Humble 测试,且 ROS 1 Noetic 不支持和 ROS 2 Humble 在同一 OS 环境里混用 。所以你先把 Orin NX 16GB 的主线跑成 Docker + Humble + Isaac ROS + Nav2 ,后面再单独给学术栈开一套环境,会省很多时间。(NVIDIA Isaac ROS)

如果基于源码安装,单独编写。以上容器内部分通过apt install安装。

相关推荐
用户03284722207011 小时前
如何搭建本地yum源(上)
运维
武子康12 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造