【Isaac sim】传感器设置
Isaac ROS 正式支持 Hawk 和 RealSense 相机。
- Isaac ROS Hawk 设置
Jetson 平台
摄像机配置
Hawk 相机必须通过 GMSL 扩展板连接到您的 Jetson。例如,如果使用 AGX Orin,请参阅 Leopard 板。请联系您的硬件供应商寻求帮助。
如果使用 Leopard Imaging 的 P3762_A03 板,您可以通过安装 Nova Init 来设置 Hawk。
对于其他 GMSL 板,请联系您的供应商以获取有关如何配置它们的信息。
验证 Hawk 设置
Hawk 可以通过构建和运行以下 Argus 进行验证:argus_syncstereo
cd /usr/src/jetson_multimedia_api/argus/cmake/
sudo cmake ..
sudo make install
argus_syncstereo
这应该可以正常运行。
ROS 驱动程序设置
cd ${ISAAC_ROS_WS}/src && \
git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_argus_camera.git isaac_ros_argus_came
- Isaac ROS RealSense 设置
相机兼容性
RealSense 模型 | 支持? |
---|---|
D455 | ✓ |
D435i | ✓ |
D415 | ✓ |
Note
需要使用 RealSense 固件版本 5.13.0.50、librealsense 版本 2.55.1 和实感摄像头 ROS 驱动程序版本 4.51.1。与这些版本的任何偏差都会导致 ISAAC ROS 示例的运行失败。
Note
为了获得最佳结果,我们建议将最大 Linux 内核接收缓冲区大小增加(详情参考此处)。
设置说明
注意
本教程假定您已完成 Developer Environment Setup 中的说明。
-
克隆存储库:realsense-ros
注意
${ISAAC_ROS_WS}
定义为指向/ssd/workspaces/isaac_ros-dev/
或~/workspaces/isaac_ros-dev/
cd ${ISAAC_ROS_WS}/src git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common git clone https://github.com/IntelRealSense/realsense-ros.git -b 4.51.1
注意
在下一步启动 Docker 容器之前插入实感摄像头。 -
将由脚本
isaac_ros_common/scripts/run_dev.sh
创建的容器 配置到 includelibrealsense
和realsense2-camera
。在目录isaac_ros_common/scripts
中创建文件:.isaac_ros_common-config
cd ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts && \ touch .isaac_ros_common-config && \ echo CONFIG_IMAGE_KEY=ros2_humble.realsense > .isaac_ros_common-config
-
启动 Docker 容器:
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh -d ${ISAAC_ROS_WS}
这将使用容器镜像的分层阶段之一
Dockerfile.realsense
重新构建容器镜像。重建可能需要几分钟时间。 -
构建
realsense_splitter
和realsense2*
:cd ${ISAAC_ROS_WS} && \ colcon build --symlink-install --packages-up-to-regex realsense*
-
重建容器映像后,您已经位于容器内,您可以运行
realsense-viewer
以验证实感摄像头是否已连接。realsense-viewer
如果您在 GUI 中打开 “Stereo Module”,您应该会看到如下内容:
- ISAAC ROS ZED 设置
ZED 相机需要满足以下条件才能将数据发布到 ROS 2 话题(topics):
- ZED SDK(安装者
Dockerfile.zed
) zed-ros2-wrapper
(在设置说明的步骤 1 中克隆)- ZED X 驱动程序(由用户在设置说明的步骤 3 中安装在主机上)
相机兼容性
zed ros2 包装器支持的所有相机都可以与 Isaac ROS 一起使用。
ZED Model | SQA Testing? |
---|---|
ZED 2i | ✓ |
ZED X | ✓ |
ZED 2 | ✗ |
ZED | ✗ |
ZED Mini | ✗ |
ZED X Mini | ✗ |
设置说明
-
克隆 zed-ros2-wrapper 库:
cd ${ISAAC_ROS_WS}/src && \ git clone --recurse-submodules https://github.com/stereolabs/zed-ros2-wrapper
注意
需要 checkout zed-ros2-wrapper 库的X86分支 humble-v4.0.8 -
如果你正在使用 ZED X 或者 ZED X Mini,请视情况参考 Stereolabs
设置指南注意
你无须安装 ZED SDK,
Dockerfile.zed
已经完成了。注意
ZED 驱动必须安装
-
在下一步中启动Docker容器之前,请插入ZED相机的USB电缆。
-
在
isaac_ros_common/scripts/run_dev.sh
脚本创建的容器中配置Dockerfile.zed
。在isaac_ros_common/scripts
目录中创建.isaac_ros_common-config
文件:cd ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts && \ touch .isaac_ros_common-config && \ echo CONFIG_IMAGE_KEY=ros2_humble.user.zed >> .isaac_ros_common-config
-
运行 Docker 容器.
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
这将使用其中一个分层阶段中的
Dockerfile.zed
重新构建容器镜像。重新构建需要一些时间。 -
安装
zed_wrapper
软件包的依赖项并构建它:cd ${ISAAC_ROS_WS} && \ sudo apt update && \ rosdep install --from-paths src/zed-ros2-wrapper --ignore-src -r -y && \ colcon build --symlink-install --packages-up-to zed_wrapper
-
在容器镜像重新构建完成后,进入容器内部,可以运行
/usr/local/zed/tools/ZED_Explorer
来检查ZED相机是否已连接。/usr/local/zed/tools/ZED_Explorer
如果一切正常,您应该可以看到类似以下内容的输出:
- 单目相机校准 (Monocular Camera Calibration)
注意
以下说明专门用于单目相机。 要校准立体摄像机,请参阅 camera_calibration 说明。
-
按照 Developer Environment Setup 设置您的开发环境。
-
打印一个具有已知尺寸的大棋盘格。
本教程使用具有 200 毫米正方形的 6x8 棋盘格。 校准使用棋盘格的内部顶点,因此 “7x9” 板使用内部顶点参数 “6x8”,示例如下。具有特定尺寸的棋盘格可以是在此处下载。 -
克隆 ROS 2
usb_cam
包:cd ${ISAAC_ROS_WS}/src && \ git clone -b ros2 https://github.com/ros-drivers/usb_cam
注意
你的相机供应商可能提供了一个特定的ROS 2兼容相机驱动程序包,可以替代usb_cam
包使用。 -
使用脚本
run_dev.sh
运行 Docker 容器:cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
-
在容器内,构建并 source 工作空间
cd /workspaces/isaac_ros-dev && \ colcon build --symlink-install && \ source install/setup.bash
-
运行
usb_cam
图像发布者:ros2 run usb_cam usb_cam_node_exe --remap __ns:=/my_camera --ros-args -p framerate:=30.0 -p image_height:=720 -p image_width:=1280
-
另外启动终端,进入 Docker 容器 使用脚本
run_dev.sh
:cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
-
运行相机校准器:
ros2 run camera_calibration cameracalibrator --size 6x8 --square 0.20 image:=/my_camera/image_raw camera:=/my_camera
-
完成这个 相机校准教程的步骤 6-8.
-
确保您已经按下“校准”按钮,然后再按下“保存”按钮
您应该在第二个终端中看到以下行的输出:
('Wrote calibration data to', '/tmp/calibrationdata.tar.gz')
校准文件保存在
/tmp/calibrationdata.tar.gz
. -
文件保存后, 按
Ctrl+C
停止各个终端中的节点。 -
将校准文件移动到所需位置:
cd /workspaces/isaac_ros-dev/src/<isaac_ros_metapackage>/<isaac_ros_package>/config/ && \ tar -xvf /tmp/calibrationdata.tar.gz -C ./ ost.yaml && \ mv ost.yaml camera_info.yaml