体感交互式智能型机械臂实验教学平台开发
2024-04-18郑志安尹诗荀朱俊杰陈爱斌李建军
郑志安, 尹诗荀, 朱俊杰, 陈爱斌, 李建军, 高 翔
(中南林业科技大学电子信息与物理学院,长沙 410004)
0 引 言
机械臂可以代替人工完成重复性、危险性和繁琐性较高的工作[1-2]。如何降低机械臂的成本、操作难度和提高控制精度对于保障人类安全和健康具有重要意义,也是高校自动化、机器人、电子信息等相关专业教学实验设备开发亟待解决的问题[3-5]。
由于机械臂在智能制造领域中的突出地位,目前许多高校将机械臂的学习作为工业机器人实践教学体系的重要载体[6-7]。在杨亮等[8]的研究中,利用计算机视觉技术与机械臂控制相结合,通过摄像头获取目标物体的图像信息,实现了机械臂对目标物体的抓取。然而,该研究要求学生具备在Linux 系统下进行控制系统搭建、指令发送等一系列操作的计算机专业知识,使得该研究难以面向其他专业推广。陈一博等[9]利用迭代模型库设计了机械臂轨迹预测实验,能够有效跟踪机械臂实时随时间变化的状态,但设备维护成本高,难以满足大规模教学需求。
针对以上问题,本文设计并搭建了一种基于体感交互技术的智能型机械臂实验教学平台,该平台由控制端与执行端组成。围绕体感交互技术,控制端通过人体姿态传感器采集并解析人体手臂姿态信息;利用蓝牙模块将这些姿态信息传输给机械臂执行端;再由执行端驱动舵机完成机械臂跟随人体手臂姿态的对应操作。运用该实验教学平台,可实现机械臂与手臂姿态的同步执行,让学生能够有充分的参与感,近距离地接触和理解机械臂工作原理。同时,还考虑了成本、趣味性、学生综合运用传感器检测技术以及嵌入式系统开发等实践动手能力培养方面的需求。
1 平台总体设计方案
本设计以体感交互技术为基础,以机械臂运动学分析为理论支撑,由控制端与执行端2 个子系统共同构成,二者通过HC-05 蓝牙通信模块实现无线数据传输。平台整体框架如图1 所示。
图1 平台整体框架
1.1 设计思路
(1)控制端。控制端以STM32F103ZET6 作为微控制器,主要完成体感交互系统所需要的人体姿态信息采集任务。通过串口分别实现与人体手臂姿态传感器MPU6050 和HMC5883L 的通信。MPU6050 获取人体手臂的姿态信息,利用MPU6050 内置的数据管理模块实现人体手臂的姿势解算,能够有效降低微控制单元的负担,提高控制的实时性[10]。HMC5883L起到辅助姿势解算的作用,用于抑制MPU6050 的零点漂移等问题。控制端完成姿态数据的解析后,通过HC-05 蓝牙模块将数据发送给接收端。利用TTP223 触摸按键能够对机械爪的控制参数进行修改,按键可以对当前的工作模式进行更改,当前机械臂的工作模式和各个舵机的控制参数都通过有机发光二极管(Organic Light-Emitting Diode,OLED)进行显示。
(2)执行端。执行端以STM32F103C8T6 作为微控制器,通过HC-05 蓝牙模块接收控制端发送来的舵机控制参数。机械臂根据接收到的控制参数自动快速地模拟出相应的操作,从而实现对物体的抓取与搬运等工作,以此来实现手臂与机械臂的同步执行[11]。OLED实时地显示当前各个舵机的控制参数和机械臂的工作模式,确保机械臂的正常运作。
1.2 机械臂设计
图2所示为五轴机械臂的结构。由图可知,连杆1(底座-底座旋转舵机)位于机械臂的底座,控制机械臂基于基坐标Z轴进行旋转运动,允许从中心点进行完整的180 度运动。连杆2(大臂)位于连杆1 正上方,控制机械臂向前和向后的伸展。连杆3(小臂)位于机械臂的中间部位,控制机械臂的升降。连杆4(腕关节-腕部)位于机械臂的前侧,能够跟随模拟人体手腕的动作。连杆5(腕部-爪部)也位于机械臂的前端,与连杆4 协同工作,控制末端执行器以圆形路径旋转,可以更好地定位工件。除了5 个工作连杆以外,在机械臂的末端还拥有1 个负责抓取物体的机械爪,由舵机进行驱动。
图2 五轴机械臂结构图
机械臂采用了MG996R和YF-6125MG两款舵机。连杆2 与连杆3 作为主要的承重轴,其起点处的舵机由YF-6125MG作为驱动舵机(本文命名为舵机2 和舵机3)。连杆1、4、和5 的起点处的舵机(本文分别命名为舵机1、舵机4 和舵机5)由兼具低成本特点,适用于非承重关节的MG996R作为驱动舵机。
机械臂的运动学模型利用MATLAB 完成搭建。而在实际使用中通过体感交互技术,实现协同控制,使用C 语言对程序进行编写,便于二次开发与实验教学。
1.3 通信模块设计
在实验平台中,通信模块使用的是HC-05 蓝牙串口,在Bluetooth Specification V2.0 的同时带有蓝牙增强速率协议。其无线工作的频段在2.4 GHz,通过高斯频移键控的方式进行调制,发射功率最大可达到4 dBm,接收灵敏度为-85 dBm,能够实现10 m 左右的通信。该模块自带有发光二极管(light emitting diode,LED),LED 快速闪烁代表正在寻找匹配对象,当LED以一定的时间间隔闪烁时,代表完成匹配。通信模块示意图如图3 所示。
图3 通信模块工作示意图
2 机械臂运动学分析
机械臂运动学分析通过建立机械臂运动学模型,分析机械臂各关节的位置、速度、加速度与机械臂末端在空间中的变化规律[12],可为机械臂的轨迹规划和控制策略的制定提供重要的参考依据。
2.1 模型建立
本文的机械臂为串联机械臂,采用德纳维特-哈滕伯格(Denavit-Hartenberg,D-H)建模法[13]对机械臂进行建模。该方法通过在每个连杆上建立1 个坐标系,利用齐次坐标变换实现两个连杆之间坐标的变换。建立与末端连杆固连的坐标系后,由于该坐标系下末端点的坐标仅与末端连杆的机械尺寸有关,与机器人的运动无关,因此可以准确地得出末端点的坐标。
对于D-H建模法,一般把某一连杆靠近基座的关节称为该连杆的驱动关节,把靠近末端执行器的关节称为该连杆的传动关节。因此,利用标准D-H参数建立的坐标系又被称为传动轴坐标系。当前坐标X轴的方向(设为Xi)为当前Z轴(设为Zi)和前1 个关节的Z轴(设为Zi-1轴)依笛卡尔坐标系准则的叉乘方向,如图4 所示。在利用D-H 建模方法时,需要得到α、a、d、θ这4 个参数,如下式所示:
图4 机械臂D-H参数模型
式中:i-1 和i分别为前后相邻的关节;θ为相邻坐标系之间X轴的夹角;d为坐标系A相对于坐标系B在坐标系B的Z轴方向上的偏移量,其中坐标系A、B相邻,坐标系A更靠近末端执行器;α为连杆驱动轴与传动轴之间的夹角;a为连杆的长度;R 为旋转矩阵,T为平移变化矩阵。模型的建立一般先绕着Zi-1轴旋转θi使Xi-1平行Xi之后沿着Zi-1轴平移di使Xi-1与Xi重合;完成Z轴方向的操作后,沿Xi轴平移ai的距离让Zi-1与Zi重合,最后绕着Xi轴旋转αi,让Zi-1与Zi共线。在每个连杆上建立坐标系,利用变换关系找到相邻连杆之间的坐标信息,根据定义获得该五自由度机械臂的D-H参数,图4 所示为构建的五自由度机械臂模型。
2.2 正逆运动学分析
(1)正运动学。在已知机械臂各关节参数情况下,求机械臂末端执行器在相对参考坐标系中的位姿和运动学参数的过程。机械臂由多个连杆与关节构成,其运动轨迹主要依赖连杆和关节的配合完成,机械臂的末端位置由初始状态和运动参数来决定[14]。
在模型的建立中已知了各个旋转矩阵,根据D-H模型建立的顺序依次将各旋转矩阵乘积,便可以得到通用的齐次变换矩阵,其乘积的顺序为
式中:i-1Ti为五自由度机械臂中5 个连杆基于坐标系的变化矩阵,i=1,2,…,5 为连杆编号。
在构建了各关节的D-H参数的基础上,通过将其各自代入通用齐次变换矩阵便能够得到5 个矩阵0T1、1T2、2T3、3T4、4T5。依次对5 个齐次变换矩阵相乘,即可得到五自由度机械臂的总变换,即:
本文使用MATLAB中的Robotic Toolbox工具箱中的FKine函数快速进行机械臂的正运动学分析。在已知各关节的运动参数的情况下,能够计算出末端执行器相对于参考坐标系的位姿。对于每个连杆,如果设置其相应的θ值,可以建立对应的机械臂状态,并计算出五自由度机械臂的总变换。
(2)逆运动学。与正运动学相反,逆运动学指的是根据机械臂末端执行器的位置和方向,计算出机械臂各关节的运动参数的过程。在进行机械臂正解的求解过程中,可以得到机械臂总变换的方程。逆解的求解过程中,末端连杆的位置和姿态已经给定,因此可以快速地实现对机械臂的逆运动学分析。
2.3 轨迹规划
对于机械臂来说,轨迹规划是为了能够设计一条符合要求的路径,让机械臂能够沿着该路径进行移动,并完成相应的任务[15-16]。本设计的机械臂为串联机械臂,可以使用关节空间轨迹规划方法。
关节空间轨迹规划是在机械臂的关节空间中实现对机械臂运动轨迹的规划。首先,需要求解机械臂逆解,将末端执行器的路径点转化为关节角度并对其进行拟合得到关节函数。如设定起始位姿和末端位姿分别为[0-30 30 0 0]、[60-8-30-20 50]。末端执行器则可以执行出如图5 所示的X-Y平面的运动轨迹。
图5 末端执行器X-Y平面运动轨迹
经过计算得到关节随时间变化的关节弧度、角速度、角加速度等参数,如图6 所示。轨迹规划解法最终能正常地到达终点位置。
图6 关节参数随时间变化
3 实验平台软件模块设计
本平台可提供关于机械臂的人体姿态信息采集模块、基于体感交互的机械臂运动控制模块和舵机角度控制模块3 个核心实验教学模块。搭建的实验系统实物如图7 所示,包括采集人体姿态信息的控制端和机械臂执行端。
图7 搭建的实验平台实物
3.1 人体姿态信息采集模块
使用2 块MPU6050 分别对人体手背和小臂进行姿态数据的采集,通过其自带的微处理器的初始流程将其转换为姿态角(俯仰角、横滚角以及偏航角),由MPU6050 得到的数据经由串口的方式传输给控制端主控器Stm32。MPU6050 的初始化流程图如图8所示。
图8 MPU6050初始化流程
HMC5883L 用于充当磁力计对MPU6050 的偏航角数据进行修正,通过IIC 实现与Stm32 的通信。其中,HMC5883L采集到的数据并不能够直接进行使用,需要对其进行处理,将数据转换为偏角的形式。读出HMC5883L寄存器的原始数据之后,通过多次求和取平均,再利用计算式
计算出磁偏角。由于磁阻传感器属于比较精密的器件,容易受到周边环境的干扰,造成与实际的角度存在较大偏差,因此在必要时需要对其进行校准。具体的校准能够分别通过校准磁场的强度和校准磁场的方向来实现。
3.2 体感交互下机械臂运动控制模块
本设计中需要对多个舵机同时进行控制来实现操作机械臂。舵机的控制是通过不断调整PWM 的占空比以实现将舵机转动到不同的角度,只有所有舵机的控制参数都满足对应的条件才能让机械臂的末端执行器到达特定的位置。
人体姿态传感器模块MPU6050 和HMC5883L 完成数据的采集和处理后,需要让姿态数据与机械臂舵机控制参数形成映射关系。以达到姿态数据随时间发生变化时,机械臂舵机控制参数能根据姿态数据的变化实时的进行变更。不同舵机对应的姿态数据不相同。舵机1 拥有2 个映射参数偏航角和磁偏角,MPU6050 由于硬件问题在运行过程中会出现零点漂移等问题,导致偏航角不准确,此时需要利用HMC5883L 的磁偏角参数对其进行相应的矫正校准。舵机2 ~舵机4 对应俯仰角,而舵机5 对应横滚角。在得到对应舵机的映射参数后,需要对参数进行采集统计,并进行相应的计算拟合,最终得到每个舵机控制参数的拟合函数并求解。
3.3 舵机角度控制模块
舵机的控制采用脉宽调制(Pulse Width Modulation,PWM)技术。PWM 是一种通过调节脉冲信号的宽度来控制模拟电路的方法。在舵机控制中,通过微处理器的数字输出来生成一系列的脉冲信号,脉冲的宽度决定了舵机的位置或角度。本文PWM 的工作原理如图9 所示。由图可知,当定时器工作设定为向上计数时,CNT 小于CCRx 时,PWM 脉冲通道输出低电平,CNT大于CCRx时,PWM脉冲通道输出高电平。在CNT达到了ARR 后,CNT 归零并开始重新向上计数。这一过程中,通过改变CCRx 的值就能够改变高电平在1 个周期内的持续时间,从而达到改变占空比的目的,改变ARR的值则会使PWM通道的输出频率发生改变。所谓的脉宽调制信号,指的就是通过自动重装载寄存器确定频率,再由CCRx 寄存器确认占空比信号。舵机通过接收PWM 信号,在内部电路中产生1 个偏置电压,从而触发电机通过减速齿轮带动电位器移动,当移动到特定位置后,电压差刚好归零,之后电机便停止转动,以此达到伺服的效果。
图9 PWM原理示意图
4 结 语
本文设计并搭建了一种通用性强、低成本、便于携带的体感交互式机械臂实验教学平台。该平台可分模块实现3 个核心实验:人体姿态信息采集模块实验、基于体感交互的机械臂运动控制模块实验和舵机角度控制模块实验。通过实验表明,本平台可低成本实现体感式人机交互五自由度机械臂智能控制。控制端与执行端最大通信距离可达10 m,三维空间的工作空间为0 mm <X<300 mm、-300 mm <Y<300 mm、-100 mm <Z<300 mm,最大转动角度为180°。目前,该教学平台已应用于“机器人课程设计”教学实践中。