视觉导航小车开源项目(1) |
您所在的位置:网站首页 › 汽车底盘设计图纸 › 视觉导航小车开源项目(1) |
小车底盘
1 更新日志1.1 硬件方面1.2 软件方面
2 底盘硬件结构2.1 底盘机械组装2.2 底盘硬件框图2.3 底盘电气系统
3 差速底盘软件结构3.1 控制板介绍3.2 代码结构3.3 差速底盘运动学模型
参考资料
注: 本系列教程中开源的PCB文件、3D模型、相关代码不可用于商业用途,仅仅供大家自己打样学习自主导航小车使用。 第二版的小车主要想实现基于视觉的导航任务,考虑第一版小车硬件上存在很多问题,因此对机械也进行了改进。 1 更新日志在自主导航小车开源项目中,我们分享了第一版的小车底盘结构和搭建过程。在使用的过程中发现了如下问题: 1、由于电机轴直接通过法兰连接轮胎,时间久了以后会导致电机轴变形,轮子和电机连接松动。 2、同一侧的轮子在原地旋转的时候,每个轮子受力不同,因此导致转向不灵活,同一侧的轮胎的速度会不一样影响里程计。 1.1 硬件方面1、更新底盘机械机构(增加轴承和同步带),保证载重和同一侧轮子速度一直。 2、自行设计了一套电源板对外提供电源,规范布线。 3、设计了一套控制板,包含DBUS、串口、485、CAN等常用接口和隔离输入输出IO。 1.2 软件方面1、更新小车底盘控制代码结构,将部分操作函数移到了中断函数里面。 2、增加IMU数据读取(MPU9250),增加了注释。 2 底盘硬件结构因此我们使用了增加了轴承座和同步带来解决这个问题。下图中左侧是第一版的小车底盘,右图是第二版的小车底盘。 小车的机械部分我们还是每一个轮子对应连接一个电机。并利用同步带把前后的电机连接起来。小车的3D机械图纸也是开源的,可以加扣扣群获取。(这里感谢师弟(徐久铭)帮忙设计机械) 实际中各位可以按照自己的实际情况找一个铝板固定电机支座子。以下是我们所使用到的设备清单:
小车硬件框图如下图所示的,第二版小车电机共使用4个大疆的M3508 电机,电机通过CAN总线与嵌入式处理器STM32相连,小车板载的IMU(MPU9250)使用IIC总线与STM32相连。处理器使用STM32F103单片机,单片机通过232串口与工控机实现数据交换。底盘STM32处理器主要实现遥控器数据采集、IMU数据采集和电机速度的闭环控制。 底盘控制器接收遥控器或者是工控机发送的目标速度指令(v,w),根据当前电机反馈的状态数据,通过PID控制器计算控制量,最后通过CAN总线下发电流值到每一个电机上,实现速度闭环控制。 工业用途底盘的电气系统主要负责为传感器和工控机供电,对电池充放电进行管理,检测电池电量、过流保护及控制小车各模块上电顺序。通常小车上使用DC-DC电压转换模块对外提供12V、19V、5V 等直流电源,而小车电机这类大功率设备的供电(高压供电)应由主控板通过控制固态继电器或者接触器实现。此外电气系统还应具备过载保护的功能,当系统某一路电压出现过载时,主控板可通过控制继电器断开该路电压保障系统的安全。 实际我们搭建的小车由于使用的功率较小,因此我们对电气系统进行了简化。没有使用高低压顺序上电,也没有使用接触器控制电机的上电。电池使用的是大疆的电池,该电池自带有过放电、充电保护和电池电量显示的功能。在此基础上我们自制了如下的电源板,电源板输入20-36V DC直流,输出1路DC 5V 2A 、1路DC 3.3-19V 2A 可调电源 、1路DC 12V 3.5A、1路DC 19V 3.5A,可满足对工控机和自主导航小车车载传感器供电需求。 电源板实物图如下:(该电源板的原理图可在底盘github代码仓库中找到) 电池依旧还是使用的和第一版小车一样的电池2块。 新的控制板在第一版的基础上增加了12V和5V对外输出,对外引出了485和232的接口。
代码的结构并没有很大的改变,只增加了IMU的读取,以及增加了一些注释和功能 下图展示了小车底盘运动控制的功能模块图,单片机控制器主要包含有4个功能:1)解析遥控器和上位机发送过来的数据指令。2)分别设置一个PID控制器控制每一个轮子的速度。3)解析电机反馈的电机状态数据。4)上传电机数据到上位机。 这里涉及到的STM32的模块有:CAN模块,串口2中断接收、串口1DMA接收、IIC模块 小车底盘完整代码见github上【1】 3.3 差速底盘运动学模型在完成小车底盘传感器的安装以后,我们首先需要分析小车的运动学模型,找到小车整车速度(v,w)与每一个电机的转动角速度的关系。小车整车的速度
V
V
V及航向角速度
w
w
w满足以下关系: 上述理论模型主要用于控制小车,当设定了小车整车的速度以后我们需要转换到每一个轮子的目标转速,最后对每个轮子分别实现变换控制。其次在推算小车的里程位置时候,我们获得的数据是小车每一个轮子的转速或者是转动的角度,此时我们需要根据上述模型,从每一个轮子的速度逆向计算小车的整体速度与位移量。 小车的控制板PCB文件、电源板3D文件和小车机械设计3D图可以通过加讨论群获取,请大家帮忙点赞收藏,支持支持。 注: 本系列教程中开源的PCB文件、3D模型、相关代码不可用于商业用途,仅仅供大家自己打样学习自主导航小车使用。 参考资料[1] 底盘STM32代码: https://github.com/RuPingCen/mick_robot_chasiss [2] ROS节点代码:https://github.com/RuPingCen/mick_robot 欢迎大家在评论区交流讨论([email protected]) O(∩_∩)O 或者加群水一波(1149897304) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |