Project

General

Profile

Actions

Task #228

open

Task Group #191: [Dev] MoveIt Pro Application development

[Dev] Create an Objective consisting of Xela 2F Behaviors using uSPr2F Taxel input

Added by Sanghoon Lee about 1 month ago. Updated 27 days ago.

Status:
Resolved
Priority:
Normal
Assignee:
Start date:
03/03/2026
Due date:
% Done:

90%

Estimated time:
(Total: 0:00 h)
Product Code:
uAi SW:

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:

  1. opens the gripper
  2. moves to the pick pose
  3. computes a tactile baseline
  4. grasps the object with tactile stop logic
  5. monitors slip during transport
  6. releases at the place pose
  7. 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 GraspWithForceStop to 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 origami grasp profile
  • requires both 2F tactile modules to confirm contact before grasp success
  • does not return success immediately when contact is detected
  • reads /joint_states and tracks finger_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)
  • Parallel
  • Move 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 sharp mode 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, and target_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)
  • RapidOpen
  • SetTelemetryPhase(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, and wide modes
  • 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, and OBJECTIVE_COMPLETE
  • grasp events such as contact_detected
  • no_contact_full_close for empty or failed grasps
  • slip events such as slip_warning

The current slip tooltip also shows:

  • mode
  • reason
  • close_pos
  • target_effort

8. Main Tuning Knobs

8.1. Grasp-side tuning

  • dual_contact_hold_duration
  • hold_close_bias
  • hold_settle_duration
  • hold_position_retreat_tolerance
  • hold_velocity_tolerance

8.2. Slip-side tuning

  • slip_mode
  • drift_confirm_ticks
  • position_increment
  • force_increment
  • point_slip_*

8.3. Controller-side tuning

Related file:
ur5e_x2f_140.ros2_control.yaml

Current key settings:

  • stall_timeout
  • stall_velocity_threshold
  • goal_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_warning appears in Analysis when transport slip occurs
  • verify that the bounded slip monitor catches late slip near the place pose


Files


Subtasks 1 (1 open0 closed)

Task #227: [Dev] Create xela_2f_behaviors controlled by inputs from uSPr2F Taxel to be used in MoveIt Pro Objective.ResolvedSanghoon Lee03/03/2026

Actions
Actions #1

Updated by Sanghoon Lee about 1 month ago

  • Subtask #227 added
Actions #2

Updated by Sanghoon Lee 27 days ago

Actions #3

Updated by Sanghoon Lee 27 days ago

  • Description updated (diff)
Actions

Also available in: Atom PDF