基于嵌入式系统的六轴关节型机械臂系统

2024-04-13 15:22姜宇凡
自动化与信息工程 2024年1期
关键词:STM32单片机嵌入式系统

本文引用格式:姜宇凡.基于嵌入式系统的六轴关节型机械臂系统[J].自动化与信息工程,2024,45(1):47-54;60.

JIANG Yufan. Six axis articulated robotic arm system based on embedded systems[J]. Automation & Information Engineering, 2024,45(1):47-54;60.

摘要:基于嵌入式系统设计了一款六轴关节型机械臂系统。六轴关节型机械臂的各关节零件通过3D打印后组装;主控板的微型控制器选用STM32F103C8T6芯片;利用MatLab仿真软件对六轴关节型机械臂进行运动学建模和仿真;采用Java语言开发六轴关节型机械臂的上位机软件,使机械臂可以通过上位机或无线装置实现姿态控制、抓取等操作,并支持动作记忆功能,可重复动作。基于航空精确制导武器部装产线,搭建温度测试工业应用场景,进行六轴关节型机械臂的正逆解与点动实验,为后续数字孪生技术的研究打下基础。

关键词:嵌入式系统;六轴关节型机械臂;STM32单片机;D-H参数法;运动学建模

中圖分类号:TP241.2            文献标志码:A          文章编号:1674-2605(2024)01-0008-09

DOI:10.3969/j.issn.1674-2605.2024.01.008

Six Axis Articulated Robotic Arm System Based on Embedded Systems

JIANG Yufan

(China Airborne Missile Academy, Luoyang 471009, China)

Abstract: A six axis articulated robotic arm system was designed based on embedded systems. The joint components of a six axis articulated robotic arm are assembled through 3D printing; The microcontroller of the main control board uses STM32F103C8T6 chip; Using MatLab simulation software to model and simulate the kinematics of a six axis articulated robotic arm; Developing the upper computer software of a six axis articulated robotic arm using Java language, enabling the robotic arm to achieve posture control, grasping, and other operations through the upper computer or wireless device, and supporting action memory function, with repeatable actions. Based on the aviation precision guided weapon assembly production line, a temperature testing industrial application scenario is constructed to conduct forward and inverse solutions and point motion experiments of a six axis articulated robotic arm, laying the foundation for subsequent research on digital twin technology.

Keywords: embedded systems; six axis articulated robotic arm; STM32 microcontroller; D-H parameter method; kinematic model

0  引言

六轴关节型机械臂是一种模拟人类手臂运动的机械装置,能够实现精确地抓取、搬运、装配等操作,可提高生产效率,为工业自动化提供了新的可能性。

文献[1]搭建了一款小型的六自由度机械臂系统,该系统基于51单片机开发板进行控制系统开发,外设接口有限,且增加了额外的电气连接,相比PCB更加复杂。文献[2]通过蓝牙手柄对多自由度机械臂姿态

进行控制,交互性有限。文献[3]基于AVR1280单片机设计了一款六自由度多轴机械臂,基于LabVIEW进行上位机界面开发,交互性与可移植性有限。文献[4]提出的机械臂系统利用Leap Motion传感器获取手势信息,易受光照强度、动作遮挡以及背景颜色等外界因素干扰。

针对以上问题,本文基于嵌入式系统设计一款六轴关节型机械臂系统。首先,介绍六轴关节型机械臂

的伺服舵机选型、驱动芯片、驱动方式以及控制方法等;然后,基于航空精确制导武器部装产线的真实场景,在仿真平台上搭建一个六轴关节型机械臂的温度测试工业应用场景,实现对机械臂位姿和运动轨迹的控制。

1  系统总体设计

基于嵌入式系统的六轴关节型机械臂系统主要包括硬件系统、运动学建模和软件系统3部分,框图如图1所示。

2  硬件设计

基于嵌入式系统的六轴关节型机械臂系统的硬件系统主要由六轴关节型机械臂、伺服舵机、ARM微控制器STM32F103C8T6及其外围电路(包含最小系统、电源模块、通信模块)、MYO肌电交互手环4部分构成。

2.1  六轴关节型机械臂

六轴关节型机械臂主要利用三维软件Solid- Works,参考开源的机械臂结构进行设计,增加了底座,并通过3D打印后进行组装。

2.2  伺服舵机

