李立早,常 胜,黄 凯
(南京信息职业技术学院,江苏 南京 210023)
基于惯性动作捕捉的机械臂控制系统设计*
李立早,常 胜,黄 凯
(南京信息职业技术学院,江苏 南京 210023)
针对以往机械臂控制方式繁琐且技术要求高的弊端,设计了一套基于惯性动作捕捉的机械臂控制系统。由重力加速度计和弯曲度传感器构成的动作捕捉模块被固定于操作者手臂上,实时捕捉手臂各部分相对运动角度值。动作捕捉模块将各角度值通过串行方式发送给机械臂控制模块,完成对舵机角度的控制。该控制系统直接捕获手臂相对运动角,避免了空间姿态角换算问题,经实验验证其控制效果令人满意。
动作捕捉;惯性传感器;弯曲度传感器;机械臂
机械臂作为机器人的一个分支,已广泛应用于工业领域以及生活中。机械臂可以替代人类在高温、高热、强辐射等高危环境中作业,完成各类复杂的操作。目前的机械臂控制方式通常较为繁琐,同时要求操作者具有专业知识基础和丰富的操作经验。近年来,有学者提出了采用体感技术对机械臂进行控制,主要方式有两大类:光学捕捉和惯性捕捉。光学捕捉主要采用光学器材对人体运动姿态进行捕获,具有较高的精度,但价格较为昂贵,对场地要求也较高。常见的光学捕捉控制方式通过采用Kinect或Leap Motion等设备来实现[1-2]。惯性捕捉方式则采用穿戴在人体上的惯性传感器来实现对姿态的捕获,例如采用三轴陀螺仪、重力加速度计和磁通传感器等。目前,荷兰Xsens公司和美国的Innalabs公司都推出了商业化的惯性捕捉设备,捕捉精度高,可以在任何场地使用,但同样价格高昂。国内学者对惯性姿态捕获机械臂控制方式也有深入研究,采用多传感器数据融合方式计算舵机偏转角度[3-4]。虽然多传感器方案可以有效提高精度,但同时也带来了计算复杂、数据量大、操作延迟等问题,给工程应用带来了困难。
针对这些问题,本项目采用重力加速度计与弯曲度传感器相结合的方案,设计了基于惯性动作捕捉的机械臂控制系统。直接捕获各关节间相对运动角度,用于对机械臂舵机的控制,避免了大量的角度换算和数据运算。同时,在保证精度和稳定性的前提下,对成本进行了合理的控制。
本项目主要通过对操作者手臂运动姿态的捕捉,产生角度指令进而控制机械臂进行运动。不同于单纯动作捕捉系统捕获的是手臂的空间姿态角,本项目中动作捕捉模块捕获的是手臂各部位的相对角度,再将其转换为机械臂各舵机的偏转角,进而控制机械臂的运动。由于机械臂的操作均是在视线之内完成,事实上已构建了视觉反馈回路[5-6]。因此对动作捕捉模块精度要求相对较低,仅需线性输出角度变化即可。动作捕捉模块设计过程中主要考虑提高输出信号的线性度和稳定性。
图1 手臂结构示意图
从解剖学角度分析,人体手臂共包括了三个主要的关节,即肩关节、肘关节和腕关节[7],如图1所示。上臂由肱骨和肌肉构成,前臂主要由桡骨、尺骨及肌肉构成,手掌由腕骨、掌骨和指骨等构成。如果不考虑较小范围的运动,手臂有以下几个自由度。由肱骨和肩胛骨构成的肩关节,可以前后做屈伸运动,也可以向外侧做内收和外展运动,共有2个自由度。肘关节主要由上臂的肱骨和前臂的桡骨和尺骨连接而成,仅能完成屈伸运动。但桡骨和尺骨却能共同完成旋内和旋外运动,有2个自由度。腕关节由尺骨、桡骨和掌骨构成,仅能完成小幅度的屈伸运动。手的运动较为复杂,这里就不详细叙述了。
图2 机械臂结构图
本项目中采用的机械臂结构如图2所示,由7个20 kg级大扭力数字舵机驱动,包括了6个自由度。为了与人体手臂结构相对应,机械臂的基座被固定在支架上,整个臂体下垂布置。其中A1和A2轴模拟人体肩关节部分,由3个舵机构成,各轴可以完成接近180°的旋转,共2个自由度。A3和A5轴模拟了肘关节的运动,同轴安装的舵机可以保证前臂完成大角度的屈伸运动,A5轴上的舵机则可以使得机械爪绕A5轴完成旋转运动,共2个自由度。A4轴模拟了人体的腕关节,同轴的舵机可以带动机械爪绕A4轴完成大角度屈伸动作,共1个自由度。最后机械爪可以完成夹取动作,模拟人手的功能,共1个自由度。
图5 系统原理框图
为了捕捉手臂的运动姿态,在操作者手臂上固定了2类共5个传感器,如图3所示。其中,在肩关节处水平固定了1个重力加速度计S1,用于捕捉肩关节绕y轴的屈伸运动,以及绕x轴的外展和内收运动。在肘关节内侧,固定了1个弯曲度传感器S2,用于捕捉肘关节的屈伸运动。在肘关节外侧尺骨根部固定了1个重力加速度计S3,同时在手背上固定了1个重力加速度计S4,用于捕捉肘关节绕x轴的旋内和旋外运动,以及腕关节绕y轴的屈伸运动。具体固定方式如图4所示。
图3 传感器总体安装示意图
图4 腕关节传感器安装示意图
如图4中坐标系所示,手部可以分别绕x,y,z轴实现一定角度的旋转。对应被控机械臂的运动特点,仅需要捕获手部绕x轴和绕y轴的运动。为了简化设计,采用了两个重力加速度计来完成对这两组运动的捕获。通过获取两个加速度计绕x轴和y轴的差值,便可以计算出手部绕x轴和y轴旋转的角度了。
本项目的结构如图5所示,由动作捕捉模块和机械臂控制模块共同构成。动作捕捉模块由3个重力加速度计和2个弯曲度传感器作为动作捕捉元件。其中,重力加速度计通过SPI通信方式与MSP430F5529单片机进行通信,弯曲度传感器则通过ADC(模数转换器)将信号发送给单片机。两个功能模块间通过UART方式进行通信,动作捕捉模块将采集到的6组角度信息发送给机械臂控制模块。机械臂控制模块中的单片机将角度信息转化为对应的PWM波信号发送给6自由度机械臂,完成对应动作。传感器采集部分采用5 V锂电池供电,经稳压后提供给单片机及相关传感器;机械臂控制部分采用开关电源供电,可以为大扭力数字舵机提供6 V总计10 A的电源输出,确保机械臂在夹取重物情况下也能够正常完成大角度的提升动作。
本项目中重力加速度计选用的是恩智浦公司的MMA7455模块,具有功耗低、尺寸小、内建低通滤波器以及自矫正等特点,且价格便宜。该传感器可采用SPI或I2C串行输出,便于和单片机进行通信。内建的ADC(模数转换器)提供10位的分辨率,直接输出数据稳定可靠,完全能够满足本项目的设计需求。弯曲度传感器采用Spectra Symbol公司的Flex系列传感器。该传感器采用柔性材料作为基材,可以在不超过180°范围内任意弯曲。基材上附着的电阻片的电阻值会随着传感器弯曲角度的增大而增大,在一定角度范围内接近线性[8]。图6是对该弯曲度传感器电阻特性的实际测试结果,可见输出电阻值与弯曲角度基本呈线性关系。
图6 弯曲度传感器特性图
如图5所示,系统共分为两大模块:动作捕获模块和机械臂控制模块,动作捕获模块的主要任务是对角度进行采集、处理并完成数据的通信传输。MMA7455重力加速度计的输出为三轴方向上的加速度值,因此需要单片机通过几何换算才能最终获得绕x轴和y轴的倾角。而弯曲度传感器输出的电阻值经过分压调理最后转化为电压值,再由单片机内建的12位ADC(模数转换器)进行采集并经过换算最终得到弯曲角度。考虑到重力加速计的机械特性以及噪声干扰等,在软件设计过程中需要对采集到的数据进行数字滤波。采用较为简单的中值滤波,可以有效地去除掉由于机械冲击造成的脉冲突变信号,保证了数据的稳定性。
机械臂控制模块程序设计较为简单,主要完成UART数据的接收和对机械臂角度的控制。MSP430F5529单片机内建了16位的定时器,采用其波形输出功能可以同时从7个通道输出周期为20 ms,占空比为2.5%~12.5%的PWM方波信号。
在对系统进行测试之前,需要对动作捕捉模块进行简单调试和校准。在手臂处于自然下垂状态时,将所有传感器调整为零输出。完成校准工作后,针对系统的稳定性和线性度进行了以下测试。考虑到人体手臂运动的范围,针对机械臂6个自由度分别进行了多次测试,记录数据如表1所示。可以看出,除A4和A5轴出现误动作外,其他转轴输出均很稳定。出现角度偏差较为明显的转轴主要集中在采用重力加速度计的A1,A2,A4和A5转轴,分析原因主要在于加速度计在大角度时分辨率降低,从而造成了整体线性度的下降。
表1 实验测试数据
本项目采用穿戴在操作者手臂上的重力加速度计与弯曲度传感器相结合作为动作捕捉元件,直接捕获手臂各部分相对角度值,用于对六自由度机械臂的姿态控制。该设计避免了传统动作捕捉系统通过空间姿态角换算相对角度的繁琐运算,以及数据融合运算带来的延迟问题。通过实验验证表明,该系统能够线性地跟踪操作者手臂姿态的变化,并能提供稳定的角度输出。在后继的研究工作中,重点将放在进一步提高系统的可靠性和准确性,以期达到产品化的目的。
[1] 林海波,梅为林,张毅,等.基于Kinect骨骼信息的机械臂体感交互系统的设计与实现[J].计算机应用与软件,2013,30(2):157-160,176.
[2] 康杨雨轩,郑文,李松林,等.基于LeapMotion的机械臂交互控制研究[J].传感器与微系统,2016,35(6):34-37.
[3] 周海芳,查帅荣,章杰,等.一种基于嵌入式平台的机械臂体感控制系统[J].福州大学学报(自然科学版),2015(4):471-475.
[4] 汪俊,许胜强,程楠,等.基于多传感器的运动姿态测量算法[J].计算机系统应用,2015,24(9):134-139.
[5] 刘洋,方敏.基于LabVIEW的视觉伺服机械臂控制系统[J].微型机与应用,2012,31(10):25-27.
[6] 张雨薇,林雄民.基于仿生机械臂的体态遥控与可视化系统设计[J].电子技术应用,2015,41(12):22-24.
[7] 刘雷.基于惯性运动捕捉的仿人机械臂控制系统算法研究[D].西安:西北大学,2015.
[8] 都悦来,史丽萍,李桂英,等.基于加速度计和弯曲传感器的手指运动姿态监测(英文)[J].纳米技术与精密工程,2017,15(1): 61-66.
Design of robot arm control system based on the inertial motion capture
Li Lizao, Chang Sheng, Huang Kai
(Nanjing College of Information Technology, Nanjing 210023, China)
The traditional robot arm control is complex and professional. A robot arm control method has been designed based on inertial motion capture. The motion capture module composed of gravity accelerometer and flex sensor is fastened to the operator’s arm, and the angle of each part of relative motion are captured. The motion capture module will send each angle value to the robot arm control module through serial communication to steer the robot arm. The control system directly captures arm relative angle, avoiding the problem of space attitude angle conversion. Control effect is verified by the experiment.
motion capture; inertial sensor; flex sensor; robot arm
江苏省大学生创新创业训练计划一般项目(201613112012Y)
TP273
A
10.19358/j.issn.1674- 7720.2017.16.002
李立早,常胜,黄凯.基于惯性动作捕捉的机械臂控制系统设计[J].微型机与应用,2017,36(16):5-7.
2017-03-22)
李立早(1979-),男,副教授,主要研究方向:嵌入式系统。