这个DIY巡检小车的设计极具巧思。它仅用一个底盘,就实现了阿克曼、麦克纳姆轮和四轮差速三种运动模式的自由切换,赋予其平移、斜行、原地旋转等万向移动能力。更关键的是,它采用了无动力抵消的运动学解算算法,确保了极高的运动精度,同时有效降低了能耗和轮胎磨损。
智能速览
一个底盘即可实现阿克曼、麦克纳姆轮、四轮差速三种模式切换。
支持平移、斜行、横移、原地转圈等多种万向移动方式。
搭载无动力抵消算法,提升运动精度并降低能耗与轮胎磨损。
支持WiFi遥控和浏览器远程控制,并集成实时图传功能。
精华内容
如此精巧的设计背后,是软硬件的紧密配合。从硬件选型到软件架构,每一个环节都为实现高精度的万向移动服务,下面深入解析其实现方案。
硬件架构
整车硬件以STM32F407VET6作为下位机核心控制器,RDK X5作为上位机,性能强劲。
驱动部分采用四路电机/舵机/编码器一体化方案,电机驱动芯片为DRV8870DDAR,支持更换采样电阻以调整堵转过流阈值。电源方面,XL4016E1负责为电机提供12V和为舵机提供7.5V电压,LDO则为主控提供稳定的3.3V电压。
机械结构上,底盘采用4mm厚的激光切割亚克力板,连接件为PA12材料的3D打印件,确保了足够的机械强度。
下位机软件
下位机软件是实现精准运动控制的关键。舵机控制(servo.c)基于STM32 HAL库,实现了四路PWM的精准控制与角度边界校验。
电机驱动(gear_motor.c)通过修改PWM占空比实现0-100%调速,并内置低占空比保护和速度边界校验。
核心的运动学解算(motion.c)模块根据上层期望的运动指令,反解算出四轮的目标转向角度和转速,是连接上层指令与底层执行的桥梁。
远程控制系统
远程控制系统由Python后端与Web前端构成,基于Flask框架。
后端通过pyserial管理串口通信,并提供了`/send_command`接口,负责校验并转发前端发来的二进制控制指令。前端则设计了可视化的多摇杆操控面板,完美适配鼠标、触屏和键盘操作。
摄像头图传功能则整合了hobot_vio硬件库,将采集的视频流编码为MJPEG格式,通过Web服务实时传输,允许用户在浏览器中直接查看小车视角。
这个开源项目不仅展示了创客精神,也为轮式机器人的复杂运动控制提供了一个优秀的参考方案。它证明了通过精巧的软硬件设计,单个底盘也能实现极大的功能灵活性。这样的设计思路是否能在更多移动机器人领域得到应用?它为未来的机器人开发打开了新的想象空间。