智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 12242|回复: 48
打印 上一主题 下一主题

matlab在智能车比赛中的运用

    [复制链接]

24

主题

79

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4865
威望
1939
贡献
1108
兑换币
1259
注册时间
2014-9-9
在线时间
909 小时
跳转到指定楼层
1#
发表于 2015-8-18 16:41:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言:matlab是当前最强大的数学分析软件,在智能车比赛中可以发挥很大的作用。一年的做车过程中,一直在摸索着如何让matlab更好的应用在这个比赛上。现总结了三个比较有成就的方法,向与大家分享一下。(我做的是平衡车,重在应用matlab在智能车比赛的思想)
1.数据可视化
在用matlab进行数据可视化之前,我用过传统的虚拟示波器,觉得那个很占用时间,它是将任何格式的数据统统转化成float32的格式,很占用时间。有一些int16的数据完全没必要如此,而且单纯的看示波器的波形,缺乏准确性,对数据无法做后期处理。(当然可以将数据保存再用matlab调用)。我介绍一下我用到的数据可视化方法。我编写的程序绝大部分是int16的数据,我相信大家以一定是这样的。直接调用putChar()函数显然是不行的,因为他只能传输8bit的数据。这时可以用指针将int16的数据拆分成两个int8的数据再依次传输。通过蓝牙将数据传输给电脑。此时直接调用matlab的串口模块是行不通的(实践证明)。百度的解释是:matlab是一种解释型语言,跟不上115200的传输速度。此时可以用一个简单的串口助手来接收数据,以hex的格式保存,再用matlab导入数据。matlab可以很轻松的将hex格式的数据转化成十进制表示的数据。再用plot便可进行各种数据可视化的操作,观察车子运行时变量的连续变化情况,以便更好的调整参数。在hex转化成十进制数据时我用matlab编写了一个函数可一次观察8bit或是16bit的最多10个类型的数据。
2.数组处理
在做直立平衡车的过程中,一个很重要的环节便是将陀螺仪以及加速度计的角度融合。角度融合的关键我认为是归一化————相同时间内的陀螺仪累加值与加速度计的变化值相等。我用上一节的方法每50ms获取陀螺仪以及加速度计的数据。调用matlab自带的cunsum()函数很容易实现将陀螺仪的数据累加,再同时绘制累计值以及加速度计的数值,观察波形。通过放大以及缩小其中一个的数值,从而得出最佳的参数。(有点仿真的味道了)。
只是简单的提供一下数据处理的例子,抛砖引玉了。很多大牛们也一定有很多更精彩的案列。
3.仿真
matlab的m语言和c语言有很多相似的地方,用c语言实现的功能,用m语言也可以很准确的实现。
————获取ccd采集的数据后,用matlab编写仿真程序来提取中线是本次参加比赛最得意的一点。
在做车的过程中提取中线是至关重要的,光电组尤为如此。单片机提取中线进行的数据处理,以及中线的提取情况,我们很难知道他的准确度。此时可以仿真,在仿真中去调整参数,我用的是北科的四点提取法。
仿真的过程可归纳如下:
1.用手推着车运行,每50ms获取ccd的采集数据,这样推个20m大约可以获得5万个数据
2.用matlab编写m函数,实现与单片机中提取中线完全一样的功能,查看跳变沿的搜索情况。
通过这个方法,障碍,直角弯,单双线,都可以很轻松的编写出准确的c语言代码。
当然关键的一点就是m函数。matlab提供了可以单步调试,修改参数的平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

3

主题

44

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3755
威望
1836
贡献
1145
兑换币
1197
注册时间
2013-10-7
在线时间
387 小时
推荐
发表于 2015-8-18 17:33:58 | 只看该作者
:lol

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 3 反对 0

使用道具 举报

0

主题

27

帖子

0

精华

高级会员

Rank: 4

积分
624
威望
316
贡献
212
兑换币
212
注册时间
2014-6-22
在线时间
48 小时
推荐
发表于 2015-8-19 21:06:11 | 只看该作者
:)好东西
回复 支持 1 反对 0

使用道具 举报

24

主题

79

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4865
威望
1939
贡献
1108
兑换币
1259
注册时间
2014-9-9
在线时间
909 小时
推荐
 楼主| 发表于 2015-8-22 20:28:45 | 只看该作者
寻线仿真的效果图希望越来越多的人能够介自己用matlab的心得,让这项比赛越来越具有科学探索的感觉

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 1 反对 0

使用道具 举报

5

主题

833

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6207

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
3103
贡献
1968
兑换币
1747
注册时间
2014-5-8
在线时间
568 小时
2#
发表于 2015-8-18 17:26:04 | 只看该作者
matlab还是很棒的
回复 支持 反对

使用道具 举报

2

主题

164

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2510
威望
1257
贡献
831
兑换币
838
注册时间
2015-4-25
在线时间
211 小时
毕业学校
Destiny
4#
发表于 2015-8-18 17:53:06 | 只看该作者
回复 支持 反对

使用道具 举报

24

主题

79

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4865
威望
1939
贡献
1108
兑换币
1259
注册时间
2014-9-9
在线时间
909 小时
5#
 楼主| 发表于 2015-8-18 18:22:50 | 只看该作者

开源哈我就觉得matlab的资料太少了,才献丑的。。。。。。。
回复 支持 反对

使用道具 举报

2

主题

164

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2510
威望
1257
贡献
831
兑换币
838
注册时间
2015-4-25
在线时间
211 小时
毕业学校
Destiny
6#
发表于 2015-8-18 19:00:45 | 只看该作者
1908572033 发表于 2015-8-18 18:22
开源哈我就觉得matlab的资料太少了,才献丑的。。。。。。。

已经相当厉害了
回复 支持 反对

使用道具 举报

24

主题

79

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4865
威望
1939
贡献
1108
兑换币
1259
注册时间
2014-9-9
在线时间
909 小时
7#
 楼主| 发表于 2015-8-18 19:20:16 | 只看该作者

开源促学习,上传源代码呗
回复 支持 反对

使用道具 举报

3

主题

44

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3755
威望
1836
贡献
1145
兑换币
1197
注册时间
2013-10-7
在线时间
387 小时
8#
发表于 2015-8-19 02:15:00 | 只看该作者
这个其实是用来读取存在SD卡中的图像数据的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

16

主题

746

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4951
威望
2517
贡献
1610
兑换币
1718
注册时间
2013-12-12
在线时间
412 小时
9#
发表于 2015-8-19 09:29:24 | 只看该作者
好贴:lol:lol:lol
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 14:16 , Processed in 0.157334 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表