ROS两轮小车软件篇 (一)——ROS两轮小车控制板stm32F103ZET6

  • Post author:
  • Post category:其他




小车控制应用

  • 两轮小车使用stm32f103zet6控制,使用freertos系统管理多个任务,整体构为:

在这里插入图片描述

  • 代码地址:


    gitee https://gitee.com/zhuchen99899/RosCar



    github:https://github.com/zhuchen99899/RosCar/tree/master/


    所有代码完成后我会上传到CSDN。



方向控制

  • 方向控制即为控制H桥导通方向,只需要控制两个IO输入输出,10,01,为前或者后方向(根据电机安装方向),00和11为惯性和刹车状态。

  • 方向控制可以使用一个freertos任务。通过消息队列传输单个变量完成其他任务对小车方向的改变(如WIFI控制小车方向)

在这里插入图片描述



编码器采集电机转速

  • 电机采用霍尔编码器,采用32定时器复用中的编码器模式采集,32编码器模式以及倍频模式原理和模式网上也有很多资料,可以自己查询相关资料。关于编码器模式代码,可以参考


    https://blog.csdn.net/qq_42812330/article/details/88726680

  • 计算电机转速,距离以及方向:编码定时器中断中,计算溢出计数Overflow_count 然后通过单位时间的定时器中收集两个编码器定时器中的溢出计数Overflow_count 和上一次的溢出计数 Last_count计算单位时间内产生的脉冲数量。由此可以根据下图中公式计算出速度和距离。

    在这里插入图片描述

  • 这里建议将倍频参数,编码器线束,电机减速比先宏定义了(方便后续再更改电机时修改代码以及更改小车车轮尺寸大小),然后在freertos创建任务时候,先计算各个公式系数(减少在中断中的计算量)。在计算完成所有结果后通过传输结构体指针,将速度、位移、以及方向信息传递给其他freertos任务应用。



PID

  • 这里速度设定使用QT上位机设置,QT上位机可以使用图标查看速度数据和历史数据,可以使用手柄远程控制小车,相关代码可以查看我的博客:

    https://blog.csdn.net/zhuchen88988/article/details/118639802
  • 网上PID相关教程相当之多,这里不多说。

在这里插入图片描述

  • PID调参放入QT上位机中:



WIFI

  • 小车可以使用QT上位机控制,手机APP控制,以及做一些深度学习/视觉的应用,都是通过WIFI接口传输。未来可能会移植到Ros主机上(如TX2等)。
  • 小车串口使用uart->wifi模块,这里使用的有人模块,这里可以选用如esp8266等
  • 小车串口2使用DMA接收和发送(freertos中采用这种方式更为适合),网上freertos+串口DMA教程也有很多,这里不多提。
  • WIFI采用TCP连接。应用通讯协议为自拟定协议。采用协议传输所有的小车信息和控制信息:具体通讯协议可查看我的博客:


    https://blog.csdn.net/zhuchen88988/article/details/118637714
  • 具体的协议解帧方法为,使用解帧函数解出头部,使用switch判断,帧的功能和对象。再解出协议帧的负载部分,通过freertos消息队列传输控制以及数据。
  • 在解数据帧的时候会有float类型转换为uchar 类型的需求。此时使用联合体函数即可解决这个问题。联合体两个成员,float和一个uchar a[4]数组。两者共占有一个内存地址。赋值给float ,再读uchar类型即可完成转换。
  • 注意大小端问题,由于协议采用大端模式传输。但32联合体转换时 ,是以小端存储,所以需要反向读取,uchar 数组中的值。
  • 具体代码可以查看我的github。

    https://github.com/zhuchen99899/RosCar/tree/master/STM32F103ZE_Contrl
  • 目录下:

    ①CRC16文件夹下为CRC16校验计算功能函数以及其转换

    ②USER/protocol.c 和protocol.h 为通讯协议用的解帧和组帧函数

    ③FreeRTOS/app/下 Task_WIFI.c为wifi接收处理

    ④FreeRTOS/app/下 Task_WIFI_send.c 为wifi发送处理



MPU6050



ROS



版权声明:本文为zhuchen88988原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。