Robot Status API
Get information about the robot's current status, hardware components, and system information.
Get the current status of the robot
Retrieve the current status of the robot including charging state, battery percentage, emergency stop status, current state, and out of service status.
Response Body
Successful Response
is_chargingIs ChargingIndicates whether the robot is currently charging.
falsebattery_percentBattery PercentBattery percentage of the robot.
100is_estopIs EstopIndicates whether the robot is in an emergency stop state.
falsenavigation_blockedNavigation BlockedIndicates whether the robot's navigation is currently blocked.
falsestationary_awhileStationary AwhileIndicates whether the robot has been stationary for a while.
falsesoft_estopSoft EstopIndicates whether the robot is in a soft emergency stop state.
falseis_obstacle_to_robotIs Obstacle To RobotIndicates whether there is an obstacle close to the robot.
falsestateStateNumeric code representing the current state of the robot.
0state_labelState LabelCurrent state of the robot.
""curl -X GET "http://localhost:7242/api/v1/status"fetch("http://localhost:7242/api/v1/status")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status"
response = requests.request("GET", url)
print(response.text){
"is_charging": false,
"battery_percent": 100,
"is_estop": false,
"navigation_blocked": false,
"stationary_awhile": false,
"soft_estop": false,
"is_obstacle_to_robot": false,
"state": 0,
"state_label": "READY_FOR_MISSION"
}Get the hardware status of the robot
Retrieve the status of the robot's hardware components including lidars, cameras, and internet connection.
Response Body
Successful Response
lidarsLidarsList of lidar sensors and their statuses.
camerasCamerasList of camera sensors and their statuses.
internet_statusInternetStatusInternet connection status of the robot.
curl -X GET "http://localhost:7242/api/v1/status/hardware"fetch("http://localhost:7242/api/v1/status/hardware")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/hardware"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/hardware"
response = requests.request("GET", url)
print(response.text){
"lidars": [
{
"name": "main_lidar",
"is_working": true,
"state": "WORKING",
"error": "No error"
}
],
"cameras": [
{
"name": "front_camera",
"is_working": true,
"state": "WORKING",
"error": "No error"
}
],
"internet_status": {
"state": "DISCONNECTED",
"error": "No error",
"wifi_enabled": false,
"wifi_connected": false,
"wifi_ssid": "MyRobotWiFi",
"wifi_ip_addr": "",
"wifi_mac_addr": "00:11:22:33:44:55",
"mobile_enabled": false,
"mobile_connected": false
}
}Get the information of the robot
Retrieve the information of the robot including robot ID, name, model, software version, hardware version, site, floor, and current mission details.
Response Body
Successful Response
robot_uidRobot UidThe unique identifier of the robot.
""project_idProject IdThe project ID of the robot.
""site_floorSiteFloorModelThe site and floor of the robot.
curl -X GET "http://localhost:7242/api/v1/status/info"fetch("http://localhost:7242/api/v1/status/info")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/info"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/info"
response = requests.request("GET", url)
print(response.text){
"robot_uid": "robot-1",
"project_id": "project-1",
"site_floor": {
"site": "site",
"floor": "floor"
}
}Stream the current status of the robot
Stream the current status of the robot in real-time including charging state, battery percentage, emergency stop status, current state, and out of service status.
Response Body
Successful Response
is_chargingIs ChargingIndicates whether the robot is currently charging.
falsebattery_percentBattery PercentBattery percentage of the robot.
100is_estopIs EstopIndicates whether the robot is in an emergency stop state.
falsenavigation_blockedNavigation BlockedIndicates whether the robot's navigation is currently blocked.
falsestationary_awhileStationary AwhileIndicates whether the robot has been stationary for a while.
falsesoft_estopSoft EstopIndicates whether the robot is in a soft emergency stop state.
falseis_obstacle_to_robotIs Obstacle To RobotIndicates whether there is an obstacle close to the robot.
falsestateStateNumeric code representing the current state of the robot.
0state_labelState LabelCurrent state of the robot.
""Failed to stream robot status
curl -X GET "http://localhost:7242/api/v1/status/stream"fetch("http://localhost:7242/api/v1/status/stream")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/stream"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/stream"
response = requests.request("GET", url)
print(response.text){
"is_charging": false,
"battery_percent": 100,
"is_estop": false,
"navigation_blocked": false,
"stationary_awhile": false,
"soft_estop": false,
"is_obstacle_to_robot": false,
"state": 0,
"state_label": "READY_FOR_MISSION"
}{
"status_code": 500,
"success": false,
"message": "Failed to stream robot status",
"error": {
"code": "ROBOT_STATUS_STREAM_ERROR",
"message": "Failed to stream robot status"
}
}Get the software versions of the robot
Retrieve the ros , dep and scu software versions of the robot.
Response Body
Successful Response
ros_versionRos VersionThe version of Robot main package.
""dep_versionDep VersionVersions of the dependencies of the robot main package.
""scu_versionScu VersionThe version of the SCU firmware.
""curl -X GET "http://localhost:7242/api/v1/status/version"fetch("http://localhost:7242/api/v1/status/version")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/version"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/version"
response = requests.request("GET", url)
print(response.text){
"ros_version": "1.0.0",
"dep_version": "1.0.0",
"scu_version": "1.0.0"
}Get the active alarms of the robot
Retrieve the list of active alarms on the robot, including alarm code, message, and severity.
Response Body
Successful Response
warningsWarningsList of active warnings on the robot.
errorsErrorsList of active errors on the robot.
curl -X GET "http://localhost:7242/api/v1/status/alarms"fetch("http://localhost:7242/api/v1/status/alarms")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/alarms"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/alarms"
response = requests.request("GET", url)
print(response.text){
"warnings": [
"509"
],
"errors": [
"510"
]
}Stream the active alarms of the robot
Stream the list of active alarms on the robot in real-time, including alarm code, message, and severity.
Response Body
Successful Response
warningsWarningsList of active warnings on the robot.
errorsErrorsList of active errors on the robot.
Failed to stream robot alarms
curl -X GET "http://localhost:7242/api/v1/status/alarms/stream"fetch("http://localhost:7242/api/v1/status/alarms/stream")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/alarms/stream"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/alarms/stream"
response = requests.request("GET", url)
print(response.text){
"warnings": [
"509"
],
"errors": [
"510"
]
}{
"status_code": 500,
"success": false,
"message": "Failed to stream robot alarms",
"error": {
"code": "ROBOT_ALARMS_STREAM_ERROR",
"message": "Failed to stream robot alarms"
}
}Get the screen UI configuration
Retrieve the current screen UI configuration of the robot as a JSON object.
Response Body
Successful Response
[key: string]anycurl -X GET "http://localhost:7242/api/v1/status/screen-config"fetch("http://localhost:7242/api/v1/status/screen-config")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/screen-config"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/screen-config"
response = requests.request("GET", url)
print(response.text){}Stream the screen UI configuration
Stream the screen UI configuration of the robot in real-time as SSE events.
Response Body
Successful Response
responseRequiredunknownFailed to stream screen config
curl -X GET "http://localhost:7242/api/v1/status/screen-config/stream"fetch("http://localhost:7242/api/v1/status/screen-config/stream")package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:7242/api/v1/status/screen-config/stream"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "http://localhost:7242/api/v1/status/screen-config/stream"
response = requests.request("GET", url)
print(response.text)null{
"status_code": 500,
"success": false,
"message": "Failed to stream screen config",
"error": {
"code": "SCREEN_CONFIG_STREAM_ERROR",
"message": "Failed to stream screen config"
}
}