调度接口

调度接口说明

  • 接口的BaseUrl为: http://192.168.30.200:8008

  • 所有使用POST方法的接口,上报参数时,HTTP请求头中的Content-Type必须为application/json;charset=UTF-8,使用Body上报参数

  • 一些简单参数的接口,可以使用POST或GET方法,参数使用Query上报

  • 接口的返回都使用json方数据回传,每个接口返回的json中都包含code和msg字段,code用于表示成功还是失败,msg表示失败原因

  • 接口返回的json中可能会有多于文档接口描述的字段,可以忽略

接口返回数据定义

// T是一种数据类型,根据不同接口,类型不一样
public class ResponseData<T> {
   public int code;
   public String msg;
   public T data;
}

code定义:

enum CodeValue {
   SUCCESS = 0;
   FAILED = 1;
   EMPTY = 2; // 查询数据时查不到,没有数据
   PARAMS_ERROR = 3; // 传的参数不正确
}

接口列表

1. 获取地图信息列表

接口地址:/dispatch/get_map_info_list
请求方法:GET
请求参数使用Query,例如: /dispatch/get_map_info_list?count=2
请求参数定义:

参数名称类型参考值备注
获取数量countint必填,数量,<=0则获取所有的,否则指定数量,不够则返回实际数量

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

AllMapInfo定义

参数名称类型参考值备注
地图信息列表infoListList<MapInfo> 

MapInfo定义

参数名称类型参考值备注
地图名称nameString 
地图ididint1234 
地图原点xoriginXfloat1234单位米
地图原点yoriginYfloat1234单位米

返回示例:

{
    "code": 0,
    "msg": "",
    "data": {
        "infoList": [
            {
                "name": "map-2024-11-29-15-45-58",
                "id": 286,
                "originX": -8.03544,
                "originY": -12.149,
                "width": 440,
                "height": 640,
                "thumbImgUrl": "http://127.0.0.1:8008/map/get_map_file?name=map-2024-11-29-15-45-58",
                "resolution": 0.05
            },
            {
                "name": "map-2024-11-29-15-45-58",
                "id": 285,
                "originX": -8.03544,
                "originY": -12.149,
                "width": 440,
                "height": 640,
                "thumbImgUrl": "http://127.0.0.1:8008/map/get_map_file?name=map-2024-11-29-15-45-58",
                "resolution": 0.05
            }
        ]
    }
}

2. 获取作业点/站点列表

接口地址:/dispatch/get_task_node_list
请求方法:GET
请求参数使用Query,例如: /dispatch/get_task_node_list?mapId=1&count=2
请求参数定义:

参数名称类型参考值备注
获取数量countint必填,数量,<=0则获取所有的,否则指定数量,不够则返回实际数量
站点绑定的地图的idmapIdint必填,为0时获取所有的,否则为指定的,获取所有的地图id见接口1

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

AllTaskNode定义

参数名称类型参考值备注
业务点名称列表taskNodeInfoListList<TaskNodeInfo> 

TaskNodeInfo定义

参数名称类型参考值备注
业务点IDidInt 
业务点名称nameString 
业务点所在地图IDmapIdInt 
站点绑定的动作组列表taskActionGroupInfoList<TaskActionGroupInfo> 

TaskActionGroupInfo定义

参数名称类型参考值备注
动作组IDidInt 
动作组名称nameString 

返回示例:

{
    "code": 0,
    "msg": "",
    "data": {
        "taskNodeInfoList": [
            {
                "id": 1330,
                "name": "作业点3",
                "mapId": 238,
                "taskActionGroupInfo": [
                    {
                        "id": 137,
                        "name": "上料"
                    },
                    {
                        "id": 139,
                        "name": "换料"
                    }
                ]
            },
            {
                "id": 1328,
                "name": "作业点2",
                "mapId": 238,
                "taskActionGroupInfo": [
                    {
                        "id": 136,
                        "name": "下料"
                    }
                ]
            }
        ]
    }
}

 

3. 增加任务组到队列

