本文是机甲大师机器人控制的系列博客之一。本文主要介绍了机甲大师机器人以及博主在开发其控制策略时所采用的流程。本系列博客的模型和代码已经上传CSDN资源。
系列博客:
机甲大师机器人控制(一):概念与流程
机甲大师机器人控制(二):功能分析
机甲大师机器人控制(三):软件架构设计
机甲大师机器人控制(四):软件单元
机甲大师机器人控制(五):软件单元测试
机甲大师机器人控制(六):集成测试
机甲大师机器人控制(七):购买清单
1 机甲大师机器人
博主第一次接触机甲大师机器人,是在网购的时候首页推荐的一款大疆教育机器人RoboMaster S1。博主当时就被视频里炫酷的外形深深吸引了。
根据介绍,该款机器人具有非常强大的功能。
- 通过特殊构造的麦克纳姆轮可以使机器人实现全向运动;
- 可以通过手柄或者手机操控机器人;
- 通过水弹枪瞄准目标并发射水单;
- 通过摄像头实现行人跟踪、目标检测等机器视觉相关功能;
无奈该产品价格非常昂贵,博主实在舍不得掏钱购买。不过转念一想,作为一名资深的汽车工程师(其实只有一年多工作经验),自己购买零件组装一个这样的机器人,并且使用基于模型的设计方法来搭建控制模型应该也不会很难。
所以花费了近半年的时间,克服了若干问题后,终于DIY了一个机甲大师机器人,成品效果图如下。
后文会讲解博主是如何通过<基于模型的设计>方法来完成机甲大师机器人的控制策略的。
2 软件开发流程
本文参考汽车行业的软件开发流程,并加以简化,得出一个适合自己业余DIY的软件开发流程。
汽车行业按照V模型开发软件。从纵向看,软件越来越细化、越来越深入;从横向看,左边的设计和右边的验证一一对应,如下图所示。
本文借鉴这个流程,按照下图中简化版V模型开发机甲大师机器人的软件模型,只有5个步骤,如下图所示。
每个步骤的含义如下:
- 功能分析:在DIY机甲大师之前,心里就想好自己做的东西想要实现那些功能。这些功能必须是可实现的和可验证的;
- 软件架构设计:根据上一步得出的功能需求,设计模型的架构、子系统以及输入输出接口;
- 软件单元:在模型中设计每个子系统以及嵌套的子系统里面具体的策略;
- 软件单元测试:根据软件架构在模型中测试每个子系统的输入输出是否达到了该子系统的需要;
- 集成测试:将模型生成代码,与其他STM32项目代码集成,下载到控制器中;将硬件全部组装、焊接完成,测试实物的控制效果;
本系列博客会针对每一个步骤具体说明博主开发机甲大师机器人控制软件的过程。另外需要注意,博主自己总结的简化版V模型只是用于DIY创客制作,对于汽车行业的软件开发是远远不够的。
评论记录:
回复评论: