前言
每一个大工程都有特定的框架,这样不仅为一次开发人员提供了基石,更是为二次开发人员提供了便利。每个人可能都会有自己的框架,但是法无定法,万法归宗,下面小白给出自己做开发时使用的软件框架。你既可以直接拿去使用,也可以在此基础上开创属于你的框架。
下面讲述的框架,来自小白使用的机器人,是用C++语言编写的控制程序。也就是说此框架是从一个完整的机器人控制系统中摘下来的。
文件(.cpp)的任务分配
- 全局变量(Data.cpp)
建立一个“全局变量”管理文件,把系统所有的全局变量都在此文件中定义,方便后面的调用和修改。
- 控制循环(DataProc.cpp)
建立一个“全局循环”管理文件,把系统中某些对全局变量的循环放在此文件中,方便对全局性的把握。
- 运动学分解(Calwheelvel.cpp)
机器人控制,又可以叫运动机器人控制。显然这里就涉及到,机器人整体的速度与车轮(或足)的速度之间的关系,通过运动学解算便可以得到。将这一部分放到一个单独的文件中,方便我们对机器人增减 运动执行器(轮或足)的后期操作。
- 高通,低通滤波(Library.cpp \ HLowFilter.cpp)
对信号滤波是很常用的功能,而且我们会不止一次的使用它,但是每一次调用的参数可能不同。所以这里我们需要建立一个高通与低通滤波的库,将我们需要的形式、参数都列写在库里,使用的时候直接调用即可。接下来我们将所有低通和高通的调用,再写到另一个文档里面,这样的管理方式是很清晰的。
- 卡尔曼滤波(Matrix.cpp)
卡尔曼是什么,网络上有很多解释。我们需要为这种滤波方式单独建立一个文件。当然,你也可以选择其它的滤波方式,我们只需要为这种滤波方式单独建立一个文件就可以了。
- 控制算法(.cpp)
算法是一个控制系统的核心部分,也是程序员最宝贵的知识产权所在。我们可以把算法的核心控制部分放在单独的文件里,只要设置好输入与输出的接口信息,便可以接入到整个工程中去了。
这个环节可能有不止一个文件。
- 交互按钮(Tccomm.cpp)
任一个完整的控制系统都会有一个前端的控制窗口(如:MFC),程序员会将每一个按钮及候选框等人机交互工功能的实现,放到一个单独的文件中完成。
- 机器视觉(Comvision.cpp)
将计算机视觉的相关信息,写到这个单独的文档里。
- 主程序(main.cpp)
主程序文件是一个可执行文件,将整个系统的各个部分连接到一起,形成一个整体。其功能主要用来跑 控制闭环 。