智能车制作

标题: 实验室3.3M电磁小车机械和算法经验分享 [打印本页]

作者: w4540025    时间: 2014-7-29 14:34
标题: 实验室3.3M电磁小车机械和算法经验分享
看大家在论坛里吵得乌烟瘴气的,请大家不要再吵了,比赛已经过去了,东北赛区是什么样的大家心里清楚就行了。
现在再吵对任何人都没有好处,还让全国的车友看了笑话。谢谢。

由于失误,回不了成都了。两年做车经验分享,希望能对大家有一些帮助。
小车的大部分算法和机械结构都是我很队友讨论实验出来的,也算是有比较多的见解。

机械结构篇
相信大家都知道,一辆车的极限在哪里,容不容易控制,最后完全都取决于机械结构的改装和调试。
首先最重要的就是传感器支架,传感器,太软不行,太重也不行,所以就需要良好的结构。我和队友试过很多结构,最后还是发现
三角形结构最稳定,最轻,跑起来也不会有晃动。
下图中1号是支撑杆5mm外径4mm内径。2号是4mm外径3mm内径的拉杆

1号和2号还有车底盘形成一个三角形结构,它们不会有任何相对运动,在车运行过程中,除非是整个车在震动,不然支架是不会有相对于车体的晃动的,支架的晃动是会导致计算的误差的。
作者: 囧zZZ    时间: 2014-7-29 14:35
ZAN
作者: 冬晨夏夜    时间: 2014-7-29 14:37
谢谢大神的经验分享
作者: wmslecz    时间: 2014-7-29 14:37
赞一个..
作者: wmslecz    时间: 2014-7-29 14:38
赞一个..
作者: w4540025    时间: 2014-7-29 14:40
本帖最后由 w4540025 于 2014-7-29 14:48 编辑

碳杆固定结构是3D打印制作的,不得不说3D打印机真是一个神器。
画图工具是用的solidwork   上学期的选修课,基本上没听过,结果这学期用得最多。哈哈哈。也是意想不到
下面有我画的工程文件分享,需要的自取  定位孔都是原车底盘上的定位孔,完全保证安装的精确性
作者: Jyoun    时间: 2014-7-29 14:46
赞~~~
作者: w4540025    时间: 2014-7-29 14:47
然后得重头戏就是前轮结构的调校,我们用的是卧式的舵机结构,至于为什么用卧式,一是参考了去年的成电超音速, 二是自己的分析,卧式舵机的优点主要连杆的运动在一个平面上,不会有其它方向的分力,能更好的发挥舵机的性能。
作者: 六步上篮    时间: 2014-7-29 14:50

作者: 会飞的鱼zhh    时间: 2014-7-29 14:50

作者: 释是圣杰    时间: 2014-7-29 14:53
赞!
作者: 竹音清影    时间: 2014-7-29 14:54
浪险。你们真好,还有3D打印机。
作者: w4540025    时间: 2014-7-29 14:55
然后我们遇到的就是解决空程的问题,空程这个东西很要命的,空程越小的车越好控制,当时我们这辆车装出来参数没怎么调就能跑2.5  一是这个地方   细心的一定会发现区别,这个就用原厂的零件就能做到的,有的大神是买的赛车零件来改装的,我们没买着合适的就用的这个,当然这个结构是需要打磨的。
作者: 易湘鑫    时间: 2014-7-29 14:58

作者: w4540025    时间: 2014-7-29 14:59
还有一个地方是需要用胶粘死了···这个地方的空程也很大   不过要注意得粘平了
作者: Jyoun    时间: 2014-7-29 14:59
w4540025 发表于 2014-7-29 14:55
然后我们遇到的就是解决空程的问题,空程这个东西很要命的,空程越小的车越好控制,当时我们这辆车装出来参 ...

空程你是只虚位吗?我觉得虚位影响不是很大。不过虚位越小,控制确实会更好,但是提升是非常有限的。

作者: w4540025    时间: 2014-7-29 15:02
Jyoun 发表于 2014-7-29 14:46
赞~~~

