手搓一个RT-Thread工地巡检机器人要几步? | 技术集结
该项目是RT-Thread嵌入式大赛的获奖作品,是一款基于CanMV K230的工地巡检机器人。 K230芯片集成了两个RISC-V处理器内核,即双核玄铁C908。 RT-Thread已全面支持XUANTIE系列的E、C、R核,并推出电子书《XUANTIE开发实践指南》
(https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/xuantie/XUANTIE%E5%BC%80%E5%8F%91%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97)
目录应用实现功能
RT-Thread 使用概述
整体设计流程
硬件架构
机械结构
软件框架
功能实现
演示视频和代码
演示视频链接:
https://www.bilibili.com/video/BV1ZhScB9E8j/?spm_id_from=333.1387.homepage.video_card.clickvd_source=b1fff0f773136d7d05331087929c7739
1 应用的实现功能本作品以RT-Thread系统为基础,设计并实现了一套基于CanMV K230开发板的建筑工地巡检机器人。它集成了AI视觉识别、嵌入式控制和Web通信,构建了适合复杂施工场景的全天候自动化监控和建筑材料识别解决方案。系统采用CanMV K230作为边缘计算主控平台,充分利用其高性能NPU加速能力,部署国产化YOLOv5模型,实现钢卷(卷材)、钢筋束(钢筋)、砖石(砖块)等建筑材料的精准识别和数量统计。同时系统支持模型动态切换。通过加载YOLOv5模型进行安全帽检测,可以有效识别未佩戴安全帽的施工人员,显着提高施工现场安全管理水平。机器人底盘采用麦克纳姆轮全向移动结构,并采用二维云台全面覆盖工作区域。施工现场环境可实时上传至网页,实现数据可视化监控。
图1 基于CanMV K230的工地巡检机器人整体外观
2 RT-Thread使用情况概述本作品使用CanMV-K230开发板。开发板的开发语言为MicroPython。该操作系统基于RT-Thread Smart。代码调用KPU,使用Kmodel本地的YOLOv5来识别工地上的建筑材料以及是否佩戴头盔。它还使用多线程来处理图像识别和运动控制,以及环境数据传输。整体图像识别帧率在30FPS以上。该芯片的运算能力与目前市面上这个价位的主板一致,比K210强很多。
3 整体设计流程本工作从施工现场环境高频巡检、人身安全、物资管理、安全监管等实际需求出发,建立以智能巡检、目标识别、环境监测、远程控制为核心目标的功能,制定系统技术指标,完成施工现场巡检机器人的设计。根据系统总体规划,搭建了基于K230开发板的软硬件平台。在模拟施工现场环境中,进行机器人基本动作、建筑材料种类和数量统计、人员安全监测、当前环境状况可视化显示等功能测试,评价机器人性能。具体设计流程如图2所示。
图2 基于CanMV K230的施工现场巡检机器人系统设计流程
本工作基于RT-Thread系统和CanMV K230开发板构建集AI视觉识别、智能巡检控制、环境数据采集、数据可视化于一体的建筑工地巡检机器人系统。整体框图如图3所示。基于CanMV K230的施工现场巡检机器人主要分为硬件部分和软件部分。硬件部分主要由配备KPU的CanMV K230开发板、力创EDA专业版绘图板的运动控制平台、温湿度传感器和二维云台组成。软件部分包括WEB服务器、目标检测、温湿度可视化显示、运动控制等。
图3 基于CanMV K230的施工现场巡检机器人总体设计框架
4 硬件框架嘉楠科技Kendryte系列AIoT芯片中最新一代SoC芯片K230为主控芯片,支持三摄像头同时输入。典型网络下的推理能力可达K210的13.7倍。支持CanMV,可以直接使用Python编程,简单易用。可作为AI和边缘计算平台,适合物联网领域的开发者;智能家居和消费电子产品;工业自动化;无人系统等领域。 K230芯片集成了两个RISC-V处理器核心,双核玄铁C908,7nm制程工艺,主频高达1.6GHz。它是全球首款支持RISC-V Vector 1.0标准的商用SOC。它搭载第三代KPU处理单元,专为图像、视频、音频处理和AI加速而设计,提供强大的本地AI推理能力。支持三路MIPI CSI视频输入,最高分辨率为4K。 K230支持TensorFlow、PyTorch等常见AI计算框架。
图4 CanMV K230硬件资源图
由于K230开发板的PWM引脚有限,因此使用两个PWM引脚来控制二维云台的运动。 ESP32S3的移动平台用于机器人水平方向的全方位运动。主要由乐鑫科技的ESP32S3 芯片、步进电机驱动器、电源模块等组成。ESP32-S3 是一款集成Wi-Fi 和低功耗蓝牙(BLE) 的高性能双核处理器芯片。核心为双核Xtensa32位LX7,最高频率240MHz。它还集成了GPIO、PWM、ADC、SPI、I2C等丰富的外设资源。其低功耗、高性能以及优秀的外围接口资源使其成为集成运动控制和无线通信系统的理想选择。步进驱动器采用TB6612芯片,该芯片是机器人和小型运动控制系统中常用的双通道直流电机/步进电机驱动芯片。内置短路保护和热关断保护功能,可实现平滑的电机调速和方向控制。电源模块采用LM78M05将两节18650电池电压降压至5v,再通过AMS1117降压至3.3v为ESP32S3供电,为TB6612芯片供电。其移动平台的电路图和PCB图分别如图5和图6所示。
图5 ESP32S3移动平台电路图
图6 ESP32S3移动平台PCB图
5 机械结构本作品利用Solidworks设置固定件来连接工地巡检机器人的各个部件,如K230开发板的固定、N20电机的固定、二维云台的连接等。下面将介绍工地巡检机器人的核心机械设计。
图7 K230开发板3D设计图及2D云台固定支架
为了保证移动平台在运行过程中的稳定性和抗震性,本次工作的移动平台采用上下紧凑机构。底部印刷厚度为5mm的底盘支撑,顶部印刷厚度为3mm的顶部支撑。顶部和底部紧固N20电机,防止振动位移。底部设计的M2通孔位置是根据图8中的N20尺寸图设计的,其余M3通孔用于固定与ESP32S3连接的移动平台PCB。连接部分3D设计图如图9所示。
图8 N20电池座尺寸图
图9 N20电机固定与移动平台连接3D设计图
为了实现摄像机视角的动态调整和多方位覆盖,本系统设计并3D打印了二维云台结构,用于安装和控制K230开发板实现水平和垂直旋转,满足复杂施工现场环境下监控角度灵活调整的需求。 2D云台主要由底部固定底座、连接支架和相机安装板组成。打印部件采用PLA材料打印,具有足够的结构强度和刚度,可以稳定承载相机的重量,同时保持运动灵敏度和低摩擦。二维万向节3D打印设计如图10所示。
图10 2D云台3D设计图
6 软件框架工地巡检机器人的软件系统主要分为机器人客户端和WEB网页两部分。机器人客户端包括二维云台控制、ESP32S3移动平台控制、建筑材料识别与安全检测深度学习算法本地推理、施工现场环境温湿度采集等。WEB网页主要包括二维云台与移动平台控制界面、建筑材料识别与安全检测开关、温湿度可视化显示、功能开关控制等。机器人客户端与WEB网页通过TCP协议进行通信。该协议可以保证机器人控制和目标检测过程中的低延迟和高效率。长连接可以实现双向通信。与传统的Ajax轮询相比,节省了带宽和CPU资源,对服务器的压力较小,特别适合在边缘计算设备或嵌入式系统中使用。软件系统总体流程图如图11所示。
图11 软件系统总体流程图
建材识别建筑材料识别主要涉及建筑工地巡检机器人周围三类物体的分类和目标识别,即钢卷(coil)、钢筋束(rebar)和砖石(brickwork)。机器人使用YOLOv5算法进行局部推理。建材识别模型训练过程主要分为五个步骤:数据采集、模型训练、量化部署、实时推理、结果返回。具体流程如图12所示。
图12 模型训练流程
数据采集和标注:图像采集应尽可能覆盖不同视角、光照和背景复杂度,以增强模型在实际环境中的鲁棒性。图像采集完成后,使用开源图像标注工具LabelImg对图像进行目标检测和标注。 LabelImg 提供图形界面。使用鼠标选择目标框并输入目标类别(砖砌标记0、钢筋标记1、线圈标记2)。三种建筑材料的标签分别如图13、14和15所示。
图13 砖石标记
图14 钢筋束标签
图15 钢筋圈标记
模型训练:基于YOLOv5的深度学习目标检测算法训练建筑材料数据集,并借助NVIDIA RTX 4060 GPU对数据集加速80个epoch。训练平台框架为PyTorch深度学习框架,采用适合边缘部署的轻量级YOLOv5n模型。
图16 模型训练结果
模型量化部署:通过docker使用nncase将onnx模型量化部署为Kmodel模型。
图17 模型量化转化为Kmodel模型
控制与数据显示整个上位机界面包括运动平台控制、云台控制、施工识别及安全建材开关、施工现场环境可视化显示等,如图18、图19所示。
图18 上位机整体界面
图19 施工现场环境监测
7 功能实现建材识别功能基于CanMV K230的工地巡检机器人通过CanMV IDE演示了对三种建筑材料(砖石、钢圈、钢捆)的识别效果,实际现场效果会更好。
图20 砌体识别1
图21 砌体识别2
图22 砌体识别3
图23 钢筋圈识别1
图24 钢筋圈识别2
图25 钢筋圈识别3
图26 钢筋束标识1
图27 钢筋束标识2
图28 钢筋束标识3
安全检测功能通过CanMV IDE演示基于CanMV K230的工地巡检机器人对工人安全的检测效果,在实际现场效果会更好。
图29 安全检测1
图30 安全检测2
图31 安全检测3
工地环境可视化功能服务器从CanMV K230工地巡检机器人接收工地环境数据。
图32 环境监测
8 演示视频及代码演示视频链接:
https://www.bilibili.com/video/BV1ZhScB9E8j/?spm_id_from=333.1387.homepage.video_card.clickvd_source=b1fff0f773136d7d05331087929c7739
代码仓库:https://github.com/wuboy19/RT_Thread_competiton