ORB_SLAM 2 porting to ROS2

Anyone working on porting ORB_SLAM 2 to ROS2? If not, our team at Persistent System is ready to put the effort in porting ORB_SLAM 2 to ROS2. Please let us know if anyone has any concern or any vital information that we will help us in this porting effort. If anyone has already started already working on porting ORB_SLAM 2, Please let us know if you will be interested to obtain our assistance in the porting effort.
@rmurartal@gmail.com I see that you are the maintainer of this package in ROS, hence Iā€™m tagging you here in this post.

2 Likes

Hi, I ported the ORB_SLAM2 monocular example to ROS2 Bouncy just yesterday.

I managed to get it working fine with images coming from my laptop camera.
I did the porting really quickly, just to see if it was working, but in the next days I hope to have time to port also the other camera modes and improve the building process

Besides the porting of the ORB_SLAM2 examples, I am trying to create a version of the library fully compatible with ROS2.

I removed the dependency on Pangolin, in order to let all the SLAM data to be published on ROS2 topics, thus allowing to visualize them with Rviz and to plug this SLAM node into a complete navigation solution.

I would like to facilitate the cross-compilation of ORB_SLAM2 with ROS2 for the RaspberryPi and then try to run the whole system there, reducing the camera frame rate.

You can find here the ROS2 version of the ORB_SLAM2 library; it includes a Dockerfile for building everything you need.
If you have suggestions or features that you would like to change, just let me know or contribute with a PR!

2 Likes

@alsora, Thanks for letting us know that you ported ORB_SLAM2 to ROS2. This is really helpful for the whole ROS2 community. As you mentioned that you are currently working on creating a version of the library fully compatible with ROS2, you can continue with your build/development/enhancement effort. During or at end of your porting effort, please let me know so that we can provide you assistance in testing fully ported ORB_SLAM2 into ROS2 so that we collaborate and run an extensive testing to confirm the functionality. Also, please let us know if you like to obtain any other assistance from our team at Persistent System, and we will be happy to contribute.

4 Likes

Hello,
I tried to build the code you shared by calling .build.sh however I have an error like this

ORB_SLAM2/src/System.cc:258:9: error: ā€˜MapPubā€™ was not declared in this scope
  258 |         MapPub->SetCurrentCameraPose(Tcw);

I see no declaration of ā€œMapPubā€ in the code.
Is there a way to fix this error?

@alsora do you have any plans for Orbslam3 & ROS2?

i met this problem too, did you found out how to deal with it? so far i just comment that line.

Another option is available for ROS 2 Humble using Isaac ROS Visual SLAM. This accelerated computing implementation runs 265fps at 720p on Jetson AGX Orin.

In comparison to ORB-SLAM 2 it provides higher accuracy on industry standard KITTI Visual Odometry / SLAM Evaluation 2012 with higher performance.

Method Runtime Translation Rotation Platform
VSLAM 0.007s 0.94% 0.0019 deg/m Jetson AGX Xavier aarch64
ORB-SLAM2 0.06s| .15% 0.0027 deg/m 2 cores @ >3.5 Ghz x86_64

Isaac ROS Visual SLAM is freely available for download and commercial use.