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安装。

相关推荐
桌面运维家4 小时前
Prometheus服务器监控告警实战指南
运维·服务器·prometheus
不一样的故事1264 小时前
核心预测未来 10 年
运维·安全·自动化
剪刀石头布Cheers4 小时前
Ubuntu安装向日葵远程黑屏
linux·运维·ubuntu
wanhengidc4 小时前
跨境云手机适用于哪些场景
大数据·运维·服务器·数据库·科技·智能手机
空灵之海4 小时前
Ubuntu环境Docker安装禅道项目管理软件开源版
ubuntu·docker·开源
sky wide5 小时前
[特殊字符] Docker 安装指南 (CentOS)
docker·容器·centos
Honeyeagle5 小时前
无线移动在线复合式多合一气体检测仪:工业安全监测的革新利器
运维·网络·安全
桌面运维家5 小时前
网络运维:防火墙异常流量监控与安全配置优化
运维·网络·安全
zhuyan1085 小时前
【AI编程】aider安装记录
linux·运维·ai编程