fix(xarm): publish the wrist camera mount edge - #3871
Conversation
xarm_perception carried a TODO saying its tf tree was broken: RealSenseCamera publishes only its own subtree, rooted at camera_link, so camera_link had no parent, nothing the camera produced resolved into world, and the hand-eye calibration already sitting in XARM_PERCEPTION_CAMERA_TRANSFORM was dead code -- the constant had neither a frame_id nor a child_frame_id. XArmWristCameraTf hangs the camera off link7, which the planning model already publishes through tf_extra_links. It is the same StaticTfPublisher subclass the realsense package already uses to mount a standalone camera at the origin.
Greptile SummarySummaryThis change connects the xArm wrist-mounted RealSense camera to the arm transform tree by publishing a static Runtime verification confirmed that the module registry resolves the new publisher, the xArm perception blueprint composes it, and the publisher emits the expected transform from the model-published wrist frame to the RealSense root frame. The focused xArm perception test also passed. No defects were found. Confidence Score: 5/5The change is safe to merge based on the verified transform wiring and passing focused test. The registry lookup, blueprint composition, and emitted static transform were exercised directly, with the expected Files Needing Attention: No files require follow-up.
What T-Rex did
Reviews (1): Last reviewed commit: "fix(xarm): publish the wrist camera moun..." | Re-trigger Greptile |
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
xarm_perceptioncarried a TODO saying its tf tree was broken.RealSenseCamerapublishes only its own subtree, rooted atcamera_link, socamera_linkhad no parent, nothing the camera produced resolved intoworld, and the hand-eye calibration already sitting inXARM_PERCEPTION_CAMERA_TRANSFORMwas dead code — the constant had neither aframe_idnor achild_frame_id.XArmWristCameraTfhangs the camera offlink7, which the planning model already publishes throughtf_extra_links. It is the sameStaticTfPublishersubclass the realsense package already uses to mount a standalone camera at the origin, so there is no new pathway here. The test asserts what actually breaks: that the edge is composed in, that its child is the frame the camera roots at, and that its parent is a link the model publishes — a mount edge onto an unpublished parent resolves nothing and drops silently.Fourth of nine in the xArm grasping re-landing stack. The file it touches is replaced by
blueprints/grasp.pytwo PRs later, which carries the class and the test forward.