智能小车——初步想法

需要参考轮趣的智能小车自己搭建一台智能机器人,这里从底层控制开始逐步搭建。

控制模式

之后要自行搭建智能小车,所以将轮趣的底盘代码进行学习,根据开发手册先大致过一遍需要的内容。

有做很多个控制方法,包括了手柄、串口、CAN、ROS等,如下所示:
控制模式总结
如上图所示,对于项目而宫,重要的是PS2控制(即迎控器控制),以及CAN控制(需要用到CAN通讯),串口控制(上位机算法的通讯),其余的关注一下就可以了。

速度单位

全部控制程序全部换算成国际单位制m/s,所以要将缉码器的原始数据转换为m/s。

这里涉及的就是轮子半径、编码器数据、控制频率、编码器精度,通过这几个数据最终完成小车速度的换算。公式如下所示:
运动速度转换关系式

串口控制

就是ROS与STM32的通讯,通过串口3来完成通讯。

这里需要自定义一个数据帧,通过这个数据帧来完成电机控制状态的传输通讯。这里发送的数据包括:机器人使能;机器人三轴速度;IMU三轴加速度、角速度;电池电压。还要加上串口通讯可以用作检验的帧头帧尾和校验位。

同时,串口发送一次只能发送8位,而目前数据为24位,所以数据需要拆成高8位和低8位来传输。这里就相当于自定义了一套encoder和decoder的密码模式

这里可以借鉴他的编码方式:帧头固定0x7B,帧尾固定0x7D,用一位fag_stop表示是否使能,数据校验通过BCC校验(所有数据为异或)
具体的编码方式,也就是串口一次所传输的数据是可以自定义的,这里就不展开了,在自己做项目的时候可能还要修改一下。

APP调参

可以通过蓝牙/WIFI来完成控制,实质也是自定义数据,然后通过串口2来完成数据传输。

PS2控制

这里因为是专门的控制手柄,有自己做好的底层信号处理,对于应用层开发者而言,需要做的就是解析传输过来的信号,并完成对应的控制状态选择就可以了。

CAN控制

数据传输直接通过CAN总线来完成,需要先配置好CAN,然后自定义数据来完成传输,总体逻辑是类似的,只不过只需要关心具体的传输数据了,因为CAN是自带数据校验等的(CAN数据中自己就有校验等等的位)。

OLED显示

通过IIC总线来完成内容显示。只需要通过OLED的通讯协议,来完成画点就可以了。

陀螺仪零点漂移消除

IMU的数据存在零点漂移,需要设计一定的算法来完成滤波。

设置一定的延时,在刚上电的时候并不读取角速度值,直到超过了这个时间,才会去读取角速度值并将其作为漂移值。

运动学解算

这个就是两轮差速小车、麦轮小车等的运动学模型,将电机与机器人的运动联系起来。

这里之后的项目是需要四驱车模型,这里就记录一下四驱车的运动模型。

四驱车模型
其中VA、VB、VC、VD分别为 A、B、C、D四个轮子的转速,也就是电机的转速;Vx为小车沿着X轴平移速度,w为小车沿Z轴的旋转速度;a=D/2为小车轮距D的一半,b=H/2为小车轴距H的一半。

最终就可解算出如下的运动学公式,将机器人运动转化为电机旋转:
运动学公式

PID控制

这里直接就是一个速度闭环控制,只用PI就差不多了,增量式或者位置式PI都可以。

整体程序结构图

整体流程

现根据运动学模型来选择具体的计算公式,然后完成一系列外设的初始化,最后接到RTOS的任务接口,开始循环执行对应的任务。

对于遥控命令,都是通过串口/CAN的中断来获取。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于STM32的智能小车是一种结合了电子技术和机械技术的创新产品。首先,我们需要准备A4950电机驱动器,这是一种针对直流电机的高性能驱动器,能够提供足够的电流和电压以驱动小车的底盘运动。接下来,我们需要选取合适的STM32微控制器作为小车的控制核心,它能够实现实时的控制和响应,提供丰富的接口和功能。 在硬件方面,我们需要将A4950电机驱动器与STM32微控制器连接,同时连接传感器模块,如红外避障传感器、超声波模块等,以实现小车的避障和定位功能。此外,还可以为小车添加摄像头模块,实现视觉识别和图像处理,提升小车的智能化水平。 在软件方面,我们需要编写嵌入式C语言程序,设计小车的控制算法,实现小车的自主运动、避障、定位等功能。同时,我们还可以利用STM32的丰富功能库和开发工具,实现与外部设备的通讯和数据传输,如通过蓝牙、WiFi等方式实现与手机或电脑的无线通讯,从而实现对小车的远程控制和监控。 最后,我们还可以为小车设计一个简洁易用的APP,通过手机App实现对小车的遥控、路径规划、图像实时监控等功能,提升用户体验。通过以上步骤,我们便可以制作一辆基于STM32的智能小车,结合A4950电机驱动器,实现小车的智能化控制和功能,为人们的生活和工作带来便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值