Robotic-Decision-Making-Lab / blue

ROS 2 platform for underwater robotics research and development.
https://robotic-decision-making-lab.github.io/blue/
MIT License
40 stars 9 forks source link

[FEATURE]: Integrate support for external EKF #96

Closed evan-palmer closed 1 month ago

evan-palmer commented 10 months ago

Feature Type

Adding new functionality to the BlueROV2 driver

Problem Description

The existing localization interface is managed by the ArduPilot EKF3. This EKF works very well (when it does work). There are a few draw-backs to using the ArduPilot EKF, however. First, the EKF only accepts two external sources of sensor information: a pose source and a twist source. For folks that want to fuse multiple streams of external data (e.g., SLAM, visual odom, DVL, SBL, etc.) they do not have enough interfaces to integrate their data. Second, the EKF can be relatively challenging to integrate on hardware with these external localization sources. The reason being that the EKF can reject the measurements without much notice and that the external pose interfaces are not well-supported by ArduSub.

Feature Description

I propose integrating an external EKF for sensor fusion using the robot_localization package from Charles River Analytics. This project is well-used and integrated in the ROS community. Furthermore, it has received strong support from CRA. Through integrating this interface, it becomes possible to fuse more interfaces than originally possible and to have more control over the EKF. The downside, however, is that the integration time will take a significant amount of effort. Second, it will be necessary to create interfaces for sensors that receive first-class support on the system already (e.g., IMU, Gyro, Pressure sensor, etc.). Finally, it will take a fair amount of effort to ensure that the resulting fused data has the same quality as the ArduPilot EKF. While there are a number of challenges, this interface may provide a more useable interface for users of the project and can provide a solution to some of the common hardware integration problems.

Alternative Solutions

N/A

Additional Context

No response

evan-palmer commented 10 months ago

Here are some things that need to happen to provide this feature

evan-palmer commented 1 month ago

Closing this in favor of #165