Project

General

Profile

Task #232

Updated by Sanghoon Lee 19 days ago

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. 

 -------------------- 

 !{width:600px}clipboard-202603152214-a0zyj.png! 

 -------------------- 

 h1. ur5e_xahr2c_config3 

 h2. 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. 

 h2. 2. Architecture 

 h3. 2.1 MoveIt Pro core 

 * @config/config.yaml@ is the main contract. 
 * package extends @picknik_ur_site_config@. 
 * default planning group: @manipulator@. 

 h3. 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@ 

 h3. 2.3 Tactile visualization layer 

 @launch/xela_driver.launch.py@ composes: 

 # AH std-viz all-in-one simulation launch 
 # AH sidecar launch (optional) 

 h2. 3. Behavior plugin design 

 * behavior library in @behaviors/@ 
 * plugin XML exported with @pluginlib_export_plugin_description_file@ 
 * ROS @std_srvs/Trigger@ client with explicit timeout and error propagation 

 h2. 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@ 

 h2. 5. Launch design notes 

 * @xela_driver.launch.py@ keeps 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. 

 h2. 6. Risks 

 * declared args vs forwarded std-viz args mismatch 
 * sim defaults accidentally used in real environment 
 * sidecar and std-viz mode divergence 

 h2. 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@ 

 --------------- 

 h1. ur5e_xahr2c_config3 

 MoveIt Pro runtime configuration for *UR5e + Xela Allegro Hand (R2C)*. 

 h2. 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@) 

 h2. Runtime modes 

 h3. 1) MoveIt Pro app runtime 

 <pre><code> 
 cd ~/my_moveit_pro/01_wk_xela_mpro_dev_ws 
 moveit_pro run -c ur5e_xahr2c_config3 
 </code></pre> 

 h3. 2) Xela visualization runtime 

 <pre><code> 
 ros2 launch ur5e_xahr2c_config3 xela_driver.launch.py 
 </code></pre> 

 h2. 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. 

 h2. Default launch arguments 

 * @namespace@: @xvizah@ 
 * @model_name@: @XR23AHLCPP@ 
 * @viz_mode@: @urdf@ 
 * @style_preset@: @cool_steel@ 
 * @joint_states_mode@: @local@ 
 * @frame_prefix@: empty 
 * @marker_stamp_mode@: @now@ 
 * @marker_time_offset_sec@: @-0.12@ 
 * @enable_taxel_sidecar@: @true@ 
 * @taxel_sidecar_web_port@: @8765@ 
 * @enable_taxel_sidecar_rosbridge@: @true@ 
 * @taxel_sidecar_rosbridge_port@: @9090@ 
 * @enable_viz_mode_manager@: @true@ 
 * @max_publish_rate_hz@: @20.0@ 

 h2. 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@ 
 * @ros2_control_hardware_type=mock_components@ 
 * startup active controllers include @hand_controller@ and @xela_taxel_joint_state_publisher@ 
 * waypoint file: @waypoints/new_waypoints.yaml@ 

 h2. Sidecar operation examples 

 Disable sidecar: 
 <pre><code> 
 ros2 launch ur5e_xahr2c_config3 xela_driver.launch.py enable_taxel_sidecar:=false 
 </code></pre> 

 Right-hand model: 
 <pre><code> 
 ros2 launch ur5e_xahr2c_config3 xela_driver.launch.py model_name:=XR23AHRCPP 
 </code></pre> 

 h2. Custom behavior 

 @TriggerPStopResetService@: 

 * plugin id: @trigger_pstop_reset_service::TriggerPStopResetServiceBehaviorsLoader@ 
 * default service: @/recover_from_protective_stop@ 
 * timeout: @2.0 sec@ 

 h2. Documentation 

 * Functional spec: @ur5e_xahr2c_config3.md@ 
 * Design: @DESIGN.md@ 
 * Redmine: @README.textile@, @ur5e_xahr2c_config3.textile@, @DESIGN.textile@ 

Back