原本打算写一篇Robogame历史上废话最多、实质内容最少的技术报告,但队长不许,于是只好以下文凑数了。
  我们的机械部分相对简单,腿部的设计在一开始就决定不采用加藤结构,而是用相对简单的四联杆,另设机构以移动重心,这样避免了单个动作涉及过多的自由度。RoboGame2008的规则允许遥控,给定的场地状况相对理想,故我们决定不设置AI,也不使用传感器,没有姿态调整,决策完全依靠遥控。
  在前期培训中我们得知,nRF24L01无线模块功能非常强大,可靠性极高,完全有能力胜任大量数据传输工作。故程序的整体架构(包括遥控端和机器人)采用了许炎武提出的结构,因此,架构中最重要的一部分被命名为“xuyanwu”(后被改名为“许炎武”)。剩下的两个部分分别被命名为“bondsdancer”和“skywalker”,这两个部分的命名都与其职能有关。"bondsdancer"意味着bondsdancer将没有决策功能,完全按照指令行事。“skywalker”则是纪念Anakin Skywalker(Star Wars主角,在Epsode II中,Obi-Won曾要求Anakin转发他向Jedi Concil的报告,因为他自己的“远距离通讯器”被打坏了)。
  许炎武负责的是类似于遥控器的工作,将指令按协议(这个协议曾多次修改)传送给skywalker,skywalker驱动无线模块转发给机器人上的bondsdancer。
  在程序编写过程中,因为模块化程序设计的经验不足,导致每一个部分的架构改而又改,甚至因此延误了工期。在bondsdancer的编写中,这种修改显然是一场噩梦,每一次修改,都无异于重写和重新调试,幸而bondsdancer自身并不复杂。今后,我再也不要给单片机写程序了。在编写skywalker的过程中,我无意中发现11.0592MHz的晶振即能准确定出20ms的舵机控制周期,又能以115200bps的速率做串口通信,于是,我们的两个单片机全部改为使用11.0592MHz晶振。
  在调试无线模块的过程中,我们得到了周宇老师的热心而无私的帮助,在这里,我衷心感谢他。而无论是我取得突破还是遇到瓶颈、挫折之时(显然这种情况更多一些),队长陈凯、队友许炎武、杨言超都一如既往的支持我,并报以巨大的信任,愿上帝保佑我没有辜负他们。
  人的一生,殊途同归,终点处的景观大抵无甚可看,反而是路上的风景让人留恋。无论我们的机器人最终能否勇夺三军,这个暑假都已经被我们珍贵的记忆充实。亲爱的朋友们,感谢你们陪我游览这个美丽的花园!