navigation2 icon indicating copy to clipboard operation
navigation2 copied to clipboard

Evaluate Fuse as a RL replacement & consider other alternatives

Open SteveMacenski opened this issue 3 years ago • 7 comments

There's not necessarily a reason to remove RL as our defacto-standard sensor fusion system for odometry / GPS, but it is worth considering a change with ROS 2 and the fact that the maintainers (@ayrton04 and I) no longer directly use it ourselves.

There have been a few ROS-based options proposed, including Fuse. If this doesn't make sense, consider others that may or building/adopting a new one within Nav2 (potentially based on another project).

CC @DLu

SteveMacenski avatar Oct 13 '21 19:10 SteveMacenski

I think fuse would be an excellent candidate for the standard sensor fusion system going forward. We'll need to add a GPS sensor to it, but once the community understands how to add sensors (this will be covered in the ROS World talk), that might not be too challenging.

ayrton04 avatar Oct 15 '21 07:10 ayrton04

Nothing against fuse, but I'd vote for gtsam. There're many great localization framework build with gtsam, in particular VIO and LIO. But you can also build simple imu + gps in python (https://github.com/PaulKemppi/gtsam_fusion).

Regards,

soldierofhell avatar Oct 23 '21 17:10 soldierofhell

I know very little about gtsam, but I will only note that the author of fuse, Stephen Williams, was also involved in the development of gtsam. But in the end, we should do whatever provides the most value for the community.

ayrton04 avatar Oct 25 '21 07:10 ayrton04

From the readme of gtsam_fusion:

The pose estimation is done in IMU frame and IMU messages are always required as one of the input.

That seems rather restrictive? And not in line with REP-105 which indicates base_link is the robot position.

Timple avatar Oct 25 '21 07:10 Timple

I've pointed gtsam_fusion code as an example of simple localization with python api. There're other projects like https://github.com/ilnehc/gtsam_ros, as well as tons of visual/lidar odometry/slam, just to mention rtabmap, kimera, lio-sam and others and of course gtsam own examples. There's no one implementation that handles all sensors and use-cases, but a lot of examples (including code) how to use it (with ROS/ROS2). I think if the goal is just to handle standard "turtlebot" setup like imu, odometry and gps then maybe it's not worth to use gtsam, but if we want framework that can handle visual/lidar odometry (internally), april tags, landmarks and other fancy stuff with map generation, smooth gps/non-gps transition, gtsam is great choice.

soldierofhell avatar Oct 25 '21 09:10 soldierofhell

This was mentioned on nav2 slack, so I'm adding it to list: WOLF: A modular estimation framework for robotics based on factor graphs . Surprisingly, factor graphs not in gtsam :)

soldierofhell avatar Oct 26 '21 10:10 soldierofhell