基于MYO手环的移动机器人交互控制系统
2021-05-29孔海怡杨辰光
占 宏,孔海怡,杨辰光
(华南理工大学自动化科学与工程学院,广州 510641)
0 引言
近年来,移动机器人技术得到快速发展并应用于多个领域,如生活服务、医疗康复、物流运送等,给人们的生活带来了便利,大大提高了工作效率[1-3]。对于一些条件恶劣、环境复杂或者危险的场所,为了保证操作者的安全,通常需要采用远程控制方式来操作移动机器人独立完成相关的作业,如军事勘探、地质科考、地震救援等[4-5]。与传统键盘鼠标等接触式远程控制模式相比,基于人体动作识别的体感交互控制模式更加自然、直观,更容易被用户所接受[6-7]。体感交互控制模式有着重要的研究意义和广阔的应用前景。
将体感识别与移动机器人控制相结合,开发了一套人机交互控制系统。利用两个MYO 手环采集人体手臂表面肌电信号分别进行手势识别和肌电强度估计,并将获取的信息与移动机器人运动方向和速度控制命令相结合,通过WiFi 通信发送控制命令,实现移动机器人的远程交互控制。人机交互控制系统对于复杂环境下的机器人远程作业控制有着重要的意义。
1 系统整体框架
系统整体框架如图1 所示,主要包括操作者、2 个MYO手环、移动机器人、计算机4 部分。MYO 手环内置有8 个肌电信号电极,采样频率为200 Hz,其能够捕捉到操作者手臂肌肉运动时产生的表面肌电信号变化并通过自身蓝牙模块发送给计算机[8]。移动机器人底部为4 个麦克纳姆轮,其旋转轴均与机器人本体成45°且对角位置轮的轴方向相同,每个轮均由功率为90 W的电动机驱动,这一结构使得移动机器人可以按照操作者的命令向各个方向运动。此外,移动机器人前端装有激光雷达,其扫描距离为8 m、角度分辨率为0.18°可以扫描并检测环境中的障碍物。系统控制算法基于ROS平台,采用C语言进行开发。
图1 系统整体框图
系统有两种控制模式:
(1)柔顺运动模式。移动机器人完全由操作者控制,此过程中操作者左右手手臂分别佩戴一个MYO手环,左右两个手环所采集的表面肌电信号分别用于获取肌电强度信息和手势识别,其中肌电强度信息可以转换成移动机器人的线速度命令,手势识别结果则作为移动机器人的运动方向命令。
(2)避障模式。移动机器人在运动过程中不断通过雷达检测最近的障碍物与自身的距离,如果该距离小于安全距离,系统就会切换至自主避障模式,此时移动机器人就会在避障算法的控制下沿着障碍物的轮廓运动,运动线速度仍受到操作者的控制并随其肌电强度幅值大小而变化。当移动机器人安全绕过障碍物并回到之前的运动路线时,系统将再次启动柔顺运动模式继续运动。
2 主要功能模块
系统主要包括手势-命令映射的建立、肌电强度幅值提取与线速度计算、自主避障算法、模型预测控制器4 个模块。
2.1 建立手势-命令映射
MYO 手环将通过采集右手手臂在不同手势动作下肌肉运动所产生的表面肌电信号传送到计算机进行分析、处理、识别操作者的手势,并映射到相应的手势命令[9-10]。如图2 所示,手势库中预定义了手腕左摆、手腕右摆、手指伸展、手掌握拳和手指双击5 种手势,其分别对应移动机器人向左、向右、后退、前进和停止5 种控制命令。
图2 系统手势-命令映射
2.2 肌电强度幅值提取与线速度计算
操作者左手MYO手环所采集的表面肌电信号用来提取强度幅值并转化为相应的线速度。原始信号中通常存在一定的干扰,需要对采集的电信号进行处理以得到质量较高的信号。假设MYO 手环在当前采样k时刻所采集的第i 路(i=1,2,…,8)通道输出的原始信号为Ei(k),计算8 个通道信号的幅值之和:
采用窗口大小为w的移动平均滤波法得到k时刻表面肌包络电信号:
由文献[11]中可知,如果定义e(*)为指数函数,μ为一非线性形状因子,那么采样k时刻的肌电强度幅值:
如图3 所示为实验过程中通过上述方法采集的表面肌电原始信号提取肌电强度幅值的过程,其中w=400,μ=-0.01。
图3 肌电强度幅值提取
根据操作者的习惯,将肌电强度幅值的大小设置为与机器人的线速度呈线性关系。如果用ηmax、ηmin分别表示肌电强度的最大和最小幅值,vmax、vmin分别表示移动机器人最大和最小线速度,那么移动机器人的线速度v(k)和操作者肌电强度幅值ηemg(k)之间的关系可以表示为:
2.3 自主避障算法
实现自主避障可以保证移动机器人、操作者和环境的安全[12]。在柔顺运动模式下,移动机器人将一直沿着操作者控制命令方向运动直到接收到新的控制命令或者被障碍物阻挡。在此情况下,采用一种改进的Bug算法即NT-Bug 算法以实现在未知环境下通过绕着障碍物的轮廓运动来避障并回到之前控制命令的运动路线上[13]。
用P代表算法的不同阶段,P=0 表示柔顺运动模式,P=1 表示避障模式。用Or表示移动机器人的中心;B表示最近的障碍物单元;dobs表示Or与B 的距离即机器人与障碍物的最近距离;dsafe为最小安全距离。根据人工势场法将障碍物看作虚拟排斥势场,B 施加于移动机器人力的方向为θobs。机器人控制命令运动方向θcom,运动路线Lcom为环绕障碍物轮廓运动的方向,θesc=或-表示逆时针或顺时针方向运动。d表示Or到Lcom的距离,dσ为距离阈值。在操作者的控制命令下,移动机器人开始运动时处于柔顺运动模式即P=0,当dobs<dsafe时,运动模式切换到避障模式即P=1,此时机器人的运动方向θ=θobs+θesc;当0 <|d|<dσ时表明移动机器人已经绕过障碍物并到达Lcom,此时运动模式将切换至柔顺运动模式即P=0。
2.4 模型预测控制器(Model Predictive Controller,MPC)
如图4 所示为移动机器人运动时的坐标系统示意图,其中XrOrYr和XwOwYw分别为机器人坐标系和全局坐标系。
图4 移动机器人坐标系统示意图
定义移动机器人在XwOwYw中的当前位置为X=[x,y,θ]T;ω为角速度;vx、vy分别为Xr和Yr轴的速度分量。那么移动机器人的运动学模型可以表示为:
之间的变换矩阵。同理,可以得到参考位置Xr=[xr,yr,θr]T的运动学模型。定义移动机器人当前位置和参考位置的状态差为
并在系统平衡点进行线性化可以得到动态误差模型:
为了实现移动机器人的最优跟踪控制,下面设计基于上述动态误差模型的模型预测控制器[13-15]。定义采样周期为ts,将式(6)进行离散化处理得:
定义如下代价函数:
式中:Np为预测时域Nc为控制时域且有0≤Np≤Nc,Nc≥1;R、Q均为对称正定矩阵。最优控制输入可以通过在相应约束条件下最小化代价函数得到,即:
为方便求解,最终将最优化控制问题转化为如下多约束二次规划问题来求解:
3 实验验证
实验选取3 m×5 m区域并在其中设置了L 形障碍物,实际实验环境如图5 所示。
图5 设定的实验环境
实验前预先构建了该区域的二维网格地图,实验过程中移动机器人运动的实时位置将被记录在地图上以更好地展示实验效果。实验NT-Bug 避障算法中设置:ηmax=80;ηmin=8;vmax=0.15 m/s;vmin=0.05 m/s;dsafe=0.55 m;θesc=。MPC 中参数设置为:Umax=-Umin=ΔUmax=-ΔUmin=[10,10,10,10,10,10]T,Xmax=-Xmin=[10,10,10,10,10,10,10,10,10]T。
实验开始时,操作者左右手臂分别佩戴好一个MYO手环,由左右手共同控制移动机器人向前方运动,同时机器人通过雷达不断扫描最近障碍物与自身的距离,此时系统处于柔顺运动模式。当最小距离小于安全距离0.55 m时,机器人系统切换至避障模式并沿着L 形障碍物的轮廓运动。当机器人与之前运动路线距离小于0.02 m时,表明其回到控制命令运动路线上,系统又切换至柔顺运动模式继续运动。
上述实验所得结果如图6 所示,图6(a)中粉色标记为实验过程中移动机器人运动的实时位置记录,可见机器人能够按照操作者的命令前进,同时也自主安全地避开了L 形障碍物并回到之前的运动路线上。图6(b)为移动机器人位置跟踪误差曲线,当系统达到稳定状态后误差小于0.01 m,表明机器人实现了对参考轨迹的跟踪。上述实验结果验证了所设计移动机器人交互控制系统的有效性。
图6 移动机器人实时实验结果
4 结语
本文设计了一种基于表面肌电信号的移动机器人交互控制系统。利用操作者左右手手臂两个MYO 手环采集相应的表面肌电信号,其中右手信号进行手势识别作为移动机器人的方向控制命令,左手信号用于提取肌电强度幅值并转换成对应的速度控制命令。在柔顺运动模式下,移动机器人按照操作者的控制命令运动,当遇到障碍物时,系统切换至避障模式并采用NT-Bug避障算法实现自主障碍,MPC 控制器实现了对参考轨迹的跟踪回到了之前的运动路线上。实验验证了该系统远程交互控制的有效性,这对于移动机器人在未知复杂环境下作业如科考、救援等有着重要应用价值。