Jetson + Isaac ROS:NVIDIA 官方机器人开发栈
Jetson + Isaac ROS:NVIDIA 官方机器人开发栈
1. Isaac ROS 概述
Isaac ROS 是 NVIDIA 基于 ROS2 的机器人开发栈,专门为 Jetson 优化:
Isaac ROS 核心模块: ├── 视觉 SLAM(Visual SLAM) │ ├── cuVSLAM:GPU 加速视觉里程计 │ └── 支持单目/双目/RGB-D 相机 ├── 导航(Navigation) │ ├── nvblox:3D 占用地图 │ ├── Nav2 集成 │ └── DNN 视觉导航 ├── 感知(Perception) │ ├── DNN 推理(TensorRT) │ ├── 深度估计 │ ├── 立体视觉 │ └── 语义分割 ├── 机械臂(Manipulation) │ ├── 关节控制 │ ├── 路径规划 │ └── 抓取检测 └── 基础设施 ├── Isaac ROS Dev Dockers ├── Nova Carter 仿真 └── 评测工具2. 安装 Isaac ROS
# 创建工作空间mkdir-p~/isaac_ros_ws/srccd~/isaac_ros_ws/src# 克隆 Isaac ROS 仓库gitclone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.gitgitclone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam.gitgitclone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.gitgitclone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_inference.gitgitclone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_depth_estimation.git# 安装依赖cd~/isaac_ros_ws rosdepinstall-i-r--from-paths src--rosdistrohumble-y# 编译colcon build --symlink-installsourceinstall/setup.bash3. 视觉 SLAM(cuVSLAM)
# launch/visual_slam.launch.pyfromlaunchimportLaunchDescriptionfromlaunch_ros.actionsimportNodedefgenerate_launch_description():returnLaunchDescription([# CSI 摄像头Node(package='isaac_ros_argus_camera',executable='isaac_ros_argus_camera_mono',name='camera',parameters=[{'device':0,'width':1280,'height':720,'frame_rate':30.0,}]),# cuVSLAMNode(package='isaac_ros_visual_slam',executable='visual_slam_node',name='visual_slam',parameters=[{'enable_rectified_pose':True,'enable_debug_mode':False,'enable_slam_visualization':True,'enable_landmarks_view':True,'enable_observations_view':True,'rectified_images':True,'camera_fps':30,'fix_imu_to_camera':True,'enable_imu':False,'verbosity':1,}],remappings=[('visual_slam/image_0','camera/image_raw'),('visual_slam/camera_info_0','camera/camera_info'),]),# RVizNode(package='rviz2',executable='rviz2',name='rviz2',arguments=['-d','config/slam.rviz'],),])4. nvblox 3D 地图
# launch/nvblox.launch.pyfromlaunchimportLaunchDescriptionfromlaunch_ros.actionsimportNodedefgenerate_launch_description():returnLaunchDescription([# RGB-D 相机Node(package='realsense2_camera',executable='realsense2_camera_node',name='camera',parameters=[{'depth_module.depth_profile':'640x480/30','rgb_camera.color_profile':'640x480/30','align_depth.enable':True,}]),# nvbloxNode(package='nvblox_ros',executable='nvblox_node',name='nvblox',parameters=[{'global_frame':'map','voxel_size':0.05,'use_color':True,'use_depth':True,'use_esdf':True,'mesh_update_rate_hz':10.0,'max_depth':10.0,}],remappings=[('depth/image','/camera/depth/image_rect_raw'),('depth/camera_info','/camera/depth/camera_info'),('color/image','/camera/color/image_raw'),]),])5. DNN 视觉感知
# launch/perception.launch.pyfromlaunchimportLaunchDescriptionfromlaunch_ros.actionsimportNodedefgenerate_launch_description():returnLaunchDescription([# TensorRT 推理Node(package='isaac_ros_tensor_rt',executable='tensor_rt_node',name='detector',parameters=[{'model_file_path':'/app/models/yolov8s.onnx','engine_file_path':'/app/models/yolov8s.engine','input_tensor_names':['images'],'output_tensor_names':['output0'],'force_engine_update':False,'tensor_mean':[0.0,0.0,0.0],'tensor_std':[255.0,255.0,255.0],}]),# 深度估计Node(package='isaac_ros_depth_estimation',executable='ews_depth_estimator_node',name='depth_estimator',parameters=[{'model_file_path':'/app/models/depth_anything_v2.onnx','engine_file_path':'/app/models/depth_anything_v2.engine',}]),])6. Isaac ROS Dev Docker
# 使用 Docker 开发(推荐)cd~/isaac_ros_ws/src/isaac_ros_common ./scripts/run_dev.sh# Docker 内已预装:# - ROS2 Humble# - CUDA / cuDNN / TensorRT# - Isaac ROS 所有包7. 性能基准
Isaac ROS 性能(Orin NX 16GB): ┌─────────────────┬──────────┬──────────┐ │ 模块 │ 分辨率 │ FPS │ ├─────────────────┼──────────┼──────────┤ │ cuVSLAM │ 1280x720 │ 30 │ │ nvblox │ 640x480 │ 10 │ │ DNN 推理 │ 640x640 │ 60 │ │ 深度估计 │ 640x480 │ 30 │ │ 完整感知栈 │ 640x480 │ 15-20 │ └─────────────────┴──────────┴──────────┘总结
| 模块 | 功能 | Isaac ROS 包 |
|---|---|---|
| 视觉 SLAM | 定位建图 | isaac_ros_visual_slam |
| 3D 地图 | 占用地图 | isaac_ros_nvblox |
| DNN 推理 | 目标检测 | isaac_ros_tensor_rt |
| 深度估计 | 单目深度 | isaac_ros_depth_estimation |
| 导航 | 路径规划 | Nav2 + nvblox |
核心要点:
- GPU 加速:cuVSLAM、nvblox 都是 GPU 优化的
- Docker 开发:推荐使用 Isaac ROS Dev Docker
- Nav2 集成:与 ROS2 导航栈无缝集成
- 模块化:按需选择模块,不必全部安装
