Service API
Services are HTTP endpoints that trigger an action on the robot. Send an empty body unless a parameter block is shown.
Every endpoint uses one of two URL prefixes:
/services/...— a robot service. UsuallyPOST; responds with JSON./ros/...— a service proxied from ROS. Defaults to binary protobuf and returns proto3 JSON when the request sendsAccept: application/json. A few endpoints (map overlays, traffic info) are raw JSON.
The reference is grouped by what the service does:
- Motion & Chassis Control — drive modes, emergency stop, wheel and chassis errors.
- Localization — global positioning and pose queries for chargers, pallets, trailers, and racks.
- Mapping — auto-mapping, landmarks, overlays, traffic info, submaps, and the SLAM map image.
- Cargo Handling — jack, roller, towing hook, cargo load/unload, and rack size detection.
- Perception & Sensors — lidar and depth camera power, RGB frames, nav thumbnail, and V2X beacons.
- Calibration — IMU, gyro scale, depth cameras, duo lidar, and jack mast calibration.
- Network — Wi-Fi mode and route priority.
- System & Maintenance — power, time, restarts, error recovery, and ROS topic introspection.
Conventions
Content-type & response format
Endpoints under /services/ speak JSON. Services proxied under /ros/ default to application/x-protobuf; they respond with application/json when the request includes Accept: application/json. JSON bodies are generated by serializing the same protobuf message via google::protobuf::util::MessageToJsonString (proto3 JSON mapping — field names are snake_case).
Accept request header | Content-Type response | Body |
|---|---|---|
| (absent) | application/x-protobuf | binary protobuf |
application/x-protobuf | application/x-protobuf | binary protobuf |
application/json | application/json | proto3 JSON |
| (any other) | text/plain | 415 Unsupported Media Type |
The raw JSON endpoints (map overlays and traffic info) ignore Accept and always return application/json.
Protobuf definitions
Protobuf message definitions are published as part of the @kingsimba/axbot-sdk TypeScript SDK on npm. The .proto source files are available in the axbot-ts-sdk repository. Each endpoint references its own response message.
Service index
Motion & Chassis Control
| Endpoint | Method | Description |
|---|---|---|
/services/wheel_control/set_control_mode | POST | Switch between auto, manual, and remote control. |
/services/wheel_control/set_emergency_stop | POST | Press or release the software emergency stop. |
/services/confirm_estop | POST | Release the wheels on a slope after the emergency stop is pressed. |
/services/wheel_control/clear_errors | POST | Clear errors reported by the wheel controller. |
/services/monitor/clear_flip_error | POST | Clear error 8004 after a tip-over has been inspected. |
/services/monitor/clear_slipping_error | POST | Clear error 2008 after a heavy impact (experimental). |
Localization
| Endpoint | Method | Description |
|---|---|---|
/services/start_global_positioning | POST | Localize the robot globally with barcodes and base-map matching. |
/services/query_pose/<poi> | GET | Query the map pose of a charger, pallet, trailer, or rack edge. |
Mapping
| Endpoint | Method | Description |
|---|---|---|
/services/enable_auto_mapping | POST | Let the robot explore and map on its own (experimental). |
/services/start_collecting_landmarks | POST | Collect landmarks for the current map. |
/services/stop_collecting_landmarks | POST | Stop collecting landmarks. |
/ros/map/overlays | GET/PUT | Read or replace the dynamic map overlays as GeoJSON. |
/ros/map/traffic_info | GET/PUT | Read or replace the dynamic no-passing zones. |
/ros/slam/submaps/{uuid}/{trajectory_id}/{submap_index} | GET | Fetch one Cartographer submap. |
/ros/slam/map_image | GET | Fetch the current SLAM map as a protobuf-encoded PNG. |
Cargo Handling
| Endpoint | Method | Description |
|---|---|---|
/services/jack_up | POST | Raise the jack. |
/services/jack_down | POST | Lower the jack. |
/services/jack_self_check | POST | Self-check the jack. |
/services/clear_jack_errors | POST | Clear jack overload errors. |
/services/roller_load | POST | Load cargo with the roller. |
/services/roller_unload | POST | Unload cargo with the roller. |
/services/load_cargo | POST | Load cargo with the lifting mechanism. |
/services/unload_cargo | POST | Unload cargo with the lifting mechanism. |
/services/towing_hook_lock | POST | Lock the towing hook. |
/services/towing_hook_release | POST | Release the towing hook. |
/services/clear_towing_hook_error | POST | Clear a towing-hook device error. |
/services/start_rack_size_detection | POST | Measure a rack's width and depth with the laser scanner. |
/services/stop_rack_size_detection | POST | Stop the rack size measurement. |
Perception & Sensors
| Endpoint | Method | Description |
|---|---|---|
/services/baseboard/power_on_lidar | POST | Power the lidar on or off. |
/services/depth_camera/enable_cameras | POST | Enable or disable the depth cameras. |
/services/get_rgb_image | POST | Fetch the latest RGB camera frame. |
/services/get_nav_thumbnail | POST | Fetch a 200×200 snapshot of the robot and its surroundings. |
/services/probe_v2x_beacons | POST | Activate V2X beacons for a few seconds to test connectivity. |
Calibration
| Endpoint | Method | Description |
|---|---|---|
/services/imu/recalibrate | POST | Recalibrate the IMU while the robot stands still. |
/services/imu/calibrate_gyro_scale | POST | Calibrate the gyroscope scale. |
/ros/imu/clear_gyro_scale | POST | Clear the stored gyroscope scale calibration. |
/services/calibrate_depth_cameras | POST | Align the depth-camera point clouds with the lidar. |
/services/calibrate_depth_camera_masks | POST | Mask the parts of the robot seen by its own depth cameras. |
/services/calibrate_duo_lidar_poses | POST | Calibrate the poses of the left-front and right-back lidars. |
/ros/jack_mast/calibrate_mast_tick_base | POST | Calibrate the tick base of the jack mast. |
Network
| Endpoint | Method | Description |
|---|---|---|
/services/setup_wifi | POST | Switch Wi-Fi between AP and station mode. |
/services/set_route_mode | POST | Choose which network interface is the default route. |
System & Maintenance
| Endpoint | Method | Description |
|---|---|---|
/services/wake_up_device | POST | Wake the robot from sleep. |
/services/restart_service | POST | Restart all robot software. |
/services/baseboard/shutdown | POST | Reboot or shut down the main computer or the whole device. |
/services/step_time | GET/POST | Check for a time offset (GET) or step the clock (POST). |
/services/monitor_recheck_errors | POST | Re-run the error checks. |
/services/reset_usb_devices | POST | Reset selected USB devices by bus/dev. |
/services/clear_system_down_unexpectedly | POST | Clear the “system down unexpectedly” alert. |
/services/clear_range_data_all_zero_error | POST | Clear the “range data all zero” lidar error. |
/services/clear_fall_risk_warning | POST | Clear the fall-risk warning. |
/ros/rosmaster/topics | GET | List published ROS topics with types and counts. |
/ros/rosmaster/topics/published_names | GET | List the names of published ROS topics. |