tagslam_root icon indicating copy to clipboard operation
tagslam_root copied to clipboard

ROS2 support

Open nepfaff opened this issue 2 years ago • 6 comments

I would love a ROS2 version of this project. The possibility of this was mentioned here, but I wanted to create this issue to allow people to express their support.

nepfaff avatar Nov 10 '23 21:11 nepfaff

This has been on my to-do list for a long time. The reason I'm hesitant to port it to ROS2 is that I

  1. hate the code base because it's gotten very complicated and
  2. I'm not sure how much of this complication is really necessary. TagSLAM tries to do everything for everybody, and in the end does only very few things right. From the feedback I'm getting, the overwhelming number of users is beginners from far east who are taking their first step into robotics, and want to have some basic state estimation for a robot. For that however there are other packages, like uco slam that perform in real-time and actually also use other landmarks. TagSLAM was really meant to run offline, for getting some amount of ground truth from visual markers. Or it can be used for complicated scenarios with multiple cameras, or state estimation of objects that have no camera attached etc. I have seen hardly anyone using it that way. So I'm wondering if instead of porting to ROS2, should I write something like UCO Slam that uses natural and fiducial features at the same time? At some point I looked into hacking something like that into ORBSLAM 3? But then I look at that project, and it has 441 issues open(!!) and the last commit to master has happened 1.5 years ago. So maybe I'll have to write a full real-time SLAM system from the ground up, something I always wanted to do. So what are you using TagSLAM for?

berndpfrommer avatar Nov 11 '23 21:11 berndpfrommer

Thank you for the detailed response!

TagSLAM was really meant to run offline, for getting some amount of ground truth from visual markers. Or it can be used for complicated scenarios with multiple cameras, or state estimation of objects that have no camera attached etc. I have seen hardly anyone using it that way.

This is exactly my use case. I need ground truth pose trajectory data for relatively small objects that are moving highly dynamically (e.g. a box rolling down a ramp). So far, I have been using OptiTrack motion capture, but the required markers change the object geometry and hence the dynamics. Being able to run it online is always nice, but accuracy is a lot more important for my use cases. Being able to achieve greater accuracy by adding more cameras is thus desirable.

nepfaff avatar Nov 12 '23 15:11 nepfaff

How about provide a docker container to users who using ROS2? For me I would mostly run offline to get the groundtruth trajectory and the landmark positions respect to world coordinate, so a docker container should be good enough.

Something similar to what Kalibr did for ROS2 Support.

Alex-Beh avatar Jan 23 '24 01:01 Alex-Beh

Started to work on it. Ran the first few successful tests from bags. At the moment it requires the very latest version of Rolling because of some rosbag2 features that I'm using which clean up the code base. There is now a ROS2 branch but it is not in usable condition yet.

berndpfrommer avatar Apr 19 '24 20:04 berndpfrommer

Do you have the branch available to use? I wanted to be able to use tagslam for ROS2 and maybe can see what issues I face and clear them out.

jacob-02 avatar Sep 19 '24 08:09 jacob-02

@jacob-02 apologies for the slow reply. Here is the ros2 branch. It will no longer require a root repository, but only a tagslam repo to build. It's not in good shape yet and documentation and testing is sorely missing.

berndpfrommer avatar Sep 26 '24 10:09 berndpfrommer