This is a middle tube between ORB-SLAM-3 and ROS
- Develop Monocular only node for VO
- Develop Monocular + IMU node for VIO (debugging)
- Write launch files for each node and dataset
- Develop ROS publishers for pose, velocity, pointcloud and path
- Create .yaml file for the camera param, IMU param and ORB hyperparam for SAM
- Develop two-camera + IMU fusion mode
- Fine-tuning the hyperparam for SAM
- Install the prerequisites.
- Use cmake combo to install ORB-SLAM-3 source code
cd ~
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh
Clone the package. Note that it should be a catkin build workspace.
cd ~/catkin_ws/src/ # Or the name of your workspace
git clone https://github.com/OatmealLiu/orb_slam3_ros_tube.git
Build the package normally.
cd ~/catkin_ws/
catkin build
Unzip the ORB vocabulary
cd ~/catkin_ws/src/orb_slam3_ros_tube/config
tar -xf ORBvoc.txt.tar.gz
EuRoC dataset
- VO
Terminal 1
roslaunch orb_slam3_ros_tube orb_slam3_mono_euroc.launch
Terminal 2
rosbag play MH_01_easy.bag
- VIO
Terminal 1
roslaunch orb_slam3_ros_tube orb_slam3_mono_inertial_euroc.launch
Terminal 2
rosbag play MH_01_easy.bag
Underwater dataset
- VO
Terminal 1
roslaunch orb_slam3_ros_tube orb_slam3_mono_underwater.launch
Terminal 2
rosbag play sparus_camera.bag
SAM Simulator dataset
- VO
Terminal 1
roslaunch orb_slam3_ros_tube sam_simulator_mono.launch
Terminal 2
rosbag play sam_side_cruise.bag
- VIO
Terminal 1
roslaunch orb_slam3_ros_tube sam_simulator_mono_inertial.launch
Terminal 2
rosbag play sam_side_cruise.bag
Run on real SAM
# Use the front LEFT Camera on SAM
## Terminal 1
cd /opt/ros/melodic/lib/image_transport
rosrun image_transport republish compressed in:=/csi_cam_1/camera/image_raw raw out:=/csi_cam_1/camera/image_raw
## Terminal 2-a: if you want to use VO mode
roslaunch orb_slam3_ros_tube sam_real_mono_left.launch
or
## Terminal 2-a: if you want to use VIO mode
roslaunch orb_slam3_ros_tube sam_real_mono_inertial_left.launch
# Use the front DOWN Camera on SAM
## Terminal 1
cd /opt/ros/melodic/lib/image_transport
rosrun image_transport republish compressed in:=/csi_cam_0/camera/image_raw raw out:=/csi_cam_0/camera/image_raw
## Terminal 2-a: if you want to use VO mode
roslaunch orb_slam3_ros_tube sam_real_mono_down.launch
or
## Terminal 2-a: if you want to use VIO mode
roslaunch orb_slam3_ros_tube sam_real_mono_inertial_down.launch
This middle tube will provide you with the following topics that you can subscribe:
-
/orb_slam3_ros/camera: geometry_msgs/PoseStamped Message, where you can find the estimated pose of the robot. -
/orb_slam3_ros/camera_odom: nav_msgs/Odometry Message, where you can find the pose, linear velocity and angular velocity of the robot -
tf: transformation from the camera frame to the world frame. -
/orb_slam3_ros/map_points: sensor_msgs/PointCloud2 Message, where you can find the keypoints are being tracked.

