从开始准备学校“驭远杯”比赛,到现在比赛结束,自己和自己的队伍以初赛和决赛都是第一名的成绩成功夺冠,不知不觉已经过去一段时间了。这段时间里,没有和往常一样定期的刷OJ,也少了一定的闲暇时光。基本每天都是在白天上课和写作业,晚上准备比赛这样的节奏中度过。物理实验什么的都停了好久,差点选不够了_(:зゝ∠)_

Shirobako

虽然忙碌,但是最后的结果还是很不错的,也证明了我们这么多天的辛苦没有白费吧。这里还是简单记录一下自己的参赛过程。

先附上自己的代码: Controller of Mars exploration
以及视频链接: YoutobeBilibili

比赛整体分为三个阶段,第一个阶段是对燃料块(方块)和仪器(圆球)的抓取,至少要抓取一个燃料块,抓取两个会有时间的附加分,这一阶段为手动控制。第二阶段开始为自动控制,要求小车能够对亮起的灯塔进行搜寻并触发相应的开关以关闭灯塔。触碰完四个灯塔后方可进入到下一阶段。第三阶段就是上高台了,小车需要自己调整好角度,成功登上高台,并且把仪器(球)放下。

整个驭远比赛的赛制则分为初赛、晋级赛和决赛。初赛选取4组队伍直接进入决赛,5-12名则进入晋级赛,并从中再挑选四组。

我们组在最初确定车身形状时想要让小车能够灵活的转弯,便试用了两轮驱动的圆形底盘。而后,在实际使用中,发现由于电机的不稳定性以及两轮驱动自身的缺陷,车在直线行进时会发生较大漂移。遂采用四轮驱动的方形底盘。

在团队分工时,由于队伍中有三人都可独立完成任务,直接把项目按照比赛流程划分为三个部分,以时间充裕性直接分配任务。对于重合模块,直接由前一部分提供API,如电机驱动,二三阶段的底盘驱动直接调用一阶段提供的API。

第1阶段主要问题为,机械臂的安装与控制。我们最初的方案中,机械臂的运动较为复杂,稳定性差。后在调试的过程中,受其他组的启发,将机械由4自由度简化为2自由度,使机械臂的运动更为简单稳定。

第2阶段中,我们在小车的前后各安装了一个红外复眼,以此实现了在第二场地中的任意位置对开启状态灯塔的定位。以红外复眼为判据,到达合适的位置后,分析红外复眼接受强度的数据,引导小车撞向灯塔。在实际调试过程中,发现踩灯后小车的回位稳定性较差。为解决这一问题,为小车上增加了电子陀螺仪模块,实现了较为准确的姿态控制。但只依靠红外复眼无法找到较为合适的转弯触灯位置,于是又在小车的左右各装了一个红外接收灯(连接到寻迹模块),用于转弯的判定。

当靠近2区域进出口的灯塔亮起时,小车会因过于靠近进出口而卡住,或回位时无法检测到黑线(黑线长度限制)。便在前后加装灰度传感器,用以避免小车转弯时过于靠近进出口。至此,2阶段完美完成。

第3阶段相对来说是比较简单的,在使用电子陀螺仪之前,我们在小车的正前方对称安装了3个不同朝向的超声波测距模块,以超声测距为主要依据,最终以非网格路径登上高台。然而,这样做的话,依靠超声测距调整小车时会消耗过多的时间,而且稳定性也欠佳。使用电子陀螺仪后,第3阶段的方案也随之改变。路径由不规则的,变为每次只转90度的网格路径,用陀螺仪来精确控制转角,3个超声测距也精简为1个用于辅助。这样虽然看似路径变长了,基本不需要复杂的调整,更加的稳定简洁。

比赛过程中也看到了很多新奇的创意,比如直接用空心杯来吸取泡沫,利用胶带直接粘(这个看起来很低端但是确实高效啊!只是物快放置的时候容易GG)等等。同时也见识了一些奇妙的状况,包括灯塔被“巨型”车体怼坏(想想都可怕= =)、成功冲上对方高地之类的。

嘛,就这么多吧。毕竟还在考期……
Shirobako - 这些你都没掌握吗