作品来源:2026届智能建造专业本科毕业设计
设计人:庄廷钰、補昊山
指导老师:骆剑彬、张鹤、关振长
作品视频
作品介绍
传统人工巡检方式效率低、数据管理分散,无法满足现代工程管理向精细化发展的要求。以B/S架构为技术模式,面向土木工程无人机巡检业务场景,开发一套具备良好用户体验和可视化能力的无人机巡检管理系统需求迫切。实现无人机巡检管理系统的用户界面与交互逻辑,集成Leaflet地图可视化、Agora RTC实时直播、BIMFACE BIM轻量化展示等特色功能,为土木工程无人机巡检业务提供高效、直观的操作平台。
1系统背景及意义
随着我国基础设施建设规模不断扩大,土木工程施工与运维阶段对高效、精准、安全的巡检手段提出了更高要求,然而传统人工巡检普遍存在作业环境危险、覆盖范围有限、巡检频次不足、数据记录碎片化等问题,导致施工进度难以及时掌控、安全隐患难以被提前发现。针对这一痛点,本系统基于 B/S 架构设计并实现了无人机巡检管理平台,通过集成大疆云端管控接口,打通无人机设备接入、航线规划、任务执行、实时直播、媒体采集与数据分析的全流程,实现巡检作业的数字化、可视化与集中化管理。该系统不仅显著降低了高空与高危环境下的作业风险,提高了巡检效率与数据完整性,还通过 BIM 模型融合、多期视频对比等手段,为工程进度评估与安全风险预判提供了直观可靠的数据支撑,对推动智能建造背景下工程巡检模式的转型升级具有重要的现实意义与应用价值。
2系统架构设计
该系统使用前后端分离的B/S架构。用户利用浏览器访问前端应用,前端使用HTTP或WebSocket和后端API服务进行通信,后端承担业务逻辑处理、数据持久化工作,并依靠MQTT与DJI Cloud API连接无人机硬件设备。整体架构包括四个层次,具体如图2-1所示:
图2-1 系统整体架构
客户端层:这一层通过Vue3框架来建立单页应用,Element Plus拥有UI组件,Leaflet进行地图交互,ECharts对数据可视化图表进行渲染。
接口层:这一层使用dvadmin框架,Django REST Framework用来处理HTTP请求,Django Channels负责处理WebSocket长连接,并且统一返回标准JSON格式的响应。
数据存储层:这一层使用PostgreSQL来保存全部业务数据,Redis用来缓存直播状态和DJI API Token这类经常读取的临时数据。
外部服务层:这一层通过DJI Cloud API来连接大疆无人机系统,并使用MQTT对设备状态消息进行订阅,同时利用MinIO存储航线文件和媒体文件,还依靠Agora SDK来支撑实时直播。
3系统功能模块设计
实现工作空间管理、无人机设备管理、航线规划与管理、无人机实时控制、飞行日志管理、媒体文件管理、巡检影像对比共七个核心功能模块,及实时直播和BIM模型查看两个特色功能模块。工作空间管理模块负责与大疆云端同步,作为顶层容器统一管理设备与任务。设备管理模块维护无人机档案、在线状态及固件版本,确保设备可控。航线规划模块结合 Leaflet 地图,支持 KMZ 文件上传与航点可视化,实现航线设计与下发。实时控制模块提供地图交互式目标点选取,支持一键起飞与指点飞行指令下发。飞行日志与媒体管理模块集中存储、同步巡检产生的日志与影像数据。巡检影像对比模块支持双视频同步播放,直观呈现施工进度变化。此外,系统集成了实时直播与 BIM 轻量化查看两大特色功能,通过 Agora RTC SDK 实现低延迟视频推流,并利用 BIMFACE 技术在浏览器端展示三维模型,实现了无人机巡检从设备接入、任务执行到数据分析的全流程信息化管理。
4数据库设计
以下是数据库各功能模块表一览:
表4-1 项目表(project) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
project_name |
VARCHAR |
项目名称 |
/ |
/ |
非空 |
project_code |
VARCHAR |
项目编码 |
/ |
/ |
非空,唯一 |
location |
VARCHAR |
地点 |
/ |
/ |
可空 |
start_date |
Date |
开工日期 |
/ |
/ |
可空 |
end_date |
Date |
计划完工日期 |
/ |
/ |
可空 |
status |
VARCHAR |
项目状态 |
/ |
/ |
非空
|
表4-2 标段表(project_section) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
project_id |
BigInt |
所属项目 |
/ |
是 |
非空,级联删除 |
section_name |
VARCHAR |
标段名称 |
/ |
/ |
非空 |
stake_start |
VARCHAR |
起始桩号 |
/ |
/ |
可空 |
stake_end |
VARCHAR |
终止桩号 |
/ |
/ |
可空
|
表4-3 施工组织表(project_organization) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
section_id |
BigInt |
所属标段 |
/ |
是 |
非空,级联删除 |
org_name |
VARCHAR |
组织名称 |
/ |
/ |
非空 |
contact_name |
VARCHAR |
负责人姓名 |
/ |
/ |
可空 |
contact_phone |
VARCHAR |
联系电话 |
/ |
/ |
可空 |
表4-4 组织成员表(org_member) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
organization_id |
BigInt |
所属施工组织 |
/ |
是 |
非空,级联删除 |
user_id |
BigInt |
关联系统用户 |
/ |
是 |
可空 |
member_role |
VARCHAR |
成员角色 |
/ |
/ |
非空 |
status |
VARCHAR |
在职状态 |
/ |
/ |
非空 |
表4-5 工作空间表(dji_workspace) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
workspace_id |
VARCHAR |
DJI工作空间ID |
/ |
/ |
非空,唯一 |
workspace_name |
VARCHAR |
工作空间名称 |
/ |
/ |
非空 |
workspace_desc |
VARCHAR |
描述 |
/ |
/ |
可空
|
表4-6 设备表(dji_device) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
|
自增,非空 |
device_sn |
VARCHAR |
设备序列号 |
/ |
/ |
非空,唯一 |
device_name |
VARCHAR |
设备型号名称 |
/ |
/ |
可空 |
workspace_id |
VARCHAR |
所属工作空间 |
/ |
是 |
可空 |
device_type |
Int |
设备类型 |
/ |
/ |
可空 |
sub_type |
Int |
子类型 |
/ |
/ |
可空 |
firmware_version |
VARCHAR |
固件版本 |
/ |
/ |
可空 |
is_online |
Boolean |
在线状态 |
/ |
/ |
默认False
|
表4-7 固件表(dji_device_firmware) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
firmware_id |
VARCHAR |
固件ID |
/ |
/ |
非空,唯一 |
workspace_id |
VARCHAR |
所属工作空间 |
/ |
是 |
可空 |
device_name |
VARCHAR |
适用设备型号 |
/ |
/ |
非空 |
firmware_version |
VARCHAR |
固件版本号 |
/ |
/ |
非空 |
firmware_status |
Int |
固件状态 |
/ |
/ |
非空 |
object_key |
VARCHAR |
MinIO存储路径 |
/ |
/ |
可空 |
md5 |
VARCHAR |
文件MD5校验值 |
/ |
/ |
可空 |
file_size |
BigInt |
文件大小 |
/ |
/ |
可空
|
表4-8 飞行日志表(dji_device_logs) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
logs_id |
VARCHAR |
日志ID |
/ |
/ |
非空,唯一 |
device_sn |
VARCHAR |
设备SN |
/ |
/ |
非空,索引 |
workspace_id |
VARCHAR |
所属工作空间 |
/ |
是 |
可空 |
upload_status |
Int |
上传状态 |
/ |
/ |
非空 |
object_key |
VARCHAR |
MinIO存储路径 |
/ |
/ |
可空 |
file_size |
BigInt |
文件大小 |
/ |
/ |
可空
|
表4-9 媒体文件表(dji_media_file) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
file_id |
VARCHAR |
文件ID |
/ |
/ |
非空,唯一 |
file_name |
VARCHAR |
文件名 |
/ |
/ |
非空 |
file_path |
VARCHAR |
目录路径 |
/ |
/ |
可空 |
object_key |
VARCHAR |
MinIO存储路径 |
/ |
/ |
非空 |
sub_file_type |
VARCHAR |
子文件类型 |
/ |
/ |
默认"0" |
drone_sn |
VARCHAR |
来源无人机SN |
/ |
/ |
可空 |
payload |
VARCHAR |
来源载荷设备 |
/ |
/ |
可空 |
job_id |
VARCHAR |
所属任务ID |
/ |
/ |
可空,索引
|
表4-10 航线文件表(dji_wayline_file) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
wayline_id |
VARCHAR |
航线ID |
/ |
/ |
非空,唯一 |
name |
VARCHAR |
航线名称 |
/ |
/ |
非空 |
workspace_id |
VARCHAR |
工作空间ID |
/ |
/ |
非空,索引 |
drone_model_key |
VARCHAR |
适用无人机型号Key |
/ |
/ |
可空 |
template_types |
VARCHAR |
任务模板类型 |
/ |
/ |
可空 |
object_key |
VARCHAR |
MinIO存储路径 |
/ |
/ |
可空 |
sign |
VARCHAR |
文件MD5签名 |
/ |
/ |
可空 |
waypoints_json |
Text |
航点坐标JSON |
/ |
/ |
可空 |
username |
VARCHAR |
上传者 |
/ |
/ |
可空
|
表4-11 航线任务表(dji_wayline_job) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
job_id |
VARCHAR |
任务ID |
/ |
/ |
非空,唯一 |
wayline_file_id |
VARCHAR |
关联航线 |
/ |
是 |
可空 |
workspace_id |
VARCHAR |
工作空间ID |
/ |
/ |
非空,索引 |
drone_sn |
VARCHAR |
执行无人机SN |
/ |
/ |
可空 |
job_name |
VARCHAR |
任务名称 |
/ |
/ |
可空 |
task_status |
Int |
任务状态 |
/ |
/ |
非空 |
execute_time |
DateTime |
执行时间 |
/ |
/ |
可空 |
username |
VARCHAR |
创建者 |
/ |
/ |
可空
|
表4-12 法规分类表(regulation_category) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
name |
VARCHAR |
分类名称 |
/ |
/ |
非空,唯一 |
sort |
Int |
排序权重 |
/ |
/ |
默认0 |
表4-13 法规主表(regulation) |
字段名 |
数据类型 |
说明 |
主键 |
外键 |
约束 |
id |
BigInt |
主键 |
是 |
/ |
自增,非空 |
title |
VARCHAR |
法规标题 |
/ |
/ |
非空 |
source |
VARCHAR |
来源类型 |
/ |
/ |
非空 |
publish_date |
Date |
发布日期 |
/ |
/ |
可空 |
content |
Text |
法规内容(富文本) |
/ |
/ |
可空 |
status |
VARCHAR |
状态 |
/ |
/ |
非空 |
category_id |
BigInt |
所属分类 |
/ |
是 |
可空 |
5系统功能介绍
5.1系统登录
在本地正常运行打开项目后,用浏览器打开 http://localhost:8080/。并在登录界面输入正确的用户名和密码框后可以进入系统。预设账号是 superadmin,初始密码为 admin123456。用户登录界面如图5-1所示

图5-1 登陆界面截图
5.2系统首页
系统首页作为核心展示界面,将最具代表性的项目统计数据与设备运行状态集成于可视化模块中,通过直观的图表与精准的统计数据,为用户搭建起高效的全局视图。页面主要包含以下核心模块:
1、计面板(StatsPanel)
统计面板展示系统核心指标的实时汇总,包括:
① 设备总数与在线设备数
② 项目总数及各状态(筹备中、进行中、已完工)分布
③ 航线任务总数、执行中任务数、今日任务数
④ 媒体文件总数、航线文件总数
⑤ 近 7 天航线任务执行趋势折线图(按已完成/执行中/待执行分类)

图5-2 系统首页
2、BIM 模型查看(BimViewer)
BIM 模型查看区域嵌入工程 BIM 模型展示,支持对模型进行拖动、缩放及旋转查看,便于结合巡检数据进行三维空间定位分析。
3、快捷入口
右侧快捷入口卡片提供 6 个常用功能的一键直达,包括:航线规划、指令飞行、设备列表、媒体文件、航线任务、直播监控。
4、天气组件(WeatherWidget)
天气组件展示当前施工区域的实时气象信息,为飞行作业提供环境参考依据。
5.3 设备管理
设备管理部分主要涵盖"设备列表"、"固件管理"、"飞行日志"三个核心页面。
5.3.1 设备列表
设备列表页面展示系统内所有已注册的 DJI 设备(包括无人机、遥控器),每条记录显示设备 SN 号、设备昵称、设备型号、固件版本、在线状态、最后上线时间等信息。页面支持查询、新增、编辑、删除等操作,设备在线状态实时刷新,绿色标识表示设备当前在线,灰色标识表示设备离线。

