Project

General

Profile

Task #223

Updated by Sanghoon Lee about 1 month ago

This package is the runtime configuration layer for a UR5e + Robotiq 2F-140 cell in MoveIt Pro, with Xela 2F tactile visualization integrated as an optional operator path. 

 Operationally it binds three concerns in one package boundary: 
 - MoveIt Pro robot/application configuration (`config/config.yaml`, URDF/SRDF, ros2_control profile) 
 - gripper operation objectives for Robotiq action interface 
 - tactile visualization orchestration (`xela_server2_2f` + `std_xela_taxel_viz_2f` + optional web sidecar) 

 -------------------- 
 !{width:800px}clipboard-202602281622-nn4ly.png! 

 h1. ur5e_x2f_140_config3 

 h2. 1. Overview and design objective 

 The design separates mission-critical robot runtime from operator-facing tactile visualization while keeping a single launch entrypoint for deployment. 

 Key intent: 

 * keep MoveIt Pro config semantics aligned with @ur5e_x2f_140_common@ 
 * avoid coupling motion control logic to web-side visualization concerns 
 * make tactile visualization chain optional but first-class (@xela_driver.launch.py@) 

 Architecturally, this package acts as an orchestration shell: core control/planning definitions stay in config assets, and tactile stack composition is handled in launch space with explicit argument pass-through. 

 h2. 2. Architecture 

 Generated PNG: @docs/architecture_overview.png@ 
 !{width:1000px}architecture_overview.png! 


 h3. 2.1 MoveIt Pro runtime layer 

 * Base package: @ur5e_x2f_140_common@ 
 * Overrides in @config/config.yaml@ 
 * ros2_control profile in @config/control/ur5e_x2f_140.ros2_control.yaml@ 
 * custom objectives layered on top of common objectives 
 * no package-local waypoint file; waypoint resolution stays with the base package behavior 

 h3. 2.2 Tactile visualization layer 

 @launch/xela_driver.launch.py@ composes: 

 # @xela_server_nosudo.launch.py@ (optional CAN setup, Xela websocket process, websocket wait gate, then @xela_server2_2f@) 
 # @std_xela_taxel_viz_2f.launch.py@ (@frame_id:=world@, @overlay_grid_in_urdf:=false@) 
 # @xela_taxel_sidecar_2f/xela_taxel_sidecar_cpp.launch.py@ (optional, namespaced TF integration) 

 h3. 2.3 Agent bridge wrapper 

 * @launch/agent_bridge.launch.xml@ includes: 
 ** @moveit_studio_agent/launch/studio_agent_bridge.launch.xml@ 
 ** @ur5e_x2f_140_config3/launch/xela_driver.launch.py@ 
 * this keeps tactile visualization additive to the MoveIt Pro runtime path 

 h2. 3. Parameter flow 

 * user-facing arguments are defined at @xela_driver.launch.py@ 
 * server/network args go to @xela_server_nosudo.launch.py@ 
 * viz args go to @std_xela_taxel_viz_2f@ 
 * sidecar args go to @xela_taxel_sidecar_2f@ 
 * sidecar integration pins @bridge_tf_topic=/xviz2f/tf@, @bridge_tf_static_topic=/xviz2f/tf_static@, @viz_node_name=/xviz2f/std_xela_taxel_viz_2f@, @freeze_urdf_positions=false@ 

 h2. 4. Controller design 

 * startup-active controllers favor monitoring + servo/gripper operation. 
 * trajectory/admittance/velocity-force controllers are loaded but inactive by default. 
 * tactile joint-state publisher is active at startup. 

 h2. 5. Operational design choices 

 * sidecar mode manager is separate from std viz node. 
 * web/rosbridge ports are explicit launch arguments. 
 * simulation-first defaults reduce bringup risk in development. 
 * real-hardware cutover points remain explicit in @config/config.yaml@ and the CAN setup path 

 h2. 6. Risks 

 * real/sim parameter mismatch 
 * CAN setup dependency when @setup_can=true@ 
 * sidecar/viz mode mismatch if service calls fail 

 h2. 7. Recommended validation 

 * static: @config/config.yaml@ and ros2_control name consistency 
 * runtime: launch chain start, topic presence, sidecar mode switch 
 * wrapper: @agent_bridge.launch.xml@ starts both included launch files without path errors 

Back