飞思卡尔智能车

今年做的是光电直立,程序主要是参考官网上面给的清华的方案。原理什么的就不具体研究了,方案还有论文里面都非常的详细。

主要有三个部分:1角度控制,2速度控制,3方向控制。其中还有利用互补滤波来计算角度以及利用PID算法来进行控制。

首先是角度控制,利用陀螺仪积分来计算角度,同时由于积分会导致误差的积累,所有需要利用加速度计进行修正,这里利用的是互补滤波的算法。在加速度计计算角度的时候,我们采用的方法是,获取一个直立时候的初始值,然后让车模向左边倾斜至水平,认为此时加速度计的数值a1对应角度是90°(或者-90°也可以),之后在让车模向右边倾斜至水平,认为此时加速度计的数值a2对应角度是-90°(之前-90度对应这里是90°)。然后利用加速度计计算角度的时候就可以利用180 / (a1 - a2) * a3(a3是当前加速度计的输出)计算角度(公式这里要注意一个正负的问题,具体可以试验一下,这里就不具体描述了),这么计算角度会有一定的误差,不过考虑直立并不是要求角度非常准确,所有就没有研究其他的方式结算角度。计算角度的时候,利用互补滤波和角速度的积分进行融合,这里融合也有两种方式,一种是加速度计算出来的角度直接和陀螺仪积分出来的角度进行融合,就是ratio_accel * angle_accel + ratio_gyro * angle _gyro,这里的两个比例(ratio)个人认为应该满足相加和为1,但是由于没有尝试过,这里就暂且留个疑问。第二个种方法就是清华的方案了,他是利用加速度计计算的角度,与之前计算出来的角度做差,然后将这个差值除以一个时间常数(不太理解为什么),之后再处理过的偏差直接加到角速度的输出上面,然后角速度的输出上面有一个比例,通过调这个数来完成融合,调试的时候需要利用上位机,陀螺仪的比例过大会导致角度计算迟钝,而陀螺仪比例太小(相对来说就是加速度计的比例过大)会导致计算出来的角度输出不够平滑,最终能够确定一个比较合适比例。然后根据利用PID算法来控制角度,并直接将其转换成电压。这里利用的是PD控制,D(微分)对应角速度,这里也不是非常的理解PID,PI,PD etc之间有什么区别。最后将电压转换成PWM输出到车轮上面,就可以完成直立,可以考虑加一点死区电压,因为两个电机是不可能完全一致的。在调整PD的时候,先调整P使得车模能够围绕着直立的状态左右摇摆,但是要注意的是,单纯的P是不能让车直立起来的,然后是增加D,D能够抑制抖动,但是D过大会导致车模的高频振动。在调整好PD之后车模就能够直立起来,不过因为没有速度的闭环控制,所有会出现往一个方向一直匀速(或者有一点加速度)的前进这个是没有问题的。在调完后面的速度控制之后,就能较好的直立起来。

先写到这里,剩下的之后在写

时间: 2024-10-19 22:17:41

飞思卡尔智能车的相关文章

飞思卡尔智能车电磁组分区算法介绍

写在之前的话: 1.目前我是一名在校学生,这也是我第一次写博客,不周之处,请多谅解: 2.此算法并非原创,借鉴自山东德州学院第八届白杨队(PS:个人看法,对于一些人把别人的开源东西改头换面一下就说是自己的原创行为十分鄙视): 3.对于此算法的理解和说明并非纸上谈兵,算法已经被我运用到了小车比赛中并取得好的成绩(具体就不多说了,比赛时车莫名其妙坏了,比赛前调试的速度绝对能进国赛,比较遗憾),总之这算法是我尝试过的最好的算法: 4.这一次所介绍的只是路径算法和一些知识普及,后面有时间会介绍其余部分算

飞思卡尔智能车一:山外鹰眼摄像头使用原理

最近在做飞思卡尔,研究摄像头,研究了大半周,终于弄懂了摄像头使用原理.最近摄像头相关算法也有点收获,以后再写. 首先,鹰眼是一款二值化摄像头,只有黑白两色.在调试上位机的时候可以直接发送img二值化01数据,也可以解压后发送灰度数据,但这里的灰度数据只有0和255,没有中间的过度,也相当于二值. 开始以为单片机向摄像头发送信号,促使摄像头把数据传回来,但事实不是这样的. 其实,鹰眼很主动.将他接电接地后,他会向单片机主动的发送数据和信号,其中重要的,有PCLK和场中断信号. 场中断是一帧图像的开

