本章将配置ORB_SLAM3_ROS,使用ros来跑,由于官方源代码的ros折腾起来很累,版本有点老了,所以在此感谢
emanuelenencionihttps://github.com/emanuelenencioni老哥

1.安装ORB_SLAM_ROS

        https://github.com/emanuelenencioni/ORB_SLAM3_ROShttps://github.com/emanuelenencioni/ORB_SLAM3_ROS        这是源码

mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
git clone https://github.com/emanuelenencioni/ORB_SLAM3_ROS.git

2.配置依赖

        

其中ORB _SLAM3里面的配置跟上讲配置一模一样,如果不清楚,请跳转到ubuntu20.04 从头开始配置orbslam3和ros1 noetic 并且使用d455跑代码(2)-CSDN博客

        打开ORB_SLAM_ROS的CMakeLists.txt,将Eigen3和OpenCV修改如下

        之后就可以到工作空间目录下catkin build 了

cd ~/catkin_ws/
catkin build

3.安装realsense_ros,用来通过ros启动相机

1.安装        

详细请看源码,因为我们是ros1 noetic,选择ros1https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy        

git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..

安装依赖

sudo apt-get install ros-noetic-realsense2-camera ros-noetic-librealsense2 ros-noetic-ddynamic-reconfigure
sudo apt-get install libglfw3-dev libtbb-dev

修改,在/home/lx/realsense_ros/src/realsense-ros-2.2.22/realsense2_camera/src/base_realsense_node.cpp这个路径下,将find_if都改为std::find_if,总共有七个

cd realsense_ros/
catkin_make

2.配置启动相机

        进入到/home/lx/realsense_ros/src/realsense-ros-2.2.22/realsense2_camera/launch/rs_camera.launch启动文件,将一些参数改成以下,然后

cd realsense_ros/
source devel/setup.bash 
roslaunch realsense2_camera rs_camera.launch 

尤其是这个,开启imu,加入linear_interpolation

打开新的终端

rostopic list

打开rqt_image_view,左上角可以查看话题图像

rqt_image_view

4.使用ros跑ORB_SLAM3

        1.先启动相机节点

roslaunch realsense2_camera rs_camera.launch

        2.启动ORB_SLAM3

roslaunch orb_slam3_ros d455.launch 

       

详细介绍launch文件

<launch>
    <node name="orb_slam3_rbgd" pkg="orb_slam3_ros" type="orb_slam3_ros_rgbd" output="screen">
        <!-- for TUM dataset -->
        <remap from="/camera/rgb/image_raw"                 to="/camera/color/image_raw"/>
        <remap from="/camera/depth_registered/image_raw"    to="/camera/aligned_depth_to_color/image_raw"/>

        <!-- Parameters for original ORB-SLAM3 -->
        <param name="voc_file"      type="string"   value="$(find orb_slam3_ros)/ORB_SLAM3/Vocabulary/ORBvoc.txt" />
        <param name="settings_file" type="string"   value="$(find orb_slam3_ros)/config/RealSense_D455.yaml" />

        <!-- Parameters for ROS -->
        <param name="world_frame_id"    type="string"   value="map" />
        <param name="cam_frame_id"      type="string"   value="camera_color_optical_frame" />
        <param name="enable_pangolin" type="bool" value="true"/>
    </node>
</launch>

这个主要启动的是rgb的,如果需要双目+imu,需自行书写launch文件和相机的配置参数

5.我自己的rgb的d455参数

%YAML:1.0

#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
File.version: "1.0"

Camera.type: "PinHole"

# Right Camera calibration and distortion parameters (OpenCV)
Camera1.fx: 370.1867113026349
Camera1.fy: 371.29151959677296
Camera1.cx: 323.7009152339213
Camera1.cy: 240.63067473646615

# distortion parameters
Camera1.k1: -0.0070620635177070495
Camera1.k2: -0.020337268944730053
Camera1.p1: -0.0009738053784708752
Camera1.p2: -0.0008849349957854165

# Camera resolution
Camera.width: 640
Camera.height: 480

# Camera frames per second 
Camera.fps: 30

# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Close/Far threshold. Baseline times.
Stereo.ThDepth: 35.0
Stereo.b: 0.095
#Stereo.camera_baseline: 29.041
# Depth map values factor
RGBD.DepthMapFactor: 1000.0

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 900

# ORB Extractor: Scale factor between levels in the scale pyramid 	
ORBextractor.scaleFactor: 1.2

# ORB Extractor: Number of levels in the scale pyramid	
ORBextractor.nLevels: 8

# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast			
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7

#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1.0
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2.0
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3.0
Viewer.ViewpointX: 0.0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -3.5
Viewer.ViewpointF: 500.0

更多推荐