本帖最后由 mingtree 于 2019-10-11 09:53 编辑
初学者,儿子学校发通知市里有个家庭亲子机器人比赛,想带儿子参加,看了半天,只有这个项目可以参加,其他的太高端,花了半天研究出来的一套思路,不知道对不对,发出来请大家指正。
【机器人要求】
1、为了确保竞赛活动的公平性。机器人硬件必须是乐高器材,机器人控制器为WeDo2.0集线器,集线器的使用数量没有限制。连接到集线器的WeDo2.0传感器数量及电机数量也没有限制(如有特殊规定,会在具体项目中标明)。机器人软件要求:LEGO®EducationWeDo2.0(电脑版)或LEGO®EducationWeDo2.0(iOS Android Apps平板)。
2、机器人尺寸:22.4cm*22.4cm*22.4cm-在比赛之前,之中,之后,凡是超过最大尺寸的机器人将被自动取消比赛资格,比赛时机器人外观不得发生变化。
比赛地图
【比赛场地】
1、4条黑线,每条宽19mm,长50cm。线条在一个宽阔的水平面上平行放置。线条之间的间隔距离在5cm到50cm之间随意选择。
【比赛规则】
1、你的机器人在第一条线之前(开始/结束位置)启动。为了达到最高分,你需要完成所有循环,然后在开始/结束位置结束(机器人完全越过第一条黑线即可)。比赛时间和最佳时间由裁判使用秒表(手动定时)衡量记录。每一次尝试的最长时间为120秒。任务总分(最高分100分),加上时间分(在比赛过程中,如果挑战任务失败,则不计时间分)。任务分100分的组成如下:+20分成功完成第一圈比赛;+30分成功完成第二圈比赛;+50分成功完成第三圈比赛。达到100分的团队将根据他们完成任务的时间进行计分。时间积分:120-完成所有任务的时间(精确到0.1秒)。
2、计分方式:总分=任务分+时间分(120-完成所有任务的时间)。
3、比赛方式:每队2次(家长、学生各一次)比赛机会。取两次比赛中的最高得分将成为该队的得分。
【附加说明】
1、机器人在折返跑过程中投影触线即可。
2、跑第一圈时,机器人触及第二圈黑色实线,则失败比赛结束,以此类推。
3、比赛过程中,机器人脱离场地纸所示黑色虚线范围则比赛结束。
思路: 使用wedo2.0标准件搭建最简单的小车,如图。距离传感器放在前端垂直地面,一格距离。
小车
没有研究过结构性能的优化,纯粹觉着材料越少越好,就这样搭了一个。 然后就是摸索程序,费了好大劲,总算摸索了一个能够折返的程序思路,如下图:
程序
这里采用传感器识别到黑线然后记录变量+1,然后就是数赛道中识别黑线的次数就可以了,这是我第一次编wedo2.0程序,本来想网上抄一个,结果没搜到,也不知道这个程序的缺陷,暂且如此吧。其中马达的初速度和最后返程的马达速度都可以自己测试,比较好玩的是,速度调高,传感器反应不过来,会丢线,按照我上面小车的结构,我测试5以下的速度相对靠谱些,当然最后返程中黑线识别错误也没关系,根据具体场地情况,摄制最后一个停止的变量数值就可以了,我试过将马达和轮子的齿轮互换,最高9速返回,识别出第16根黑线就要停止了。
齿轮
存在的问题:传感器识别黑线然后马达转向,反应速度较慢,如果马达速度过快,就会冲出达到后面一根黑线,就犯规失败了。所以我尝试在尽量提高速度的情况下又能保证小车不冲出去到下一根线。当然,这跟地图大小有关系,比赛地图只给了一个区间,并没有定死距离,可能也是为了比赛公平和增加难度吧,这个要到现场调试。 我试着改进传感器的位置和状态,看是否能够影响反应时间。于是做了下面的调整,如图:
传感器B
这样设置传感器能够在小车到达黑线之前就检测到黑线,然后反应时间过后小车折返位置跟黑线贴合的会更好一些,缺陷是传感器精度会低一些。
以上就是我的思路,请各位老师批评指正。网上看到一个利用惯性和重心翻转车体的折返视频,但不知道wedo如何实现,以及如何解决高速下传感器检测黑线的问题。
|