Intel RealSense Depth Camera D455( 景深相机)的ROS2驱动安装
找到官方开发者中心的文档https://dev.intelrealsense.com/docs/docs-get-started?_ga=2.22118398.41936604.1734785296-801471888.1733994584
先别着急安装文档的指引就先安装好对应的SDK,我在这里走了弯路,这里的SDK是老版本,装ROS Wrapper 会报版本过低的错。要装ROS2的wraaper不要点这里。
我们直接点 README.md ,按照这里的要求装。
第一步安装ROS2,推荐鱼香ROS一键安装,装好的跳过。
第二步,安装latest Intel® RealSense™ SDK 2.0,一般都是选 Linux Debian Installation Guide,然后按照里面指引把SDK2..0给装好。 Linux Debian Installation Guide里也有卸载方法。
第三步,按照说明,安装好就行了。
RViz2的使用
1. 使用 ros2 run
启动相机节点
-
基础命令:
ros2 run realsense2_camera realsense2_camera_node
这个命令会启动
realsense2_camera_node
,即 RealSense 相机的核心驱动节点。它会初始化相机并开始发布数据。 -
带参数的命令(启用空间和时间滤波器,禁用彩色图像):
ros2 run realsense2_camera realsense2_camera_node --ros-args -p enable_color:=false -p spatial_filter.enable:=true -p temporal_filter.enable:=true
这个命令启用了时间和空间滤波器,同时禁用了彩色图像(可能是为了减小数据量或只关注深度数据)。这些滤波器有助于改善深度数据的质量,特别是在噪声较多或不稳定的环境中。
2. 使用 ros2 launch
启动
-
基础
launch
命令:ros2 launch realsense2_camera rs_launch.py
这个命令会启动
rs_launch.py
启动文件,通常用于启动相机节点并设置一些默认配置。 -
带参数的
launch
命令(设置特定的深度配置和点云功能):ros2 launch realsense2_camera rs_launch.py depth_module.depth_profile:=1280x720x30 pointcloud.enable:=true
这个命令设置了深度图像的分辨率为
1280x720
,帧率为30
,并启用了点云数据发布。点云数据能够帮助你在三维空间中可视化深度信息,常用于机器人感知、建图等任务。
-
验证数据:你可以使用
rqt_image_view
或其他 ROS 2 工具来查看相机发布的图像和深度信息。例如,使用以下命令查看深度图像:ros2 run rqt_image_view rqt_image_view
然后在界面中选择
/camera/depth/image_rect_raw
话题来查看实时的深度图像。 -
查看点云数据:如果启用了点云数据发布,可以使用
rviz2
来可视化点云:ros2 run rviz2 rviz2
在 RViz 中,添加一个
PointCloud2
显示,订阅/camera/depth/points
或类似的话题来查看点云数据。 -
调试与优化:如果在运行过程中遇到问题或需要调整相机设置,可以参考 RealSense 官方文档或调整启动命令中的参数。例如,你可以调节不同的深度配置或滤波器参数来提高性能。
3. RViz2(通过 ROS 2)
如果你使用的是 ROS 2 环境,RViz2
是一个强大的可视化工具,可以帮助你查看来自 RealSense 相机的图像和深度数据。你可以通过 PointCloud2
插件查看点云数据,或者查看深度图像、RGB 图像等。
步骤:
- 启动相机节点(例如通过
ros2 launch
启动)。 - 启动
rviz2
:ros2 run rviz2 rviz2
- 在 RViz2 中添加
Image
或PointCloud2
显示,选择你相机的对应话题(例如/camera/depth/image_rect_raw
或/camera/depth/points
)来查看数据。
在 RViz2
中查看 实时图像,尤其是彩色图像,需要一些额外的配置和步骤。如果你在 ROS 2 中使用 RealSense 相机,默认情况下,你可能看到的是深度图像、点云或者其他传感器数据,而彩色图像则需要进行额外的配置和显示。
1. 确保相机发布了彩色图像
首先,要确保 RealSense 相机正在发布彩色图像。如果你使用的是 RealSense 2.0 驱动(realsense2_camera
),默认情况下,相机会发布彩色图像和深度图像。你可以通过以下命令确认彩色图像的话题是否在发布:
ros2 topic list
查找类似 /camera/color/image_raw
的话题。这是发布彩色图像的数据流。
2. 在 RViz2 中显示彩色图像
为了在 RViz2
中查看实时彩色图像,你需要在 RViz2
中添加一个 Image 显示器,并选择正确的话题。下面是具体步骤:
-
启动
RViz2
:ros2 run rviz2 rviz2
-
在 RViz2 中,点击左上角的 "Add" 按钮,选择 "By display type" 下的 "Image"。
-
在右侧的 "Global Options" 部分,确保你选择了正确的 Fixed Frame,通常是
camera_link
或者是与相机相关的坐标系。如果你不确定,可以选择map
或base_link
。 -
在 "Image" 显示器设置中,点击 "Topic" 字段,选择
/camera/color/image_raw
,这是 RealSense 相机发布彩色图像的常见话题。如果你的话题是其他名字,也可以选择正确的彩色图像话题。 -
现在,你应该能够在 RViz2 中看到实时的彩色图像了。
3. 调整图像显示
如果图像显示不正常,可能是由于图像格式或渲染问题,以下是一些常见的调整方法:
- 图像格式:确认相机发布的是
sensor_msgs/msg/Image
类型的图像数据,RViz2
支持这种格式。 - 图像大小:大尺寸图像可能需要较高的计算资源,你可以尝试降低相机的分辨率来提高显示性能。
- 话题确认:确保话题
/camera/color/image_raw
正在正确发布,可以通过以下命令进行查看:ros2 topic echo /camera/color/image_raw
4. 同时查看深度图像
如果你同时想查看 深度图像 和 彩色图像,你可以按照类似的步骤添加另一个 Image 显示器,选择 /camera/depth/image_rect_raw
或者类似的话题,来显示深度图像。
小贴士:
- 点云数据:如果你还想查看点云数据,可以添加 PointCloud2 显示器,订阅
/camera/depth/points
来查看三维点云。 - 视频和帧率:在
RealSense Viewer
中可以轻松调整帧率和分辨率。如果你在RViz2
中使用低帧率设置,可以减少图像延迟。
获取Intel RealSense D455 的设备序列号的方法
config_2.enable_device('11111111111')
是用来指定你要启用的 Intel RealSense 相机设备的序列号。
这在使用多台 RealSense 相机时特别有用,以确保你配置和捕获的是正确的设备。
要找到 Intel RealSense D455 的设备序列号,可以通过以下几种方法:
1. 使用 RealSense Viewer
- 打开 Intel RealSense Viewer(这是随 RealSense SDK 一起安装的工具)。
- 连接你的相机,RealSense Viewer 会自动检测到设备。
- 在左侧设备列表中找到你的 D455,点击它,你会看到设备的详细信息,其中包括 Serial Number。
2. 通过 RealSense SDK 查询序列号
使用以下 Python 代码来列出连接到电脑的所有 RealSense 相机设备及其序列号:
import pyrealsense2 as rs
# Create a context object
ctx = rs.context()
# List all connected devices
devices = ctx.query_devices()
if not devices:
print("No RealSense devices connected.")
else:
print("Connected RealSense devices:")
for device in devices:
print(f"Device Name: {device.get_info(rs.camera_info.name)}")
print(f"Serial Number: {device.get_info(rs.camera_info.serial_number)}")
运行此代码,它会输出类似如下内容:
Connected RealSense devices:
Device Name: Intel RealSense D455
Serial Number: 242322076532
3. 检查 RealSense ROS2 的输出
如果你已经安装了 ROS2 的 RealSense 驱动,可以通过以下命令查看序列号:
ros2 launch realsense2_camera rs_launch.py
然后在启动的日志中查找 serial_number
的输出。
4. 通过命令行工具获取序列号
如果你安装了 RealSense SDK 的命令行工具,可以直接通过命令行获取设备信息:
rs-enumerate-devices
输出中会包含设备的序列号。例如:
Serial Number: 242322076532
5. 通过配置设备时的日志确认
如果你已经启用了 ROS2 并且设备正常工作,启动 ROS2 时的控制台输出中也可能列出相机的序列号,类似于:
[INFO] [RealSenseCamera]: Device with serial number 242322076532 was found.
标签:彩色图像,Intel,D455,RealSense,相机,camera,RViz2,序列号,ros2 From: https://www.cnblogs.com/zhoushusheng/p/18621483