Skip to content

Gateway Deployment

How to get the uMe Gateway running on a robot and keep it running. For the binding end-to-end procedure (commissioning, versioning, vendor updates) see Deployment Process — this page is the technical reference for the same steps.

Board Perception Board (runs the camera and the conversational agent)
SSH user booster
Python 3.10+
Gateway port 8765 (WebSocket)
Files gateway_v2.py, install.sh (repo robotics-group-app, folder gateway/)
Service ume-gateway.service (user-level systemd, autostart on boot)

Step 1 — copy the files

scp gateway_v2.py install.sh booster@<ROBOT-IP>:~/

Step 2 — install

ssh booster@<ROBOT-IP>
bash ~/install.sh

The installer copies the Gateway, creates the autostart service with the DDS/ROS environment of the current shell, enables it, and prints the status — which must read active (running).

Use a normal login shell

The service inherits the DDS/ROS environment variables from the shell the installer runs in. In a stripped-down shell the motors will not respond.

Step 3 — verify

Open the Robotics Group App and connect to <ROBOT-IP>. Live camera image, status, and control must work immediately. Alternatively test from a PC with a WebSocket client (see Python Client).

Modes

Start Meaning
python3 gateway_v2.py --mock Nothing moves; commands are only logged. For app/CI development.
python3 gateway_v2.py --real Real control. This is what the service runs.

Optional camera settings via environment variables: UME_CAMERA=realsense (direct RealSense capture) or UME_CAMERA_TOPIC=<topic>.

Operations

  • Logs: journalctl --user -u ume-gateway -f
  • Restart: systemctl --user restart ume-gateway.service
  • New version: copy gateway_v2.py over, then bash ~/install.sh again
  • Autostart without login is enabled by the installer via enable-linger

Security

  • Change the default password on the board after commissioning (passwd).
  • Prefer an SSH key over a password.
  • Port 8765 is LAN-only — never expose it to the internet.