[视觉SLAM算法][RDK X5][接入D435i运行ORBSLAM3算法没反应]

按照官方文档 https://developer.d-robotics.cc/rdk_doc/Robot_development/boxs/function/orb_slam3 运行,在X5 UBUNTU22.04 [RDK OS Version] 3.1.1,使用EuRoC数据集可以ORB SLAM3运行成功。接入D435i运行示例代码,/camera/camera/infra1/image_rect_raw话题是有图像数据,/keypoint_render_frame话题和其他话题就没有数据,也没有打印fps,打印信息停在“Camera 0 is pinhole”,怎么解决?

复现流程

启动D435i,发布图像数据

root@ubuntu:/opt/tros/humble# source /opt/tros/humble/setup.bash 
root@ubuntu:/opt/tros/humble# ros2 launch realsense2_camera rs_launch.py enable_depth:=false enable_color:=false enable_infra1:=true depth_module.profile:=640x480x15 
[INFO] [launch]: All log files can be found below /root/.ros/log/2025-04-18-10-07-49-650599-ubuntu-13669
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [realsense2_camera_node-1]: process started with pid [13710]
[realsense2_camera_node-1] [INFO] [1744942086.520091522] [camera.camera]: RealSense ROS v4.55.1
[realsense2_camera_node-1] [INFO] [1744942086.520408106] [camera.camera]: Built with LibRealSense v2.55.1
[realsense2_camera_node-1] [INFO] [1744942086.520504689] [camera.camera]: Running with LibRealSense v2.55.1
[realsense2_camera_node-1] [INFO] [1744942086.787942605] [camera.camera]: Device with serial number 231522072531 was found.
[realsense2_camera_node-1] 
[realsense2_camera_node-1] [INFO] [1744942086.788114105] [camera.camera]: Device with physical ID /sys/devices/platform/soc/35000000.hsio_apb/35100000.usb3/35100000.usb/xhci-hcd.2.auto/usb1/1-1/1-1.3/1-1.3:1.0/video4linux/video0 was found.
[realsense2_camera_node-1] [INFO] [1744942086.788196314] [camera.camera]: Device with name Intel RealSense D435I was found.
[realsense2_camera_node-1] [INFO] [1744942086.789340691] [camera.camera]: Device with port number 1-1.3 was found.
[realsense2_camera_node-1] [INFO] [1744942086.789431567] [camera.camera]: Device USB type: 2.1
[realsense2_camera_node-1] [WARN] [1744942086.789486817] [camera.camera]: Device 231522072531 is connected using a 2.1 port. Reduced performance is expected.
[realsense2_camera_node-1] [INFO] [1744942086.789744151] [camera.camera]: getParameters...
[realsense2_camera_node-1] [INFO] [1744942086.790896278] [camera.camera]: JSON file is not provided
[realsense2_camera_node-1] [INFO] [1744942086.790983487] [camera.camera]: Device Name: Intel RealSense D435I
[realsense2_camera_node-1] [INFO] [1744942086.791038279] [camera.camera]: Device Serial No: 231522072531
[realsense2_camera_node-1] [INFO] [1744942086.791087029] [camera.camera]: Device physical port: /sys/devices/platform/soc/35000000.hsio_apb/35100000.usb3/35100000.usb/xhci-hcd.2.auto/usb1/1-1/1-1.3/1-1.3:1.0/video4linux/video0
[realsense2_camera_node-1] [INFO] [1744942086.791134987] [camera.camera]: Device FW version: 5.16.0.1
[realsense2_camera_node-1] [INFO] [1744942086.791178904] [camera.camera]: Device Product ID: 0x0B3A
[realsense2_camera_node-1] [INFO] [1744942086.791220071] [camera.camera]: Sync Mode: Off
[realsense2_camera_node-1] [INFO] [1744942087.727858194] [camera.camera]: Set ROS param depth_module.depth_profile to default: 640x480x15
[realsense2_camera_node-1] [INFO] [1744942087.730158408] [camera.camera]: Set ROS param depth_module.infra_profile to default: 640x480x15
[realsense2_camera_node-1] [INFO] [1744942088.042080629] [camera.camera]: Set ROS param rgb_camera.color_profile to default: 640x480x15
[realsense2_camera_node-1] [INFO] [1744942088.044014258] [camera.camera]: Set ROS param gyro_fps to default: 200
[realsense2_camera_node-1] [INFO] [1744942088.044214384] [camera.camera]: Set ROS param accel_fps to default: 100
[realsense2_camera_node-1] [INFO] [1744942088.054167864] [camera.camera]: Stopping Sensor: Depth Module
[realsense2_camera_node-1] [INFO] [1744942088.180855015] [camera.camera]: Starting Sensor: Depth Module
[realsense2_camera_node-1] [INFO] [1744942088.276064805] [camera.camera]: Open profile: stream_type: Infra(1), Format: Y8, Width: 640, Height: 480, FPS: 15
[realsense2_camera_node-1] [INFO] [1744942088.324725411] [camera.camera]: RealSense Node Is Up!

