作为总工程师,本人在此工程中完成了需求分析、软件架构设计、硬件电路绘制、嵌入式软件开发和上位机软件开发、及系统测试订正的工作。
本项目完成了至少2个自主开发的程序模块的设计,分别是不定长、不定参数个数的通信协议解析;多节点系统的控制逻辑;
该机器人系统,为应对将来可能产生的业务变化(包括传感器的变化、数据传输部件的变化、受控部件的变化等),在硬件端抽象了业务模块,使得业务在将来扩展之时有良好的可扩展性。
又受到功耗的要求,为节约系统资源,不能使用诸如ros等的系统进行设计,故此采用裸机编程的方式进行程序的设计。
系统分为3个角色:
(1)下位机主机:完成上位机命令的接收、解析和任务分发、完成从机的数据收集和打包,并通过可扩展字段的通信协议发送给上位机,供其决策使用
(2)下位机从机(多个):系统中将来接入的从机个数不定,但其从机个数上限足够,将
(3)上位机:上位机负责获取下位机采集、上传的数据,对其进行分析后,输出控制策略和命令到下位机,控制其运动。
我为本项目开发了一款手工操作的上位机软件,使得调试和演示可以方便地进行,开发框架为QT,使用QML进行界面构建,使用QMLEngie获取QML的视图对象,使得C++后台可以和QML前端完成层次分明的交互。
在完成上位机开发任务的同时,使得其可读性和扩展性高。
该上位机有自动功能,自动模式的命令下达后,会按照用户定制的动作节点组去要求下位机完成动作,因此除上位机本体外,还开发了动作组定制软件。