王同学才是真正的大神,不仅能在实验室跑得好,比赛跑得更好,我这种只能自己在实验室意淫。哈哈哈。本来还说到时候去成都和王同学见一见的。我有个高中的好朋友说是认识你。不过现在回不了成都了。希望你国赛能够超神。

作者: w4540025    时间: 2014-7-29 15:03
Jyoun 发表于 2014-7-29 14:59
空程你是只虚位吗?我觉得虚位影响不是很大。不过虚位越小,控制确实会更好,但是提升是非常有限的。

嗯,算法才是最重要的,但是这些细节也是需要解决的。越好控制不是更能发挥算法的性能吗
作者: w4540025    时间: 2014-7-29 15:08
然后就是主销内倾的问题了,具体大家已经讨论过很多了  我就给大家看一下我们是怎么做的吧  
从车前方看是内倾和外八的  从上方看是平的。我也不知道这样做是不是最好的。
作者: 海角七号    时间: 2014-7-29 15:10
大赞,,,,,,楼主加油,,,
作者: 机器人没名字    时间: 2014-7-29 15:12

作者: w4540025    时间: 2014-7-29 15:13
还有就是在调试内倾的时候  两边一定要调对称了··具体我是这样测量的
作者: w4540025    时间: 2014-7-29 15:16
其它的机械应该没有什么了 ,如果大家有好的建议也请提出来。   

下面说算法吧
作者: an~    时间: 2014-7-29 15:17
楼主好人。如果有机会,我们机械会再改动的
作者: w4540025    时间: 2014-7-29 15:28
可能寻线算法对于进国赛的车来说都不是问题了····我再说多也是献丑,只是提个思路吧,希望能对以后的同学有所启发。

我用的是比例化的算法,电感值比例化之后的值容易计算,电感值在0~100变化    这样做都是为了方便计算。

我是将计算分为了5段    先通过4个电感的值分段  选出段后计算,  0段用1号电感做线性变化的计算,1段用1号和3号做差比和计算,2段用1号和4号做差比和计算,3段和4段与1段0段对称。
对不起不能公布源码,这里有一部分是前辈流下的东西,我自己改了一部分,




补充内容 (2014-7-29 16:53):
还有就是  偏差的微分计算一定要准时···  也就是PID的D所乘的微分项,一定要是定时求出来的,离散的时间一样的话  微分项才能起到它的作用
作者: tangjiayi1994    时间: 2014-7-29 15:32
尾翼怎么来的。。
作者: tangjiayi1994    时间: 2014-7-29 15:33
还有就是你对软连接和硬连接的区别优劣等有什么看法
作者: 43380249    时间: 2014-7-29 15:33

作者: w4540025    时间: 2014-7-29 15:42
tangjiayi1994 发表于 2014-7-29 15:33
还有就是你对软连接和硬连接的区别优劣等有什么看法

尾翼是老B车的·· 实验室垃圾堆翻出来的      我以为还是硬的好····软的整个车跑起来显得特别滞。

作者: 狅士§    时间: 2014-7-29 15:46
这样子偏差连续吗
作者: tangjiayi1994    时间: 2014-7-29 15:46
w4540025 发表于 2014-7-29 15:42
尾翼是老B车的·· 实验室垃圾堆翻出来的      我以为还是硬的好····软的整个车跑起来显得特别滞。

。。同感。  用PCB封死吗?

作者: w4540025    时间: 2014-7-29 15:51
下面说说 避障算法吧····我们也是  超声波  光电都试过 ···最后发现都不太稳定····也可能是我们自己写得不够好,最后考虑到加CCD对整体结构的影响最小    CCD灰度值提取是直接借用光电的
CCD的安装 也是思考了很久,最后发现这样做对重心的影响最小,还能避开反光等影响。也看不到赛道边  最多也就看40宽,我订的CCD前瞻是60   9毫秒曝光,10毫米一个计算周期。
作者: w4540025    时间: 2014-7-29 15:53
本帖最后由 w4540025 于 2014-7-29 15:58 编辑

