# 机器人调度接口文档 ## 机器人通用动作 (CAgvOperationBp) 本接口用于执行机器人的通用动作操作,包括移动、取放货等。 ### 描述 本块用于执行机器人的通用动作,提供了丰富的参数来满足各种场景下的动作需求,如移动到特定位置、携带货物等。 ### 输入参数 | 参数名 | 中文名称 | 是否必填 | 类型 | 描述 | | --------------- | ------------ | -------- | ------------ | ------------------------ | | targetSiteLabel | 目标站点名 | 必填 | String | 目标站点的名称或标识 | | spin | 允许随动 | 非必填 | Boolean | 是否允许机器人在移动中同时进行旋转 | | adjustInfo | 调整 | 非必填 | JSONArray | 机器人精细调整的参数信息 | |task |指令 |非必填 | JSONArray | 机器人执行的动作 | ### 输出参数 | 参数名 | 中文名称 | 类型 | 描述 | | --------- | -------- | ------- | ------------------- | | success | 成功标志 | Boolean | 操作是否成功 | | message | 消息 | String | 操作结果消息 | | code | 返回代码 | Number | 操作结果代码 | | data | 数据 | Object | 返回数据对象 | | data.taskId | 任务ID | String | 生成的任务ID | ### 调用示例 ```json // 输入参数示例 { "targetSiteLabel": "storage_B", "postAction": "load", "goodsId": "box456", "isEndAction": false, "max_speed": 1.2, "max_wspeed": 0.5, "spin": true, "adjustInfo": [ {"type": "position", "x": 0.05, "y": 0.02, "theta": 0.1} ] } // 成功响应示例 { "success": true, "message": "机器人移动成功,目标站点: storage_B, 货物ID: box456, 任务ID: TASK20230501002", "code": 200, "data": { "taskId": "TASK20230501002" } } // 失败响应示例 { "success": false, "message": "机器人通用动作失败: 机器人当前不可用", "code": 503 } ``` ## 选择执行机器人 (CSelectAgvBp) 本接口用于从可用机器人中选择一个适合执行任务的机器人。 ### 描述 本块用于根据指定条件(优先级、标签、机器人组等)从可用机器人中选择一个最合适的执行任务。 ### 输入参数 | 参数名 | 中文名称 | 是否必填 | 类型 | 描述 | | ------------- | ------------ | -------- | ------------ | ------------------------- | | priority | 优先级 | 非必填 | Long | 任务优先级,数值越大优先级越高 | | vehicle | 指定机器人 | 非必填 | String | 指定使用的机器人ID | | group | 指定机器人组 | 非必填 | String | 指定从哪个机器人组中选择 | | keyRoute | 关键路径 | 必填 | String | 机器人需要执行的关键路径 | ### 输出参数 | 参数名 | 中文名称 | 类型 | 描述 | | -------------- | ------------ | -------- | ------------------- | | success | 成功标志 | Boolean | 操作是否成功 | | message | 消息 | String | 操作结果消息 | | code | 返回代码 | Number | 操作结果代码 | | data | 数据 | Object | 返回数据对象 | | data.agvId | 选出的机器人 | String | 选择的机器人ID | ### 调用示例 ```json // 输入参数示例 { "priority": 10, "tag": "heavy_load", "group": "warehouse_robots", "keyRoute": "warehouse_to_shipping", "keyGoodsId": "pallet123", "mapfPriority": 2 } // 成功响应示例 { "success": true, "message": "从机器人组 warehouse_robots 选择机器人成功: AGV001", "code": 200, "data": { "agvId": "AGV001" } } // 失败响应示例 { "success": false, "message": "选择执行机器人失败: 没有符合条件的可用机器人", "code": 404 } ``` ## 获取机器人位置 (VehicleStationBp) 本接口用于获取指定机器人的当前位置和上一个位置信息。 ### 描述 本块用于查询指定机器人ID的当前位置和上一个位置,可用于监控机器人状态或位置变化。 ### 输入参数 | 参数名 | 中文名称 | 是否必填 | 类型 | 描述 | | -------- | ---------- | -------- | ------------ | ---------------- | | vehicle | 指定机器人 | 必填 | String | 要查询的机器人ID | ### 输出参数 | 参数名 | 中文名称 | 类型 | 描述 | | -------------- | -------- | ------- | ------------------- | | success | 成功标志 | Boolean | 操作是否成功 | | message | 消息 | String | 操作结果消息 | | code | 返回代码 | Number | 操作结果代码 | | data | 数据 | Object | 返回数据对象 | | data.station | 当前位置 | String | 机器人当前所在位置 | | data.lastStation | 上次位置 | String | 机器人上一个所在位置 | ### 调用示例 ```json // 输入参数示例 { "vehicle": "AGV001" } // 成功响应示例 { "success": true, "message": "获取机器人 AGV001 位置成功,当前位置: station_C, 上次位置: station_A", "code": 200, "data": { "station": "station_C", "lastStation": "station_A" } } // 失败响应示例 { "success": false, "message": "获取机器人位置失败: 机器人ID不存在", "code": 404 } ``` ## 获取机器人电量 (GetBatteryLevelBp) 本接口用于获取指定机器人的当前电量水平。 ### 描述 本块用于查询指定机器人ID的当前电量水平,可用于监控机器人的电量状态,以便及时充电或调度管理。 ### 输入参数 | 参数名 | 中文名称 | 是否必填 | 类型 | 描述 | | -------- | ---------- | -------- | ------------ | ---------------- | | vehicle | 机器人ID | 必填 | String | 要查询的机器人ID | ### 输出参数 | 参数名 | 中文名称 | 类型 | 描述 | | ------------------ | -------- | ------- | ------------------- | | success | 成功标志 | Boolean | 操作是否成功 | | message | 消息 | String | 操作结果消息 | | code | 返回代码 | Number | 操作结果代码 | | data | 数据 | Object | 返回数据对象 | | data.batteryLevel | 电量 | Double | 机器人当前电量水平,范围0-1,表示0-100% | ### 调用示例 ```json // 输入参数示例 { "vehicle": "AGV002" } // 成功响应示例 { "success": true, "message": "获取机器人 AGV002 电量成功,当前电量: 85.5%", "code": 200, "data": { "batteryLevel": 0.855 } } // 失败响应示例 { "success": false, "message": "获取机器人电量失败: 机器人ID不存在", "code": 404 } ``` ## 获取机器人PGV码 (GetPGVCodeBp) 本接口用于获取机器人的PGV码信息,用于定位和导航。 ### 描述 本块用于获取指定机器人ID的PGV码信息,PGV码用于机器人的精确定位和导航,通过查询可以确定机器人是否正确识别到二维码信息。 ### 输入参数 | 参数名 | 中文名称 | 是否必填 | 类型 | 描述 | | -------- | ---------- | -------- | ------------ | ---------------- | | vehicle | 机器人ID | 必填 | String | 要查询的机器人ID | ### 输出参数 | 参数名 | 中文名称 | 类型 | 描述 | | --------------- | ------------ | ------- | ------------------- | | success | 成功标志 | Boolean | 操作是否成功 | | message | 消息 | String | 操作结果消息 | | code | 返回代码 | Number | 操作结果代码 | | data | 数据 | Object | 返回数据对象 | | data.codeInfo | 二维码信息 | Boolean | 机器人是否识别到有效的PGV码 | ### 调用示例 ```json // 输入参数示例 { "vehicle": "AGV003" } // 成功响应示例 { "success": true, "message": "获取机器人 AGV003 PGV码成功,二维码信息: 有效", "code": 200, "data": { "codeInfo": true } } // 失败响应示例 { "success": false, "message": "获取机器人PGV码失败: 无法连接到机器人", "code": 503 } ```