请选择 进入手机版 | 继续访问电脑版
正在上传图片(0/1)

CodeMaster 第二次任务优化改进

 4
手机看帖 7 1441
9月26日第一次更新:
1.经过与群内机友们思维碰撞,我把这次任务的执行方法优化了一下,之前设置程序的不足是每次瞄准都要调用识别模块对准,速度上太慢。首先想的解决思路是大师之路上定点打击内调用云台姿态角的方法。在开始前先都遍历每个标签的位置并做成列表。倒计时后直接调用标签位置瞄准。因最难的工作都在开始前准备完成了(录入是相当长的过程,半分钟),理论上速度应当是最快的。请看下面视频。
2.但是这样设计还不太理想,如何减少刚开始的录入工作量?其实,标签列表识别模块会记录标签的数量和每个标签在屏幕上的位置(X,Y),通过简单计算就能得到在当前视图下云台瞄准每个标签所需转动的角度。再把所得角度按标签大小顺序排列入列表,这样就不用转动云台得到相同的结果。效果请看下面视频。欢迎大家交流。

9月24日第一次编辑:
这次任务收到后一直没大块时间调试,之前做的几个方案几经否决,选定了最保险的一个。
任务要求:先随机生成初始两个1到5之间的数字,根据肥伯纳妾数列的进行方式数到100以内。即从第三个数字开始,当前数字等于前面两个数字之和。生成数列后,依次用S1机器人标识出每个数字。

我把任务分解成:1.各种设置
2.生成数列
3.根据数列依次瞄准射击各数字

1.设置较容易:打开识别标签,让S1视野里出现全部数字就好。
2. 生成数列:(1)确定初始两数字大小并排序,(2)生成后续100以内数列,这个数列刚开始写复杂了。没有动脑精简些。后来改动了下,代码行少了很多。运行也快了些。
3.根据数列依次瞄准射击各数字: 这个是花时间较多的地方,刚开始的思路与官方教程里“九宫格标签”差不多。使用PID控制寻找对应标签。大部分情况下效果不错。后来发现了个问题:标签列表第一项是标签数量,当识别到10个标签时,就会与0的标签ID相同。索引时会产生冲突,再增加逻辑会使程序更复杂。就转而改用官方教程“定点打击”里的思路,调用标签瞄准模块,程序逻辑就简化了很多。以下是Scratch代码图和视频,视频是晚上拍摄,受光线影响厉害,只能打开手机闪光灯补点。
从屏幕上标签位置计算云台角度,一次录入,然后对照数列。这是我目前认为较快的方法。
任务二第二次代码优化  上
任务二第二次代码优化  下
任务初次代码
先依次瞄准一遍各标签并记录云台姿态角,做成列表,录入时间很长。近半分钟
录入标签数据完成后,生成斐波数列并在倒计时后直接调用所需姿态角,瞄准速度很快
第一次完成,调用智能瞄准模块,逻辑简单,但速度慢
评论
上传
你需要登录之后才能回帖    登录 | 注册
CPYCPY  Mavic Mini认证用户 2019-9-24 2#
程序比我少好多,我可能一百多行~~~
楼主  机甲大师 RoboMaster S1认证用户 2019-9-24 3#
CPYCPY机甲大师 RoboMaster S19-24 09:09
程序比我少好多,我可能一百多行~~~
等你发布了
JIONEY  Goggles认证用户 2019-9-24 4#
CPYCPY机甲大师 RoboMaster S19-24 09:09
程序比我少好多,我可能一百多行~~~
感觉我写的程序有些地方有点多余


学习,再优化。。。

楼主  机甲大师 RoboMaster S1认证用户 2019-9-24 5#
JIONEY机甲大师 RoboMaster S19-24 09:15
感觉我写的程序有些地方有点多余


学习,再优化。。。
有空发过来我也学习学习
CPYCPY  Mavic Mini认证用户 2019-9-24 6#
JIONEY机甲大师 RoboMaster S19-24 09:15
感觉我写的程序有些地方有点多余


学习,再优化。。。
我也是,我写了好多,晚上报名
总督  机甲大师 RoboMaster S1认证用户 2019-9-26 7#
不断优化的过程就是深入学习的过程,玩出名堂,为你点赞
月沧九灵   2019-10-12 8#
大神,我照着你的代码学习为什么会出现访问数组越界呢?
认证设备
取消 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表