if(ccdcnr==9&&star1==1&&podao==0)
{  
  
   ccdR=0;
   ccdL=0;
   uint8 i;
   ccdmin=255;
   ccdmax=0;
    for(i=1;i<128;i++)          //不是从第一个开始是因为第一个点坏了····
    {
      if(ADV>ccdmax)
        ccdmax=ADV;
      if(ADV<ccdmin)
        ccdmin=ADV;
    }
   
    ccdmid=(ccdmax+ccdmin)/2;       //这是求阈值 ···不是巡线用不着太高深的算法
    for(i=0;i<64;i++)                          //数出小于阈值的点的个数      作为判断的条件
    {
      if(ADV<ccdmid&&ADV<240)
        ccdL++;
    }
     for(i=64;i<128;i++)
    {
      if(ADV<ccdmid&&ADV<240)
        ccdR++;
    }
   if((ccdL>20||ccdR>20)&&(Pe1-PECCD>-200&&Pe1-PECCD<200)&&(id<30&&id>-30)&&adpodao==0)  //在直道才开这个判断
   {
      ccdflag=1;                         //这里开启标志位进行计步
//gpio_ctrl (PORTB,9, 0);       //这个是蜂鸣器  测试用
      if(ccdL-ccdR>10)
      PECCD=+80;                //这个偏差求出来后   直接加到巡线算法求出来的偏差上
       else
      PECCD=-80;
     
   }   
   else if(ccdflag==0)
  {
   
    PECCD=0;
//gpio_ctrl (PORTB,9, 1);
  }

}


补充内容 (2014-7-29 16:55):
ADV=ADV    为什么粘过来全变成ADV了呢···

补充内容 (2014-7-29 16:56):
还是没有····  ADV=ADV(i)   大家应该大概明白是什么意思···
作者: 羊胡子    时间: 2014-7-29 15:54
我看你轮胎和轮毂那边不少白色的?是涂的502?
作者: 土豆的故事    时间: 2014-7-29 15:59
你们实验室能3D打印,这点真的很吊哦。
作者: w4540025    时间: 2014-7-29 15:59
羊胡子 发表于 2014-7-29 15:54
我看你轮胎和轮毂那边不少白色的?是涂的502?

是502   ···途漏了···

作者: w4540025    时间: 2014-7-29 16:00
tangjiayi1994 发表于 2014-7-29 15:46
。。同感。  用PCB封死吗?

是用sw画的图 然后用雕刻机雕的电木板

作者: w4540025    时间: 2014-7-29 16:06
狅士§ 发表于 2014-7-29 15:46
这样子偏差连续吗

嗯··这个就是是我调试主要在做的工作··  尽量把两段边界值调到有一点重叠的地方  然后  在两段之间初始化设置跳变值。
作者: 382232105    时间: 2014-7-29 16:09
太棒了
作者: w4540025    时间: 2014-7-29 16:10
土豆的故事 发表于 2014-7-29 15:59
你们实验室能3D打印,这点真的很吊哦。

嗯··今年学校才给配的,简直神器。前期各种试结构  打印耗材都用掉好几卷

作者: 土豆的故事    时间: 2014-7-29 16:10
w4540025 发表于 2014-7-29 16:10
嗯··今年学校才给配的,简直神器。前期各种试结构  打印耗材都用掉好几卷

那你们设计3D结构使用什么软件设计啊?

作者: w4540025    时间: 2014-7-29 16:12
土豆的故事 发表于 2014-7-29 16:10
那你们设计3D结构使用什么软件设计啊?

前面提到过   solidwork    简单好用易上手   还有中文版

作者: tangjiayi1994    时间: 2014-7-29 16:12
w4540025 发表于 2014-7-29 16:00
是用sw画的图 然后用雕刻机雕的电木板

叼炸天。。

作者: w4540025    时间: 2014-7-29 16:13
土豆的故事 发表于 2014-7-29 16:10
那你们设计3D结构使用什么软件设计啊?

我上学期选修了这么课  专门学用SW画图   当时没想到这么有用

作者: w4540025    时间: 2014-7-29 16:14
tangjiayi1994 发表于 2014-7-29 16:12
叼炸天。。

其实用PCB做一样···只是这样精确一点  能和原车定位孔对上。。。

