《战车运动控制模块的设计与实现.docx》由会员分享,可在线阅读,更多相关《战车运动控制模块的设计与实现.docx(36页珍藏版)》请在金锄头文库上搜索。
1、RoboMasters机器人大赛战车运动控制模块的设计与实现目录1.项目概述42.项目目标42.1.基本功能与性能:42.2.扩展功能与性能:43.系统设计方案53.1.系统框图:53.2.子系统框图:63.2.1.硬件框图63.2.2.软件模块63.3.方案比较:73.3.1.硬件电路73.3.2.陀螺仪数据滤波83.3.3.速度分解93.3.4.旋转角速度PID控制93.3.5.底盘跟随PID控制94.各模块工作原理(详细设计部分)104.1.硬件104.1.1.电源模块104.1.2.通信模块114.1.3.遥控器信号接收模块134.1.4.SWD调试134.2.软件144.2.1.遥控
2、器译码144.2.2.PID控制164.2.3.PID应用194.2.4.速度分解214.2.5.卡尔曼滤波235.系统测试及调试266.项目实施总结及心得体会29致谢30参考文献30附录31电路图31源码341. 项目概述RoboMasters 是一项全新的机器人超级对抗赛。参赛队伍通过自行设计制造多种机器人进 行射击对抗,完成指定任务,由比赛裁判系统判定比赛胜负。 参赛机器人包括可以发射“弹丸” 的手动机器人以及能够完成一定任务的自动机器人。 参赛队员需要遥控手动机器人在复杂的场地中移动并发射“弹丸”,攻击对方机器人和基地以 取得胜利。自动机器人将在比赛中自动完成指定任务。本项目重点针对参
3、赛机器人的底盘运动控制进行设计与实现,其中包括了控制电路的设计焊接及调试、对运动进行速度分解、结合陀螺仪进行角速度和角位置闭环控制以及底盘跟随云台运动等部分。其中有些部分已经实现,我们将具体介绍其实现方法;对于还未实现的部分,我们则会重点介绍设计原理及方案,并希望在决赛的时候一一实现。2. 项目目标2.1. 基本功能与性能: 1) 实现通过主控板对四轮进行控制;2) 实现四轮的简单运动,包括前进、侧移、左右旋转;2.2. 扩展功能与性能:1) 通过速度分解实现全向运动;2) 实现陀螺仪数据的读取以及对数据进行卡尔曼滤波;3) PID角速度闭环控制四轮,使底盘运动更加精准;4) PID角位置闭环
4、实现底盘云台的跟随,使底盘旋转更加灵活。3. 系统设计方案3.1. 系统框图:Figure 1系统框图本系统主要由主控电路板构成,外接了陀螺仪,可以获取底盘运动的角速度信息,遥控器通过无线传输发送指令到主控电路板,主控收到指令后,通过软件译码得到运动的控制信息,结合陀螺仪数据(经过滤波处理后的)进行PID算法控制,再经过速度分解之后转化为对每个电机的转速的控制指令通过can通信传输给四个电机,完成底盘的运动。3.2. 子系统框图:3.2.1. 硬件框图Figure 2硬件框图主控电路板上集成了电源管理电路、状态指示电路以及各种调试接口如(SWD和串口)和外接接口,如can通信接口、PWM接口(
5、控制舵机)、陀螺仪接口(连接陀螺仪)和遥控器信号接收接口。3.2.2. 软件模块Figure 3软件模块软件部分分为了5个部分,首先是遥控译码模块,将遥控器、鼠标、键盘的信息转换成控制运动的信息;卡尔曼滤波模块主要是处理陀螺仪得到的数据减少噪声干扰;角速度PID控制是对底盘旋转进行修正;速度分解的目的是把底盘的运动转换为对四个驱动电机的控制;底盘跟随也是对底盘旋转的位置控制。3.3. 方案比较:3.3.1. 硬件电路原电路框图:Figure 4原电路框图新电路框图Figure 5新电路框图新的设计方案将云台部分的硬件转移到主控板上,通过主控板产生PWM波来控制摩擦轮电机、送弹电机以及舵机的运动
6、,这样可以简化战车的整体电路设计。新的主控板上还加入了陀螺仪的接口,方便陀螺仪的连接,通过陀螺仪可以获得战车的位置环,使用PID的方法实现战车运动的闭环控制,增加战车运动的稳定性,能够准确受到遥控装置的控制。新版设计方案还使用了重新选用的CAN芯片TJA1040,之前选择的CAN芯片可能我们的使用方法有问题或者不适合我们的电路,经常会出现一些奇怪的问题让我们无法解决,新设计的CAN芯片与STM32的MCU配合的比较好,不容易出现故障。3.3.2. 陀螺仪数据滤波在实际应用中,在陀螺以上往往作用了许多干扰力矩,在这些干扰力矩的作用下,陀螺仪将产生进动,从而使角动量向量慢慢偏离原来的方向,我们把这
7、种现象称为陀螺仪的漂移。这种漂移会干扰我们对角速度的测定。因此需要对陀螺仪得到的数据进行滤波处理,应用卡尔曼滤波技术对该漂移误差进行实时补偿修正,以得到更为精确的角速度以便进行旋转角速度闭环控制。3.3.3. 速度分解未进行速度分解时,我们通过对四个轮子输入转速与旋转方向可以实现前进侧移等基本运动,而麦克纳姆轮的设计优势在于可以实现万向运动,加入了速度分解算法,可以将将底盘在平面方向上的行驶速度和绕轴的转动速度构成的导航速度向量转换成四个轮子转速的向量,从而实现任意方向运动和任意角度旋转。3.3.4. 旋转角速度PID控制开环的控制往往是不精确的,当实际应用的环境出现偏差,就无法估计底盘运动是
8、否得到了正确的响应,因此也无法对不足或者过度响应进行补偿修正。因此加入旋转角速度PID控制,利用陀螺仪的数据进行闭环反馈。这样可以避免以前常出现的旋转偏移以及旋转之后停不下来的情况。3.3.5. 底盘跟随PID控制我们之前使用的方案是底盘和云台分别运动,这样虽然使云台运动灵活,但是会导致云台炮口与摄像头视野长时间存在偏离,这样并不方便操作手的操控。加入底盘跟随PID控制,云台的旋转为主要控制量,这样还是保证了云台旋转的灵活性(云台先动),底盘跟随则保证视野会跟随炮管的运动。4. 各模块工作原理(详细设计部分)4.1. 硬件4.1.1. 电源模块电源模块分为24V转5V和5V转3.3V两个部分4
9、.1.1.1. 24V转5V电路如下图所示:Figure 6 24V转5V电路24V转5V部分为开关降压电路,使用的是MP2482芯片,该芯片能够最大输出5A的电流,满足整块主控板的供电需求。电路中输入部分设计了多个去耦电容,使得输入电压较为稳定,降低元件耦合到电源端的噪声,起到抗干扰的作用。输出端电源到地也设计了多个去耦电容使输出电压更为稳定,同样起到抗干扰的作用。芯片各个引脚的连接按照芯片数据表进行设计,为了使输出电压为5V,按照数据表给出的计算公式:R2=R1Vout0.8V-1在R1=40.2k的情况下,输出电压与R2的关系如下表所示:Table 1输出电压与R2的关系Vout(V)R
10、1(k)R2(k)1.840.2(1%)32.4(1%)2.540.2(1%)19.1(1%)3.340.2(1%)13(1%)540.2(1%)7.68(1%)因此我们选择40.2k和7.68k的电阻作为反馈电阻,使得输出电压保持在5V左右。4.1.1.2. 5V转3.3V电路如下图所示:Figure 7 5V转3.3V电路5V转3.3V部分使用的芯片为SPX5205M5-3.3V,该芯片可以将5V的输入直接转为3.3V的输出,输入和输出部分都设计了去耦电容,以提高电压的稳定性以及抗干扰能力。5V转3.3V输出端连接了一个发光二极管用来指示电路是否正常工作。4.1.2. 通信模块通信模块分为
11、CAN通信部分和串口通信部分。4.1.2.1. CAN通信电路如下图所示:Figure 8 CAN通信电路CAN通信选用的是德州仪器的SN65HVD232芯片,该芯片的供电电压为3.3V,TXD和RXD引脚直接与主控芯片的对应引脚相连接,输出端CAN_H和CAN_L与接插件相连接,用于与电机驱动板以及云台板的连接。CAN_H和CAN_L之间是否接120的终端电阻需要看该电路板是否作为CAN通信的终端来使用,终端电阻起到了阻抗匹配的作用。4.1.2.2. 串口通信电路如下图所示:Figure 9 串口通信电路串口通信的电路设计比较简单,只需要将主控芯片上对应的引脚连接出来即可,该部分既可以作为主
12、控电路板调试程序使用,也可以用于主控板和云台板的通信。调试程序时可将程序运行过程中得到的一些参数通过该串口进行输出,通过USB转串口装置将得到的参数输入到电脑中使用软件进行查看。与云台板的通信可以使用串口进行互联,通过串口来互相发送数据。4.1.3. 遥控器信号接收模块遥控器信号接收部分电路图如下图所示:Figure 10 遥控接收电路电路中排针与遥控器的接收模块相连接,DBUS信号控制电平符合TTL,但是和普通的UART信号是相反的,所以需要在MCU端需要增加三极管取反电路,MCU才能正常识别出UART信号。取反后的信号直接与主控芯片的PA3引脚相连接,将遥控器发出的数据通过串口传输到主控芯
13、片,主控芯片将接收到的信号进行译码得到操作指令。遥控接收机如下图所示:Figure 11 遥控接收机(此图引用自大疆遥控器说明)这里重点关注4/5/6 三根控制线,4 是地线,5 是VCC 用于为接收机供电,电压范围为48.4V,6 是DBUS 数据输出线。4.1.4. SWD调试SWD调试部分电路如下图所示:Figure 12 SWD调试接口该部分电路的功能是提供一个调试MCU的接口,利用这个接口我们可以使用JLINK向MCU中写入编写好的程序,从而达到调试的作用。4.2. 软件4.2.1. 遥控器译码当接收机和发射机建立连接后,接收机会每隔7ms 通过DBUS 发送一帧数据(18 字节),
14、DBUS 的通信参数如下:Table 2 DBUS通信参数DBUS参数数值波特率100kbps单元数据长度8奇偶校验位偶校验结束位1流控无控制帧的结构如下所示:Table 3 帧结构域通道0通道1通道2通道3S1S2偏移01122334446长度(bit)1111111122符号位无无无无无无范围最大值1684中间值1024最小值364最大值1684中间值1024最小值364最大值1684中间值1024最小值364最大值1684中间值1024最小值364最大值3最小值1最大值3最小值1功能无符号类型遥控器通道0控制信息无符号类型遥控器通道1控制信息无符号类型遥控器通道2控制信息无符号类型遥控器通道3控制信息遥控器发射机S1开关位置1:上2:下3:中遥控器发射机S2开关位置1:上2:下3:中遥控器的通道和控制开关如下所示:Figure 13遥控通道(此图引用自大疆遥控器说明)鼠标信息如下表所示:域鼠标X轴鼠标Y轴鼠标Z轴鼠标左键鼠标右键偏移4864808694长度16161688符号位有有有无无范围最大值32767