2015/8/4 告别飞思卡尔,抛下包袱上路

飞思卡尔智能车竞赛已经彻底结束了.最后在华北赛区拿到一个不高不低的名次,然后让学校的另一支队伍去参加国家赛.说实话也没什么可惜的,如果最后的决赛时候没有硬件的问题让我能发出去车就是完美了.虽然这个比赛没有做到超一流,但是好歹也敢说自己在赛区里是一流.决赛如果能冲出跑道,还是有自信排入赛区前十二的. 不过拿到全国赛的门票可能也是一种对自己的束缚,那样一个暑期可能又要和车朝夕相处,继续不能从事自己爱的事业.而现在,至少有时间来学习计算机原理,来学习软件系统.不曾可惜,所谓竞赛,总是实力和运气交织,激

独立、原创、总结、分享、行动——由海滨学生参观实验室及“飞思卡尔”杯智能车比赛想到的

题记:以下内容,都是老师在和学生交流过程中发现的现象,这里主要指出了存在的问题和可能的解决方法.其实同学们也有很多的优点,这里没有一一叙述.本着"有则改之,无则加勉"的态度分享自己的感受. 今天海滨学院环境专业大二学生,在曹瑞雪博士带领下来主校区参观,其中有一个点为我们海洋遥感与信息技术实验室. 接到曹老师电话(还有20分钟到达),立即把楼顶天线的门打开,同时走了一下参观的路线.在7楼恰好看到有同学在试车(参加智能车比赛的学生,7楼是科技园的一个智能车训练场地),简单的交流了几句,了解

“飞思卡尔”杯智能汽车设计与实例教程完整PDF学习版 [隋金雪,杨莉,张岩编著][电子工业出版社][2014.01][514页]

“飞思卡尔”杯智能汽车设计与实例教程完整PDF学习版 [隋金雪,杨莉,张岩编著][电子工业出版社][2014.01][514页] 原文地址:https://www.cnblogs.com/scrazy/p/9148134.html

freescale飞思卡尔 HC9S12 系列单片机 Flash擦写详解(一)之时钟设置

Flash擦写的内容,个人做HC9S12系列单片机时觉得应该是各模块内容中最难而且是最麻烦的一步了.只有能够对Flash进行擦写以后,所做的Bootloader才有真正手段将串口或者其他通讯手段接收到的数据或者程序写入Flash中进行程序或者数据的更新.当初做Flash的擦写也遇到了很多问题,网上搜罗下来也没有合适的帖子能够详细的将整个过程或者学习的思路以及最后实现的程序详细的加以解析,而本博文就是基于这个出发点来写的.技术本身应当是共享的才能真正让社会进步,不是么? 关于单片机Flash的基本

飞思卡尔Freedom开发平台FRDM-KE02Z资源汇总

我参加 CSDN 博客之星大赛了,请大家多多支持!投票网址如下: http://vote.blog.csdn.net/blogstar2014/details?username=woshi_ziyu#content ------------------------------------------------------------------------------------------------------------- KE02: Kinetis KE02入门级MCU http://

BZOJ 2433 智能车比赛(计算几何+最短路)

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2433 题意:若干个矩形排成一排(同一个x之上最多有一个矩形),矩形i和i+1相邻.给定两点S和T,两点均在矩形内.求S到T的最短路径.只能在矩形内部走. 思路:首先,S到T若有转弯,必定是在矩形 的顶点处转弯.因此,只要建立任意两可达顶点(包含S和T)之间距离求最短路即可.若暴力枚举任意两点再判是否可达复杂度O(n^3).优化.枚举起点 a,从左向右扫遍矩形,利用叉积维护关于该点a的上

飞思卡尔i.mx6交叉编译工具链BUG

最近在用飞思卡尔的i.mx6平台做一个项目,编写完代码在i.mx6上测试的时候发现有一个函数的返回值判断一直不正确, 我一个函数的返回值类型为 "char" 错误返回值是 '-2',并且用其返回值与 '0'值比大小来进入不同处理分支,但是测试的 时候发现,程序始终无法进入错误分支,最后经反复测试才找到问题,因为返回'-2'的时候系统把他当做254来处理了. 后来我在char前边加一个signed修饰,就能正确返回'-2'了. 就是说i.mx6的编译工具把 'char'型默认为'unsi