先建个workspace,
cd ~
mkdir -p orb2_ws/src
cd orb2_ws
catkin_make
完了把ORB源码放进来
加一下ORB_SLAM2的环境,
# ~/orb2_ws/devel/setup.bash
export
ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/yhs/orb2_ws/src/ORB_SLAM2_ros/Examples/ROS
#add 到 ~/.bashrc
#add orbslam2_ros
source ~/orb2_ws/devel/setup.bash
检查一下
echo $ROS_PACKAGE_PATH
/home/yhs/orb2_ws/src:
/home/yhs/demo03_ws/src:
/home/yhs/tutorial_ws/src:
/opt/ros/melodic/share:
/home/yhs/orb2_ws/src/ORB_SLAM2_ros/Examples/ROS
cd ~/orb2_ws/src/ORB_SLAM2_ros
chmod +x build.sh build_ros.sh
启动ROS环境
roscore
修改相机launch文件(/opt/ros/melodic/share/realsense2_camera/launch/rs_camera.launch)
复制一份,因为用的双目,所以关闭结构光
touch rs_camera.launch rs_camera_copy.launch
增加这么一段
<arg name="allow_no_texture_points" default="false"/>
<arg name="emitter_enable" default="0"/>
<!-- rosparam set /camera/stereo_module/emitter_enabled false -->
<rosparam>
/camera/stereo_module/emitter_enabled: 0
</rosparam>
<rosparam if="$(arg emitter_enable)">
/camera/stereo_module/emitter_enabled: 1
</rosparam>
<arg name="ordered_pc" default="false"/>
roslaunch realsense2_camera rs_camera_copy.launch
根据rostopic list
修改ros_stereo.cc中的话题订阅为
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);
新建一个配置文件D435i.yaml,根据
rostopic echo /camera/color/camera_info
重新编译
./build_ros.sh
然后
rosrun ORB_SLAM2 Stereo /home/yhs/orb2_ws/src/ORB_SLAM2_ros/Vocabulary/ORBvoc.txt /home/yhs/orb2_ws/src/ORB_SLAM2_ros/Examples/RGB-D/D435i.yaml false
尝试一下,并未对相机标定,因此ONLINE_RECTIFICATION设置为false