Summary
riptide_mapping/riptide_mapping2/mapping.py currently allows MappingNode.start_binary_classifier_callback() to start the binary classifier with any two existing mapping objects as object1_name and object2_name.
However, the later seeding flow reuses a centroid computed in the first instance target's parent frame. When the two targets have different configured parent frames, the second target can be seeded in the wrong frame.
Why this matters
This can produce incorrect seeded poses/TF for the second binary-classifier target, which may cause downstream autonomy to navigate to or reason about an invalid location.
Affected area
riptide_mapping/riptide_mapping2/mapping.py
MappingNode.start_binary_classifier_callback
- binary-classifier seeding flow (
maybe_seed_binary_instances, seed_object_estimate, try_update_binary_classifier_pose)
Required change
Before calling self.binary_classifier.start(...), validate that object1_name and object2_name resolve to the same configured init_data.<object>.parent frame.
If mixed-parent targets must be supported, then the implementation should transform the centroid into the second target's parent frame before seeding/resetting the second object.
Acceptance criteria
- Starting the binary classifier with two targets that have different parent frames is either:
- rejected with a clear error message, or
- handled correctly by transforming the centroid before seeding.
- Starting with two targets that share the same parent frame continues to work as expected.
- The behavior is documented in code comments and/or service response messages.
Backlinks
Requested by: @zehdari
Summary
riptide_mapping/riptide_mapping2/mapping.pycurrently allowsMappingNode.start_binary_classifier_callback()to start the binary classifier with any two existing mapping objects asobject1_nameandobject2_name.However, the later seeding flow reuses a centroid computed in the first instance target's parent frame. When the two targets have different configured parent frames, the second target can be seeded in the wrong frame.
Why this matters
This can produce incorrect seeded poses/TF for the second binary-classifier target, which may cause downstream autonomy to navigate to or reason about an invalid location.
Affected area
riptide_mapping/riptide_mapping2/mapping.pyMappingNode.start_binary_classifier_callbackmaybe_seed_binary_instances,seed_object_estimate,try_update_binary_classifier_pose)Required change
Before calling
self.binary_classifier.start(...), validate thatobject1_nameandobject2_nameresolve to the same configuredinit_data.<object>.parentframe.If mixed-parent targets must be supported, then the implementation should transform the centroid into the second target's parent frame before seeding/resetting the second object.
Acceptance criteria
Backlinks
Requested by: @zehdari