机器人控制器开发(通讯——机器人通讯协议API定义)
文章总览
简介
底盘开放机器人操作的相关API。整套API采用TCP websocket的方式,机器人作为服务器
接受客户端的请求并向客户端作出应答。数据为序列化后的json数据;
截取数据信息并进行反序列化得到相应的JSON对象。
获取机器人状态
请求
命令:getAgvStatus
描述:建议每秒请求1次
JSON数据区:见下表
{"cmd":"getAgvStatus"}
返回
{"cmd": "agvStatus_result","data": {"agvSpeed": {"t": 0.6170379519462585,"x": 0.19427035748958588},"agvStop": 103,"chargestatu": {"actionresult": 0,"againtime": 8,"chargeio": 0,"chargestu": "idle","ele": 0,"failedchargetime": 127,"frontpowerdistane": 0.3,"iotouch": false,"isautoinit": true,"ismanualinit": true,"manualchargeio": 5,"manualtriggerio": 0,"pos": {"mapname": "0715","theta": 3.109114408493042,"x": 2.0219881534576416,"y": -0.6580021381378174},"powerquantity": 50,"state": -1,"talk": "chargeState","touchio": 4,"touchiosteptime": -410101712,"touchiotime": 0},"chargestep": -1,"collisionwarning": false,"currentBv": -10000,"currentFv": -10000,"currentglobalid": 10001,"electriccurrentin": 0,"electriccurrentout": 0.8100000023841858,"emgstop": false,"errcode": 0,"errorcode": [],"goalfinish": 0,"inbuildmap": false,"inmanualcharge": -1,"innavmap": true,"issoftpause": false,"movement": 1,"odomhz": 82.44235144327548,"pos": {"mapname": "0715","theta": -1.2728080749511719,"x": 2.039482593536377,"y": -0.7376319766044617,"z": -1.2728080749511719},"pose_probability": 0.5259189605712891,"power": 49.02000045776367,"powerquantity": 50,"robotid": "TEST1","scanhz": 15.389884984819952,"version": "20241231","wheellock": false},"seq": 0,"talk": "agvStatu","time": "08:00:58"
}
获取建立地图数据
请求
命令:getBuildMap
描述:获取建立地图数据
JSON数据区:见下表
{"cmd":"getBuildMap"}
返回
{"cmd": "getBuildMap_result","data": {"format": "JPG","map": "FFD8FFE000104A46494600010101006400640000FFDB00430001...","mappos": [-32.4,-19.6,0],"name": "A2","resolution": 0.05000000074505806,"statuCode": 2,"time": "16:35:53"}
}
建立地图
1.开始建立地图
请求
命令:buildAMap
描述:开始建立地图
JSON数据区:见下表
{"cmd":"buildAMap"}
2.结束建立地图
请求
命令:endCreateMap
描述:结束建立地图
JSON数据区:见下表
{"cmd":"endCreateMap"}
3.保存建立的地图 注意:先保存成功地图能读取到保存的地图后再结束建立地图
请求
命令:saveBuildMap
描述:保存建立的地图
JSON数据区:见下表
{"cmd": "saveBuildMap","mapName": "333","floor": "1"
}
marker管理
1.获取地图的点位
命令:marker
描述:管理点位标记
JSON数据区:见下表
{"cmd": "marker","command":"getMapAll","data":{"mapName":"xxxx"}
}
2.添加点位
命令:marker
描述:管理点位标记
JSON数据区:见下表
{"cmd": "marker","command":"add","data":{"mapName":"xxxx","name":"name","floor":"1","x":0,"y":0,"t":0,"type":1}
}
3.删除点位按ID
命令:marker
描述:管理点位标记
JSON数据区:见下表
{"cmd": "marker","command":"del","data":{"id":