Task #224
openTask Group #191: [Dev] MoveIt Pro Application development
[Dev] Create a Web UI Interface of 2F Tactile sensor visualization for the MoveIt Pro Env
90%
Description
The 2F sidecar Web UI, should be designed as a non-invasive visualization adapter, requiring no changes to the upper-level tactile publisher or lower-level control logic.
Design intent:
- Transform ROS tactile payloads into browser-ready states with low integration costs.
- Provide runtime mode switching as a stable ROS service contract.
- Support both global and namespace-based TF delivery models via launch remapping.
This ensures that the web visualization remains evolving independently of the control stack release cycle.
---------------
xela_taxel_sidecar_2f¶
1. Overview and design objective¶
The 2F sidecar is designed as a non-invasive visualization adapter: it does not alter upstream tactile publishers or downstream control logic.
Design intent:
- transform ROS tactile payloads into browser-consumable state with low integration cost
- expose runtime mode switching as a stable ROS service contract
- support both global and namespaced TF transport models through launch remapping
This keeps web visualization evolvable independently of control-stack release cycles.
2. Node architecture¶
2.1 Bridge node (xela_taxel_web_bridge_node)¶
- subscribes tactile array topic
- optionally subscribes grasp telemetry/event topics and embeds recent JSON metadata
- normalizes/maps values
- publishes compact JSON payload
- optional TF lookups for URDF points
2.2 Mode manager (xela_viz_mode_manager_node)¶
- service facade:
/xela_viz_mode_manager/set_mode - writes bridge params:
viz_mode,emit_urdf_points,freeze_urdf_positions - forwards request to viz node service
- startup sync retry timer
2.3 Web transport¶
- static HTTP server for
web/taxel_sidecar - optional dedicated rosbridge instance
- browser websocket fallback order:
:9090,:3201,/ros
2.4 Web UI runtime¶
- browser-side display modes are
GridMode,XelaModel, andRobotModel GridMode/XelaModel/RobotModelare distinct from ROS-sidegrid/urdf- RobotModel includes optional FollowCam logic and telemetry analysis rendering
- FollowCam / Analysis toolbar exposure can be toggled independently from the underlying code paths
2.5 Runtime wiring diagram¶
Generated PNG: docs/runtime_wiring_diagram.png
Browser (index.html + rosbridge_client.js)
|-- HTTP GET / ----------------------------> sidecar_http_server.py (:8765)
|
|-- WebSocket ws://<host>:9090 -----------> rosbridge_websocket_sidecar
| (rosbridge_server/rosbridge_websocket)
| |
| |-- subscribe / publish --> /x_taxel_2f/web_state
| |-- service call ---------> /xela_viz_mode_manager/set_mode
| |-- optional access ------> /tf, /tf_static, /robot_description
| or namespaced std-viz equivalents
|
`-- sidecar UI renders GridMode / XelaModel / RobotModel
/x_taxel_2f ----------------------------------> xela_taxel_web_bridge_cpp
/x_telemetry_2f/grasp_telemetry --------------> xela_taxel_web_bridge_cpp
/x_telemetry_2f/grasp_event ------------------> xela_taxel_web_bridge_cpp
/tf, /tf_static (or namespaced TF) -----------> xela_taxel_web_bridge_cpp
xela_taxel_web_bridge_cpp --------------------> /x_taxel_2f/web_state
/xela_viz_mode_manager/set_mode --------------> xela_viz_mode_manager_cpp
xela_viz_mode_manager_cpp -- set_parameters --> xela_taxel_web_bridge_cpp
xela_viz_mode_manager_cpp -- SetBool -------> /xela_taxel_viz_2f/set_mode
or /xviz2f/std_xela_taxel_viz_2f/set_mode
Notes:
- The browser uses two separate paths: HTTP for static assets and WebSocket for ROS traffic.
rosbridge_client.jstries:9090first;:3201and/rosare fallbacks.xela_viz_mode_manager_cppis the ROS-facing mode-switch facade.
3. Launch architecture¶
- primary:
xela_taxel_sidecar_cpp.launch.py - compatibility:
xela_taxel_sidecar.launch.py - primary launch exposes bind hosts for the static web server and sidecar rosbridge (default
0.0.0.0)
4. Integration strategy¶
- default target:
viz_node_name=/xela_taxel_viz_2f - std-viz namespaced target via overrides:
viz_node_name:=/xviz2f/std_xela_taxel_viz_2fbridge_tf_topic:=/xviz2f/tfbridge_tf_static_topic:=/xviz2f/tf_static
5. Design risks¶
- target viz service unavailable
- TF remap mismatch in URDF mode
- duplicate transport nodes from multiple launch variants
6. Validation¶
- launch smoke test
- topic publish-rate observation
- service toggle test
- web render check on sidecar URL
- browser websocket fallback check (
9090 -> 3201 -> /ros) - verify URL query defaults are used when no
follow_cam_*overrides are present

Files
Updated by Sanghoon Lee about 1 month ago
- File runtime_wiring_diagram.png runtime_wiring_diagram.png added
- File clipboard-202602281630-qxviz.png clipboard-202602281630-qxviz.png added
- File clipboard-202602281631-l9vpa.png clipboard-202602281631-l9vpa.png added
- Description updated (diff)
- Status changed from New to Resolved
- % Done changed from 0 to 90
Updated by Sanghoon Lee about 1 month ago
- File ur5e_x2f_140_config3_w_webUI.mp4 ur5e_x2f_140_config3_w_webUI.mp4 added
- Description updated (diff)
Updated by Sanghoon Lee about 1 month ago
- Copied to Task #229: [Dev] Add helper tools for objective analysis to the xela web UI interface added
Updated by Sanghoon Lee 19 days ago
- Copied to deleted (Task #229: [Dev] Add helper tools for objective analysis to the xela web UI interface)