一.团队项目汇报与总结
1.团队项目总结
- 通过两个星期的团队开发,我们基本上完成了机器人子系统模块的基本功能需求。即输入目标击球位置,到达该位置的时间,以及在该位置击球器的速度矢量,输出在每个控制周期给出X轴和Y轴的实时位置和速度指令。其中有两个难点,其一:机器人子系统的类的层次结构设计;其二:合理设计或使用轨迹规划算法。当然我们小组也有不同的分工与合作,机器人子系统功能设计概要设计、基于GitHub的项目开发平台的搭建、类的层次结构设计、轨迹规划算法设计等等。前期是在Windows系统上开发的,后期移植到基于Linux的Ubuntu系统上开发,又有了工程文件的编译和Xenomai的API的调用。
2.团队项目存在的问题
- 类的层次结构设计没有很好的体现面向对象的思想,类的继承和类之间的交互还不是很完善。轨迹规划算法比较简单,实现的功能不是很好。没有很好的使用Google++的代码风格。
二.个人项目总结
- 从第一次典型的实时控制系统的分析到最后简单的轨迹规划和类的设计,每次作业我都能学到很多。在最后的团队项目中,我主要负责类的层次结构设计和部分编程工作以及需求分析。起初对C++语言的了解只停留在大一上课内容的水平。通过再次的啃C++书本,发现项目所需要的知识大一上课都没讲过。通过书本以及实时控制软件设计课上老师对面向对象的讲解和对类的层次设计方法才对类的设计有了初步的认识。通过类的继承与交互实现整个机器人子系统的架构,使其具有封装性和模块化的特性以及可扩展性。
三.课程总结
- 通过实时控制软件设计课程,我了解到了很多控制和软件设计方面的知识。每一次的课后练习都让我对这些知识有了更深的体会。第一次的实时系统分析,通过查找论文和相关资料马上就建立起了有关实时系统的概念和具体实现。第二次的门禁系统状态机编写,了解到了一个简单状态机的具体实现过程。第三次实时操作系统的比较以及轨迹生成器的编写,初步认识到了实时操作系统强大的功能和简单的插值算法。在团队项目中我们实现了很好分工,最后也得到了不错的结果。当然,我收获的远不止这些。在这期间,不仅学会的怎么去使用GitHub,也通过查看其它同学的博客了解到了自己很多的不足。也知道了使用模块化,组件化的技术简化我们的项目。最后,非常感谢陈冰老师以及助教的指导,感谢FFL博士给我提出了很好的建议以及皱欣老师的博客。这些知识和方法在今后的学习和工作中必有指导意义。