图5-3 设备列表
5.3.2 固件管理
固件管理页面用于上传和管理各型号无人机的固件文件,支持对固件进行审核与启用/禁用操作。
每条固件记录包含:设备型号名称、固件版本号、文件大小、MD5 校验值、发布说明、发布日期、当前状态(待审核/已启用/已禁用)。
操作流程:
1. 点击"上传固件",填写设备型号、版本号、发布说明等信息并上传固件文件
2. 上传后固件默认为"待审核"状态
3. 管理员审核通过后将固件状态改为"已启用",设备即可获取更新推送

图5-4 固件管理
5.3.3 飞行日志
飞行日志页面记录每次飞行作业生成的设备日志文件,支持日志的上传与下载。每条日志记录包含:设备 SN、日志 ID、上传状态(上传中/已完成/失败)、文件数量、文件大小、发起者等信息。用户可点击下载按钮获取对应的日志压缩包,供后续飞行数据分析使用。

图5-5 飞行日志管理
5.4航线管理
航线管理部分包含"航线文件"、"航线规划"、"航线任务"三个页面。
5.4.1 航线文件
航线文件页面管理所有已上传或规划生成的航线文件(.kmz 格式),每条记录展示:航线名称、适用无人机型号、负载型号、上传者、是否收藏、创建时间等信息。页面支持上传航线、收藏、下载、删除等一系列操作

