# wingbot_driver **Repository Path**: MAMAMAisused/wingbot_driver ## Basic Information - **Project Name**: wingbot_driver - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-05 - **Last Updated**: 2021-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Json消息 | ID编号 | 消息说明 | | ------ | ------------------------------------------------------------ | | 0 | 保留 | | 1 | 请求机器人状态,同时下发一些参数 | | 2 | 设置单点导航 | | 3 | 切换分体还是联体模式,只有抱臂收回,车身降低的状态才能够设置成分体模式 | | 4 | 坐标变换 | | 5 | 启停Pid(直接由上层程序接管速度控制) | | 6 | 直接控制速度 | | 7 | 设置抱臂 | | 8 | 设置抬升 | | 9 | 微调模式 | | 10 | 刷新坐标 | | 205 | 导航任务完成上报 | | 255 | 错误 | #### 请求状态 ```json //client, cnt自动累加,每发一条加1,到255后从0开始 { "id": 1, "cnt": 0, "data": { "retarding": 0.1 } } //server { "id": 1, "cnt": 0, "data": { "PidBusy": false, "PidEnable":true, "RunMode": 0, "TeamRole": 1, "CtrlMode": 0, "KeepYaw": 90, "x": 1.234, "y": 3.456, "yaw": 0.004, "vx": 0.003, "vy": 0.004, "v": 0.005, "vth": 0.004, "battery": 99.9 } } ``` #### 设置单点导航 ```json //client, RunMode 0表示分体移动,1表示连体移动,暂时不支持斜行,所以x,y必有一个是0,yaw表示车子的角度(绝对朝向),比如yaw=0,dy≠0,表示左右平移,yaw=90,dx≠0也表示左右平移 { "id": 2, "cnt": 0, "data": { "RunMode": 0, "ManualStop": false, "task_id": 1000, "dx": 0, "dy": 3.456, "x":0.0, "y":0.0, "yaw": 90 } } //server, data=true表示接受了指令 { "id": 2, "cnt": 0, "data": true } ``` #### 切换分体还是联体模式 - 分体模式0:直行不设置stm32 doublecar,旋转要设置stm32 doublecar,开启Pid - 合并模式1(协作模式):必须由同一个C#程序控制两台stm32,并设置doublecar,开启Pid - 泊车模式2:不设置doublecar,关闭Pid - 解散模式3:不设置doublecar,开启Pid - 离线模式4:断开与stm32的连接 ```json //client { "id": 3, "cnt": 0, "data": { "RunMode":0, "TeamDistance":0.0 } } ``` #### 坐标变换 ```json //client 传入的值为坐标增量,对应SetOdomTf,如果reset是True则对应ClearOdom { "id": 4, "cnt": 0, "data":{ "x":0.0, "y":0.0, "yaw":0.0, "reset":false } } //server, data=true表示接受了指令 { "id": 4, "cnt": 0, "data": true } ``` #### 启停Pid ```json //client server消息一样 { "id": 5, "cnt": 0, "data": true } ``` #### 直接控制速度 ```json //client 需要先禁用Pid, mode 0:NormalMove, 1:Spin, 2:Shift { "id": 6, "cnt": 0, "data":{ "mode": 0, "vx":0.0, "vy":0.0, "vth":0.0, "spinRpm":0, "shiftMps":0.0, "shiftAng":0.0 } } //server, data=true表示接受了指令 { "id": 6, "cnt": 0, "data": true } ``` #### 设置减速因子 ```json //client 传入的减速因子,必须小于等于1 { "id": 7, "cnt": 0, "data":{ "Stretch" : True, "DrawBack" : False, "Pump" : True } } //server, data=true表示接受了指令 { "id": 7, "cnt": 0, "data": true } ``` #### 导航任务完成 ```json //Server主动上发 { "id":205, "cnt": task_id, "data": true } ``` #### 微调模式 ```json //client 传入的微调坐标,相对位置 { "id": 9, "cnt": 0, "data":{ "task_id": 30000, "dx" : 0.0, "dy" : 0.0, "dth" : 0.0 } } //server, data=true表示接受了指令 { "id": 9, "cnt": 0, "data": true } ``` #### 刷新坐标 ```json //client 传入刷入的坐标,source:1-从TmpTf刷入,0-从下面的x,y,yaw刷入 { "id": 10, "cnt": 0, "data":{ "source": 1, "x" : 0.0, "y" : 0.0, "yaw" : 0.0 } } //server, data=true表示接受了指令 { "id": 10, "cnt": 0, "data": true } ```