六轴关节型机械臂的转动系统选用伺服舵机进行驱动。转动系统主要由Futaba S3003、Futaba S3305、Tower Pro MG90S和Hitec HS-55四款伺服舵机组成,其性能指标对比如表1所示。

1) Futaba S3003为标准尺寸的伺服舵机,通过PWM信号能平稳地控制运动,可输出3 kg·cm的扭矩,并可在正逆两个方向切换,适用于需要周期性输出运动的应用场景。该伺服舵机安装在六轴关节型机械臂的關节部位,提供关节的转动扭矩。

2) Futaba S3305采用金属齿轮,利用数字信号对伺服舵机的转动角度进行控制,可输出14 kg·cm的扭矩,具有响应速度快、精度高且输出平滑等特点。该伺服舵机安装在六轴关节型机械臂的底座上,提供底座转动所需的扭矩。

3) Tower Pro MG90S和Hitec HS-55是两款微型伺服舵机,具有尺寸小、质量轻、扭矩大等特点。这两款伺服舵机安装在六轴关节型机械臂的手腕和末端执行器部位,阻力小,可以提供足够的扭矩来移动机械臂。

六轴关节型机械臂的位置反馈信息通过读取伺服电机的位置获取,而伺服电机的位置由电位计控制。因此,本文将单极电缆焊接到电位计的中心引脚,即位置信号上,以获取伺服电机的位置。

2.3  主控制器电路

2.3.1  主控芯片

本文基于STM32F103C8T6芯片进行六轴关节型机械臂的硬件控制系统设计[5-6],该芯片含有定时器、ADC、DAC、I2C、SPI、USART等外设接口。

2.3.2  最小系统

STM32F103C8T6的最小系统主要由电源模块、STM32F103C8T6芯片、外部晶振、调试模块、复位及滤波电路等组成,电路图如图2所示,主要实现控制与驱动信号的输出以及反馈信号的采集等功能[7]。

通过配置主控芯片STM32F103C8T6可输出PWM信号[8],改变PWM信号的频率与占空比等参数,可实现伺服舵机位置与速度的控制。伺服舵机与主控制板的接口电路如图3所示。

2.3.3  电源模块

根据六轴关节型机械臂系统的供电需求,本文的电源模块主要由3个稳压电路组成,分别输出3.3、5、6 V的直流电压给主控芯片、NRF24L01通信模块以及伺服舵机供电。本文选用的稳压芯片以及外围电路图如图4所示。

2.3.4  通信模块

本文采用的NRF24L01通信模块与主控芯片可通过SPI总线进行通信。NRF24L01通信模块可在  2.4 GHz ISM低功耗频段无限地收发模块,具有低功耗、长距离传输、高抗干扰能力等特点;内置的SPI接口,可实现六轴关节型机械臂系统的远程无线控制。NRF24L01通信模块与主控制器的接口连接图如图5所示。

2.4  MYO肌电交互手环

MYO肌电交互手环用于采集手势动作执行过程中产生的肌电信号。不同手势产生的肌电信号存在差异,通过对肌电信号的分类来对应不同的控制指令,实现六轴关节型机械臂的运动控制。MYO肌电交互手环包含8通道sEMG电极,肌电信号交互方式不受光照强度、背景颜色等因素的影响,具有便携性。

3  运动学模型搭建与仿真

3.1  机械臂运动学模型

机械臂运动学模型在描述空间位置、速度和加速度时,一般选用笛卡尔坐标系[9]。本文在笛卡尔坐标系下分析六轴关节型机械臂相对于基座参考坐标系的运动,并利用标准D-H参数法[10-12]建立六轴关节型机械臂的运动学模型。

3.1.1  机械臂坐标系的建立

根据六轴关节型机械臂的各个关节位置,建立的机械臂关节笛卡尔坐标系及实物尺寸参数如图6所示。

六轴关节型机械臂的6个关节坐标系采用右手笛卡尔坐标系,坐标系的原点位于关节轴心,Z轴沿着关节的旋转轴方向。通过对六轴关节型机械臂各关节角度的控制与转换,可实现6个关节坐标系之间的转换。

3.1.2  D-H参数表建立

D-H参数是一种对连杆的坐标描述。D-H参数法根据机械臂的长度、关节角等参数,确定每个关节引起的坐标系变换。该方法通过建立D-H参数表,推导出六轴关节型机械臂的运动学模型。D-H参数表的交换规则如下:

