Connect → rosbridge (OmniBot)

Browser teleop at /connect can open a ROSBridge WebSocket using RosbridgeTransport (the ROSBridge (OmniBot) row). The console subscribes to /odom, /battery_state, and the front camera (/camera/front/image_raw plus compressed / MJPEG), and publishes /cmd_vel only while the deadman is held (stick or Space).

This site does not start rosbridge or the robot stack. You start them on the robot or dev machine.

Start rosbridge (port 9090)

On the OmniBot workspace (or any ROS 2 machine):

# ohho-docs-test: skip ros
ros2 launch rosbridge_server rosbridge_websocket_launch.xml port:=9090

The public OmniBot repo also ships a helper script (name may vary by branch):

# ohho-docs-test: skip ros hardware
./launch_rosbridge.sh

Default URL in the console: ws://localhost:9090 on the same machine, or ws://<robot-lan-ip>:9090 from your laptop.

Secure context (HTTPS ↔ WebSocket)

Site URL Robot URL Works?
http://localhost:3000 ws://localhost:9090 Yes (local dev)
http://<lan-ip>:3000 ws://<robot-ip>:9090 Yes (same LAN, HTTP)
https://… (production) ws://… No — mixed content blocked
https://… wss://… (TLS rosbridge) Yes — terminate TLS on the robot or a LAN proxy

USB (Web Serial) and BLE are unchanged; they need a secure context (HTTPS or localhost). See lib/connect/README.md.

Automated checks

Run locally:

# ohho-docs-test: skip node
npm test
npx playwright install chromium
npm run test:e2e

Human TODO

  • Record a short real-robot teleop clip (operator-held camera or fixed mount). Do not use a fabricated or stock video — leave this empty until someone captures it on hardware.

OmniBot launch follow-up

If rosbridge_server should be started from omnibot_bringup by default, add it in the OmniBot repository launch files (not this website). This PR only documents the command and tests against a mock server.