作者: 土豆的故事    时间: 2014-7-29 16:16
w4540025 发表于 2014-7-29 16:12
前面提到过   solidwork    简单好用易上手   还有中文版

哦,我也用soildworks设计过,但是学校木有打印机。突然觉得你们好幸福。
作者: 爱走来的那天    时间: 2014-7-29 16:17
楼主,好厉害啊,大神!!求指导....
作者: tangjiayi1994    时间: 2014-7-29 16:17
w4540025 发表于 2014-7-29 16:14
其实用PCB做一样···只是这样精确一点  能和原车定位孔对上。。。

一直在纠结 电机下面这款底板能不能拆掉 直接用洞洞板和前面的底板相连。

作者: 爱走来的那天    时间: 2014-7-29 16:17
顶一个
作者: w4540025    时间: 2014-7-29 16:19
土豆的故事 发表于 2014-7-29 16:16
哦,我也用soildworks设计过,但是学校木有打印机。突然觉得你们好幸福。

你可以画好了发网上给人打印啊   我记得好像有这种网店

作者: w4540025    时间: 2014-7-29 16:20
爱走来的那天 发表于 2014-7-29 16:17
楼主,好厉害啊,大神!!求指导....

宇哥你别闹  好好给导师板砖

作者: wuzhishiji    时间: 2014-7-29 16:21
狂拽炫酷叼咋天
作者: 爱走来的那天    时间: 2014-7-29 16:21
w4540025 发表于 2014-7-29 16:20
宇哥你别闹  好好给导师板砖

你说的挺好的,我帮你顶贴,一会去给你点个赞....至于板砖这样的苦逼事情,就别提了,很伤的...

作者: 爱走来的那天    时间: 2014-7-29 16:23
这个帖子以后可以当教学弟的电子教程了,真是好样的,么么哒...
作者: 羊胡子    时间: 2014-7-29 16:33
我看你车上还有土豪金的散热片,这个哪买的?
作者: 土豆的故事    时间: 2014-7-29 16:33
w4540025 发表于 2014-7-29 16:19
你可以画好了发网上给人打印啊   我记得好像有这种网店

恩,是有的。等电赛之后有空再去打印。

作者: w4540025    时间: 2014-7-29 16:35
tangjiayi1994 发表于 2014-7-29 16:17
一直在纠结 电机下面这款底板能不能拆掉 直接用洞洞板和前面的底板相连。

我是直接做了一块板 夹在电机和底板之间   这样还能降低底盘高度[attach]67131[/attach]
[attach]67130[/attach]



作者: w4540025    时间: 2014-7-29 16:36
羊胡子 发表于 2014-7-29 16:33
我看你车上还有土豪金的散热片,这个哪买的?

淘宝搜索 280电机散热片

作者: 羊胡子    时间: 2014-7-29 16:43
w4540025 发表于 2014-7-29 16:36
淘宝搜索 280电机散热片

谢谢!
作者: w4540025    时间: 2014-7-29 16:43
大家都看到我用的7971驱动···建议大家不要用这个驱动了····   不能完全打通  驱动能力太弱····本来想着省赛回来换驱动的··结果万万没想到
作者: 小小同学    时间: 2014-7-29 16:50
给个赞
作者: 2012.6.17.23    时间: 2014-7-29 16:50
zan
作者: 安安安然。    时间: 2014-7-29 16:56
w4540025 发表于 2014-7-29 16:06
嗯··这个就是是我调试主要在做的工作··  尽量把两段边界值调到有一点重叠的地方  然后  在两段之间初 ...

这样在直道调出来的参数 在弯道处会有不连续的(偏差不可导或是导数为零)地方吗?

作者: w4540025    时间: 2014-7-29 16:58
安安安然。 发表于 2014-7-29 16:56
这样在直道调出来的参数 在弯道处会有不连续的(偏差不可导或是导数为零)地方吗?

应该是在弯道调出来才对····直道上应该是影响不大

作者: 安安安然。    时间: 2014-7-29 16:59
w4540025 发表于 2014-7-29 16:43
大家都看到我用的7971驱动···建议大家不要用这个驱动了····   不能完全打通  驱动能力太弱····本 ...