1) 关节角:绕轴旋转,直到与平行(方向一致);

2) 连杆偏移:沿轴平移,直到与共线;

3) 连杆长度:沿轴平移,直到与原点重合;

4) 连杆扭转角:绕轴旋转,直到与共线。

根据图6所示的六轴关节型机械臂尺寸参数以及D-H参数表变换规则,得到的六轴关节型机械臂D-H参数表如表2所示。

3.2  算法实现

机械臂的运动学正逆解[13]主要用于位置控制和路径规划[14]。本文选用Denavit -Hartenberg算法进行六轴关节型机械臂的正运动学分解。

3.2.1  正解(FK)算法

FK算法是在已知机械臂各关节姿态,求机械臂末端执行器位姿的过程[11]。假设六轴关节型机械臂6个关节的角度为,求解机械臂末端执行器的位姿的计算公式为

(1)

式中:表示繞Z轴旋转角度,表示沿Z轴平移,表示沿X轴平移,表示沿X轴旋转角度。

的矩阵形式表示为

(2)

将D-H参数表中的数据代入公式(2),得到末端执行器相对于基坐标系的齐次变换矩阵,即六轴关节型机械臂的运动方程[12]:

3.2.2  逆解(LK)算法

LK算法是已知机械臂末端执行器的姿态,求机械臂各关节的旋转角度[15]。利用MatLab仿真软件构建六轴关节型机械臂的仿真模型,调用Link函数和Robot函数实现机械臂的运动仿真[16-17],如图7所示。

3.2.3  轨迹规划

机械臂的轨迹规划是确定机械臂末端执行器的起始位置到目标位置的无碰撞运动路径[18-19]。

本文采用五次多项式插值算法[18]进行六轴关节型机械臂的轨迹规划,同时对起始点和目标点的角度、角速度和角加速度给出约束条件。通过将六轴关节型机械臂的运动路径离散化,利用五次多项式插值算法确定经过离散点的具体路径,得到的空间轨迹以及角加速度与时间的关系曲线如图8、9所示。

由图9可以看出,六轴关节型机械臂的关节1~6的角加速度变化曲线平滑连续,没有出现跳变现象,轨迹平稳,表明六轴关节型机械臂的电机运行平稳。

4  软件设计

基于嵌入式系统的六轴关节型机械臂系统软件主要包括STM32控制程序和上位机软件。

4.1  STM32控制程序

STM32控制程序采用C语言进行编程,集成开发环境为KEIL5,控制程序流程如图10所示。

STM32控制程序分为主函数控制程序、中断函数控制程序和通信模块控制程序[3]。其中主函数控制程序主要用于控制命令的接收和六轴关节型机械臂的姿态控制;中断控制程序主要用于六轴关节型机械臂的姿态控制;通信模块控制程序主要用于控制命令的接收以及数据包的解算。

4.2  上位机软件

本文以Android Studio为集成开发环境,以Java为开发语言进行上位机软件的编写与开发,设计了基于手机APP的蓝牙控制端。该APP可以通过蓝牙与六轴关节型机械臂主控制板的通信模块建立连接,实现机械臂的远程控制。上位机主界面的部分截图如图11所示。

5  实验验证

本文搭建的六轴关节型机械臂实物图如图12所示。

六轴关节型机械臂通过MYO肌电交互手环进行远程姿态控制实验。MYO肌电交互手环分别以50、200 Hz的频率采集惯性测量单元(inertial measurement unit, IMU)信号与肌电信号。本文定义五指张开、手腕向上屈伸、五指握紧、手腕向下屈伸4个分类动作,对应的手势动作如图13所示。

在本文的控制实验中,五指张开、手腕向上屈伸、五指握紧、手腕向下屈伸4个分类动作分别对应六轴关节型机械臂的向上移动、绕Z轴左转运动、向下移动、绕Z轴右转运动4个控制任务,对应采集的8路肌电信号如图14所示。

解析MYO肌电交互手环采集的肌电信号,并将解析结果传输给六轴关节型机械臂的主控制板,实现机械臂姿态的控制,4个分类动作的控制结果如图15所示。

6  应用测试

本文以航空精确制导武器部装产线的温度测试工业应用场景为例,测试六轴关节型机械臂根据末端执行器的位姿,通过正运动学逆解,实时解算各关节的角度信息。六轴关节型机械臂抓取产品与放置产品的动作如图16所示,根据当前抓取姿态解算出的各关节数据如表3所示。

