介绍:
下面所做的事情, 用串口来控制kobuki底座运动, 绕过ros系统, 首先测试一下串口命令是否可用
硬件设备
- kobuki: turtlebot的底座:kobuki
- usb连接: 用usb线将kobuki和电脑连接起来, 不是25针的接口
- windows系统: 这里我用的是window7
软件
- window下面, 串口调试工具 下载地址
文档
测试
用usb线连接kobuki和电脑
我的电脑-> 管理 -> 设备管理器 -> 端口, 然后查看kobuki用的哪一个端口。
我这里用的是:COM3
打开串口调试工具, 设置串口, 如下图所示:
设置串口号, 波特率等等, 然后点击打开, 如果正常的话, 右边串口数据接收处, 应该会接收到很多数据, 并且一直接收数据。
4 . 测试kobuki串口协议
例如:
直行命令: AA 55 06 01 04 80 00 00 00 00
- AA: header0, 固定的
- 55: header1,固定的
- 06: length, 计算有效长度, 有效长度是几位, 就填几
- 01: 命令包的id
- 04: 信息的长度
- 80 00: 速度, 速度占两位, 所以, 80 00 这两个其实是一起的, 但是协议上说是反序列化, 所以80 00的速度其实是0X80mm/s, 80是16进制的
- 00 00: 运动半径,其实就是转弯, 下面重点讨论速度和运动半径。
- 00: 校验位, 随便填, 我发现其实并没有进行校验, 但不能不填
5 . 点击发送, kobuki就能运动起来了
6 . 其他命令
- 提示音AA 55 03 04 01 00 00
下面我们重点讨论一下速度和半径是怎么让小车前进和后退, 以及左转和右转的。
前进: 小车速度V取值从0X0000开始, V增大, 小车速度增大, 并且方向向前。当V达到0X0650左右时, 小车速度达到上限, 不在运动。
后退: 小车速度V取值从0XFFFF开始, V减小, 小车速度增大, 同样,速度不能无限增大, 到达的极值我没有测试, 有兴趣的可以自己去测试。
左转: 运动半径R取值从0X0000开始,R增大, 转弯半径增大
右转: 运动半径R取值从0XFFFF开始,R减小, 转弯半径增大
记住,协议说的反序列化, 因此V等于0X0080时, 当改写成0X80, 0X00