Bootstrap

麦克纳姆轮和ROS系统结合实现自主导航避障

转载请注明出处:麦克纳姆轮和ROS系统结合实现自主导航避障_古道云的博客-CSDN博客_麦克纳姆ros导航

 

之前做了一个麦克纳姆轮和ROS操作系统结合实现自主导航避障的项目,

虽然中间经历了很多困难,不过还好最终还是做出来了,

其实单纯的麦克纳姆轮底盘的控制这块还是很好做的,

难点在于如何与ROS操作系统结合,当时我也是走了不少的弯路,

在这里给大家提供一个可行的思路。

思路如下:

1:首先要实现对麦克纳姆轮底盘的全向控制以及速度上的控制。

     全向控制的话应该比较简单,运动原理可以参考如下博客:

     麦克纳姆轮全向移动原理_假如明天没有太阳的博客-CSDN博客_麦克纳姆轮运动原理

     实现对麦轮的速度控制,包括直行斜行以及旋转时的速度的大小的控制可能相对麻烦一点,

     中间涉及到很多公式上的推倒,可以参考如下博客:

     【干货】麦轮正逆向运动学建模/再不懂就去打死线代老师吧【RoboMaster论坛-科技宅天堂】

2:linorobot,这是一个支持麦克纳姆轮的ROS的开源项目,

     参考如下链接:

     GitHub - linorobot/linorobot: Autonomous ground robots (2WD, 4WD, Ackermann Steering, Mecanum Drive)

     只是它只能用在teensy板上,而且只能用指定的电机和传感器,所以我们需要对其进行扩展。

     这里需要做三个方面的事情:

     1):teensy上是用i2c进行通信的,我们可以使用相应的库,比如qt的QSerialport来用改成用串口类进行通信。

     2):重写一个电机的Motor类,并按照自己电机的协议将原始的速度数据进行封装。

     3):重写一个传感器的MPU类,这个可以单独开个线程对传感器进行IO操作

     然后在源码中做相印的替换。

     关于ROS的配置过程,可以参考如下链接:

     linorobot入门教程-里程 - 创客智造

    

最后附上个我们的小车的视频吧Y(^_^)Y~

;