运行orbslam3节点

root@ubuntu:/opt/tros/humble/share/orb_slam3# ros2 run orb_slam3_example_ros2 mono ./ORBvoc.txt ./Examples/Monocular/RealSense_D435i.yaml

ORB-SLAM3 Copyright (C) 2017-2020 Carlos Campos, Richard Elvira, Juan J. Gómez, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
ORB-SLAM2 Copyright (C) 2014-2016 Raúl Mur-Artal, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
This program comes with ABSOLUTELY NO WARRANTY;
This is free software, and you are welcome to redistribute it
under certain conditions. See LICENSE.txt.

Input sensor was set to: Monocular
Loading settings from ./Examples/Monocular/RealSense_D435i.yaml
Camera1.k3 optional parameter does not exist...
        -Loaded camera 1
Camera.newHeight optional parameter does not exist...
Camera.newWidth optional parameter does not exist...
        -Loaded image info
        -Loaded ORB settings
Viewer.imageViewScale optional parameter does not exist...
        -Loaded viewer settings
System.LoadAtlasFromFile optional parameter does not exist...
System.SaveAtlasToFile optional parameter does not exist...
        -Loaded Atlas settings
System.thFarPoints optional parameter does not exist...
        -Loaded misc parameters
----------------------------------
SLAM settings: 
        -Camera 1 parameters (Pinhole): [ 382.613 382.613 320.183 236.455 ]
        -Camera 1 distortion parameters: [  0 0 0 0 ]
        -Original image size: [ 640 , 480 ]
        -Current image size: [ 640 , 480 ]
        -Sequence FPS: 15
        -Features per image: 1250
        -ORB scale factor: 1.2
        -ORB number of scales: 4
        -Initial FAST threshold: 10
        -Min FAST threshold: 5
        -Extractor type: ORB


Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!

Initialization of Atlas from scratch 
Creation of new map with id: 0
Creation of new map with last KF id: 0
Seq. Name: 
There are 1 cameras in the atlas
Camera 0 is pinhole

rdkos_info_orbslam3.txt

1 个赞

orb_slam3_example_ros2 的 mono节点订阅的图像话题名是:“/camera/infra1/image_rect_raw”,而不是 “/camera/camera/infra1/image_rect_raw”,-
可以使用 remap重新映射话题:

ros2 run orb_slam3_example_ros2 mono ./ORBvoc.txt ./Examples/Monocular/RealSense_D435i.yaml --ros-args --remap /camera/infra1/image_rect_raw:=/camera/camera/infra1/image_rect_raw

问题解决了,非常感谢

ros2 launch realsense2_camera rs_launch.py enable_depth:=false enable_color:=false enable_infra1:=true depth_module.profile:=640x480x15 depth_module.emitter_enabled:=0 camera_namespace:='/'

直接设置相机空间为 camera_namespace:='/' 亲测可行