Skip to content

Conversation

dragonblade316
Copy link

Purpose

In this pr we add support for RTABMap landmarks and add imu support to the RTABMapSLAM node. These are mainly useful for localization. The markers can allow RTABMap to consider inputs from sources such as apriltags both for global localization and for loop closures. The IMU support we found makes the transform output a bit more stable.

Specification

Two inputs have been added to the RTABMapSLAM node. One for Landmarks and one for imu input. In order to properly facilitate landmarks, we had to make a new landmark datatype. There are no current nodes in depthai-core that output it but we may make one in the future if we have the time to do so.

Dependencies & Potential Impact

None / not applicable

Deployment Plan

None / not applicable

Testing & Validation

We have been using our fork to develop a localization software called PurpleRanger. We have seen mostly good results but the software is still a work in progress and we are still working on eliminating jitter from out output.

Work in progress

This PR is not finished but it is getting close. We wanted to go ahead and get feedback on what we have written and address a couple problems we have had relating to inputs.

In RTABMapSLAM.hpp we have had issues properly getting the input syntax used by features to work for us. As a duct tape solution we decided to use the syntax that is used for the required inputs but that does not allow you to turn on and off the landmark input. We think the issue is that the landmarks input was not working properly with the sync node. If you know how to easily implement the input correctly we would be grateful.

Thanks in advance.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment bugbot run to trigger another review on this PR


Input& landmarks = inputs[landmarksInputName];

Input& features = inputs[featuresInputName];
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Input Initialization Fails with Default Objects

The landmarks and features Input objects are incorrectly initialized. They are defined as references to inputs map entries that are created as default-constructed objects upon first access, rather than being properly constructed with required parameters like datatype constraints, blocking behavior, and queue sizes.

Locations (1)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants