下载realsense2_camera
source devel/setup.bash
roslaunch realsense2_camera test.launch
test.launch中修改了这里
<arg name="infra_width" default="848"/>
<arg name="infra_height" default="480"/>
<arg name="enable_infra" default="true"/>
<arg name="enable_infra1" default="true"/>
<arg name="enable_infra2" default="true"/>
<arg name="infra_rgb" default="false"/>
记得把相机插在usb3.0口上,然后看下话题和画面
camera/infra1/camera_info
/camera/infra1/image_rect_raw
/camera/infra1/image_rect_raw/compressed
/camera/infra1/image_rect_raw/compressed/parameter_descriptions
/camera/infra1/image_rect_raw/compressed/parameter_updates
/camera/infra1/image_rect_raw/compressedDepth
/camera/infra1/image_rect_raw/compressedDepth/parameter_descriptions
/camera/infra1/image_rect_raw/compressedDepth/parameter_updates
/camera/infra1/image_rect_raw/theora
/camera/infra1/image_rect_raw/theora/parameter_descriptions
/camera/infra1/image_rect_raw/theora/parameter_updates
/camera/infra1/metadata
/camera/infra2/camera_info
/camera/infra2/image_rect_raw
/camera/infra2/image_rect_raw/compressed
/camera/infra2/image_rect_raw/compressed/parameter_descriptions
/camera/infra2/image_rect_raw/compressed/parameter_updates
/camera/infra2/image_rect_raw/compressedDepth
/camera/infra2/image_rect_raw/compressedDepth/parameter_descriptions
/camera/infra2/image_rect_raw/compressedDepth/parameter_updates
/camera/infra2/image_rect_raw/theora
/camera/infra2/image_rect_raw/theora/parameter_descriptions
/camera/infra2/image_rect_raw/theora/parameter_updates
/camera/infra2/metadata
有 /camera/infra1/image_rect_raw ; /camera/infra2/image_rect_raw 就够了,然后更改orbslam3中的ros_stereo.cc中的话题
ros::NodeHandle nh;
message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "camera/infra1/image_rect_raw", 1);
message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "camera/infra2/image_rect_raw", 1);
typedef message_filters::sync_policies::ApproximateTime<sensor_msgs::Image, sensor_msgs::Image> sync_pol;
message_filters::Synchronizer<sync_pol> sync(sync_pol(10), left_sub,right_sub);
sync.registerCallback(boost::bind(&ImageGrabber::GrabStereo,&igb,_1,_2));
订阅camera/infra1/camera_info和camera/infra2/camera_info的内容。
在 src/ORB_SLAM3-master/Examples/ROS/ORB_SLAM3 下运行
进build文件下,cmake和make一下
source build/devel/setup.bash
rosrun ORB_SLAM3 Stereo ../../../Vocabulary/ORBvoc.txt MyD435i.yaml false
运行了
随后增加imu运行 ,但是要下载mavros读取飞控信息
组后运行飞控和相机
roslaunch realsense2_camera test.launch
roslaunch mavros test.launch
rosrun ORB_SLAM3 Stereo_Inertial ../../../Vocabulary/ORBvoc.txt MyD435i.yaml false
可以运行
RGBD报错
网上找了下,发现话题不对,是要对齐后的深度图
在相机的启动文件里找到ali这一项,选择true,然后更改话题
message_filters::Subscriber rgb_sub(nh, "/camera/color/image_raw", 1);
message_filters::Subscriber depth_sub(nh, "/camera/aligned_depth_to_color/image_raw", 1);
随后启动rgbd,可以正常启动,有一个问题就是rgbd的延迟比双目和单目都高
rosrun ORB_SLAM3 RGBD ../../../Vocabulary/ORBvoc.txt MyD435i.yaml