“饶淙元”版本间的差异
(→Day 3) |
|||
第35行: | 第35行: | ||
=====Day 3===== | =====Day 3===== | ||
− | |||
− | |||
<font face = "kaiti"> | <font face = "kaiti"> | ||
− | + | 今天的内容为完成自编舞蹈,根据要求我们大概需要编一段一分半左右的舞蹈连续表演两次,总时间大概三分钟。不得不说,根据昨天编写一个动作调试半个多小时的节奏来说,一天三个小时的时间可能只能写出十几秒钟的内容,但是既然老师下了这样的要求,那就说明一定是有完成的办法的,否则这个任务就没有意义。抱着这样的心态,我想到了前天安装软件时U盘里附带的那部分基础动作,比如我们昨天完成的俯卧撑时也参考了官方给出的动作,如果这些动作库里的东西作为舞蹈的一部分,那么在断时间内完成舞蹈动作的编写就不是不可能了。 | |
+ | |||
+ | 我依然选用的昨天已经定好的《小苹果》作为BGM,开始进行“舞蹈排练”。尽管库里已经给出了一些动作,但是这些是零散、单纯的动作,它们的节律、时长与某首具体的音乐并不相符,某些参数也与我的机器人有所差异(舵机零点不同),因此我需要调整动作、改变间隔、增减关键帧,使得这些动作与《小苹果》的节奏基本一致,当然我也深知自己没有什么音乐天赋,机器人的舞蹈可能看上去没什么美感,但我尽可能做到我的动作与音乐歌词的分句相符,我在写程序时用注释标明了歌词、时间、动作,以便在连贯排练时能够更好的反馈出节奏问题所在。为此,我将翻滚、拥抱、欢呼等动作库里的东西以及自己写的原地踏步、抱苹果、伸手等动作进行结合,经过反复调试调整节奏,使得最终能有一套连贯的动作和音乐基本契合。 | ||
+ | |||
+ | 在我自己调整动作时,我也注意观察了下动作库里给出的动作,因为这些动作可能都经过多次演练、不断升级而成,我相信我从中一定能有所收获。果然,在逐步调试每一帧后,我发现这些动作特点非常鲜明:这些东西的关键帧非常多,并且频繁切换速度,达到了动作的连贯性以及近人性,尤其是将动作分解得更为细微后,可以让本来一帧也可以做到的动作用三四帧来分解,出现明显的加速减速过程,这样使得动作更为稳定。反观我自己写的动作,虽然经过数次角度调整后基本能做到连贯不摔倒,但是每个动作飞速完成后机器人往往会全身一颤,让人看上去就觉得动作很悬,这大概就是因为速度和帧数没有做到位的缘故。 | ||
+ | |||
+ | 最终的比赛是一场遥控足球赛,今天已经开始铺设场地,并且让我们上场试了试,我用一个简单的踢球动作进行踢球尝试,不料一脚踢出球沿斜线滚走不说,机器人自己还往前摔倒了,这表明原来的动作平衡性还是有所不足,看似已经完成了踢球动作,但实际上最终一脚踢出后自己重心却没有落实,这样的动作无法面对最终的比赛,在接下来的日子里我需要重写踢球动作,使得机器人踢球后仍能移动到目标位置,达到“亢龙有悔”的神效。 | ||
+ | |||
</font> | </font> | ||
---- | ---- | ||
+ | |||
=====Day 4===== | =====Day 4===== | ||
2018年9月5日 (三) 10:58的版本
我是饶淙元,来自无72班。
Day 1
今天首次接触到了Aelos机器人,打开包装看见一个完整的机器人的时候内心非常激动——还好不用自己组装:D
今天的学习中,我比对了Aelos三种PC端软件,特点总结如下:
- 简洁版可以很方便地指明遥控器与对应动作地关系,并顺便给出动作地重复次数等。但是在写动作代码时似乎并不支持IF、WHILE等,也就是说没有办法写条件句(或者是我没有找到,如果有谁找到了烦请告知一声),因此我不能想到写出好的逻辑的方法。(尤其是ENDIF都可以识别为关键字,IF居然不识别)
- 教育版主要采用流程图的方式,并且支持条件判断,有完备逻辑系统,但是似乎它只支持由框图到代码的单向转换,并不能直接改动代码反作用框图,所以只能采用拖动框图的模式编程,对鼠标依赖性很高。
- 专业版完全采用函数式编程完成指令操控,我初步尝试了一下感觉和写C手感较近,但是我们的机器人似乎并不支持专业版的IDE,所以这种方法并不可行。
今天听老师说用简洁版的软件已经足以完成课程内容,联想到发的遥控器,我突然想到一个关键问题:似乎老师一直没有提到、也一直没有人问到,最后的踢足球是遥控的还是自动的?我原本以为这和去年的电设一样最终机器人自动踢球比赛,但是从种种迹象来看,似乎更像是要做一个遥控比赛,因为如果是遥控比赛的话,确实无须用到条件判断,所有的if都将由人脑完成。但如果是这样的话,似乎我们用到的功能又太少,感觉并不像是这么简单。明天一定要问问这个问题。
写wiki时我突然想到,今天我基本可以确定这些软件底层是用C/C++写的,因为我用//和/**/可以写注释,并且课上老师也有提到这个机器人底层是AURDUINO,那么这就意味着C的运算符它大概也是支持的,那么我似乎可以充份利用?:运算符完成一系列的和条件句效果类似的操作(至少在这个体系下,我们目前所学到的输出仅有机器人的十六个舵机而已,这就大大简化了逻辑输出的需求),明天可以试试能不能使用?:运算符。
今天见识了很多机器人编程的内容,相比小时候见到的那些数个“关节”的机器人来说,今天所接触的内容相当具有趣味性和吸引力,希望将来的课程中我也会继续保持状态,坚定不移地完成各项任务。
Day 2
今天照着指导正式开始了动作编写,所幸乐聚已经完成了相当智能的封装,机器人的动作编写采用“关键帧”模式,我们不必把动作的每个细节解释清楚,只需要给出两个关键的节点动作的舵机状态,关键帧之间会自动完成缓冲,使得各个舵机同步运作。当然,这个缓冲过程可能不像我们想的那么完美,这就需要新增一些关键帧作为过渡动作,这种感觉与用软件做图时画曲线非常的相似。今天一个下午的时间我们以此完成了以下几个动作的编写。
- 金鸡独立
我们首先完成了一个金鸡独立的动作,不同于直观感受那样收起一条腿就能完成,我们还必须考虑重心的问题。我在一步到位的尝试失败后,采用两个关键帧完成任务:首先用一帧的来倾斜身体,转移重心,然后第二帧顺势将非重心脚抬起,然后定住,这就完成了一个金鸡独立的动作。当然机器人比人强的一点在于稳住之后真的是非常稳,就这金鸡独立的稳定性我自认做不到。 - 大鹏展翅
大鹏展翅在我试图直接将一条腿翘起失败后,突然意识到这个动作可以在金鸡独立的基础上完成,金鸡独立稳住后将抬起的腿伸到身后,并且身体前倾,然后用一个循环控制手臂上下摆动即可。总的来说这个任务也不难完成,只是被讲师吐槽前倾倾角看不出来并且手臂摆动过于机械,调整了很久才达到要求,不过看到多数人的摆臂第一反应都是只动舵机2和舵机10后我就放心了,这很工科男。 - 俯卧撑
到了俯卧撑,难度开始飙升,和我做俯卧撑的难点相反,对我来说俯卧撑的上下动作是最难的,而对机器人来说这些两帧循环可以做到的事情非常容易,难点却是在于趴下后如何起身的问题。对此,我从实际出发,采用我个人做完俯卧撑后的起身方法:先将左腿收回,再将重心落在左脚上顺势而起。这个方法起身没有障碍,但是在得到了“创新”的夸奖后被打上了“不美观”的标签,最终我去仿照了样例程序的方法,先将两腿叉开,两手向内侧靠拢同时收腿,将重心聚在腹部并且顺势半蹲,然后站起。当然,对于“美观”二字我还是不是很懂,在我看来这种起身方法关键是做到了很好的对称性。 - 自编舞蹈
最后一个任务是自己播放一段音乐并且跳舞,但是舞蹈完全自己编写,所以这个要做好的话可能需要时间挺长的,今天短短的三个小时时间里并不能完全写好。我选择了《小苹果》当BGM,在剩余的时间里完成了前奏时的动作原地踏步走,不得不说就连这个看似简单的动作做起来也不是那么顺手,我模仿金鸡独立时的分解法才分解成功,尽管如此衔接时还有摔倒的风险,不知道明天会给多少时间继续完成这个任务,希望能把我记忆里老师教的那一套《小苹果》动作尽可能地复原一下。
写完今日wiki,突然感觉今天不是在上机器人编程实践课程,而是在上形体课程一样:D。当然我也知道,这样的课程交叉性的一些内容也是大势所趋,包括我们最终3V3的遥控足球赛实际上也需要我们有一定的足球策略以及遥控技术。
Day 3
今天的内容为完成自编舞蹈,根据要求我们大概需要编一段一分半左右的舞蹈连续表演两次,总时间大概三分钟。不得不说,根据昨天编写一个动作调试半个多小时的节奏来说,一天三个小时的时间可能只能写出十几秒钟的内容,但是既然老师下了这样的要求,那就说明一定是有完成的办法的,否则这个任务就没有意义。抱着这样的心态,我想到了前天安装软件时U盘里附带的那部分基础动作,比如我们昨天完成的俯卧撑时也参考了官方给出的动作,如果这些动作库里的东西作为舞蹈的一部分,那么在断时间内完成舞蹈动作的编写就不是不可能了。
我依然选用的昨天已经定好的《小苹果》作为BGM,开始进行“舞蹈排练”。尽管库里已经给出了一些动作,但是这些是零散、单纯的动作,它们的节律、时长与某首具体的音乐并不相符,某些参数也与我的机器人有所差异(舵机零点不同),因此我需要调整动作、改变间隔、增减关键帧,使得这些动作与《小苹果》的节奏基本一致,当然我也深知自己没有什么音乐天赋,机器人的舞蹈可能看上去没什么美感,但我尽可能做到我的动作与音乐歌词的分句相符,我在写程序时用注释标明了歌词、时间、动作,以便在连贯排练时能够更好的反馈出节奏问题所在。为此,我将翻滚、拥抱、欢呼等动作库里的东西以及自己写的原地踏步、抱苹果、伸手等动作进行结合,经过反复调试调整节奏,使得最终能有一套连贯的动作和音乐基本契合。
在我自己调整动作时,我也注意观察了下动作库里给出的动作,因为这些动作可能都经过多次演练、不断升级而成,我相信我从中一定能有所收获。果然,在逐步调试每一帧后,我发现这些动作特点非常鲜明:这些东西的关键帧非常多,并且频繁切换速度,达到了动作的连贯性以及近人性,尤其是将动作分解得更为细微后,可以让本来一帧也可以做到的动作用三四帧来分解,出现明显的加速减速过程,这样使得动作更为稳定。反观我自己写的动作,虽然经过数次角度调整后基本能做到连贯不摔倒,但是每个动作飞速完成后机器人往往会全身一颤,让人看上去就觉得动作很悬,这大概就是因为速度和帧数没有做到位的缘故。
最终的比赛是一场遥控足球赛,今天已经开始铺设场地,并且让我们上场试了试,我用一个简单的踢球动作进行踢球尝试,不料一脚踢出球沿斜线滚走不说,机器人自己还往前摔倒了,这表明原来的动作平衡性还是有所不足,看似已经完成了踢球动作,但实际上最终一脚踢出后自己重心却没有落实,这样的动作无法面对最终的比赛,在接下来的日子里我需要重写踢球动作,使得机器人踢球后仍能移动到目标位置,达到“亢龙有悔”的神效。
Day 4
loading......
Day 5
loading......
Day 6
loading......
Day 7
loading......
Day 8
loading......