接口地址:/dispatch/add_task_group
请求方法:POST
上报参数定义:

TaskGroup定义

参数名称类型参考值备注
任务组IDtaskGroupIdString不填,由服务端生成,获取时用
任务组名称nameString必填(用户自定义)
所有的任务taskListList<Task>必填
地图IDmapIdint必填,地图ID,接口1#中获取地图列表中机器人正在使用的地图的ID
机器人idrobotIdint必填(要让哪个机器人执行任务)
客户端idclientIdString选填,客户端ID(是谁发的任务)
是否忽略计算路径isIgnorePathBoolean选填,若为true则不计算途径路径,直接去目标点

Task定义

参数名称类型参考值备注
任务IDidString不填,由服务端生成,回传时用
任务名称nameString必填(用户自定义)
作业点IDtaskNodeIdInt必填(最终要到达的目标点,接口8#中获取作业点ID)
动作组IDtaskActionGroupIdInt选填,服务端已部署好的动作组的ID(接口2#中获取目标作业点的动作组ID),不填时默认选择第1个任务组执行(若填了actionParameters参数则这个参数就失效了)
是否不要移动,直接执行动作isDoNotMoveBoolean选填,是否不要移动去目标点,设置为true时机器人就直接在当前位置执行动作了
到点后执行的动作参数actionParametersList\<ActionParameter>选填

ActionParameter定义

参数名称类型参考值备注
动作类型typeInt1: 视觉对位; 2: 机械臂作业; 3: 充电; 4:充电(后相机);5:取料架;6:放料架;7:后向对位;8:平移;9:停车等待;18:说话;25:透传参数
参数列表paramListList<String>所有的参数


请求示例:

{
    "name":"任务组1",
    "mapId":238,
    "robotId":34,
    "taskList":[
        {
            "name":"任务1",
            "taskNodeId":1330,
            "taskActionGroupId":0,
            "actionParameters":[
                {
                    "type":18,                  // 说话
                    "paramList":["text:你好"]    // 说:“你好”
                },
                {
                    "type":9,                    // 停车等待
                    "paramList":["timeout:0"]    // 永久等待,直到发送继续接口
                }
            ]
        }
    ]
}

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

StringId定义

参数名称类型参考值备注
任务组IDidString添加到队列后的任务组的ID

返回示例:

{
    "code":0,
    "msg":"",
    "data":{
        "id":"234803972249092096"
    }
}

4. 获取已添加的任务组列表

接口地址:/dispatch/get_task_group_list
请求方法:GET
请求参数使用Query,例如: /dispatch/get_task_group_list?count=10
请求参数定义:

获取数量定义

参数名称类型参考值备注
获取数量countint必填,数量,<=0则获取所有的,否则指定数量,不够则返回实际数量

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

TaskGroups定义

参数名称类型参考值备注
任务组列表taskGroupListList<TaskGroup> 

TaskGroup定义

参数名称类型参考值备注
任务组IDtaskGroupIdString 
任务组名称nameString 
当前执行到哪个任务了indexInt 
任务列表taskListList<Task> 
谁发的任务clientIdString 
剩余重复次数repeatCountInt 
机器人IDrobotIdInt 
任务组当前状态taskGroupStatusInt0:已加入调度队列,等待调度;1:已经调度(已生成路线);2:正在执行
任务组状态名称taskGroupStatusNameString 

Task定义

参数名称类型参考值备注
任务IDidString 
任务名称nameString 
目标站点IDtaskNodeId  
任务当前状态taskStatusInt0:已添加;1:正在执行;2:已取消;3:已完成
任务状态名称taskStatusNameString 

返回示例:

{
    "clientId": "dispatch",
    "cmd": 14,
    "actionId": 3002,
    "code": 0,
    "msg": "",
    "callId": "437332785116610560",
    "data": {
        "taskGroupList": [
            {
                "taskGroupId": "437332770650456064",
                "name": "a3ff4761-0426-4855-87ac-1e7bd410e7e8",
                "taskList": [
                    {
                        "id": "437332770692399104",
                        "name": "4f71f162-13c6-4aeb-8444-ccf2af91bdfe",
                        "taskNodeId": 1121,
                        "actionParameters": [
                            
                        ],
                        "taskActionGroupId": 0,
                        "isDoNotMove": false,
                        "isUsePathNodeIdList": false,
                        "pathNodeIdList": [

                        ],
                        "taskStatus": 1,
                        "taskStatusName": "运行中",
                        "actionRepeatList": [

                        ],
                        "hasNg": false,
                        "taskType": 0
                    }
                ],
                "index": 0,
                "mapId": 155,
                "robotId": 1,
                "isSaveToDb": false,
                "isForBind": false,
                "repeatCount": 1,
                "isIgnorePath": false,
                "isDispatched": true,
                "msg": "",
                "clientId": "httpdispatch",
                "taskGroupStatus": 2,
                "taskGroupStatusName": "运行中"
            }
        ]
    }
}

5. 删除任务组

接口地址:/dispatch/delete_task_group
请求方法:GET
请求参数使用Query,例如: /dispatch/delete_task_group?taskGroupId=12345
请求参数定义:

任务组id定义

参数名称类型参考值备注
任务组idtaskGroupIdString必填,从获取任务组列表中获得

返回参数定义:
返回的参数中不包含data字段,其他字段如code、msg为每个接口都有的通用字段,根据code判断是否成功。
返回示例:

{
    "code":0,
    "msg":""
}

6. 停止指定机器人的任务

接口地址:/dispatch/stop_robot_task
请求方法:GET
请求参数使用Query,例如: /dispatch/stop_robot_task?robotId=10
请求参数定义:

机器人id定义

参数名称类型参考值备注
机器人idrobotIdInt必填,从获取所有机器人状态(10#)接口中可以获得

返回参数定义:
返回的参数中不包含data字段,其他字段如code、msg为每个接口都有的通用字段,根据code判断是否成功。
返回示例:

{
    "code":3,
    "msg":"没有找到指定robotId(10)的机器人)"
}

7. 暂停指定机器人的任务

接口地址:/dispatch/pause_robot_task
请求方法:GET
请求参数使用Query,例如: /dispatch/pause_robot_task?robotId=10
请求参数定义:

机器人id定义

参数名称类型参考值备注
机器人idrobotIdInt必填,从获取所有机器人状态(10#)接口中可以获得

返回参数定义:
返回的参数中不包含data字段,其他字段如code、msg为每个接口都有的通用字段,根据code判断是否成功。
返回示例:

{
    "code":3,
    "msg":"没有找到指定robotId(10)的机器人)"
}

8. 继续指定机器人的任务

接口地址:/dispatch/resume_robot_task
请求方法:GET
请求参数使用Query,例如: /dispatch/resume_robot_task?robotId=10
请求参数定义:

机器人id定义

参数名称类型参考值备注
机器人idrobotIdInt必填,从获取所有机器人状态(10#)接口中可以获得

返回参数定义:
返回的参数中不包含data字段,其他字段如code、msg为每个接口都有的通用字段,根据code判断是否成功。
返回示例:

{
    "code":3,
    "msg":"没有找到指定robotId(10)的机器人)"
}

9. 重新规划指定机器人的路线

接口地址:/dispatch/refresh_robot_route
请求方法:GET
请求参数使用Query,例如: /dispatch/refresh_robot_route?robotId=1
请求参数定义:

机器人id定义

参数名称类型参考值备注
机器人idrobotIdInt必填,从获取所有机器人状态(10#)接口中可以获得

返回参数定义:
返回的参数中不包含data字段,其他字段如code、msg为每个接口都有的通用字段,根据code判断是否成功。
返回示例:

{
    "code":0,
    "msg":""
}

10. 获取所有机器人的机器状态

接口地址:/dispatch/get_all_robot_status
请求方法:GET
没有请求参数

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

AllRobotStatus定义

参数名称类型参考值备注
机器人状态列表robotStatusListList<RobotStatus> 

RobotStatus定义

参数名称类型参考值备注
机器人IDrobotIdint 
当前xxfloat单位米
当前yyfloat单位米
当前角度anglefloat单位度
当前速度speedfloatm/s
电量batteryint%
是否正在充电isChargingBoolean 
是否急停isForceStopBoolean 
地图名称mapNameString 
导航置信度navScorefloat 
开机时间bootTimeint秒
是否已经抬升了isUpbool是否抬升到位
已到达的点位名称arrivedNodeNameString 
当前暂停类型robotPauseTypeInt对应部署模块"等待信号n"的值+10(n+10),当这个值>0时,任务状态是19(停车等待)
执行任务状态taskStatusint10对应的值见下面执行状态值

 

执行状态值:

0: 空闲
1: 到达途径点,
2: 到达充电点,
3: 停在充电桩中,
5: 去往充电点中,
6: 到达作业点,
7: 去往作业点中,
8: 去往途径点中,
9: 停车完毕,
10: 充电中,
11: 停车到充电桩中,
12: 视觉重定位或反光板重定位,
13: 机械臂作业,
18: 后向对位充电,
19: 停车等待,
20: 平移,
21: 停在充电桩旁边,
22:抬升下降控制;
24:旋转;
40:停车待命;
41:从充电桩离开后停车;

返回示例:

{
    "code":0,
    "msg":"",
    "data":{
        "robotStatusList":[
            {
                "robotId":50,
                "x":-1.4446404,
                "y":0.25759292,
                "angle":-179.65909,
                "taskStatus":0,
                "battery":95,
                "voltage":50.58,
                "current":-4.87,
                "speed":0,
                "isCharging":false,
                "isForceStop":false,
                "mapName":"map-2023-03-13-10-35-53-555",
                "navScore":0.7152826,
                "bootTime":2086
            }
        ]
    }
}

11. 获取指定机器人的机械臂状态

接口地址:/dispatch/get_target_robot_arm_status
请求方法:GET
请求参数使用Query,例如: /dispatch/get_target_robot_arm_status?robotId=43
请求参数定义:

参数名称类型参考值备注
机器人idrobotIdint必填

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

RobotArmStatus定义

参数名称类型参考值备注
机械臂任务是否已启动isStartedBoolean 
机械臂任务是否已完成isFinishedBoolean 
机械臂任务是否异常isErrorBoolean 
机械臂任务异常原因errorReasonString出异常时非空
机械臂当前电流armPowerCurrentfloat 
机械臂当前电压armPowerVoltagefloat 
机械臂急停isArmEmergencyStopBoolean 
机械臂碰撞检测isArmCollisionBoolean 
电源是否开启isArmPowerOnBoolean 
机器人idrobotIdint 

返回示例:

{
    "clientId":"dispatch",
    "cmd":14,
    "actionId":3017,
    "code":0,
    "msg":"",
    "callId":"238320905208594432",
    "data":{
        "isStarted":false,
        "isFinished":false,
        "isError":false,
        "errorReason":"",
        "armPowerCurrent":0,
        "armPowerVoltage":0,
        "isArmEmergencyStop":false,
        "isArmCollision":false,
        "isArmPowerOn":true,
        "armEventCode":0,
        "robotId":0
    }
}

12. 获取指定站点的所有动作

接口地址:/dispatch/get_task_node_action_list
请求方法:GET
请求参数使用Query,例如: /dispatch/get_task_node_action_list?nodeId=652
请求参数定义:

参数名称类型参考值备注
站点IdnodeIdint必填,站点的id

返回参数定义:
返回的参数中包含data字段,以下定义为data字段的定义,其他字段如code、msg为每个接口都有的通用字段

AllTaskActionInfo定义

参数名称类型参考值备注
动作info列表infosList<TaskActionInfo> 

TaskActionInfo定义

参数名称类型参考值备注
动作ididint1234 
动作类型typeint1234 
所属站点idnodeIdint1234 
动作名称nameStringxxx 
所属动作组中的序号indexint0 
动作组序号groupIndexint0 
动作组idgroupIdint0 

 

动作类型定义:

1:视觉重定位/反光板重定位
2:机械臂作业
4:后向对位充电
8:平移
9:停车等待
13:自旋转

返回示例:

{
    "code": 0,
    "msg": "",
    "data": {
        "infos": [
            {
                "id": 2775,
                "type": 9,
                "nodeId": 1227,
                "name": "停车等待",
                "index": 0,
                "isNeedConfirm": false,
                "groupIndex": 0,
                "groupId": 580
            },
            {
                "id": 2777,
                "type": 18,
                "nodeId": 1227,
                "name": "说话",
                "index": 0,
                "isNeedConfirm": false,
                "groupIndex": 1,
                "groupId": 611
            },
            {
                "id": 2778,
                "type": 2,
                "nodeId": 1227,
                "name": "taskName:aabbcc",
                "index": 1,
                "isNeedConfirm": false,
                "groupIndex": 1,
                "groupId": 611
            }
        ]
    }
}

13. 下载地图图片文件

接口地址: http://192.168.1.56:8008/map/get_map_file?name=地图名称

14. 指定机器人执行指定动作

接口地址:/dispatch/start_action
请求方法:POST
上报参数定义:

StartAction定义

参数名称类型参考值备注
机器人idrobotIdInt必填,要执行动作的机器人
动作idactionIdInt选填,要执行的动作的ID(接口12中的动作ID),填了动作ID,下面的动作类型、动作参数就不用填了,直接使用数据库里面的参数了
动作类型typeInt选填,若没有填动作ID,就要填动作类型
动作参数paramListList<String>选填,若没有填动作ID有效

上报示例:

{
    "robotId":1,
    "actionId":2778
}

底盘旋转30度上报示例:

{
    "robotId":50,
    "type":13,
    "paramList":["speed:0.1","angle:30"]
}

底盘30度(前方右侧度数为+)斜移1米上报示例:

{
    "robotId":50,
    "type":8,
    "paramList":["speed:0.1","angle:30","distance:1000"]
}

执行指定的机械臂任务

{
    "robotId":50,
    "type":2,
    "paramList":["taskName:aabbcc"]
}

成功或失败根据返回的code来确定
返回示例:

{
    "code":0,
    "msg":""
}

15. 取消任务组中的单个任务

接口地址:/dispatch/cancel_task
请求方法:GET
请求参数使用Query,例如: /dispatch/cancel_task?taskGroupId=kjgs&taskId=gasjk
请求参数定义:

机器人id定义

参数名称类型参考值备注
任务组idtaskGroupIdString必填,要取消任务所属任务组
任务idtaskIdString必填,要取消的任务

返回参数定义:
返回的参数中不包含data字段,其他字段如code、msg为每个接口都有的通用字段,根据code判断是否成功。
返回示例:

{
    "clientId": "dispatch",
    "cmd": 14,
    "actionId": 3027,
    "code": 0,
    "msg": "",
    "callId": "262266201164611584"
}

16. 调度系统任务执行状态变化后的回调

!! 这个接口需要客户自己实现接口,当任务执行状态变化了,调度系统调用这个接口,通知客户。
需要在用户主界面: http://192.168.1.56:8008/main.html 的右上角设置里面设置回调URL


当任务启动了、完成了或被取消了,就会调用这个URL的接口
请求方法:POST
请求参数定义:

传过去的数据定义

参数名称类型参考值备注
机器人idrobotIdInt机器人的ID
任务组编号taskGroupCodeString当前执行的任务组编号
任务编号taskCodeString当前执行的任务编号
是否已启动isStartedBoolean是否是启动时的回调
是否已取消isCanceledBoolean是否是取消时的回调
是否已完成isFinishedBoolean是否是完成时的回调
作者:黄子少  创建时间:2025-08-04 12:31
最后编辑:黄子少  更新时间:2025-11-26 16:46
上一篇:
下一篇: