-
Notifications
You must be signed in to change notification settings - Fork 2
AXSDK1_0_cn
欢迎来到机器人开发之旅。基于 AutoXing 机器人 SDK,您可以快速实现对机器人的全面控制,并创建您自己的机器人。本文档主要描述如何使用 JavaScript 语言开发机器人应用程序。
与地图数据和机器人自身位置相关的操作,如地图切换和定位。
提供机器人运动控制、状态检索和相关参数设置的接口。
用于与机器人相关的硬件设备的控制接口,例如喷雾器(用于消毒机器人)、箱门(用于送货机器人)和LED灯带控制。
为机器人任务操作提供控制接口。
提供基于Web的地图显示和编辑的API。
所有SDK都提供为Node.js模块。需要开发者具备一定的Node.js和JavaScript的理解。如果你以前没有使用过Node.js和JavaScript,请阅读Node.js和JavaScript的官方文档:
开发机器人应用程序需要一个Node.js环境和一个IDE工具。
机器人应用的编辑和调试工具是基于Node.js开发的。为了正确使用它们,您需要配置Node.js运行环境。
根据您的实际情况,下载并安装Node.js运行环境:https://nodejs.org/en/download/
机器人应用程序的开发使用 JavaScript 语言进行。我们推荐使用 WebStorm 或者 Visual Studio Code 进行开发。
# npm i -save-dev @autoxing/robot-js-sdk
在使用之前,必须先初始化SDK。以下是SDK初始化代码示例:
import { AXRobot, AppMode } from "@autoxing/robot-js-sdk";
// 创建AXRobot实例
const axRobot = new AXRobot("<应用ID>", "<应用密钥>", AppMode.WAN_APP);
// 初始化AXRobot实例
const successed = await axRobot.init();
if (successed) {
try {
// 连接到指定的机器人
const res = await axRobot.connectRobot({
robotId: "<机器人ID>"
});
console.log("连接成功: " + res.robotId);
// 使用机器人进行操作
} catch(err) {
console.log(err.errText)
}
} else {
// 初始化失败
}
- 应用ID - 应用标识符,可从相关运营商处获取
- 应用密钥 - 数据请求密钥,可从相关运营商处获取
在使用之前,必须先初始化SDK。以下是SDK自定义代码示例:
import { AXRobot, AppMode } from "@autoxing/robot-js-sdk";
// 创建自定义的AXRobot实例
const axRobot = new AXRobot("<应用ID>", "<应用密钥>", AppMode.WAN_APP, "<服务器地址>", "<Websocket地址>");
// 初始化AXRobot实例
const successed = await axRobot.init();
if (successed) {
try {
// 连接到指定的机器人
const res = await axRobot.connectRobot({
robotId: "<机器人ID>"
});
console.log("连接成功: " + res.robotId);
// 使用机器人进行操作
} catch(err) {
console.log(err.errText)
}
} else {
// 初始化失败
}
- 应用ID - 应用标识符,可从相关运营商处获取
- 应用密钥 - 数据请求密钥,可从相关运营商处获取
- 服务器地址 - 自定义服务器地址
- Websocket地址 - 自定义Websocket地址(可选)
- 注意:
- 1: 使用SDK版本v1.0.74或以上版本
- 2: 如果只提供了服务器地址而未提供Websocket地址,Websocket地址将根据服务器地址自动生成
- 示例: http://127.0.0.1:8080/ -> ws://127.0.0.1:8080/、https://127.0.0.1:8080/ -> wss://127.0.0.1:8080/
- 3: 如果提供了Websocket地址,则使用提供的地址
在HTML文件中定义一个地图容器:
...
<div id="map" style="width:100%;height:500px;"></div>
...初始化地图:
import { AXRobot, AppMode } from "@autoxing/robot-js-sdk";
// 创建AXRobot实例
const axRobot = new AXRobot("<应用ID>", "<应用密钥>", AppMode.WAN_APP);
const success = await axRobot.init();
if (success) {
// 创建地图
const axMap = axRobot.createMap("map"); // map是HTML容器标签的id
// 设置要显示的地图区域
axMap.setAreaMap("<区域ID>"); // areaId是地图区域的标识符
// 使用地图进行操作init() -> {Promise.<boolean>}
初始化实例
返回值 Promise.<boolean>
初始化是否成功
-
true- 成功 -
false- 失败
示例
import { AXRobot, AppMode } from "@autoxing/robot-js-sdk";
const axRobot = new AXRobot("<appId>", "<appSecret>", AppMode.WAN_APP);
const successed = await axRobot.init();
if (successed) {
// 初始化成功
...
} else {
// 初始化失败
...
}destroy() -> {void}
销毁机器人操作实例。
参数
无
返回值
无
示例
...
axRobot.destroy();
...connectRobot(req) -> {Promise}
连接到机器人。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
req |
ReqConnect | 连接参数 |
返回 Promise
无
示例
// 初始化机器人操作实例
...
try {
const res = await axRobot.connectRobot({
robotId: "<robotId>"
});
console.log("连接成功: " + res.robotId);
// 做一些操作
} catch(err) {
console.log(err.errText);
}getVersion() -> {string}
获取SDK的版本号。
参数
无
返回值 string
表示SDK版本号的字符串。
示例
const version = axRobot.getVersion();
console.log(version);setLanguage(language) -> {Promise.<boolean>}
设置语言
参数
| 名称 | 类型 | 描述 |
|---|---|---|
language |
number | 语言标识符 1 - 简体中文 2 - 英语 3 - 繁体中文 4 - 日语 5 - 韩语 |
返回 Promise.<boolean>
操作是否成功
-
true- 成功 -
false- 失败
示例
...
success := await axRobot.setLanguage(1);
if (success) {
...
} else {
...
}
...createMap(containerId, backgroundColor opt) -> {Promise.<AXMap>}
创建一个地图。
参数
| 名称 | 数据类型 | 描述 | 备注 |
|---|---|---|---|
containerId |
字符串 | 地图容器的HTML标签ID | |
backgroundColor |
字符串 | 可选参数; 地图的背景颜色 | "#eeeeee" |
glyphs |
字符串 | 可选参数; 地图的字体库 | 1: 对于Web平台,可以使用http、https或相对路径 2: 对于非Web平台,必须使用http或https |
返回值 Promise.<AXMap>
地图实例
示例
...
const map = await axRobot.createMap("map", "#eeeeee");
...resetMap(areaId) -> {Promise.<boolean>}
重置机器人的地图区域。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
areaId |
字符串 | 地图区域标识符 |
返回值 Promise.<boolean>
指示设置是否成功。
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.resetMap("<areaId>");
...resetPose(mapPose) -> {Promise.<boolean>}
重置机器人的位置姿态。
参数
| 名称 | 数据类型 | 描述 | 备注 |
|---|---|---|---|
mapPose |
MapPose | 位置姿态 | |
isChargingPose |
boolean | 可选项;是否为充电桩位置 |
默认为充电桩位置 false: 当前机器人的位置姿态, true: 充电桩位置
|
返回值 Promise.<boolean>
设置是否成功。
-
true- 成功 -
false- 失败
示例
...
const success = await resetPose({
areaId: "<areaId>",
x: 0,
y: 0,
yaw: 0
});
...updateMap() -> {Promise.<boolean>}
更新机器人的地图数据。
参数
无
返回 Promise.<boolean>
更新是否成功。
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.updateMap();
...getPlaceList() -> {any}
获取当前地区站点列表的函数。
参数
无
返回值 any
站点列表。
示例
...
const list = axRobot.getPlaceList();
...getPoiList(req) -> {Promise.<any>}
获取站点列表。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
req |
RequestParam | 请求参数 |
返回值 Promise.<any>
站点列表
示例
...
const result = await getPoiList({
robotId: "<robotId>"
});
console.log(result.count); // 符合条件的POI总数
console.log(result.list); // 站点列表
result.list.forEach(poi => {
console.log(poi.areaId); // 站点所属区域的标识符
console.log(poi.buildingId); // 站点所属建筑物的标识符
console.log(poi.businessId); // 站点所属业务的标识符
console.log(poi.floor); // 站点所在楼层
console.log(poi.id); // 站点的标识符
console.log(poi.name); // 站点的名称
console.log(poi.type); // 站点的类型
console.log(poi.coordinates); // 站点坐标,格式为[x, y],例如[13.411045089526397, -6.95027412476179]
console.log(poi.yaw); // 站点的朝向角度,以度为单位
});
...getRobotOwnCharges() -> {Promise.<any>}
获取机器人绑定的充电站列表。
参数
无
返回 Promise.<any>
充电站列表
示例
...
const charges = await axRobot.getRobotOwnCharges();
console.log(charges.count); // 充电站数量
console.log(charges.list); // 充电站列表
charges.list.forEach(chargingPile => {
console.log(chargingPile.areaId); // 充电站所在区域的标识符
console.log(chargingPile.buildingId); // 充电站所在建筑物的标识符
console.log(chargingPile.businessId); // 充电站所属的业务的标识符
console.log(chargingPile.floor); // 充电站所在楼层
console.log(chargingPile.id); // 充电站的标识符
console.log(chargingPile.name); // 充电站的名称
console.log(chargingPile.coordinate); // 充电站的坐标,格式为 [x, y],例如 [13.411045089526397,-6.95027412476179]
console.log(chargingPile.yaw); // 充电站的方向角度
});
...getEffectiveAreaList() -> {Promise.<any>}
获取有效区域列表。
参数
无
返回值 Promise.<any>
| 字段名称 | 类型 | 描述 |
|---|---|---|
status |
数字 | 响应状态码 200 - 成功 400 - 参数错误 500 - 内部服务器错误 |
message |
字符串 | 响应状态描述 |
data |
对象 | 响应数据 |
data.effective |
数组 | 有效区域列表 - 实际楼层 |
data.ineffective |
数组 | 无效区域列表 - 实际楼层 |
data.effectiveFloorNames |
数组 | 有效区域列表 - 显示楼层 |
data.ineffectiveFloorNames |
数组 | 无效区域列表 - 显示楼层 |
{
"status": 200,
"message": "ok",
"data": {
"effective": [-1, 1, 3],
"ineffective": [-2, 2, 5, 6, 7],
"effectiveName": [-1, 1, 3],
"ineffectiveName": [-2, 2, 5, 6, 7]
}
}
示例
...
const result = await getEffectiveAreaList();
// 进行相关操作
...getAreaList() -> {Promise.<any>}
获取区域列表。
参数
无
返回值 Promise.<any>
区域列表。
示例
...
const result = await axRobot.getAreaList();
const data = result.data
console.log(data.count); // 地图区域的数量
console.log(data.list); // 地图区域列表
data.list.forEach(area => {
console.log(area.id); // 区域标识符
console.log(area.buildingId); // 区域所属的建筑标识符
console.log(area.businessId); // 区域所属的业务标识符
console.log(area.name); // 区域名称
console.log(area.floor); // 区域楼层
console.log(area.createTime); // 区域创建时间
});
...getBusinessId(mode) -> {Promise.<string>}
获取机器人的业务标识符
参数
| 名称 | 类型 | 描述 |
|---|---|---|
mode |
number | 可选; 机器人模式 |
返回值 Promise.<string>
业务标识符
示例
...
const businessId = await axRobot.getBusinessId();
...getAreaPic(areaId) -> {Promise.<any>}
获取区域地图的图片。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
areaId |
string | 区域标识符 |
返回值 Promise.<any>
区域地图图片的数据流。
示例
...
const mapData = await axRobot.getAreaPic("<areaId>");
...setEnableTrack(enable) -> void
启用或禁用机器人的地图轨迹跟踪(需要地图显示)。
参数
| 参数名 | 数据类型 | 描述 |
|---|---|---|
enable |
boolean | 是否跟踪机器人轨迹 |
返回值
无
示例
...
axRobot.setEnableTrack(true);
...beginControl() -> {void}
开始控制机器人运动。
参数
无
返回值
无
示例
...
axRobot.beginControl();
...endControl() -> {void}
关闭机器人的移动控制。
参数
无
返回值
无
示例
...
axRobot.endControl();
...motionFor(type) -> {void}
机器人运动控制。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
type |
MotionType | 运动类型 |
返回值
无
示例
...
axRobot.motionFor(MotionType.Forward);
...motionControl(linearVelocity, angularVelocity) -> {void}
控制机器人的运动。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
linearVelocity |
number | 线速度 |
angularVelocity |
number | 角速度 |
返回值
无
示例
...
axRobot.motionControl(0.1, 0.2);
...setEmergency(type) -> {void}
将机器人设置为紧急停止状态。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
type |
EmergencyType | 紧急停止方法。 |
返回值
无
示例
...
axRobot.setEmergency(EmergencyType.Start); // 进入紧急停止状态
...
axRobot.setEmergency(EmergencyType.Stop); // 结束紧急停止状态
...moveTo(pose) -> {void}
机器人移动到指定的位置。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
pose |
Pose | 机器人姿态 |
返回值
无
示例
...
axRobot.moveTo({
x: 0,
y: 0,
yaw: 0
});
...goHome(pose) -> {Promise.<boolean>}
控制机器人返回充电桩。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
pose |
姿态 | 姿态 |
返回值 Promise.<boolean>
操作是否成功。
-
true- 成功 -
false- 失败
示例
...
axRobot.goHome({
x: 0,
y: 0,
yaw: 0
});
...subscribeRealState(listener) -> {void}
订阅机器人的实时状态。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
listener |
OnRobotListner | 订阅机器人实时状态的回调函数。 |
返回值
无
示例
...
axRobot.subscribeRealState({
onStateChanged: state => {
console.log(state.isManualMode); // 机器人是否处于手动模式
console.log(state.isTasking); // 机器人是否正在执行任务
console.log(state.isCharging); // 机器人是否正在充电
console.log(state.isRemoteMode); // 机器人是否处于远程控制模式
console.log(state.battery); // 当前电池电量(百分比)
console.log(state.robotId); // 机器人标识符
console.log(state.speed); // 当前速度(米/秒)
console.log(state.areaId); // 当前区域ID
console.log(state.isEmergencyStop); // 机器人是否处于紧急停止状态
console.log(state.x); // 位置坐标的x分量
console.log(state.y); // 位置坐标的y分量
console.log(state.yaw); // 当前角度(弧度)
console.log(state.locQuality); // 当前定位质量(0-100)
console.log(state.hasObstruction); // 当前是否有障碍物
console.log(state.errors); // 错误代码
console.log(state.isGoHome); // 机器人是否正在返回充电桩
console.log(state.timestamp); // 机器人状态的时间戳
// 做一些操作
}
});
...getState() -> {Promise.<any>}
获取机器人当前状态。
参数
无
返回值 Promise.<any>
机器人的当前状态。
示例
...
const state = await axRobot.getState();
console.log(state.isManualMode); // 是否处于手动模式
console.log(state.isTasking); // 是否正在执行任务
console.log(state.isCharging); // 是否正在充电
console.log(state.isRemoteMode); // 是否处于遥控模式
console.log(state.battery); // 当前电池电量(百分比)
console.log(state.robotId); // 机器人标识符
console.log(state.speed); // 当前速度(米/秒)
console.log(state.areaId); // 当前区域ID
console.log(state.isEmergencyStop); // 是否处于紧急停止模式
console.log(state.x); // 位置坐标的x分量
console.log(state.y); // 位置坐标的y分量
console.log(state.yaw); // 当前角度(弧度)
console.log(state.locQuality); // 当前定位质量(0-100)
console.log(state.hasObstruction); // 当前是否有障碍物
console.log(state.errors); // 错误代码
console.log(state.isGoHome); // 是否正在返回充电座
console.log(state.timestamp); // 机器人状态的时间戳
// 做一些操作
...setSpeed(speed) -> {Promise.<boolean>}
设置机器人移动的速度。
参数
| 名称 | 数据类型 | 说明 |
|---|---|---|
speed |
number | 移动速度,单位为米/秒 |
返回值 Promise.<boolean>
操作是否成功。
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.setSpeed(0.5);
...setVolume(volume, mode) -> {Promise.<boolean>}
设置机器人的音量。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
volume |
number | 音量级别,范围为0~100 |
mode |
number | 执行模式 1 - 上位机 2 - 底盘 |
返回 Promise.<boolean>
指示设置是否成功。
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.setVolume(50, 1);
...stopPlayAudio(mode) -> {Promise.<boolean>}
停止播放背景音乐。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
mode |
number | 1 - PC 2 - 底盘 |
返回 Promise.<boolean>
操作是否成功。
- true - 成功
- false - 失败
示例
...
const success = await axRobot.stopPlayAudio(1);
...setPlayAudio(playAudio) -> {Promise.<boolean>}
设置音频播放。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
playAudio |
PlayAudio | 音频播放内容 |
返回值 Promise.<boolean>
是否设置成功
- true - 设置成功
- false - 设置失败
示例
...
let playAudio = {
mode: 1,
url: "",
audioId: "38001",
volume: 10,
interval: -1,
num: 1,
duration: 5
}
const success = await axRobot.setPlayAudio(playAudio);
...removeWheelOverload() -> {Promise.<boolean>}
清除轮子过载。
参数
无
返回值 Promise.<boolean>
操作是否成功。
- true - 成功
- false - 失败
示例
...
const success = await axRobot.removeWheelOverload();
...getRobotId() -> {string}
获取当前连接机器人的标识符。
参数
无
返回值 string
机器人ID
示例
...
const robotId = axRobot.getRobotId();
...restartRobot() -> {Promise.<boolean>}
重新启动机器人。
参数
无
返回 Promise.<boolean>
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.restartRobot();
...setGlobalPosition() -> {Promise.<boolean>}
设置机器人的全局位置。
参数
无
返回 Promise.<boolean>
设置是否可靠。
-
true- 可靠 -
false- 不可靠
示例
...
const success = await axRobot.setGlobalPosition();
...setServerInfos(serverInfo) -> {Promise.<boolean>}
设置机器人连接的服务器信息。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
serverInfo |
ServerInfo | 服务器信息 |
返回值 Promise.<boolean>
操作是否成功
- true - 成功
- false - 失败
示例
...
let serverInfo = {
ip: "http://127.0.0.1:8080/",
type: -1,
offline: 0
}
const success = await axRobot.setServerInfos(serverInfo);
...setWifi(ssId, password) -> {Promise.<boolean>}
设置机器底盘的WiFi。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
ssId |
string | WiFi名称 |
password |
string | 密码 |
返回 Promise.<boolean>
指示操作是否成功。
- true - 成功
- false - 失败
示例
...
const success = await axRobot.setWifi("test-wifi", "123456");
...setRouteMode(mode) -> {Promise.<boolean>}
设置机器人的网络模式。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
mode |
number | 网络类型 0:外壳供电网络 1:底盘WiFi供电网络 2:底盘4G供电网络 3:底盘供电网络 |
返回值 Promise.<boolean>
是否成功
- true - 成功
- false - 失败
示例
...
const success = await axRobot.setRouteMode(0);
...getRouteMode() -> {Promise.<string>}
获取机器人的网络模式。
参数
无
返回 Promise.<string>
网络模式
示例
const mode = await axRobot.getRouteMode();
console.log(mode);
- 注意: 可能的返回值: etho_first: "头部连接WiFi上网" / "头部连接4G上网" (取决于头部是否连接WiFi), wlan0_first: "底盘连接WiFi上网", usbo_first: "底盘连接4G上网"
方法
openSprayer(gear) → {Promise.<boolean>}
打开喷雾器。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
gear |
number | 档位水平 |
返回值 Promise.<boolean>
是否成功
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.openSprayer("<gear>");
...closeSprayer() → {Promise.<boolean>}
关闭喷雾器。
返回值 Promise.<boolean>
是否成功
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.closeSprayer();
...方法
openBoxDoor(doorIds, mode) → {Promise.<boolean>}
打开箱门。
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
doorIds |
number[] | 是 | 箱门编号列表,取值范围为1至4。 |
mode |
number | 否 | 执行模式:1=上位机,2=底盘;默认值:1。 |
返回值 Promise.<boolean>
操作是否成功。
-
true- 成功 -
false- 失败
示例
...
// 打开1号门
const success = await axRobot.openBoxDoor([1], 1);
...closeBoxDoor(doorIds, mode) → {Promise.<boolean>}
关闭箱门。
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
doorIds |
number[] | 是 | 箱门编号列表,取值范围为1至4。 |
mode |
number | 否 | 执行模式:1=上位机,2=底盘;默认值:1。 |
返回值 Promise.<boolean>
操作是否成功。
-
true- 成功 -
false- 失败
示例
...
// 关闭2号门
const success = await axRobot.closeBoxDoor([2], 1);
...方法
openLightBelt(lightBelt) → {Promise.<boolean>}
打开灯带。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
lightBelt |
LightBelt | 灯带 |
返回值 Promise.<boolean>
操作是否成功
-
true- 成功 -
false- 失败
示例
...
let lightBelt = {
mode: 1,
color: LightColor.Green,
indexs: [
{ index: 0, num: 6 }
]
}
const success = await axRobot.openLightBelt(lightBelt);
...closeLightBelt(lightBelt) → {Promise.<boolean>}
关闭灯带。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
lightBelt |
LightBelt | 灯带 |
返回值 Promise.<boolean>
操作是否成功
-
true- 成功 -
false- 失败
示例
...
let lightBelt = {
mode: 1,
color: LightColor.Green,
indexs: [
{ index: 0, num: 6 }
]
}
const success = await axRobot.closeLightBelt(lightBelt);
...方法
subscribeTaskState(listener) -> {void}
订阅任务状态。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
listener |
OnTaskListener | 任务状态回调 |
返回值 void
示例
...
axRobot.subscribeTaskState({
onTaskChanged: (state: any) => {
console.log(state.actType); // 任务状态动作类型 1000 - 任务开始 14 - 出发 16 - 到达 40 - 等待交互 1001 - 任务完成
console.log(state.data); // 具体任务状态数据
}
});
...方法
startTask(task) -> {Promise.<boolean>}
开始执行任务。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
task |
任务信息 | 任务信息 |
返回值 Promise.<boolean>
任务是否成功执行
-
true- 成功 -
false- 失败
示例
...
let task = {
name: "多点配送",
runNum: 1,
taskType: 2,
runType: 21,
pts: [
{
x: 0.11,
y: 1.22,
yaw: 89,
areaId: "xxxxxxxxxxxxxx",
type: -1,
ext: {},
stepActs: [
{
type: ActionType.PlayAudio,
data: {...}
},
...
]
},
...
]
}
const success = await axRobot.startTask(task);
...方法
pauseTask() -> {Promise.<boolean>}
暂停当前正在执行的任务。
返回值 Promise.<boolean>
成功指示器
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.pauseTask();
...方法
continueTask() -> {Promise.<boolean>}
继续当前暂停的任务,主要用于涉及人机交互的任务。
返回 Promise.<boolean>
成功状态
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.continueTask();
...方法
cancelTask() -> {Promise.<boolean>}
取消当前正在执行的任务。
返回 Promise.<boolean>
成功状态
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.cancelTask();
...resumeTask() -> {Promise.<boolean>}
恢复任务。
参数
无
返回值
执行是否成功
- true - 成功
- false - 失败
示例
...
const success = await resumeTask();
...getCurrentTask() -> {Promise.<any>}
获取当前正在执行的任务的信息。
返回 Promise.<any>
| 名称 | 类型 | 描述 |
|---|---|---|
task |
any | 任务信息 |
示例
...
let task = await axRobot.getCurrentTask();
console.log(task.isCancel); // 任务是否被取消
console.log(task.runType); // 运行类型;0 - 定点杀人,1 - 临时杀人,20 - 快递送餐,21 - 多点送餐,22 - 领航,23 - 巡航,24 - 返回,25 - 去充电站
console.log(task.businessId); // 任务所属的业务标识
console.log(task.robotId); // 机器人标识
console.log(task.buildingId); // 建筑物标识
console.log(task.isExcute); // 是否已执行
console.log(task.taskType); // 任务类型;0 - 杀人,1 - 返回充电站,2 - 餐馆
console.log(task.taskPts); // 任务节点信息,请参考任务启动说明中的详细信息
console.log(task.createTime); // 任务创建时间
console.log(task.runNum); // 任务执行次数
console.log(task.name); // 任务名称
console.log(task.busiType); // 业务类型
console.log(task.isDel); // 是否已删除
console.log(task.taskId); // 任务标识
...updateTask(taskId, pts) -> {Promise.<boolean>}
更新任务。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
taskId |
string | 任务标识符 |
pts |
Array | 任务点列表;参考用于执行任务的 taskPts 参数 |
返回值 Promise.<boolean>
更新是否成功
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.updateTask("<taskId>", <pts>);
...方法
restartTask(taskId) -> {Promise.<boolean>}
重新启动已暂停或已完成的任务。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
taskId |
string | 任务 ID |
返回值 Promise.<boolean>
是否成功
-
true- 成功 -
false- 失败
示例
...
const success = await axRobot.restartTask("<taskId>");
...saveCruise(cruiseInfo) -> {Promise<boolean>}
这个函数用于设置或更新巡航路线。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
cruiseInfo |
CruiseInfo | 巡航路线的信息 |
返回值 Promise.<boolean>
操作是否成功的返回值:
- true - 成功
- false - 失败
示例
...
let cruiseInfo = {
id: 12,
name: "test-cruise",
businessId: "",
sites: [{
poiId: "6423afdb1162805312f27a75",
poiName: "test-poi"
}],
remark: ""
}
const success = await axRobot.saveCruise(cruiseInfo);
...getCruises() -> {Promise<any>}
获取游轮信息。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
businessId |
string | 可选;业务标识符 |
返回 Promise.<any>
| 名称 | 类型 | 描述 |
|---|---|---|
result |
any | 游轮信息 |
示例
...
const result = await axRobot.getCruises(cruiseInfo);
console.log(result.status)
console.log(result.data)
let cruise = result.data[0]
console.log(cruise.id)
console.log(cruise.name)
console.log(cruise.businessId)
console.log(cruise.sites)
...deleteCruise(ids) -> {Promise<boolean>}
删除巡航路线。
参数
| 参数名 | 类型 | 描述 |
|---|---|---|
ids |
number[] | 巡航路线标识的集合 |
返回 Promise.<boolean>
操作是否成功。
- true - 成功
- false - 失败
示例
...
const success = await axRobot.deleteCruise(ids);
...syncCruiseCloud(businessId) -> {Promise<boolean>}
将巡航路线同步到云端。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
businessId |
string | 业务 ID |
返回值: Promise.<boolean>
操作是否成功。
- true - 成功
- false - 失败
示例
...
const success = await axRobot.syncCruiseCloud(businessId);
...syncCruiseLocal() -> {Promise<boolean>}
将本地巡航路线上传至云端。
参数
无
返回值 Promise.<boolean>
上传是否成功。
- true - 成功
- false - 失败
示例
...
const success = await axRobot.syncCruiseLocal();
...setAreaMap(areaId) -> {void}
设置地图区域
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
areaId |
字符串 | 地图区域 ID |
返回值
无
示例
...
axMap.setAreaMap("<areaId>");
...setMapCenter(coordinates) -> {void}
设置地图中心点
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
coordinates |
数组 | 中心点坐标 [x, y] |
返回值
无
示例
...
axMap.setMapCenter([0, 0]);
...zoomTo(zoom) -> {void}
设置地图缩放级别
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
zoom |
数字 | 地图缩放级别,取值范围为 0~22 |
返回值
无
示例
...
axMap.zoomTo(10);
...fly(coordinates) -> {void}
将地图飞到特定点
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
coordinates |
数组 | 目标点坐标 [x, y] |
返回值
无
示例
...
axMap.fly([0, 0]);
...getCurrentPointPosition(featureId) -> {object}
获取当前选中点的位置信息
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
featureId |
字符串 | 点的 ID |
返回值 object
姿态信息
-
x- 坐标的 x 分量 -
y- 坐标的 y 分量 -
yaw- 方向角
示例
...
const pose = axMap.getCurrentPointPosition("<featureId>");
console.log(pose); // {x:1, y: 2, yaw: 3}
...getFeature(id) -> {object}
根据 ID 获取特征信息
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
id |
字符串 | 特征的 ID |
返回值 object
特征信息;结构参考 https://geojson.org/
示例
...
const feature = axMap.getFeature("<featureId>");
...getPlaceList() -> {any}
获取所有位置点
参数
无
返回值 any
位置点列表;结构参考 https://geojson.org/
示例
...
const list = axMap.getPlaceList();
...setClickMapCallback(callback) -> {void}
设置点击地图的回调函数
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
callback |
函数 | 回调函数 |
返回值
无
示例
...
axMap.setClickMapCallback(val => {
console.log(val.type); // 始终为 'LayerPoint'
console.log(val.data); // 被点击的元素,数据结构参考 GeoJSON
});
...setSelectedFeatures(featureId) -> {void}
根据 ID 选择地图中的特征
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
featureId |
字符串 | 特征的 ID,多个特征的 ID 用逗号分隔 |
返回值
无
示例
...
axMap.setSelectedFeatures("<featureId>");
...addPoint(coordinates, properties opt) -> {string}
向地图中添加一个点。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
coordinates |
number[] | 点的坐标 [x, y] |
properties |
object | 可选;自定义属性 |
返回值 string
被添加点的特征标识符。
示例
...
axMap.addPoint([0, 0], {
name: "test", // 名称
color: "#f00", // 颜色
radius: 2, // 半径,以像素为单位
yaw: 0, // 方向角
enableSelect: true // 是否允许选择
});
...addLine(coordinates, properties opt) -> {string}
向地图中添加一条线。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
coordinates |
array[] | 线上的坐标数组 |
properties |
object | 可选;自定义属性 |
返回值 string
被添加线的特征标识符。
示例
...
axMap.addLine([[0, 0], [10, 10]], {
color: "#f00", // 颜色
width: 2, // 宽度,以像素为单位
dash: 'dash' // 虚线
});
...addMarker(imgSrc, coordinates, yaw) -> {any}
向地图中添加一个标记。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
imgSrc |
string | 图片的URL |
coordinates |
number[] | 标记的坐标 [x, y] |
yaw |
number | 方向角 |
返回值 any
标记对象。
示例
...
const marker = axMap.addMarker("<imgSrc>", [0, 0], 0);
...setMarkerProperties(marker, coordinates, yaw) -> {void}
设置标记的属性。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
marker |
any | 标记对象 |
coordinates |
number[] | 新的坐标 [x, y] |
yaw |
number | 新的方向角 |
返回值
无
示例
...
axMap.setMarkerProperties(marker, [1, 1], 0);
...removeMarker(marker) -> {void}
从地图中移除一个标记。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
marker |
any | 标记对象 |
返回值
无
示例
...
axMap.removeMarker(marker);
...clearAreaMap() -> {void}
清除区域地图。
参数
无
返回值
无
示例
...
axMap.clearAreaMap();
...clearFeature() -> {void}
清除地图数据。
参数
无
返回值
无
示例
...
axMap.clearFeature();
...deleteFeature(id) -> {void}
删除指定 ID 的要素。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
id |
string | 要素 ID |
返回值
无
示例
...
axMap.deleteFeature("<featureId>");
...editPose(coordinates, properties opt) -> {void}
设置当前位姿的位置。
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
coordinates |
array | 坐标 [x, y] |
properties |
object | 可选; 自定义属性 |
返回值
无
示例
...
axMap.editPose([0, 0]);
...endEditPose() -> {object}
取消设置当前位姿的位置。
参数
无
返回值 object
编辑后的位姿。
示例
...
const post = axMap.endEditPose();
...beautifyMapImg(imgUrl, obstacle, throughArea, other) -> {Promise.<string>}
美化地图图片
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
imgUrl |
string | 源图片的URL |
obstacle |
object | 障碍物的RGBA色值 示例: {r: 42, g:124, b:128, a:255}
|
throughArea |
object | 通过区域的RGBA色值 |
other |
object | 其他区域的RGBA色值 |
返回值 Promise.<string>
美化后图片的URL
示例
...
const newImg = await axMap.beautifyMapImg("<imgUrl>", {...}, {...}, {...});
...project(coordinates) -> {array.<number>}
将地图坐标转换为像素偏移量
参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
coordinates |
array | 地图坐标 [x, y] |
返回值 array.<number>
转换后的像素偏移量
示例
...
const pixel = axMap.project([0, 0]);
...destroy() -> {void}
销毁地图对象
参数
无
返回值
无
示例
...
axMap.destroy();
...###总统计信息
getStatisticsTotal() -> {Promise<any>}
该方法检索总统计数据。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
statisticsTotal |
StatisticsTotal |
返回Promise.<any>
| 名称 | 类型 | 描述 |
|---|---|---|
result |
any | 统计信息 |
示例
...
const result = await axRobot.getStatisticsTotal(statisticsTotal);
console.log(result)
...getSingleTaskStatistics() -> {Promise<any>}
获取单个任务的统计信息。
参数
| 名称 | 类型 | 描述 |
|---|---|---|
singleTaskStatistics |
SingleTaskStatistics | 单个任务统计信息 |
返回类型 Promise.<any>
| 名称 | 类型 | 描述 |
|---|---|---|
result |
any | 统计信息 |
示例
...
const result = await axRobot.getSingleTaskStatistics(singleTaskStatistics);
console.log(result)
...getTaskStatistics() -> {Promise<any>}
获取任务统计信息
参数
| 名称 | 类型 | 描述 |
|---|---|---|
taskStatistics |
TaskStatistics | 任务统计信息 |
返回值 Promise.<any>
| 名称 | 类型 | 描述 |
|---|---|---|
result |
any | 统计信息 |
示例
...
const result = await axRobot.getTaskStatistics(taskStatistics);
console.log(result)
...任务的操作类型。
枚举值
| 值 | 描述 |
|---|---|
ActionType.None |
无 |
ActionType.PlayAudio |
播放音频 参数 |
ActionType.OpenDoor |
打开门 参数 |
ActionType.Pause |
暂停操作 参数 |
ActionType.GearOperation |
档位操作 参数 |
ActionType.StopAudio |
停止播放音频 参数 |
ActionType.OpenLight |
打开灯光 参数 |
ActionType.CloseLight |
关闭灯光 参数 |
ActionType.TaskStart |
开始任务 参数 |
ActionType.TaskEnd |
结束任务 参数 |
播放音频操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
audioId |
字符串 | 可选;本地音频资源标识,默认为文件名 |
url |
字符串 | 可选;音频的在线URL |
volume |
数字 | 音量;0~100 |
mode |
数字 | 执行模式;1 - 在计算机上执行 2 - 在底盘上执行 |
interval |
数字 | 循环播放的间隔时间;单位:秒 -1表示只播放一次 |
num |
数字 | 可选;播放次数 |
duration |
数字 | 可选;总播放时长;单位:秒 如果同时设置了 num参数,将遵循num参数 |
channel |
数字 | 播放通道; 1 - 普通音乐 2 - 背景音乐 底盘不支持多通道播放 |
示例
{
"type": ActionType.PlayAudio,
"data": {
"audioId": "3111001",
"volume": 50,
"mode": 1,
"interval": 20,
"num": 10,
"channel": 1
}
}停止播放音频操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
mode |
数字 | 执行模式;1 - 在计算机上执行 2 - 在底盘上执行 |
channel |
数字 | 播放通道; 1 - 普通音乐 2 - 背景音乐 底盘不支持多通道播放 |
示例
{
"type": ActionType.StopAudio,
"data": {
"mode": 1,
"channel": 1
}
}打开车门操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
mode |
数字 | 执行模式;1 - 在计算机上执行 2 - 在底盘上执行 |
doorIds |
数字数组 | 车厢编号;从上到下,从左到右,1,2,3,4 |
示例
{
"type": ActionType.OpenDoor,
"data": {
"mode": 1,
"doorIds": [1]
}
}关闭车门操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
mode |
数字 | 执行模式;1 - 在计算机上执行 2 - 在底盘上执行 |
doorIds |
数字数组 | 车厢编号;从上到下,从左到右,1,2,3,4 |
示例
{
"type": ActionType.CloseDoor,
"data": {
"mode": 1,
"doorIds": [1]
}
}暂停操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
pauseTime |
数字 | 暂停时间,单位:秒 0表示不暂停 |
示例
{
"type": ActionType.Pause,
"data": {
"pauseTime": 20
}
}喷雾器操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
subType |
数字 | 喷雾器动作参数; 0:关闭喷雾器,1-5:设置档位,打开喷雾器 |
示例
{
"type": ActionType.GearOperation,
"data": {
"subType": 2
}
}打开灯带操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
mode |
数字 | 执行模式;1 - 在计算机上执行 2 - 在底盘上执行 |
color |
LightColor | 灯带颜色 |
indexs |
LightIndex | 可选;分段显示,最多支持4段 |
示例
{
"type": ActionType.OpenLight,
"data": {
"mode": 1,
"color": LightColor.Green,
"indexs": [
{
"index": 0,
"num": 10
}
]
}
}关闭灯带操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
mode |
数字 | 执行模式;1 - 在计算机上执行 2 - 在底盘上执行 |
indexs |
LightIndex | 可选;分段显示,最多支持4段 |
示例
{
"type": ActionType.OpenLight,
"data": {
"mode": 1,
"indexs": [
{
"index": 0,
"num": 10
}
]
}
}启动任务操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
taskId |
字符串 | 任务ID |
示例
{
"type": ActionType.TaskStart,
"data": {
"taskId": "152afafb-a682-4d3c-934a-1099b3aa35e3"
}
}任务结束操作参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
taskId |
字符串 | 任务ID |
示例
{
"type": TaskType.TaskEnd,
"data": {
"taskId": "b4ddea09-2448-4db5-a580-47ae763f9693"
}
}动作节点信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
type |
ActionType | 动作类型 |
data |
object | 动作参数 |
机器人紧急停止模式
枚举
| 值 | 描述 |
|---|---|
EmergencyType.Stop |
机器人退出紧急停止状态 |
EmergencyType.Start |
机器人进入紧急停止状态 |
灯带控制
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
mode |
数字 | 执行模式,1-电脑,2-底盘 |
color |
灯带颜色 | 灯带颜色,详见灯带颜色 |
indexs |
灯带索引[] | 分段灯带的数组 |
灯条的颜色。
枚举:
| 值 | 描述 |
|---|---|
LightColor.Red |
红色 |
LightColor.Green |
绿色 |
LightColor.Blue |
蓝色 |
LightColor.Yellow |
黄色 |
分段LED灯带
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
index |
number | LED珠的索引 |
num |
number | LED珠的数量 |
地图姿态
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
areaId |
string | 地图区域标识符 |
继承自
机器人运动类型
枚举
| 值 | 描述 |
|---|---|
MotionType.Forward |
机器人向前移动,无障碍物避免 |
MotionType.Back |
机器人向后移动,无障碍物避免 |
MotionType.TurnLeft |
机器人向左转,无障碍物避免 |
MotionType.TurnRight |
机器人向右转,无障碍物避免 |
MotionType.Cancel |
机器人停止移动 |
MotionType.Auto |
机器人处于自动模式 |
MotionType.Manual |
机器人处于手动模式 |
订阅机器人状态变化的回调函数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
onStateChange |
函数 | 机器人状态变化的回调函数 |
任务状态订阅回调
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
onTaskChanged |
function | 任务状态变化回调函数 |
| 值 | 类型名称 |
|---|---|
1 |
快餐店 |
2 |
饮品店 |
3 |
其他 |
4 |
公司 |
5 |
住宅 |
6 |
电梯 |
7 |
大门 |
8 |
自动门 |
9 |
充电站 |
10 |
集结点 |
11 |
餐桌编号 |
12 |
私人包间 |
13 |
酒吧柜台 |
14 |
外卖区 |
15 |
服务窗口 |
16 |
大堂 |
17 |
餐厅 |
18 |
商店 |
19 |
前台 |
20 |
门牌号 |
22 |
工作站编号 |
21 |
房间号 |
23 |
集装箱装运点 |
24 |
集装箱集结点 |
25 |
途经点 |
26 |
消毒点 |
28 |
候车区 |
29 |
调度点 |
30 |
快递站点 |
对象的位置和方向。
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
x |
数字 | 位置坐标的 x 分量 |
y |
数字 | 位置坐标的 y 分量 |
yaw |
数字 | 弧度的方向 |
angle |
数字 | 可选项;以角度表示的方向 |
分页请求参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
pageSize |
number | 每页记录数 |
pageNum |
number | 分页页码 |
请求参数
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
robotId |
string | 机器人标识符 |
businessId |
string | 可选; 业务标识符 |
areaId |
string | 可选; 地图区域标识符 |
type |
number | 可选; POI类型; 参考:POI类型 |
page |
RequestPage | 可选; 结果分页参数 |
properties |
object | 可选; POI过滤属性 |
任务信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
name |
字符串 | 任务的名称 |
robotId |
字符串 | 机器人的标识符 |
runNum |
数字 | 任务已执行的次数 默认为1;0表示无限循环 |
taskType |
数字 | 任务类型 0 - 消毒和杀菌 1 - 返回并充电 2 - 餐厅 |
runType |
数字 | 执行类型 0 - 定时消毒 1 - 临时消毒 20 - 快速送餐 21 - 多位置送餐 22 - 导航 23 - 巡航 24 - 返回 25 - 充电点 |
curPt |
任务点 | 机器人当前位置 |
taskPts |
任务点[] | 任务点列表 |
backPt |
任务点 | 可选项;任务完成后返回的点 |
任务节点信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
areaId |
字符串 | 任务节点所在地图区域的标识符 |
x |
数字 | 任务节点坐标的x分量 |
y |
数字 | 任务节点坐标的y分量 |
yaw |
数字 | 任务节点的方向;单位:度 |
type |
数字 | 兴趣点类型;参考兴趣点类型 |
ext |
对象 | 可选;任务节点的自定义扩展信息 |
stepActs |
基础动作[] | 可选;任务节点的动作列表 |
示例
{
"x": 0.11,
"y": 1.22,
"yaw": 89,
"areaId": "xxxx",
"type": -1,
"ext": {...},
"stepActs": [...]
}底盘故障代码
| 值 | 描述 |
|---|---|
| 0 | 无效值 |
| 1001 | 计划节点未运行 |
| 1002 | 占用网格服务器节点未运行 |
| 1003 | 地图服务器节点未运行 |
| 1004 | Cartographer_occupancy_grid_node节点未运行 |
| 1005 | 未在1秒内接收到障碍物地图/maps/5cm消息 |
| 1006 | 跟踪控制节点未运行(已弃用) |
| 1007 | 运动过程中卡住 |
| 1008 | 运动过程中未达到显著进展,可能卡住 |
| 2001 | 轮子节点未运行 |
| 2002 | 轮子过载 |
| 2003 | 左轮故障 |
| 2004 | 右轮故障 |
| 2005 | 轮子状态消息频率异常 |
| 2006 | 轮驱动报告错误 |
| 2007 | 轮子失控报警 |
| 2008 | 轮子严重滑动 |
| 2009 | 轮子控制启动错误 |
| 2501 | 轮子滑动 |
| 3001 | Odom节点未运行 |
| 3002 | Odom消息频率异常 |
| 4001 | Imu节点未运行 |
| 4002 | Imu消息频率异常 |
| 4003 | Imu角速度异常(已弃用) |
| 4004 | 垂直角度异常,可能翻车 |
| 4005 | Imu原地颤抖 |
| 4006 | Imu原地旋转 |
| 4007 | Imu重新连接 |
| 4008 | 倾斜角度过大,高概率摔倒 |
| 4501 | Imu未校准 |
| 5001 | 激光雷达节点未运行 |
| 5002 | 激光雷达消息频率异常 |
| 5003 | 激光雷达扫描频率持续异常,一般超过1秒间隔 |
| 5004 | Lidar_perception_node节点未运行 |
| 5005 | 发送命令到激光雷达异常 |
| 5501 | 激光雷达扫描频率瞬时异常(已弃用) |
| 6003 | 存储空间不足 |
| 6001 | 最近1分钟的负载平均值很高 |
| 6002 | 最近10秒内CPU平均使用率超过90% |
| 6004 | 核心温度超过阈值 |
| 6005 | 内存使用量显著超过阈值 |
| 6006 | eMMC严重耗用 |
| 6007 | 主机和外壳之间的网络中断 |
| 6008 | 关键系统文件配置错误 |
| 6009 | 高磁盘写入量 |
| 6502 | 存储空间不足 |
| 6501 | 最近1分钟的负载平均值较高 |
| 6503 | 内存使用量超过阈值 |
| 6505 | 启动时间同步失败(已弃用) |
| 6504 | 最近10秒内CPU平均使用率超过80% |
| 6506 | 系统时间与互联网时间不一致 |
| 6507 | 启动脚本执行失败 |
| 6508 | eMMC严重耗用 |
| 7001 | 定位节点未运行 |
| 7002 | 定位质量不可靠 |
| 7003 | /slam/state消息频率异常 |
| 7004 | 激光雷达确定不可靠的定位质量 |
| 8001 | 底板节点未运行 |
| 8002 | Battery_state消息频率异常 |
| 8003 | 电池电量极低 |
| 8004 | 电池板故障 |
| 8005 | 充电片和电池报告的充电状态不一致 |
| 8006 | 电机电流超过阈值 |
| 8501 | 电池电量低 |
| 9001 | 用于充电桩/电梯门状态识别的/detectors节点未运行 |
| 9002 | 蓝牙节点未运行 |
| 9003 | 急停按钮被按下 |
| 9004 | 切换到手动模式 |
| 9005 | 切换到远程控制模式 |
| 9006 | /sensor_manager_node节点未运行 |
| 9007 | 底部传感器节点/bottom_sensor_pack_node未运行 |
| 9008 | /ax_platform_monitor节点未运行 |
| 9009 | /monitor_watcher节点未运行 |
| 9010 | 启动参数配置错误 |
| 9011 | 检测到程序崩溃 |
| 9012 | 光流频率异常 |
| 9013 | 热力图节点未运行 |
| 9501 | 调试节点打开 |
| 9502 | 在ax-cache中存在.params.yaml文件,此配置文件已弃用 |
| 9503 | 检测到光流硬件,但未配置使用 |
| 10001 | 在充电桩上超过重试次数后未检测到触摸信号 |
| 10002 | 未识别到充电底座 |
| 10003 | 触摸超过重试次数后长时间未接收到电流 |
| 11001 | camera_node Juyou节点未运行 |
| 11002 | /depth_camera/forward消息频率异常(已弃用) |
| 11003 | /depth_camera/downward消息频率异常(已弃用) |
| 11004 | /depth_camera/forward报告了错误(已弃用) |
| 11005 | /depth_camera/downward报告了错误(已弃用) |
| 11006 | 无法找到深度相机硬件(已弃用) |
| 11007 | Juyou深度相机报告了错误 |
| 11008 | 无法找到RGB相机硬件 |
| 11009 | /rgb_camera_node节点未运行 |
| 11010 | RGB相机其他错误 |
| 11011 | ihawk_node节点未运行 |
| 11012 | ihawk深度相机报告了错误 |
| 11013 | ihawk深度相机深度值异常,可能存在障碍物(保留) |
| 11501 | 深度相机未校准 |
总统计数据信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
startTime |
数字 | 开始时间,以当前日期的00:00:00为起点,以毫秒为单位,最长持续时间为一个月 |
endTime |
数字 | 结束时间,以当前日期的11:59:59为终点,以毫秒为单位 |
busIds |
字符串数组 | 可选,业务ID的集合 |
deviceIds |
字符串数组 | 可选,机器人SN的集合 |
dataItems |
字符串数组 | 必填数据项: mileage - 总里程 duration - 总时长 taskMileage - 任务里程 taskDuration - 任务时长 chargingCount - 充电次数 errCount - 底盘错误次数 locerrCount - 定位丢失次数 warnCount - 警告次数 dryBurnCount - 干烧次数 obstructCount - 阻塞次数 taskCancelCount - 任务取消次数 taskCount - 任务次数 taskFinishCount - 任务完成次数 taskPauseCount - 任务暂停次数 disinfectCount - 消毒次数 onSprayCount - 开启喷洒次数 sprayMileage - 喷洒里程 remoteCount - 远程控制次数 low10BatCount - 低于10%电池次数 low20BatCount - 低于20%电池次数 emergencyCount - 紧急停止次数 gohomeCount - 返回充电桩次数 manualCount - 手动操作次数 dispatchCount - 调度次数 modspeedCount - 速度修改次数 |
示例
{
"startTime": 1682870400000,
"endTime": 1685548799000,
"dataItems": ["taskDuration","taskMileage","mileage","duration","taskCount"]
}单任务统计信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
taskId |
string | 任务 ID |
fields |
string[] | 所需数据项 mileage - 里程 cStartTime - 开始时间 cEndTime - 结束时间 disinfect - 消毒详情 taskFinishCount - 任务完成次数 taskPauseCount - 任务暂停次数 taskCancelCount - 任务取消次数 |
示例
{
"taskId": "322751f4-1c00-45c2-bcf3-0e42aa9fa2c4",
"fields": [
"cStartTime",
"cEndTime",
"mileage",
"disinfect",
"taskCancelCount",
"errCount",
"taskFinishCount",
"taskPauseCount"
]
}任务统计信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
startTime |
数字 | 开始时间,以毫秒为单位,从当天的00:00:00开始,最长持续时间为一个月 |
endTime |
数字 | 结束时间,以毫秒为单位,结束于当天的11:59:59 |
type |
数字 | 任务类型: 0 - 消毒 1 - 返回基站 2 - 交付 3 - 召唤 默认值 -1 所有任务 |
示例
{
"startTime": 1682870400000,
"endTime": 1685548799000,
"type": -1
}枚举
| 名称 | 数据类型 | 描述 |
|---|---|---|
id |
数字 | 巡航 ID |
name |
字符串 | 巡航名称 |
businessId |
字符串 | 业务 ID |
sites |
[]CruisePoi | 巡航 poi |
remark |
字符串 | 备注 |
枚举
| 名称 | 数据类型 | 描述 |
|---|---|---|
poiId |
字符串 | poi ID |
poiName |
字符串 | poi 名称 |
服务器信息
属性
| 名称 | 数据类型 | 描述 |
|---|---|---|
ip |
字符串 | 地址 |
type |
数字 | 服务器类型 0: 私有化 1: 国际版 -1: 关闭私有化或国际版 |
offline |
数字 | 0: 非纯离线 1: 纯离线 |
test