Task #228
openTask Group #191: [Dev] MoveIt Pro Application development
[Dev] Create an Objective consisting of Xela 2F Behaviors using uSPr2F Taxel input
90%
Description
Create an objective consisting of Xela 2F behaviors using uSPr2F Taxel inputs.
The behaviors for this Objective are:
1. Open Gripper
2. Pick Sequence
3. Transport with Slip Monitoring
4. Place
5. Retreat

Pick and Place with Tactile¶
1. Purpose¶
This document explains how the "pick_and_place_with_tactile.xml"Show
Objective currently works, step by step and parameter by parameter.It is intended for:
- users who want a quick understanding of the Objective flow
- developers tuning tactile grasp or slip-monitor behavior
- operators who want to correlate Sidecar Analysis events with Objective phases
2. One-Line Summary¶
This Objective:
- opens the gripper
- moves to the pick pose
- computes a tactile baseline
- grasps the object with tactile stop logic
- monitors slip during transport
- releases at the place pose
- retreats to a safe observation pose
3. Workflow Diagram¶
OBJECTIVE_START
-> INITIAL_OPEN / RapidOpen
-> MOVE_TO_PICK_ZONE / Move to Look at Pick and Place Zone
-> MOVE_TO_PICK / Move to Pick Block
-> BASELINE / ComputeTactileBaseline
-> GRASP_CLOSE / GraspWithForceStop
-> dual contact and joint settled?
-> no: keep grasp hold-confirm loop
-> yes: continue
-> TRANSPORT_WITH_SLIP_MONITOR
-> Move to Place Block
-> SlipMonitor (sharp mode)
-> slip detected?
-> yes: incremental re-close + publish slip_warning
-> no: continue monitoring
-> Place hold confirm / SlipMonitor 0.20 s
-> RELEASE / RapidOpen
-> RETREAT / Move to Look at Pick and Place Zone
-> OBJECTIVE_COMPLETE

