里程计接口可以通过 WebSocket 连接直接获取。控制器为服务器 IP(192.168.31.7)。端口为1202
一般用于导航控制器的里程对接
ws在线测试工具
加入域命令
{
"packet": {
"cmd": "join",
"region": "ControlModel"
},
"msg": {}
}
注意,需要先加入这个域后,控制器接受到轮子的数据会主动往客户端发送里程计数据,频率跟轮子上传的数据频率一致
如果是客户主动发送这帧里程计,往1202端口发送里程计,控制器也能接受到里程计
{
"packet": {
"cmd": "region",
"region": "ControlModel",
"index": 1
},
"msg": {
"talk": "odom",
"odomx": 0,//里程计 x 方向,单位米
"odomy": 0,//里程计 y 方向,单位米
"odomtheta": 0,//里程计转子角度,单位弧度
"velx": 0,//里程计 x 方向速度,单位米/秒
"vely": 0,//里程计 y 方向速度,单位米/秒
"veltheta": 0//里程计里转子角速度,单位弧度/秒
}
}
轮子数据的上传格式[差速轮为例]。当socket主动发送数据轮子数据后,控制器会求出里程计数据,并按照上述格式发送出来
编码器里程数据
{
"packet": {
"cmd": "region",
"region": "wheelencode",
"index": 1
},
"msg": {
"leftEncode": 0,//左轮方向编码器值
"rightEncode": 0//右轮方向编码器值
}
}
速度反馈数据
{
"packet": {
"cmd": "region",
"region": "wheelvel",
"index": 1
},
"msg": {
"VelLeft": 0,//左轮速度
"VelRight": 0//右轮速度
}
}
其他里程计操作的接口
重置里程计
{
"packet": {
"cmd": "region",
"region": "ControlModel",
"index": 1
},
"msg": {
"talk": "reset"
}
}
停止里程计
{
"packet": {
"cmd": "region",
"region": "ControlModel",
"index": 1
},
"msg": {
"talk": "stopodom"
}
}
设置里程计角度,预留给 IMU 角度 imuDisTheta 为角度增量。单独弧度
{
"packet": {
"cmd": "region",
"region": "ControlModel",
"index": 1
},
"msg": {
"talk":"set_Theta",
"imuDisTheta":0.0,
}
}
控制接口[差速轮为例]
{
"packet": {
"cmd": "region",
"region": "cmd_vel",
"index": 1
},
"msg": {
"xvel": 0,//x 方向速度,单位米/秒
"yvel": 0,//y 方向速度,单位米/秒
"thetavel": 0//转子方向速度,单位弧度/秒
}
}
[单舵轮为例]
{
"packet": {
"cmd": "region",
"region": "cmd_vel",
"index": 1
},
"msg": {
"xvel": 0,//x 方向速度,单位米/秒
"wheelTheta": 0,//转子方向,单位弧度[-pi,+pi]
"thetavel": 0//转子方向速度,单位弧度/秒
}
}