找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 45081|回复: 63

EV3 巡线

    [复制链接]
发表于 2016-6-25 18:02:09 | 显示全部楼层 |阅读模式
本帖最后由 山山山山茶树 于 2016-6-26 12:43 编辑

         依然是EV3巡线的相关问题,这次所发内容是本人这三天学习《乐高机器人:EV3程序设计艺术》里有关巡线的知识之后整理出来的,望各位大神指点。      巡线一直是一个热门话题,大家说的比较多的就是PID巡线,作为小白的我根本不知道啥意思。于是狂啃书本,从最基本的巡线开始。
     切换

这个非常好理解

这个非常好理解

      这种就是转左或者转右,没有直行的情况。于是又引入了直行的情况:

加入直行

加入直行

      到这我相信各位看官也知道该如何去设置更多的运动状态,比如加入向左急转,向左稍微转弯,直行,向右稍微转弯,向右急转。这些都可以用切换模块来实现。然而这些远远满足不了千奇百怪的巡线路径。于是,我们继续优化我们的巡线程序。
     比例巡线
     这里我们就要引入误差值,增益值以及转向值。
     比例巡线是根据目标值(机器人走直线时颜色传感器的值,计算公式:目标值=(最大值+最小值)/2)和输入值(颜色传感器实际测量的值)来改变控制变量(控制变量本人理解为移动转向模块里的转向值)的。
     增益值决定了机器人对误差值变化的反应速度,是自己设置或者调试得到。
     误差值=目标值-输入值
     转向值=误差值*增益值

比例巡线,简单明了,然而原理不是很好理解。

比例巡线,简单明了,然而原理不是很好理解。
         增益值需要反复的实验,找到最合适的增益值。用你自己的目标值和增益值测试这个程序,运行效果应该比切换程序更好。
    PID巡线
        那么接下来将写到我所学到的PID巡线(可能称不上是PID,自己觉得良好{:soso__3110130392203091378_3:})。之前看到唐伯虎大神写的PID巡线,觉得受益匪浅,结合《乐高机器人:EV3程序设计艺术》,浅谈一下学习PID巡线的感受。
     PID控制器——比例-微分-积分控制器
     和比例控制器一样,PID控制器也是用颜色传感器读数来调整起到控制作用的变量,也就是转向值。
     首先我们要采集颜色传感器的最大值和最小值,这个部分可以通过挪动机器人来实现,也可以让机器人自己完成。如何让机器人自己完成呢?首先我们需要一个机器人,然后写入程序就可以了。怎样知道颜色传感器采集的数值呢?将采集到的数值显示出来就可以了,这里需要用到显示模块。
                    

编辑成我的模块

编辑成我的模块

                  

我的模块

我的模块

                  

选择需要的通道

选择需要的通道

                    

点击确认后出现这样的程序,连接好通道就好了。

点击确认后出现这样的程序,连接好通道就好了。
                     

连接好之后

连接好之后
   下面是完整的机器人自己读取最大值和最小值的程序


2T]WL~O6_{OE]39ZVZ5)_UD.png 5RMF3B)LMBZ6_[BEBEXV852.png Y8NGMX1F3~W~7L$K@4Y8PXO.png
                        


     附件传不了,只能截图了。后期能传了再传一下。


     取得最大值和最小值之后又该怎么做呢?书上提到标准化传感器读数和目标值,公式是:标准化读数=100*(传感器读数-最小值)/(最大值-最小值)  它有什么好处呢?举个例子,不同的环境,不同的颜色,反射光值是不同的。以线路A最小值10和最大值80,线路B最小值30和最大值60为例,它们的目标值都是45,但是数值的范围不同,那么机器人对于这两种线路应该是不同的反应。线路A颜色传感器读数为60时,它还在线的边缘,而对于线路B它可能已经完全脱离线了。使用标准化读数之后,线路A的60,标准化为71,而线路B的60标准化为100。这个时候就反映出标准化读数的实用性,合理性。
     之前我们提到过目标值和误差值,在这里我们都将它们标准化。以线路A为例
     目标值45,标准化目标值为50     那么:误差值(Error)=目标值-测量值,标准化误差值=50-100*(测量值-10)/70

标准化误差值

标准化误差值
   之前写到过 转向值=误差值*增益值。
    这里我们将增益值记为Kp,这里就是PID里的P部分。
    PID里的转向值,转向值=误差*Kp+微分*Kd+积分*Ki。
    误差:Error,微分:Weifen,积分:Jifen。
    Weifen=Error-上一个Error。新的Jifen=0.5*Jifen+Error。
微分项   

微分项

微分项

积分项          

积分项

积分项

转向值        

转向值

转向值
          PID巡线虽然好用,可是调试过程非常困难,希望大家能耐住性子慢慢调试。


点击确认后出现这样的程序,连接好通道就好了。

点击确认后出现这样的程序,连接好通道就好了。

让机器人取最大值和最小值

让机器人取最大值和最小值

DisplayMinMax.ev3

9.3 KB, 下载次数: 687

读取Max和Min.

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2016-6-26 11:37:11 | 显示全部楼层
众木成林 发表于 2016-6-25 21:35
非常精彩。是单光感巡线,期待楼主更新。

谢谢鼓励,只是自己看书然后结合实际得到的,希望有所帮助。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 2 0

使用道具 举报

 楼主| 发表于 2016-6-25 18:02:49 | 显示全部楼层
未完待续。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-25 21:35:48 | 显示全部楼层
非常精彩。是单光感巡线,期待楼主更新。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-25 22:00:41 | 显示全部楼层
前排!跟着楼主一起学习进步!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-25 22:05:29 | 显示全部楼层
学习学习!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-6-26 11:37:31 | 显示全部楼层
qq516994189 发表于 2016-6-25 22:00
前排!跟着楼主一起学习进步!

谢谢,一起学习。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-6-26 11:38:40 | 显示全部楼层
本帖最后由 山山山山茶树 于 2018-5-25 10:33 编辑
一起学习!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-6-26 11:39:01 | 显示全部楼层
本帖最后由 山山山山茶树 于 2018-5-25 10:33 编辑

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-26 11:46:41 | 显示全部楼层
写的很棒,学习应用一下
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-6-26 12:44:41 | 显示全部楼层
xf-0729 发表于 2016-6-26 11:46
写的很棒,学习应用一下

谢谢支持。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-6-26 12:48:26 | 显示全部楼层
这里只有对转向的控制,有时间对控制功率的学习感受也写一下。还有如何快速的调节Kp,Ki,Kd,达到满意的巡线效果。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-26 14:21:32 | 显示全部楼层
好贴~~~对新手帮助很大~~~~谢谢楼主的奉献精神~~~~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-26 16:38:35 | 显示全部楼层
好贴,鼓励。

继续
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-6-26 16:50:29 | 显示全部楼层
这种帖子要赞一个。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-21 21:31 , Processed in 0.364282 second(s), 24 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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