基于Jetson TX2视觉识别的取放一体平衡机器人

2023-08-22 19:39王锦璟武志涛马雨杨
电子产品世界 2023年8期
关键词:PID控制机器人

王锦璟 武志涛 马雨杨

关键词:视觉识别;平衡机器人;机器人;PID控制;OpenCV;STM32

机器人技术是当前发展最快的领域之一,已经广泛应用于物流、制造、医疗卫生和社会服务等多个领域。针对在复杂环境下人工操作难以实现自动化、智能化和精确性的问题,本项目开发了一款基于Jetson TX2 的取放一体平衡机器人。该机器人采用高性能的Jetson TX2作为硬件平台,可实现高速图像处理和计算。机器人采用现代机器人技术的机械结构和电气控制,包括两轮平衡机器人和机械臂等。软件系统包括图像处理、运动控制和用户界面等模块,通过自主感知、控制和运动规划等功能,该机器人能够精准地捕获并放置物品。本项目在Jetson TX2 平台上搭建了机器视觉开发环境,并利用OpenCV等技术实现了本地端图形方式的信息传递功能。针对机器人运动过程中的控制,采用了PID 控制算法。

1 系统设计

1.1 系统框架

本机器人的运动控制系统采用STM32F407IGH6 作为主控,该主控采用高性能的ARM Cortex-M4 处理器,能够有效地处理高速数据和复杂算法。该主控存储容量可扩展,可储存大量程序代码和数据,确保系统具有快速响应和高效性能。此外,该主控还拥有多种外设和通信接口,支持机器人系统的多样化和复杂功能。该系列主控还具有低功耗特性和较高性价比,易于获取开发工具。

另外,机器人的视觉识别系统采用Jetson TX2,该系统采用基于Pascal 的多处理器GPU 架构和8 核ARM64 CPU,可提供超过1TFLOPS 的高性能计算能力,支持多种编程模型,包括神经网络、图像处理和流媒体编码等,还支持多种传感器、控制器和执行器的连接,并配备了丰富的开发工具和样例,方便开发人员进行机器人应用的复杂开发。综上所述,Jetson TX2 在本项目中发挥了至关重要的作用,特别是在实现物体识别和信息获取方面。

1.2 控制流程

机器人启动后,机器人将开始采集环境图像,并通过摄像头将图像传递给图像处理模块(TX2)。该模块将使用图像处理技术对图像进行处理,然后将处理后的数据传递给运动控制模块。在数据处理过程中,运动控制模块将使用PID 控制算法来监控机器人的运动状态。最终,在运动控制模块的规划和控制下,机器人将达到预定的目标位置,并利用机械臂控制来抓取目标物体并将其存储。控制流程如图1 所示。

1.3 系统模块

1.3.1 视觉模块

为了处理视觉系统采集到的物体图像和输出检测结果,本项目采用了Jetson TX2 和KS2A543 高速摄像头。

1.3.2 平衡控制模块

使用STM32F407IGH6 作为主控,通过CAN 总线获取电机信息和参数,采用PID控制算法实现多重闭环,以控制轮组电机、YAW 轴电机和PITCH 轴电机。

2 硬件设计

2.1 硬件选型

为了提高机器人的性能,本项目采用了不同的硬件模块。其中,Jetson TX2 作为视觉系统的处理器,用于处理物体图片并输出检测结果;STM32F407IGH6 作为底盘和云台的主控,负责底盘运动控制和云台底盘信息传递;陀螺仪选用单片机内置的BMI088。此外,为了实现高效稳定的动力输出,轮组电机和YAW 轴电机均采用大疆M3508 电机,具备有感FOC 控制,可提供稳定的扭矩,无论转速高低都能保持平稳的动力输出,从而使得机器人具有快速响应和稳定性能。而根据实际需求,PITCH 轴电机则选用大疆M2006 电机,以具备控制精度高、输出功率大、体积小等特点。云台除了部署Jetson TX2 以外,还有控制机械臂的PITCH 轴电机、YAW 轴电机和轮组电机以及放置于机器人底盘上的STM32 主控。底盘和云台之间通过CAN 通信进行交互。硬件整体连接框图如图2。

3 軟件设计

3.1 软件架构

本项目选用了TX2 作为嵌入式平台,搭载Ubuntu16.04 系统和OpenCV3.4 等软件构建高效运算平台。通过利用摄像头和TX2 解算数据模型,本项目可获取空间图像信息,并通过UART 串口通信将信息传输至STM32 单片机。同时,利用TX2 进行深度图像的像素级评估,对目标物体构建物体模型并获取其特征点。接着,通过TX2 进行解算判断,缩小机器人和目标物体之间的距离。此外,在Jetson TX2 平台上构建了机器视觉开发环境,以实现基于OpenCV 等技术的本地端图形方式信息传递功能。

3.2 视觉识别算法

