What happened
With sim_isaac:=true, every gripper_cmd goal that takes longer than 0.5 s is ABORTED with stalled: true / reached_goal: false when the simulator's JointState carries no velocity array, even though the fingers are moving and reach the commanded position.
Regression from #52 (912cd2f): config/robotiq_controllers.sim.yaml and the Humble variant set allow_stalling: false so that a genuine stall on an object aborts instead of succeeding. But parallel_gripper_action_controller decides "stalled" purely from the velocity state: outside goal_tolerance, it resets its timer only while |velocity| > stall_velocity_threshold (0.05) and marks the goal stalled once stall_timeout (0.5 s) elapses without that. topic_based_ros2_control leaves the velocity state at 0 when the incoming JointState.velocity is empty, so on such a simulator the timer never resets and the goal aborts at 0.5 s regardless of the fingers' progress. Before 912cd2f the same goals were reported SUCCEEDED (mislabelled, as in #29); now they fail outright.
Reproduced on Jazzy with a stand-in simulator that tracks /isaac_joint_commands at 0.5 rad/s and publishes /isaac_joint_states (2F-85, closed → 0.1 rad, a 1.4 s move):
| simulator publishes |
result |
| positions only |
ABORTED, stalled: true, reached_goal: false after ~0.5 s |
| positions + velocities |
SUCCEEDED, reached_goal: true |
Isaac Sim's joint-state publisher includes velocities by default, which is why #52's live test passed; any simulator, bridge or recording that omits them hits this. The velocity state interface is mandatory in the controller (on_activate errors without it), so it cannot be dropped from state_interfaces to sidestep the detector.
Related: #29 (driver reports velocity 0 → same detector misfires on hardware; the gOBJ route proposed there does not exist on the sim path).
ROS distro
Jazzy
Hardware
sim_isaac:=true with topic_based_ros2_control 0.3.0, no gripper
Setup
source build on Ubuntu, ~/robotiq/devel/ros at 84c0ffc (main after #52)
Exact command
ros2 launch robotiq_description robotiq_control.launch.py sim_isaac:=true gripper_model:=2f_85
ros2 action send_goal /robotiq_gripper_controller/gripper_cmd control_msgs/action/ParallelGripperCommand "{command: {name: ['robotiq_85_left_knuckle_joint'], position: [0.1]}}"
Console output
stalled: true
reached_goal: false
Goal finished with status: ABORTED
What happened
With
sim_isaac:=true, everygripper_cmdgoal that takes longer than 0.5 s is ABORTED withstalled: true/reached_goal: falsewhen the simulator'sJointStatecarries no velocity array, even though the fingers are moving and reach the commanded position.Regression from #52 (912cd2f):
config/robotiq_controllers.sim.yamland the Humble variant setallow_stalling: falseso that a genuine stall on an object aborts instead of succeeding. Butparallel_gripper_action_controllerdecides "stalled" purely from the velocity state: outsidegoal_tolerance, it resets its timer only while |velocity| >stall_velocity_threshold(0.05) and marks the goal stalled oncestall_timeout(0.5 s) elapses without that.topic_based_ros2_controlleaves the velocity state at 0 when the incomingJointState.velocityis empty, so on such a simulator the timer never resets and the goal aborts at 0.5 s regardless of the fingers' progress. Before 912cd2f the same goals were reported SUCCEEDED (mislabelled, as in #29); now they fail outright.Reproduced on Jazzy with a stand-in simulator that tracks
/isaac_joint_commandsat 0.5 rad/s and publishes/isaac_joint_states(2F-85, closed → 0.1 rad, a 1.4 s move):stalled: true,reached_goal: falseafter ~0.5 sreached_goal: trueIsaac Sim's joint-state publisher includes velocities by default, which is why #52's live test passed; any simulator, bridge or recording that omits them hits this. The velocity state interface is mandatory in the controller (
on_activateerrors without it), so it cannot be dropped fromstate_interfacesto sidestep the detector.Related: #29 (driver reports velocity 0 → same detector misfires on hardware; the
gOBJroute proposed there does not exist on the sim path).ROS distro
Jazzy
Hardware
sim_isaac:=truewithtopic_based_ros2_control0.3.0, no gripperSetup
source build on Ubuntu,
~/robotiq/devel/rosat 84c0ffc (main after #52)Exact command
Console output