楼主对于驱动有什么好方案吗?  去比赛看到别人的车加减速各种完虐我们的BTN...

作者: hkb627x    时间: 2014-7-29 17:05
w4540025 发表于 2014-7-29 14:55
然后我们遇到的就是解决空程的问题,空程这个东西很要命的,空程越小的车越好控制,当时我们这辆车装出来参 ...

你指的空程是车机械上存在的有些间隙吗?例如前轮处的?

作者: 安安安然。    时间: 2014-7-29 17:09
w4540025 发表于 2014-7-29 16:58
应该是在弯道调出来才对····直道上应该是影响不大

楼主可有你们比赛或是调车的视频? 想看下

作者: Jyoun    时间: 2014-7-29 17:11
安安安然。 发表于 2014-7-29 16:59
楼主对于驱动有什么好方案吗?  去比赛看到别人的车加减速各种完虐我们的BTN...

经亲自验证,c车电机用7971和nmos的h桥驱动能力完全相当。加减速是需要靠车身重量和算法来解决。当然合适的pid参数也很重要。

作者: w4540025    时间: 2014-7-29 17:12
hkb627x 发表于 2014-7-29 17:05
你指的空程是车机械上存在的有些间隙吗?例如前轮处的?

是的
作者: w4540025    时间: 2014-7-29 17:15
Jyoun 发表于 2014-7-29 17:11
经亲自验证,c车电机用7971和nmos的h桥驱动能力完全相当。加减速是需要靠车身重量和算法来解决。当然合适 ...

是吗 我也没试过   mos管 我们是用的33883做的驱动管理 不过他们B车换过驱动非常好 我才有这种想法   可能是我速度环的参数没调好

作者: 月绕紫藤    时间: 2014-7-29 17:18
顶一个
作者: w4540025    时间: 2014-7-29 17:19
安安安然。 发表于 2014-7-29 17:09
楼主可有你们比赛或是调车的视频? 想看下

http://v.youku.com/v_show/id_XNzQ2MDg2NjU2.html  这是东北赛区决赛的    哎  每次看都想哭··倒数第二挡跑的 ···还是滑出去一点点

作者: majorfog    时间: 2014-7-29 17:20
不错不错,正好电磁的东西一点都不懂无从下手呢    (窃喜)
作者: w4540025    时间: 2014-7-29 17:21
安安安然。 发表于 2014-7-29 17:09
楼主可有你们比赛或是调车的视频? 想看下

已发···为什么还要审核···

作者: 陽╄煋痕ぶ    时间: 2014-7-29 17:21
谢谢    大神   
作者: 陽╄煋痕ぶ    时间: 2014-7-29 17:21
赞两个
作者: 月绕紫藤    时间: 2014-7-29 17:27
楼主给力 再顶一个
作者: 月绕紫藤    时间: 2014-7-29 17:28
大神 顶顶顶 有什么不懂的可以来问我啊 哈哈
作者: 安安安然。    时间: 2014-7-29 17:30
Jyoun 发表于 2014-7-29 17:11
经亲自验证,c车电机用7971和nmos的h桥驱动能力完全相当。加减速是需要靠车身重量和算法来解决。当然合适 ...

