Configuration

The webserver is configured through two YAML files. Both are read at startup and can be edited to match the target platform.

File

Purpose

config/robot_webserver.yaml

ROS parameters for the webserver, navigation, manipulation, LLM, and service control.

config/robot_info.yaml

Branding, viewer, stream, and network metadata returned by /api/robot_info. Also hosts diagnostics and notification settings.

robot_webserver.yaml

All parameters are stored under /**: ros__parameters:.

Robot Description

Parameter

Example

Notes

robot_base_link

base_link

Base frame used by visualization and navigation helpers.

robot_description_package

robot_description

Package used by /api/urdf.

robot_xacro_path

xacro/robot.xacro

Relative path inside the description package.

Teleoperation and Control

Parameter

Example

robot_cmd_vel

webserver/cmd_vel

robot_twist_stamped

false

robot_e_stop

e_stop

robot_max_linear_velocity

2.0

robot_max_angular_velocity

2.0

Sensor Topics

Parameter

Example

robot_odom_topic

odometry

robot_scan_topic

sensors/scan

robot_battery_topic

platform/bms/state

robot_joint_states_topic

joint_states

robot_diagnostics_topic

diagnostics

GPS and Localization

Parameter

Example

robot_gps_topic

gps/odometry_llh

robot_gps_datum_topic

gps/datum

robot_gps_lat

50.95359

robot_gps_lon

6.60174

robot_gps_heading_offset

-90.0

Web Server

Parameter

Example

Notes

web_security

true

Enables login and API authentication checks.

web_user

admin

Browser username.

web_password

mybotshop

Browser/API password.

web_server_ip

0.0.0.0

Bind address.

web_server_port

9000

Main HTTP port.

web_server_threads

6

Worker threads.

web_max_clients

6

Concurrent client cap.

web_debug_logging

false

Enables request-in/request-out logging.

Service Control

Parameter

Example

robot_password

mybotshop

robot_home_dir

/home/administrator

robot_webserver

robot-webserver

robot_services

List of systemd unit names managed from the UI.

Manipulation

These parameters apply to platforms equipped with a manipulator. If manipulation_enabled is false the manipulation interface is not registered.

Parameter

Example

manipulation_enabled

true

manipulation_controller_topics

["arm_traj_controller/joint_trajectory"]

manipulation_joint_names

["joint1", ..., "joint6"]

manipulation_joint_groups

JSON string describing joint groups and controllers.

manipulation_cartesian_frame

base_link

manipulation_gripper_range

[0.0, 0.85]

LLM and Voice

Optional. These parameters configure the conversational assistant and text-to-speech voice. See Assistant, Voice, and TTS for details.

Parameter

Example

llm_tools_enabled

false

llm_backend

claude

llm_ollama_host

http://127.0.0.1:11434

llm_ollama_model

gemma:e4b

llm_tts_voice

en-GB-RyanNeural

llm_tts_offline_voice

en-gb

robot_info.yaml

This file is served through /api/robot_info and is consumed by the frontend for branding, the 3D viewer, stream configuration, and the network table.

Top-level sections:

  • robot — identity (name, model, platform, order/serial number)

  • software — ROS distribution and webserver version

  • manufacturer — manufacturer metadata

  • branding — logos, company name, support links

  • model_3d — static fallback 3D model

  • streaming — WebSocket/VNC ports and interfaces

  • urdf_viewer — viewer defaults (camera, lighting, grid, point cloud, camera streams)

  • network — named devices shown in the dashboard network table

WebRTC streaming is configured under streaming.webrtc (enabled, http_port — default 9003, http_address).

Environment Variables

Variable

Use

ROBOT_NS

Namespace used by the launch files.

FLASK_SECRET_KEY

Overrides the Flask session secret if set by the runtime.

Note

Credentials and host-specific values shipped in the configuration files are deployment defaults. Change them before exposing the webserver on a shared network.