Project

General

Profile

Actions

Task #224

open

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

[Dev] Create a Web UI Interface of 2F Tactile sensor visualization for the MoveIt Pro Env

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

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, and RobotModel
  • GridMode/XelaModel/RobotModel are distinct from ROS-side grid/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.js tries :9090 first; :3201 and /ros are fallbacks.
  • xela_viz_mode_manager_cpp is 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_2f
    • bridge_tf_topic:=/xviz2f/tf
    • bridge_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

runtime_wiring_diagram.png (85.2 KB) runtime_wiring_diagram.png Sanghoon Lee, 02/28/2026 07:28 AM
clipboard-202602281630-qxviz.png (707 KB) clipboard-202602281630-qxviz.png Sanghoon Lee, 02/28/2026 07:30 AM
clipboard-202602281631-l9vpa.png (754 KB) clipboard-202602281631-l9vpa.png Sanghoon Lee, 02/28/2026 07:31 AM
ur5e_x2f_140_config3_w_webUI.mp4 (39.2 MB) ur5e_x2f_140_config3_w_webUI.mp4 Sanghoon Lee, 02/28/2026 07:54 AM

Subtasks 1 (1 open0 closed)

Task #229: [Dev] Add helper tools for objective analysis to the xela web UI interfaceResolvedSanghoon Lee03/03/2026

Actions
Actions #1

Updated by Sanghoon Lee about 1 month ago

  • Parent task changed from #197 to #191
Actions #4

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
Actions #5

Updated by Sanghoon Lee about 1 month ago

  • Subtask #229 added
Actions #6

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)
Actions

Also available in: Atom PDF