基于飞腾E2000的目标跟踪机器人——介绍和展示
作品介绍
这是我的研究生电子设计竞赛作品,参加的是飞腾企业命题,最后是获得了总决赛团队三等奖和飞腾企业专项三等奖(赛道第四)。这是我第一次开始实践自己的课题,尝试完成一个以目标跟踪为核心的机器人。关于为什么要做机器人,是因为我的本科毕设做了一条仿生鱼,在此基础上改进会省力一些。整个项目包括硬件结构设计(手搓,比较粗糙),服务器程序,上位机软件和STM32舵机控制程序。
硬件结构设计
本项目采用三舵机模块串联方案模拟鱼尾摆动结构,利用双尾结构实现跟踪和运动模式的切换,其中大腿和脚底板使用270度舵机,小腿使用180度舵机。在舱体肩部和腰部分别添加两个纵向转动和一个横向转动舵机,通过连接件将鱼尾和舱体连接,实现跟踪云台功能。通过控制双尾摆动方式实现在水中运动,通过跟踪云台实现在陆地上定点跟踪模式。
服务器程序设计
本项目将飞腾派E2000作为服务器载体,其需要负责接收上位机(客户端)的控制指令,并通过对指令内容进行参数解析,将对应功能置位,然后根据优先级依次执行功能。构建双尾水陆两栖目标跟踪机器人,需要实现图像采集,并对采集图像中的物体进行目标跟踪,然后将跟踪结果通过视频流传输反馈给上位机,最后还要能够利用物体坐标信息,控制云台进行姿态跟踪。
对于目标检测跟踪一体化任务,其执行流程如图3-8所示。本项目采用RetinaFace人脸检测模型进行人脸定位,并将坐标信息传递给SIAM RPN++模型在目标周围区域进行目标跟踪,直到目标丢失时再重新使用检测模型找回目标坐标。通过目标检测跟踪模型互补使用,既能减少目标丢失概率,又能避免因为反复的全局目标检测而降低推理速度。
上位机软件设计
上位机软件作为客户端应当提供对服务器所有接口的访问,且具备良好的人际交互功能。软件由功能类和可视化类构成。功能类负责访问服务器接口,包括网络通信,舵机及鱼体波运动仿真命令控制,目标检测跟踪一体化控制和路径规划功能。可视化类包含传感器数据接收,路径可视化和鱼体波仿真。
STM32舵机控制程序
项目通过STM32F103VET6单片机接受飞腾派控制命令并控制舵机,通过STM32F103C8T6单片机采集MPH6050传感器数据及报告飞腾派。
本设计使用三个通用定时器,输出9路独立PWM波对舵机进行控制。PWM波周期设定为2ms,通过在500us至2500us范围内调整脉宽实现舵机从最小量程到最大量程的角度变动。
考虑到水下舵机执行阻力因素,采用时间片轮转的方式对舵机进行联合控制。设定时间片为50ms,每个舵机在时间片内依次转过较小角度,降低冲击力度。这种方式可以有效保证执行机构运行的稳定性与流畅性。
效果展示
这是研电赛的演示视频。