Task #232
openTask Group #191: [Dev] MoveIt Pro Application development
[Dev] Create ur5e_xahr2c_config3 MoveIt Pro configuration package for UR5e + allegro hand with xela tactile integration
90%
Description
This package targets a combined arm+hand production layout where control, behavior extension, and tactile observability must coexist without hidden launch coupling.
Primary design goals:
- maintain deterministic MoveIt Pro startup contract for UR5e + Allegro hand
- keep behavior plugin extension isolated in behaviors/ while preserving package portability
- integrate AH tactile visualization/sidecar path as optional operator tooling
The package therefore keeps driver bringup, planning/control config, and tactile observability connected by explicit launch interfaces instead of implicit node assumptions.

ur5e_xahr2c_config3¶
1. Overview and design objective¶
This design targets a combined arm+hand production layout where control, behavior extension, and tactile observability must coexist without hidden launch coupling.
Primary design goals:
- maintain deterministic MoveIt Pro startup contract for UR5e + Allegro hand
- keep behavior plugin extension isolated in
behaviors/while preserving package portability - integrate AH tactile visualization/sidecar path as optional operator tooling
The package therefore keeps driver bringup, planning/control config, and tactile observability connected by explicit launch interfaces instead of implicit node assumptions.
2. Architecture¶
2.1 MoveIt Pro core¶
config/config.yamlis the main contract.- package extends
picknik_ur_site_config. - default planning group:
manipulator.
2.2 Driver layer¶
- real:
launch/robot_drivers_to_persist.launch.py - sim:
launch/robot_drivers_to_persist_sim.launch.py - both include
allegro_description_bringup.launch.py
2.3 Tactile visualization layer¶
launch/xela_driver.launch.py composes:
- AH std-viz all-in-one simulation launch
- AH sidecar launch (optional)
3. Behavior plugin design¶
- behavior library in
behaviors/ - plugin XML exported with
pluginlib_export_plugin_description_file - ROS
std_srvs/Triggerclient with explicit timeout and error propagation
4. ros2_control design¶
- arm + hand controllers coexist in one profile
- taxel joint state publisher outputs
/joint_states_full - velocity force controller uses
ee_frame: ur_adapter
5. Launch design notes¶
xela_driver.launch.pykeeps sidecar args explicit.- sidecar manager service path:
/xela_viz_mode_manager/set_mode. - only subset of viz args is currently forwarded to std-viz include.
6. Risks¶
- declared args vs forwarded std-viz args mismatch
- sim defaults accidentally used in real environment
- sidecar and std-viz mode divergence
7. Validation¶
- behavior plugin registration test
- launch smoke tests for sidecar toggle
- topic/service probes:
/x_taxel_ah,/x_taxel_ah/web_state,/xela_viz_mode_manager/set_mode
ur5e_xahr2c_config3¶
MoveIt Pro runtime configuration for UR5e + Xela Allegro Hand (R2C).
What this package contains¶
- combined arm+hand robot config (
config/config.yaml) - ros2_control profile (
config/control/ur5e_xahr2c.ros2_control.yaml) - URDF/SRDF and planning overrides
- custom behavior plugin:
TriggerPStopResetService - objective library + waypoints
- tactile web/viz launcher (
launch/xela_driver.launch.py)
Runtime modes¶
1) MoveIt Pro app runtime¶
cd ~/my_moveit_pro/01_wk_xela_mpro_dev_ws
moveit_pro run -c ur5e_xahr2c_config3
2) Xela visualization runtime¶
ros2 launch ur5e_xahr2c_config3 xela_driver.launch.py
xela_driver.launch.py pipeline¶
- includes
std_xela_taxel_viz_ahv4/launch/sim_all_svc_std_xela_taxel_viz_ahv4.launch.py - includes
xela_taxel_sidecar_ah/launch/xela_taxel_sidecar_cpp.launch.py(optional)
Important:
- std-viz include currently forwards only
namespace,model_name,viz_mode. - other declared args are currently for sidecar/compatibility, not passed through to std-viz in this file.
Default launch arguments¶
namespace:xvizahmodel_name:XR23AHLCPPviz_mode:urdfstyle_preset:cool_steeljoint_states_mode:localframe_prefix: emptymarker_stamp_mode:nowmarker_time_offset_sec:-0.12enable_taxel_sidecar:truetaxel_sidecar_web_port:8765enable_taxel_sidecar_rosbridge:truetaxel_sidecar_rosbridge_port:9090enable_viz_mode_manager:truemax_publish_rate_hz:20.0
Core config defaults¶
hardware.simulated=true- driver launch split:
- real:
launch/robot_drivers_to_persist.launch.py - sim:
launch/robot_drivers_to_persist_sim.launch.py
- real:
ros2_control_hardware_type=mock_components- startup active controllers include
hand_controllerandxela_taxel_joint_state_publisher - waypoint file:
waypoints/new_waypoints.yaml
Sidecar operation examples¶
Disable sidecar:
ros2 launch ur5e_xahr2c_config3 xela_driver.launch.py enable_taxel_sidecar:=false
Right-hand model:
ros2 launch ur5e_xahr2c_config3 xela_driver.launch.py model_name:=XR23AHRCPP
Custom behavior¶
TriggerPStopResetService:
- plugin id:
trigger_pstop_reset_service::TriggerPStopResetServiceBehaviorsLoader - default service:
/recover_from_protective_stop - timeout:
2.0 sec
Documentation¶
- Functional spec:
ur5e_xahr2c_config3.md - Design:
DESIGN.md - Redmine:
README.textile,ur5e_xahr2c_config3.textile,DESIGN.textile
Files