Current Behavior
Two robustness bugs in entity_placer.py:
-
Missing TF buffer — _to_target_frame uses self.tf_buffer, but init never creates a TF buffer/listener. Any pose not already in map raises, is swallowed by the broad except, and is dropped. Only works because RViz publishes goals in the map frame.
-
Silent knowledge-service failure — when /arlab/knowledge/add_entity is unavailable (or the call raises), _place_callback sets an error on the service response but logs nothing specific to missing knowledge services.
Expected Behavior
Poses in any frame are transformed to map and staged. When the knowledge service is unavailable or a call fails, entity_placer logs a clear warning/error (not just the response field) and stays responsive; ideally logs whether
/arlab/knowledge/add_entity is reachable at startup.
Steps to Reproduce
- (TF) Publish a PoseStamped in a non-map frame (e.g. base_link) to /arlab/entity_pose, call /arlab/entity_placer/place → no entity added.
- (Silent failure) Run entity_placer without the knowledge stack, stage a map-frame pose, call the place service → error returned in response but nothing logged; node looks stalled.
Definition of Completion
- tf2_ros.Buffer + TransformListener created in init; non-map poses transform correctly; tf2_geometry_msgs added to package.xml.
- All failure paths in _place_callback log via get_logger(); knowledge-service unavailability is reported and the node remains responsive.
Testability
- Publish a base_link pose, call place, confirm entity stored at correct map coords; repeat with a map pose (no regression).
- Start without the knowledge node, call place, confirm a warning/error is logged and the node keeps serving.
Code Dependencies
No response
Current Behavior
Two robustness bugs in entity_placer.py:
Missing TF buffer — _to_target_frame uses self.tf_buffer, but init never creates a TF buffer/listener. Any pose not already in map raises, is swallowed by the broad except, and is dropped. Only works because RViz publishes goals in the map frame.
Silent knowledge-service failure — when /arlab/knowledge/add_entity is unavailable (or the call raises), _place_callback sets an error on the service response but logs nothing specific to missing knowledge services.
Expected Behavior
Poses in any frame are transformed to map and staged. When the knowledge service is unavailable or a call fails, entity_placer logs a clear warning/error (not just the response field) and stays responsive; ideally logs whether
/arlab/knowledge/add_entity is reachable at startup.
Steps to Reproduce
Definition of Completion
Testability
Code Dependencies
No response