图5-6 航线文件管理
5.4.2 航线规划
航线规划页面提供在线地图标注航点、生成航线的功能,无需借助外部软件即可完成航线设计。

图5-7 航线规划管理
5.4.3 航线任务
航线任务页面管理所有已创建的飞行任务,每条记录显示:任务名称、关联航线、执行机场 SN、无人机 SN、任务状态(待执行/执行中/已完成/已失败/已取消/已暂停)、执行时间、完成时间、进度(%)、创建者等信息。页面支持新建任务、查看详情、取消/暂停、筛选查询等操作。

图5-8 航线任务管理
5.5直播监控
直播监控页面实现对无人机飞行过程中视频画面的实时回传与查看,基于 Agora 声网 RTC 协议推流。进入页面后,选择目标工作空间与在线设备,系统自动拉取该设备的直播流并在页面内嵌播放器中展示。直播画面支持全屏切换,可用于施工现场安全巡检、高空作业监督等场景。
使用直播功能需确保无人机设备处于在线状态,且已正确配置 Agora 推流参数。

图5-9 直播监控
5.6指令飞行
指令飞行页面提供对在线无人机的实时手动控制能力,适用于临时性的定点巡查任务。网页可进行一键起飞到目标点、指点飞行、停止指点飞行等操作。

图5-10 指令飞行
5.7媒体文件
媒体文件页面管理所有由无人机任务拍摄并自动上传至系统的照片与视频文件。每条记录展示:文件名、所属ID、无人机SN、负载设备、文件类型(原图/缩略图)、创建时间等信息。页面支持预览、下载、筛选查询、删除操作。

图5-11 媒体文件管理
5.8工作空间管理
工作空间是系统对设备、航线、任务进行分组隔离的基本单元,通常对应一个具体的工程项目或施工区域。工作空间管理页面展示所有已创建的工作空间,每条记录包含:工作空间名称、工作空间 ID、描述信息、平台名称、创建时间等。