由表3可知,通过在场景中选取不同密度的点,上位机可以通过配置好的运动学逆解算模型,根据空间点的姿态求解对应的关节姿态,以此界定各关节转动的范围。同时,通过记录各关节姿态的方式记录空间点,以此生成六轴关节型机械臂的运动路径,来测试机械臂不同精度的分段运动控制和轨迹规划的控制效果,如图17所示。

7  结论

本文基于STM32F103C8T6微控制器设计了一款六轴关节型机械臂系统,该机械臂各关节零件经3D打印后组装。首先,完成六轴关节型机械臂硬件系统的搭建;然后,通过KEIL完成软件程序的编写和调试;接着,通过MYO肌电交互手环对六轴关节型机械臂进行远程的姿态控制实验;最后,以航空精确制导武器部装产线的温度测试工业应用场景为例,进行六轴关节型机械臂的正逆解与点动测试。本文后续研究将完成仿真模型与实物之间的通信和数据传输解算,监测六轴关节型机械臂的运行状态,实现真实场景中机械臂的状态在仿真机械臂上的实时反应与控制。

参考文献

[1]王凤祥,张志杰,陈昊泽.六自由度机械臂系统设计与控制方式研究[J].电子测量技术,2021,44(4):1-8.

[2]王慧,李伟.基于Arduino控制的多自由度机械臂系统设计[J]. 安徽电子信息职业技术学院学报,2017,16(4):6-9;13.

[3]刘忠超,肖东岳,翟天嵩.AVR单片机控制的多轴机械臂系统设计[J].自动化仪表,2015,36(5):40-42.

[4]金高威,董铮.基于Arduino的六自由度机械臂控制系统设计[J].科学技术创新,2019(35):64-65.

[5]宁春雷,刘凡齐,孙在尚.基于STM32的多自由度机械臂设计[J].电子世界,2017(9):143.

[6]焦江丽,李凤莲.以ARM Cortex-M3为基础的STM32开发板的设计与实现[J].中国新通信, 2013,15(9):94-96.

[7]唐成方.基于ARM微控制器的旋转电极电刺激仪[J].自动化与信息工程,2021,42(3):44-49.

[8]伍期哲.基于无刷直流电机直驱的三关节机械臂设计与实现[D].广州:华南理工大学,2021.

[9]冷舒,吴克,居鹤华.机械臂运动学建模及解算方法综述[J]. 宇航学报,2019,40(11):1262-1273.

[10]代彦辉.六自由度机械臂避障路径规划研究[D].绵阳:西南科技大学,2024.

[11]CRAIG John J. 机器人学导论[M].机械工业出版社,2006.

[12]HARTENBERG R S. Kinematic Synthesis of Linkages[J]. McGraw-Hill Google Schola, 1964,2:198-202.

[13]彭建文.串聯六轴工业机器人的关节轨迹规划[D].哈尔滨:哈尔滨工业大学,2017.

[14]王文萍,张培恒,卫勇.基于Kinova Mico六自由度机械臂运动学及其路径规划的研究[J].现代机械,2022(5):58-65.

[15]吴强,邓庆文,胡泽启,等.基于RBF神经网络与代数法的6R机器人逆运动求解[J].数字制造科学,2019,17(3):201-206.

[16]黄玥,张兴华,庄国锐,等.六轴焊接机械臂的逆运动学控制程序设计[J].内燃机与配件,2017(22):11.

[17]周霏,陈富林,沈金龙,等.基于MATLAB的四自由度机械臂运动学仿真研究[J].机械制造与自动化,2016,45(1):115-119.

[18]马强.六自由度机械臂轨迹规划研究[D].哈尔滨:哈尔滨工程大学,2007.

[19]李海龙.六轴工业机械臂的结构设计与轨迹规划[D].淮南:安徽理工大学,2018.

作者简介:

姜宇凡,女,1998年生,硕士研究生,助理工程师,主要研究方向:智能制造、控制工程。E-mail: 18847162723@163.com

猜你喜欢
STM32单片机嵌入式系统
基于STM32芯片的移动机器人的避障研究
基于STM32的两轮自平衡遥控小车设计
基于STM32单片机的智能手环设计与实现
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
基于STM32单片机的数码相框显示系统设计
基于STM32的中老年人跌倒监测装置研究