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代码图和视频,视频是晚上拍摄,受光线影响厉害,只能打开手机闪光灯补点。
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代码图和视频,视频是晚上拍摄,受光线影响厉害,只能打开手机闪光灯补点。