图5-12 工作空间管理
5.9 项目管理
项目管理部分主要涵盖"项目信息"、"标段管理"、"施工组织"、"组织成员"四个核心页面。
5.9.1 项目信息
项目信息页面以表格形式列出系统内所有工程项目,每条记录包含:项目名称、项目编码(唯一)、地点、开工日期、计划完工日期、项目状态(筹备中/进行中/已完工/已暂停)。
页面支持以下操作:
**新建项目**:填写项目基本信息后提交,项目编码须全局唯一
**编辑**:修改项目名称、地点、日期、状态等信息
**删除**:移除已归档的项目记录

图5-13 项目信息管理
5.9.2 标段管理
标段管理页面用于管理某一项目下的标段划分,每个标段记录包含:所属项目、标段名称、起始桩号、终止桩号。
点击"新建"后选择所属项目,填写标段名称与桩号范围,即可完成标段录入。

图5-14 标段管理
5.9.3 施工组织
施工组织页面管理各标段下的施工单位信息,每条记录包含:所属标段、组织名称、负责人姓名、联系电话。
通过此页面可对施工单位进行新增、编辑、删除操作,便于工程参建方的统一归档管理。

图5-15 施工组织管理
5.9.4 组织成员
组织成员页面管理各施工组织下的具体人员,每条记录包含:所属组织、关联系统用户、成员角色(负责人/安全员/操作员/其他)、在职状态(在职/离职)。
通过此页面可将系统用户与施工组织绑定,明确各人员在项目中的职责分工。

图5-16 组织成员管理
5.10 法律法规
法律法规模块用于集中管理无人机飞行相关的国家法规、地方法规及部门通告,便于操作人员查阅合规要求。
页面采用左侧分类、右侧列表的布局:
一、法规分类
左侧面板显示所有法规分类,点击分类名称可筛选右侧列表。点击分类旁的"+"按钮可新增分类,点击编辑/删除图标可修改或移除分类。
二、法规列表
右侧列表展示当前分类下的所有法规条文,每条记录包含:法规标题、来源类型(国家法规/地方法规/部门通告)、发布日期、所属分类、状态(启用/禁用)。

图5-17 法律法规
5.11 BIM 模型查看
BIM 模型查看页面提供独立的全屏 BIM 模型浏览环境,嵌入 BIMFACE 在线渲染引擎,支持以下操作:鼠标拖拽旋转模型视角、滚轮缩放模型、点击构件查看构件属性信息、开启漫游模式进行第一人称浏览。该功能可与航线规划结合使用,辅助规划人员在三维模型中确认巡检区域与重点部位。

图5-18 BIM模型查看
5.12 进度对比
进度对比页面提供两段无人机巡检视频的并列播放与同步比对功能,适用于对同一区域在不同时间段拍摄的巡检视频进行施工进度或结构变化的直观对比分析。

图5-19 施工进度对比
5.13 后台系统管理
后台系统管理沿用 Dvadmin 框架自带的管理功能,支持菜单管理、部门管理、角色管理、用户管理、消息中心、操作日志等。
6. 作品亮点
本系统紧密结合土木工程智能建造的业务特性,具有一下特色亮点:
(1)、基于 dvadmin 的深度二次开发与精细化权限控制。系统突破了传统 B/S 架构仅用于信息录入的限制,基于 dvadmin 框架进行了深度业务适配。创新性地实现了后端驱动的动态路由与 RBAC 模型,将权限控制粒度细化至菜单、按钮及字段级别(如敏感字段脱敏),并支持多工作空间数据隔离,满足了工程现场多角色、多组织协同作业的复杂权限需求,保障了数据安全。
(2)、巡检业务与 BIM 技术的深度融合。针对土木工程行业特点,系统集成了广联达 BIMFACE 平台,攻克了大型 BIM 模型在浏览器端轻量化渲染的难题。通过动态加载 SDK 与 view Token 鉴权机制,用户无需安装 Revit 等专业软件即可在浏览器中实现三维模型的旋转、缩放与查看,并将无人机巡检业务与 BIM 模型在空间逻辑上关联,为工程结构可视化运维提供了新思路。
(3)、施工进度可视化的创新应用。针对施工进度管理痛点,设计了双视频同步对比模块。通过监听 video 元素的 time update 事件,实现了不同工期巡检视频的进度同步联动,使管理人员能够直观、量化地对比同一区域在不同时间节点的施工变化,解决了传统巡检报告中影像资料孤立、难以对比的问题。