Autoxing REST API Book
  • English
  • zh-CN
GitHub
  • English
  • zh-CN
GitHub
  • Guide

    • Getting Started
    • Start Moving
    • Getting Started with WebSockets
    • Robot Admin (Standalone Version)
  • Reference

    • REST API Principles
    • Map API
    • Move API
    • Current Map and Pose API
    • Overlays
    • Mapping API
    • IoT Devices
    • Device Information API
    • Robot Parameters API
    • System Settings
    • App Store API
    • Hostname API
    • Landmarks
    • Submaps
  • Services

    • Service API
    • Motion & Chassis Control
    • Localization
    • Mapping
    • Cargo Handling
    • Perception & Sensors
    • Calibration
    • Network
    • System & Maintenance
  • WebSocket

    • WebSocket Reference
    • Localization
    • Mapping
    • Navigation & Planning
    • Chassis & Safety
    • Cargo & Equipment
    • Perception & Cameras
    • Environment & Connectivity
    • System & Power
  • Other

    • Deprecations
    • Changelog

System & Maintenance

Manage the device itself: power state, time, software restarts, error recovery, and ROS introspection.

Wake Up the Device

Wakes the robot from its sleep state. If the robot is already awake, this command has no effect.

curl -X POST http://192.168.25.25:8090/services/wake_up_device

Monitor the Sensor Manager State WebSocket topic for sleep, awake, or awakening status.

Restart Services

Restarts all software services on the robot.

curl -X POST \
  -H "Content-Type: application/json" \
  http://192.168.25.25:8090/services/restart_service

Shutdown or Reboot the Device

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"target": "main_power_supply", reboot: false}' \
  http://192.168.25.25:8090/services/baseboard/shutdown

Parameters

class ShutdownRequest {
  target:
    | "main_computing_unit" // Reboot or shutdown only the main computing board.
    | "main_power_supply"; // Reboot or shutdown the entire device.
  reboot: boolean; // true to reboot, false to shutdown.
}

Step Time

Use this service to correct the system time if it is inaccurate.

Warning

GET is used to detect time errors. Do not call it frequently. Use the WebSocket /alerts topic instead to monitor time errors.

curl http://192.168.25.25:8090/services/step_time
{
  "should_step": false, // No need to correct time
  "message": "there is no need to make step: system time is 0.000253560 seconds fast of NTP time"
}

POST is used to correct the time.

curl -X POST http://192.168.25.25:8090/services/step_time
{
  "message": "Step time successfully"
}

Recheck Errors

POST /services/monitor_recheck_errors

Reset USB Devices

Resetting the USB hub can sometimes help recover malfunctioning hardware devices.

The format "1/3" represents the bus_id/dev_id in the device tree. For more information, see List USB Devices.

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"devices_to_reset": ["1/3", "8/1"]}' \
  http://192.168.25.25:8090/services/reset_usb_devices

Clear "System Down Unexpectedly" Alert

curl -X POST \
  -H "Content-Type: application/json" \
  http://192.168.25.25:8090/services/clear_system_down_unexpectedly

Clear "Range Data All Zero" Error

If all Lidar points return a value of 0, it indicates that the Lidar device is malfunctioning or failing.

This service temporarily clears the associated error message.

curl -X POST \
  -H "Content-Type: application/json" \
  http://192.168.25.25:8090/services/clear_range_data_all_zero_error

Clear Fall Risk Warning

curl -X POST http://192.168.25.25:8090/services/clear_fall_risk_warning

Topic List

Lists all currently published ROS topics with type, publisher count, and subscriber count. Queries the ROS master directly.

Route

GET /ros/rosmaster/topics

Request

No parameters, no request body.

Response

ros_messages.TopicListResponse — repeated TopicInfo (name, type, publisher_count, subscriber_count). Only topics with at least one publisher are included.

See topics.proto.

Cache behavior

Cache-Control: no-cache — topic state is dynamic; no ETags.

Example

# protobuf (default)
curl http://192.168.25.25:8090/ros/rosmaster/topics | protoc --decode_raw

# JSON
curl -H "Accept: application/json" \
  http://192.168.25.25:8090/ros/rosmaster/topics | jq .
{
  "topics": [
    {
      "name": "/tf",
      "type": "tf2_msgs/TFMessage",
      "publisher_count": 1,
      "subscriber_count": 3
    }
  ]
}

Published Topic Names

Returns only the names of topics that have at least one publisher.

Route

GET /ros/rosmaster/topics/published_names

Request

No parameters, no request body.

Response

ros_messages.PublishedTopicNamesResponse — repeated names fields.

See topics.proto.

Cache behavior

Cache-Control: no-cache — topic state is dynamic.

Example

# protobuf (default)
curl http://192.168.25.25:8090/ros/rosmaster/topics/published_names | protoc --decode_raw

# JSON
curl -H "Accept: application/json" \
  http://192.168.25.25:8090/ros/rosmaster/topics/published_names | jq .
{
  "names": ["/tf", "/scan", "/odom"]
}

Edit this page
Last Updated: 10/30/26, 7:15 PM
Contributors: FengZhaolin
Prev
Network