首先,需要使用标注工具对图像中的目标物体进行标记,并将其转换为YOLO 模型所需的格式,包括图片和标注文件。由于Jetson TX2 的硬件资源有限,因此可以使用预训练的模型(如COCO、VOC 等)进行微调训练,逐渐增加Batch Size 以提高性能和收敛速度。同时,采用数据增强方法可以增加训练数据,提高模型的准确性。训练完成后,需要对其进行测试以评估其准确性和性能。可以通过使用测试集对YOLO 模型进行测试,并观察其输出结果,从而检查YOLO 算法是否能够准确地检测目标物体。最后,将训练好的YOLO模型部署到Jetson TX2 上,并使用YOLO 提供的API进行目标检测。为了检测图像中的目标物体,本项目可以使用OpenCV 对图像文件进行读取和检测结果的显示。一旦检测到目标物体,可以获取其位置、类别等信息。在确定目标物体后,可以利用OpenCV 库进一步处理物体,如确定其颜色和尺寸等信息。

3.3 平衡控制算法

为了实现垂直方向上的平衡控制并生成程序骨架,可以使用STM32CubeMX 工具并添加相关库和驱动程序,包括陀螺仪、CAN 和PID。利用CAN 总线获取电机参数和信息,并读取陀螺仪测量值,以实现平衡控制。在PID 控制算法中,P(比例)、I(积分)和D(微分)系数的选择非常重要。P 系数影响响应速度和稳定性,I 系数用于消除静态误差,D系数减小震荡。可以通过实验和仿真等方法来寻找最佳PID 系数值以实现更为稳定的平衡控制。在程序中,计算PID 控制器的输出并根据输出来控制电机的速度或位置等参数,以实现平衡控制。同时,需要对PID 控制器进行限幅以防止电机失控,并不断调整PID 系数以使平衡控制更加稳定和快速。

3.4 软件总体实现

所有嵌入式算法基于HAL 库通过freeRTOS 分任务执行。其中Chassis Task 任务负责获取底盘控制等信息;Gimbal Task 任务负责获取云台等信息;Imu Task 任务负责解算板载陀螺仪;Annex Task 任务负责控制一些附件,例如舵机等;最后System Inform Task 任务负责进行数据更新、交互及数据加载。软件总体实现框图如图3。

4 系统测试

4.1 物体目标检测算法

首先,加载预先训练好的YOLO 权重文件,获取网络结构的相关参数,以及包含了YOLO 所需的目标类别名称的文本文件。接着,使用函数提供的接口加載输入的权重参数和YOLO 配置文件。这两个文件应包含了模型的结构细节、输入/ 输出层名称和类别标签等信息。其次,加载需要检测的图像,并对其进行预处理操作。这些操作包括:将像素值的范围缩放到0~1 之间、调整其大小、重新排序,并添加1 个新的维度来拓展输出数组形状。将经过预处理的图像输入到预训练的物体检测算法中,输出检测结果。为了剔除概率小的或者IoU 值大于设定阈值的重叠框,可以采用非极大值抑制(NMS)算法对输出结果进行后处理。接着,对于检测到的目标,进行分类、位置定位以及预测置信度的解码,将算法的输出转换为边框、概率和类别ID。物体目标检测算法的部分代码展示如图4 所示。

4.2 测试结果

将处理好的目标物体检测结果通过在原图上画出边界框的方式展示出来。不同的目标物体可以用不同的颜色来代表它们所属的不同识别类别,并在标签上显示其对应的类别名称。测试结果如图5。

4.3 测试结果分析

尽管PID 算法是一种常用的控制算法,但通过改进PID 算法以提高系统稳定性和精度,或采用其他控制算法,如模糊控制、LQR 控制器等,可能会进一步提高控制系统性能。需要注意的是,实验结果仅基于特定场景,应进一步探索该平衡机器人在实际日常条件下的表现,例如在不同表面的摩擦系数和坡度变化的情况下运动、在不同亮度的日照下进行视觉识别等。

5 结束语

本文介绍了一种基于Jetson TX2 平台的平衡机器人,该机器人采用了视觉识别技术并使用STM32 作为主控芯片,能够实时获取各种传感器数据,并对周围环境进行识别和控制。实验结果表明,该机器人实现了优秀的自平衡和控制功能,并表现出鲁棒性和可靠性。未来的研究方向包括进一步优化控制算法、提高系统的稳定性和精度,以及在实际工作场景中进行测试。此外,机械结构的设计和控制策略研究也是一个重要的方向,以进一步提高机器人的准确性和稳定性。这些方面的改进和优化将有助于更好地应用平衡机器人在物流、医疗器械、环境卫生和其他服务领域。总之,该平衡机器人的设计和实现为机器人技术的发展提供了新的思路和方向,并在自动化、智能化和精准化作业的领域具有广泛的应用前景。

猜你喜欢
PID控制机器人
内模控制在火电厂主汽温系统中的应用
常规PID控制和常规模糊控制的比较