This diagram reflects the current control flow in the Objective:
- the grasp stage does not succeed until dual tactile contact and gripper settling are both confirmed
- transport runs arm motion and slip monitoring in parallel
- slip detection triggers incremental re-close commands rather than ending the Objective
- a short bounded slip check also runs after the place waypoint is reached
4. Full Sequence¶
4.1. Start and Initial Open¶
SetTelemetryPhase(OBJECTIVE_START)SetTelemetryPhase(INITIAL_OPEN)RapidOpen
Meaning:
- records the start of the Objective in the telemetry event stream
- fully opens the gripper before entering the pick sequence
4.2. Move to Pick¶
SetTelemetryPhase(MOVE_TO_PICK_ZONE)Move to Waypoint("Look at Pick and Place Zone")SetTelemetryPhase(MOVE_TO_PICK)Move to Waypoint("Pick Block")
Meaning:
- first moves to a look-at or staging pose
- then enters the actual pick pose
- this stage is arm motion only; tactile grasping has not started yet
4.3. Compute the Tactile Baseline¶
SetTelemetryPhase(BASELINE)ComputeTactileBaseline
Current settings:
topic_name="/x_taxel_2f"baseline_key="pick_grasp_baseline"model_name="uSPa46"sample_duration="0.35"
Meaning:
- stores the no-load taxel state immediately before grasping
- allows
GraspWithForceStopto compare live tactile data against a fresh baseline - supports both broad contact detection and sparse point-contact detection
4.4. Tactile Grasp¶
SetTelemetryPhase(GRASP_CLOSE)GraspWithForceStop(profile_name="origami", require_dual_contact="true", ...)
Current behavior:
- uses the
origamigrasp profile - requires both 2F tactile modules to confirm contact before grasp success
- does not return success immediately when contact is detected
- reads
/joint_statesand tracksfinger_joint - latches the measured gripper position at contact time
- repeatedly reasserts a hold goal with a small close bias
- waits until the finger joint position and velocity are settled before returning
SUCCESS
Important grasp parameters in the current XML:
require_dual_contact="true"dual_contact_hold_duration="0.10"hold_effort="45.0"hold_close_bias="0.006"hold_settle_duration="0.15"hold_reassert_period="0.03"hold_position_retreat_tolerance="0.0015"hold_velocity_tolerance="0.006"
Why these values matter:
- they prevent success on one-sided contact
- they reduce the small release or back-drive effect immediately after contact
- they keep the Objective from advancing until the actual gripper joint has settled
4.5. Transport with Slip Monitoring¶
SetTelemetryPhase(TRANSPORT_WITH_SLIP_MONITOR)ParallelMove to Waypoint("Place Block")SlipMonitor(slip_mode="sharp", profile_name="origami")
Meaning:
- the arm moves toward the place pose while slip monitoring runs in parallel
- the current Crane use case uses
sharpmode because contact is concentrated on narrow wing edges
Current slip-monitor behavior:
- prioritizes sparse point-contact slip detection over broad pad shear
- increases the close target incrementally when slip is detected
- publishes slip events with
mode,reason,close_pos, andtarget_effort
4.6. Short Hold Confirm at Place¶
SlipMonitor(monitor_duration="0.20")
Meaning:
- performs one more bounded slip check immediately after reaching the place waypoint
- helps catch late slip that appears at the end of transport or just before release
4.7. Release and Retreat¶
SetTelemetryPhase(RELEASE)RapidOpenSetTelemetryPhase(RETREAT)Move to Waypoint("Look at Pick and Place Zone")SetTelemetryPhase(OBJECTIVE_COMPLETE)
Meaning:
- opens the gripper at the place pose
- retreats back to the observation waypoint
- records Objective completion in telemetry
5. Behavior Roles¶
5.1. SetTelemetryPhase¶
- publishes Objective phase labels into the event stream
- used by logs and the Sidecar timeline
5.2. ComputeTactileBaseline¶
- stores the tactile reference state before grasping
- provides the baseline for point-contact comparison
5.3. GraspWithForceStop¶
- closes slowly and stops based on tactile contact
- evaluates both broad force signals and sparse point-contact signals
- currently enforces dual contact and measured joint settling
5.4. SlipMonitor¶
- monitors the grasp during transport
- supports
sharp,thick, andwidemodes - performs incremental re-close behavior and emits warning events on slip
5.5. RapidOpen¶
- simple fast-open action used for initial open and place release
6. Main Topics Used by This Objective¶
/x_taxel_2f/joint_states/x_telemetry_2f/grasp_metric/close_pos/x_telemetry_2f/grasp_telemetry/x_telemetry_2f/grasp_event/robotiq_gripper_controller/gripper_cmd
7. What Appears in Sidecar Analysis¶
When this Objective runs, the Analysis timeline typically shows:
- phase markers such as
OBJECTIVE_START,INITIAL_OPEN,MOVE_TO_PICK_ZONE,MOVE_TO_PICK,BASELINE,GRASP_CLOSE,TRANSPORT_WITH_SLIP_MONITOR,RELEASE,RETREAT, andOBJECTIVE_COMPLETE - grasp events such as
contact_detected no_contact_full_closefor empty or failed grasps- slip events such as
slip_warning
The current slip tooltip also shows:
modereasonclose_postarget_effort
8. Main Tuning Knobs¶
8.1. Grasp-side tuning¶
dual_contact_hold_durationhold_close_biashold_settle_durationhold_position_retreat_tolerancehold_velocity_tolerance
8.2. Slip-side tuning¶
slip_modedrift_confirm_ticksposition_incrementforce_incrementpoint_slip_*
8.3. Controller-side tuning¶
Related file:
ur5e_x2f_140.ros2_control.yaml
Current key settings:
stall_timeoutstall_velocity_thresholdgoal_tolerance
9. Operational Checkpoints¶
- verify that the object is not already touching the gripper during the baseline phase
- verify that the finger joint actually settles before arm transport starts
- verify that
slip_warningappears in Analysis when transport slip occurs - verify that the bounded slip monitor catches late slip near the place pose
Files
Updated by Sanghoon Lee 27 days ago
- File clipboard-202603070849-99t5i.png clipboard-202603070849-99t5i.png added
- Description updated (diff)
- Status changed from New to Resolved
Updated by Sanghoon Lee 27 days ago
- File clipboard-202603071101-xhzmk.png clipboard-202603071101-xhzmk.png added
- Description updated (diff)
Updated by Sanghoon Lee 27 days ago
- File mpro_robot_ctrl_w_taxel_behaviors.mp4 mpro_robot_ctrl_w_taxel_behaviors.mp4 added
- Description updated (diff)