注册很久了,一直只是查找一些资源,实际用的不多。借着这次项目的机会,顺便记录下开发过程,聊表以记促学吧。

先说说大致的想法,项目整体分三部分:控制中心-->工作站-->硬件,这么设想的目的是硬件部分包含不同品牌、不同型号的无人机、机巢、负载,所支持SDK的平台有window、linux、mac,Mobile等,所以在控制中心与硬件中间加入一级工作站,由工作站负责具体控制无人机及机巢及气象站,控制中心与工作站根据自定义协议通信,工作站起到一个中间件的作用。工作站与飞机、机巢、气象站是1对1模式,后续增加新硬件,只需增加工作站加一套硬件。 

本文档主要针对控制中心的上位机软件,目标是开发一个类似地面站的软件系统,实现调度无人机来按任务航线巡检的功能。开发平台打算用VS2019+QT5+MYSQL5.7。C/S结构,Client实现用户交互,Server做数据处理及跟工作站交互。

大概功能:1、登录权限控制。目前计划分3级权限,管理员,操作员,用户。2、巡检任务指挥调度。负责调度每架飞机的巡检任务,航线的上传下载,巡检任务的一键启动3、任务航线规划。航线的编辑、保存、上传、下载4、任务数据综合分析。综合任务的图片、视频、飞行数据进行统计分析。5、显示:地图显示任务轨迹、实时视频、气象信息、飞机状态、机巢状态。6、根据协议提供API二次开发接口。7、自动升级功能。8、后期考虑:手机端、虚拟摇杆及视觉分析功能。9、日志及调试。

数据库设计:用户表、工作站表、无人机表、机巢表、电池表、航线表、任务表、操作记录表、系统配置表。

           

无人机路网覆盖巡检python 无人机巡检系统方案_个人开发

 大概模块:

        界面UI类:客户端界面布局的实现、资源的分配、调用

        User类:封装用户属性及增删操作

        设备信息类:封装设备属性 get set方法

        地图模块:加载地图数据、刷新位置信息在地图显示

        视频模块:封装视频流的显示、存储、文件播放

        通讯模块:封装通讯的连接、断开、收发操作

        DB类:封装数据库操作:连接、断开、执行

        日志及调试类:记录系统关键日志及调试信息

        Settings类:封装对系统设置参数的保存与读取

        Update模块:客户端自动更新的检测与升级

通信方面:

基于TCP协议的socket网络通信,server端开启服务,监听端口,维护与client和工作站的连接,转发客户端对飞机、机巢的控制指令,转发飞机、机巢等实时状态至客户端。

协议:自定义协议格式

名称

帧头

目的地址

命令号

数据长度

数据内容

校验和

帧尾

字节长度

2

1

1

1

n

1

2

示例










大概流程:

无人机路网覆盖巡检python 无人机巡检系统方案_c++_02