那有可能是我们的电机PID没调好   调的过程中发现  用小的三个参数(有时仅给个小I)可以跑 加大P或I到震荡后 加D 就不会震荡  一直不明白这个PID参数要大点好 还是小点  没有深入理解到PID  还请介阳兄帮忙解惑`~
作者: Jyoun    时间: 2014-7-29 17:31
w4540025 发表于 2014-7-29 17:15
是吗 我也没试过   mos管 我们是用的33883做的驱动管理 不过他们B车换过驱动非常好 我才有这种想法   可能 ...

b车电机功率大,btn系列导通电阻的影响就表现的很明显了。

作者: Jyoun    时间: 2014-7-29 17:32
安安安然。 发表于 2014-7-29 17:30
那有可能是我们的电机PID没调好   调的过程中发现  用小的三个参数(有时仅给个小I)可以跑 加大P或I到震荡 ...

参数越大越硬,但是稳定性越差。

作者: 安安安然。    时间: 2014-7-29 17:38
Jyoun 发表于 2014-7-29 17:32
参数越大越硬,但是稳定性越差。

是不是对加减速要求高的话就要硬一点好?稳定性差是指会震荡吗?

作者: wuguangnan110    时间: 2014-7-29 17:41
围观大神!
作者: w4540025    时间: 2014-7-29 17:42
安安安然。 发表于 2014-7-29 17:38
是不是对加减速要求高的话就要硬一点好?稳定性差是指会震荡吗?

我是调到拿在手上没有负载的跑  有轻微的震荡。跑起来没有震荡。

作者: 永恒超越    时间: 2014-7-29 17:42

作者: 安安安然。    时间: 2014-7-29 17:45
w4540025 发表于 2014-7-29 17:42
我是调到拿在手上没有负载的跑  有轻微的震荡。跑起来没有震荡。

对对  我也是这样调的  可是实际跑起来在弯道感觉很不给力..

作者: w4540025    时间: 2014-7-29 17:53
安安安然。 发表于 2014-7-29 17:45
对对  我也是这样调的  可是实际跑起来在弯道感觉很不给力..

嗯··我本来最低速速和最高速差别就不大·也没在意···速度换没调两天    建议你用上位机调调,这些我都没来得及做

作者: w4540025    时间: 2014-7-29 17:55
安安安然。 发表于 2014-7-29 17:45
对对  我也是这样调的  可是实际跑起来在弯道感觉很不给力..

http://v.youku.com/v_show/id_XNzQ2MDg2NjU2.html

作者: 安安安然。    时间: 2014-7-29 18:18
w4540025 发表于 2014-7-29 17:55
http://v.youku.com/v_show/id_XNzQ2MDg2NjU2.html

挺可惜的  刚加了你扣扣  方便聊下?  

作者: w4540025    时间: 2014-7-29 19:26
安安安然。 发表于 2014-7-29 18:18
挺可惜的  刚加了你扣扣  方便聊下?

506494050

作者: dingyongbin    时间: 2014-7-29 19:53
围观水一贴
作者: 1200    时间: 2014-7-29 20:25
一样的遭遇
作者: 沽名钓誉    时间: 2014-7-29 20:47
极品飞车三号,强者!!!
作者: DIYCAR    时间: 2014-7-29 21:00
ding
作者: ┗SKY┛    时间: 2014-7-29 21:52
咱      
作者: 爱很美    时间: 2014-7-29 21:55
:lol:lol:lol:lol:lol:victory::victory:
作者: 开灰机的灰机    时间: 2014-7-29 23:22
我们学校的3D打印好渣(9000块 国产货)  打印出来的很脆,精度也一般,
最后只用打了个支座 然后胶上热熔胶.

话说我和大神的很多思路都很像 算法啊 机械啊 还有用的配重也一样.表示很荣幸
:$:$
作者: 村口张si傅    时间: 2014-7-29 23:48
Jyoun 发表于 2014-7-29 17:11
经亲自验证,c车电机用7971和nmos的h桥驱动能力完全相当。加减速是需要靠车身重量和算法来解决。当然合适 ...

请教大神一下,关于速度控制的算法,我们最开始用的是增量式pid,后来觉得车加减速太慢就加了bangbang,但感觉效果一般,接着改bangbang阈值,跑了一阵电机就烧了,,,,,我们目前推测是车体比较重再加上pid参数不好,所以现在在重做机械结构,并打算换mos。请问一下除了上面这些,在速度控制的算法上还有什么可以做的呢?谢谢~


作者: 正激波    时间: 2014-7-29 23:54
赞~~
作者: Jyoun    时间: 2014-7-30 01:55
村口张si傅 发表于 2014-7-29 23:48
请教大神一下,关于速度控制的算法,我们最开始用的是增量式pid,后来觉得车加减速太慢就加了bangbang,但 ...

很多,主要是改善pid,至于烧电机,明显是控制有问题。





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2