Fix: vla_sim teleop gripper close/open falls back to unconfigured default Objective - #841
Conversation
Teleoperation invokes the gripper via the named "Close Gripper" / "Open Gripper" Objectives (Request Teleoperation SubTree lookup). vla_sim had no override for either, so every teleop gripper toggle fell back to moveit_pro's core placeholder, which logs an ERROR and fails on every BT tick while the control is held, and never actually moves the gripper. Add both, using the same MoveGripperAction call against /robotiq_gripper_controller/gripper_cmd already used by vla_sim's own autonomous stack_cubes_with_the_vla_policy Objective.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe PR adds ChangesGripper objectives
Possibly related PRs
Suggested reviewers: Mergeability Score: ⚪ Minimal · up to This localized change adds the missing gripper open/close objectives for teleoperation; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Comment |
|
|
|
@coderabbitai full review |
|
The base branch was changed.
|
@coderabbitai full review |
✅ Action performedFull review finished. |
|
@JWhitleyWork needs forward port or are there bots now for that? |
|
|
Closing (or opening) the gripper during teleoperation in
vla_simdoes nothing and spams the log with:repeated on every BT tick (~10ms) for as long as the control is held — same for Open Gripper.
Cause: Teleoperation invokes the gripper through a named-Objective lookup ("Close Gripper" / "Open Gripper" SubTree in
Request Teleoperation), which every other sim config (lab_sim,kinova_sim,hangar_sim,dual_arm_sim, etc.) overrides with a config-specific Objective that callsMoveGripperAction.vla_simnever got one, so the lookup falls back to moveit_pro's core placeholder, which logs an error and always fails by design (it exists to flag exactly this kind of missing config, not to silently no-op).Confirmed the mechanism still works for this robot:
vla_sim's ownstack_cubes_with_the_vla_policy.xmlalready drives the same gripper viaMoveGripperActionon/robotiq_gripper_controller/gripper_cmddirectly — it just doesn't go through the named-Objective path teleop uses.Fix: add
close_gripper.xml/open_gripper.xmloverrides forvla_sim, following the sameMoveGripperActionpattern (and joint range:robotiq_85_left_knuckle_jointlimit is0.0–0.8in this config's own URDF) used by the other Robotiq-85 configs.