机器人康复设备人体跟踪优化

用于机器人康复设备的人体跟踪误差最小化

1 引言

成年人行动能力受损可能导致受伤、失去独立性以及生活质量下降[1–4]。因此,美国有许多成年人正在接受康复治疗以改善其行动能力。其中一些人是老年患者,由于年事已高导致肌肉力量和协调能力减弱;一些人近期接受了下肢截肢手术,正在使用假脚或假膝迈出第一步;另一些人则因中风或创伤性脑损伤而影响了运动控制能力。能够自由移动并维持特定身体位置是实现独立生活的基本要求。物理治疗师在有效训练患者恢复行动能力以及准确评估其步态模式改善进展方面面临挑战。机器人技术有望帮助治疗师克服这两项挑战。

步态训练是物理治疗中的一个主要挑战。传统的诊所通常使用固定式平行杠,患者可以在其中部分支撑自身体重的同时练习行走。传统固定长度的固定式平行杠限制了患者只能沿直线行走,并且在需要转身之前限制了人体能够行走的距离。更复杂的步态训练机器人装置则允许人体在跑步机上行走,同时机器人推动并引导其腿部运动。用于纠正步态偏差的运动,但这些设备非常昂贵,其使用远不如传统的平行杆广泛。一些机器人步态系统包括洛科马特[5], 、步行训练器[6], 、LOPES[7], 和 Auto‐Ambulator[8]。这些系统在改善中风患者[9,10]的步态方面已显示出不同程度的有效性。洛科马特系统还具备一定的评估能力,包括评估:痉挛性障碍(肌肉拉伸时的速度依赖性僵硬)[11,12];下肢力量[11,13];以及关节活动范围[14]。尽管这些系统具有前景,但患者在其中行走的方式并不自然,因为他们是在固定速度跑步机上行走,且腿部附有机器人装置。

RPB(图1)旨在使患者能够在比跑步机更真实的条件下安全自由地行走。该系统在自主跟随人体活动者运动的同时,通过手臂提供体重支撑,并持续测量支撑程度。RPB的设计使得驱动车轮的轴线位于患者质心下方,从而使设备能够轻松绕身体旋转,并在不同速度、停止、转弯和方向变化过程中保持相对于人体的位置和姿态。

RPB系统可用于中度步态障碍的患者,这些患者在有一定上臂支撑的情况下能够安全地自行移动。这将包括部分正在康复的中风患者、老年患者、截肢患者以及其他从创伤中恢复的患者。腿部接触系统,例如洛科马特,更适合那些无法借助上臂支撑安全移动的患者。

一组传感器使设备能够跟踪用户相对于RPB的运动。通过使用朝向用户的红外(IR)传感器来跟踪人的位置,如图1所示。用户相对于设备的姿态由安装在设备上的磁力计和陀螺仪(如图1所示)以及安装在用户身上的另一个磁力计和陀螺仪确定。

本文探讨了人体与RPB之间的交互。为了使RPB能够准确跟随人体,必须解决两个挑战:确定人体在设备内的位置和姿态,以及控制设备以最小化期望的RPB位置与姿态和实际位置与姿态之间的差值(图2)。由于传感器固有的非理想特性以及控制机器人装置时存在的延迟,此类误差会不断累积。为了最小化误差,采用了一种使用陀螺仪和磁力计的互补滤波器来跟踪人体朝向。实验用于确定在22.5 deg/s到180 deg/s范围内的角速度下最优的互补滤波器增益。此外,对RPB的响应进行了仿真,并实现了最优的状态空间控制器。

通过实验确定了仿真响应与设备响应之间的误差。论文首先描述了RPB的设计、互补滤波器以及状态空间控制器。随后讨论了用于测试滤波器和控制器的设备及实验流程。最后,论文给出了互补滤波器测试和控制器测试的结果,并对结果进行讨论,最后对滤波器和控制器的性能做出总结。

2 RPB 设计

RPB框架在SolidWorks中设计,并由方形钢制管材、不锈钢和铝制成,如图1所示。该设备配有四个车轮;两个轮毂电机;以及两个万向轮。轮毂电机安装在设备后部,而万向轮位于前端。平行杆的高度可在最小0.6 m到最大1.2 m之间调节,适用于身高在1.67 m至2.00 m之间的人群。RPB在平行杆上配备了力传感器,以便监测并跟踪人体对设备的依赖程度,但目前这些力传感器的信息并不影响RPB的控制系统。未来的控制系统开发将探索将力传感器信息加入控制系统中的有效性,以更精确地为使用手臂支撑杆的患者控制设备。

RPB采用美国国家仪器公司cRIO‐9076控制器。cRIO体积小、重量轻,可独立运行,无需与主机通信。为平行杆所选的cRIO型号包含四个用于不同输入/输出(IO)模块的插槽。所使用的模块包括一个模拟输出模块(NI 9263)、一个模拟输入模块(NI 9205)、一个用于串行外设接口(SPI)设备的数字模块(NI 9401),以及另一个用于集成电路间总线(I2C)设备的数字模块(NI 9402)。

RPB使用两个8英寸直径的有刷24V直流轮毂电机(金马达公司;中国常州)作为后轮。每个车轮均采用高级运动控制公司(加利福尼亚州卡马里奥)的伺服驱动器进行驱动。RPB的紧急停止功能直接连接至伺服驱动器,以便在无需停止控制器的情况下切断车轮电源。

传感器用于测量人体位置与平衡点E(de)之间的误差,以及人体朝向与设备朝向之间的误差(he),如图3所示。该设备使用三种类型的传感器来测量de和he:陀螺仪、磁力计和红外传感器。陀螺仪是应美盛公司(InvenSense,位于加利福尼亚州圣何塞)生产的MPU‐6050模块的一部分,磁力计为飞思卡尔半导体公司(Freescale Semiconductor,位于德克萨斯州奥斯汀)生产的MAG3110模块。采用Arduino微处理器读取陀螺仪和磁力计数据;第一个Arduino固定在人体佩戴的腰带上,第二个则安装在RPB上。红外传感器由夏普公司制造(型号:GP2Y0A02YK0F),安装在RPB前端。两个来自美国数字公司(U.S. Digital)的编码器(型号:E4P‐200‐250‐N‐S‐D‐D‐3)安装在轮毂电机上,用于辅助控制车轮转速和位置。红外传感器确定人体相对于车轮旋转轴的位置,以计算de的值,而互补滤波器则用于融合陀螺仪和磁力计读数,得到人体和RPB的航向,以计算he的值。这些信息的

示意图0

示意图1

示意图2

de和he被传递给控制器,控制器随后输出控制信号以校正该感知到的误差,如前面图2所示。

2.1 互补滤波器

互补滤波器通过利用各个传感器的优势,同时最小化其固有的不良特性,来跟踪角位置的变化。陀螺仪能够准确测量角速度,但由于传感器漂移,无法长时间保持对角位置的追踪。磁力计更适合测量稳定方向,但对角位置的快速变化响应较慢。互补滤波器通过公式(1)实现,其中/为互补滤波器角度估计,kf为互补滤波器增益,/-1为互补滤波器上一次的角度估计,Gm为陀螺仪角速度测量值,dt为循环迭代时间,且Mm为磁力计测量值。

$$ / = kf \times (/_{-1} + Gm \times dt) + (1 - kf) \times Mm $$ (1)

上述方程通过对磁力计数值应用低通滤波器,迫使变化随着时间缓慢累积,从而仅允许长期变化通过。方程(1)对陀螺仪数值应用高通滤波器,允许短期变化通过,同时阻止长期变化。该过程成功消除了与陀螺仪相关的传感器漂移[15]。

2.2 系统模型

RPB设备被建模为线性系统和角系统。这样可以将RPB设备分成两半,如图4所示,并将每个系统简化为单输出系统。图4(a)所示的线性系统用一个车轮建模,设备固定为只能前后平移。输入为施加的轮毂扭矩s,系统的输出为设备的加速度a。图4(b)所示的角系统用一个车轮建模,设备固定为绕其平衡点E旋转。输入为s,输出为系统的角加速度a。由于每个系统要么完全是平移的,要么完全是旋转的,因此两个轮毂电机运动(对于该特定系统)彼此相关。假设车轮不打滑,且车轮没有内部粘滞摩擦。

方程(2)通过沿y方向对所有力求和来建模线性系统,Fy,其中M是RPB的质量,F wheel是车轮对RPB施加的力。扭矩s通过乘以车轮半径r与F wheel相关,如公式(3)所示。

$$ \sum F_y = Ma = F_{wheel} $$ (2)
$$ s = F_{wheel} r $$ (3)

线性RPB加速度a与轮毂扭矩之间的关系通过重新排列公式(3)并代入公式(2)。线性系统模型的最终形式如下所示,见公式(4)。

$$ a = \frac{s}{Mr} $$ (4)

方程(5)通过计算RPB上E点的力矩和ME来建模旋转系统,其中J为RPB转动惯量,a为角加速度,Tdevice为车轮施加在RPB设备上的扭矩。Twheel定义为车轮力Fwheel与中心到车轮长度L的乘积,如公式(6)所示。

$$ \sum M_E = J\alpha = T_{device} $$ (5)
$$ T_{wheel} = F_{wheel}L $$ (6)

方程(7)通过将式(3)和(6)代入式(5)并整理项,展示了RPB的角加速度与轮毂扭矩之间的关系。

$$ \alpha = \frac{Ls}{Jr} $$ (7)

线性模型,公式(4),以及角模型,公式(7),可分别用状态空间形式表示为公式(8)和(9),其中x是状态向量,u是控制向量(对于RPB系统,u是轮毂扭矩),_xlinear是线性加速度,_xangular是角加速度。这些设备运动模型构成了控制器设计与优化的基础。

$$ \dot{x}_{linear} = \begin{bmatrix} 0 & 1 \ 0 & 0 \end{bmatrix} x + \begin{bmatrix} 0 \ \frac{1}{Mr} \end{bmatrix} u $$ (8)

$$ \dot{x}_{angular} = \begin{bmatrix} 0 & 1 \ 0 & 0 \end{bmatrix} x + \begin{bmatrix} 0 \ \frac{L}{Jr} \end{bmatrix} u $$ (9)

2.3 控制器设计

开发并优化了两个控制器:一个用于控制线性运动,另一个用于控制角运动。状态控制器设计如图5所示,并由公式(10)和(11)定义,其中A是状态矩阵,B是输入矩阵,C是输出矩阵,D是前馈矩阵。公式(8)和(9)与公式(10)形式相同,因此该控制器可以方便地在RPB系统上实现。状态反馈控制律采用公式(11)的形式,其中r是参考向量输入,K是控制增益矩阵。

$$ \dot{x} = Ax + Bu $$ (10)
$$ u = r - Kx $$ (11)

采用线性二次调节器(LQR)来优化系统的控制。LQR通过假设系统在平衡时r为零,并最小化二次代价函数,即公式(11)和公式(12)。

$$ \int_0^\infty (x^TQx + u^TRu) dt $$ (12)

Q和R矩阵对每个状态进行约束,其中变量qi和ri分别构成对角矩阵Q和R,如公式(13)和(14)所示。变量qi和ri分别由公式(15)和(16)定义,其中tsi是状态xi的期望调节时间(即响应进入xi平衡值的5%范围内所需的时间),x_imax是|xi|的最大可接受值,uimax是|ui|的最大可接受值,q是用于确定跟踪性能与控制effort之间权衡的正数常量。

$$ Q = \begin{bmatrix} q_1 & 0 & \cdots & 0 \ 0 & q_2 & \cdots & 0 \ \vdots & \vdots & \ddots & \vdots \ 0 & 0 & \cdots & q_n \end{bmatrix} $$ (13)

$$ R = q \begin{bmatrix} r_1 & 0 & \cdots & 0 \ 0 & r_2 & \cdots & 0 \ \vdots & \vdots & \ddots & \vdots \ 0 & 0 & \cdots & r_n \end{bmatrix} $$ (14)

$$ q_i = \frac{1}{(t_{si} x_{imax})^2} $$ (15)

$$ r_i = \frac{1}{(u_{imax})^2} $$ (16)

方程(17)在二次代价函数被最小化后,给出了系统的最优稳定控制。因此,最优增益由公式(18)给出,其中P是代数 Riccati方程的解,如公式(19)所示。

$$ u(t) = -R^{-1} B^T P x $$ (17)
$$ K = -R^{-1} B^T P $$ (18)
$$ 0 = PA + A^T P + Q - PBR^{-1}BP $$ (19)

使用MATLAB(MathWorks, Natick, MA)中自定义编写的程序,通过内置的lqr()函数求解LQR代价函数。控制器的Q矩阵通过以下方式进行约束

表1中的值是通过与物理治疗师协商确定的。最优系统刚度q对于线性值为0.35,对于角值为0.1。这些值在没有显著稳态误差的情况下产生了最小的超调误差。通过LQR代价函数,表Q和R约束在表1中生成了表2中的最优状态反馈增益。

通过在 MATLAB仿真中实现上述控制器来测试该系统。使用各种阶跃输入测试系统仿真,以确保系统能够稳定到平衡状态。图6显示了系统在初始施加线性与角阶跃输入后,两种情况均趋于平衡。所仿真的状态控制器响应迅速,且几乎没有超调。

示意图3 线性系统和 (b) 旋转系统)

示意图4

示意图5

表1 系统约束矩阵
矩阵
Q
R
表2 最优状态反馈增益矩阵
Gain
Kx
Kx_
K/
K/_

3 实验设置和参数

进行了两组实验来研究与系统相关的误差。第一组实验基于互补滤波器的值和传感器的角速度,考察了传感器误差。第二组实验考察了人体与RPB设备之间的总位置和姿态误差。

3.1 互补滤波器角度估计

如图7所示,搭建了一个测试平台,用于评估互补滤波器的精度。在测试平台底部安装了一个旋转编码器,并集成了包含陀螺仪和磁力计的Arduino;测试平台被固定在工作台上以确保装置稳定。该设置能够测量互补滤波器的角误差,即数字编码器角度测量与互补滤波器感知角度之间的差值。

表3 互补滤波器测试参数
实验
1
2
3

表3列出了所进行的三项实验中考察的参数。实验内容如下:实验(1)在全部增益范围内测量/e,实验(2)在部分增益下测量/e,实验(3)在不同角速度范围内测量/e。每次试验前,设置互补滤波器增益k f,并将所有信号调零。每次试验包括将Arduino旋转90度,然后保持静止15秒。对于实验1和实验2,平台以90度/秒的角速度旋转;实验3则改变了该角速度。LABVIEW代码记录了编码器、陀螺仪、磁力计以及互补滤波器估计值的位置数据。编码器位置与互补滤波器估计值之间的差值为/e。

在0–90度旋转过程中,计算了平均误差和该误差的标准差。测试平台旋转90度时典型的滤波器响应如图8所示。如图所示,在旋转过程中互补滤波器角度估计e上升并下降,且感知方向滞后于实际方向。

3.2 控制器

为了测试RPB对人体运动的响应,在天花板上安装了一个罗技C920网络摄像头;摄像头的视图如图9所示。以每秒30帧、分辨率为 640×480录制的视频显示了用户与设备的交互过程。通过将地面测量结果与相机视觉数据进行比较,对摄像头进行了标定,结果表明其位置精度为62 mm,姿态精度为60.5度。

表4 控制器测试参数
控制器
线性

表4列出了为测试线性和角控制器而进行的两次实验所检查的参数。一名无步态障碍的健康人行走于设备内部,以测试线性和角控制器的性能。MATLAB软件内置的图像处理工具用于对录制视频的每一帧进行后期处理。代码使用了四个彩色圆圈(如图9所示)来确定用户和设备的位置与姿态。两个外圈附着在RPB上,而两个内圈附着在人体腰部。在识别出每个圆圈后,代码通过确定人体和RPB的位置与姿态计算出dee和hee。

视频信息用于确定设备与人体之间的总位置和姿态误差,并检验仿真的精度。通过将人体位置和姿态的视频信息输入仿真代码,然后将实际设备响应与相同人体位置和姿态输入下的仿真设备响应进行比较,来考察仿真精度。

示意图6

示意图7

示意图8

4 结果与讨论

4.1 互补滤波器角度估计

实验1的结果如图10所示,表明当滤波器对陀螺仪读数赋予较高权重时,其精度更高:互补滤波器增益在0.75到1之间。实验2(图10)在互补滤波器增益为0.94时,平均误差最小;在0–90度旋转过程中,该增益附近的误差标准差也最小。较低增益时的较大误差是由于磁力计对角度的快速变化响应较慢所致。而对于较高的互补滤波器增益,误差则是由漂移的陀螺仪信号引起的。

当互补滤波器增益为0.97时,该滤波器在所有测试的角速度下表现最佳,如图11所示。该结果使滤波器更倾向于依赖陀螺仪,从而使RPB能够快速响应人体朝向的变化,同时磁力计可防止信号偏离真实角度。尽管0.97的滤波器值存在一定的误差,但在测试的角速度范围内,平均误差仅为0.62度,且从未超过真实值5度。姿态精度受限于所使用的传感器 MPU‐6050以及国家仪器cRIO‐9076系统的处理速度。其他姿态跟踪系统,例如Ascension Technology Corporation提供的磁性跟踪设备,可实现0.5度的姿态精度,但成本高达数千美元,而两个MPU‐6050传感器的成本不到十美元。对于RPB而言,使用MPU‐6050获得的互补滤波器精度是足够的,因为在使用设备时,人体不太可能察觉到几度的误差。

4.2 控制器

设备和仿真以高精度跟踪了人体输入。图12显示了人体位置、设备位置以及仿真设备响应,对应于人体向前行走1.07米然后以平均速度0.20米/秒停止的情况。图13显示了三种位置误差:第一,设备误差是人体位置与设备位置之间的误差;第二,仿真误差是人体位置与设备仿真响应之间的误差;最后,预测误差是设备响应与仿真响应之间的误差。

如图12所示,设备与仿真对人类输入的跟踪效果良好。RPB设备跟随人体的平均误差为14.1厘米,而仿真预测的平均误差为10.5厘米。仿真设备响应与实际设备非常接近,两者测量之间的平均误差为3.6厘米,最大误差为6.6厘米。人体位置、设备位置和仿真位置之间的误差来源于传感器中的未建模噪声以及控制器中的延迟。

图14显示了设备及其在人体以约25度/秒的角速度旋转一整圈360度时的仿真设备响应。图15显示了与该设备和仿真相关的三种误差:设备误差、仿真误差以及预测误差。

该设备在整圈转动过程中平均滞后人体14.3度,最大偏差为32.6度。转弯结束后,设备存在3.9度的稳态误差。仿真预测的响应更快、更紧凑,平均误差为5.6度,最大误差为27.2度。设备在仿真与实际响应之间的差异导致平均预测误差为8.7度。这些不一致的原因在于仿真未建模互补滤波器动态特性以及陀螺仪和磁力计相关的误差。

控制器设计受到限制,因为它未考虑未建模的扰动,例如患者对导轨支撑施加的附加重量。为了引入动态扰动信息,模型中的增益可设为动态变化,以响应扰动输入。这将使控制器在更广泛的情况下具备更强的鲁棒性。

示意图9

示意图10

示意图11

示意图12

示意图13

示意图14

5 结论

RPB被设计用于通过创建一种无需人体推动的设备来改善物理治疗,提供恒定可靠的支撑系统,并使人能够在真实条件下安全行走。在将互补滤波器应用于RPB以跟踪人体与设备姿态之前,对其进行了测试和优化。该滤波器具有0.97的最优增益,在角速度范围为22.5 deg/s至180 deg/s时,其姿态跟踪的平均误差为0.62度。采用LQR实现了一个最优状态空间控制器,以最小化人体与设备之间的误差。RPB使用 MATLAB软件进行了仿真,并在实际设备上进行了测试。仿真结果显示,当人行走时,设备的平均位置误差为10.5厘米,而实际设备的位置误差为14.1厘米。当人在RPB内转弯时,仿真预测人体与设备之间的平均误差为5.6度;实际设备在完整旋转过程中的平均误差为14.3度,稳态误差为3.9度。仿真与实际设备之间的差异主要源于仿真未建模互补滤波器动态特性、假设传感器测量无噪声且系统模型较为简单,忽略了电机动力学因素。当前达到的精度水平使得该设备可用于功能较好的患者,这些患者能够利用手臂在其身体重量无支撑的情况下,在由设备与人体位置不准确引起的偏移处保持稳定。该设备可用于研究针对此类功能较好患者的更高级真实步态训练和康复技术。

STM32电机库无感代码注释无传感器版本龙贝格观测三电阻双AD采样前馈控制弱磁控制斜坡启动内容概要:本文档为一份关于STM32电机控制的无传感器版本代码注释资源,聚焦于龙贝格观测器在永磁同步电机(PMSM)无感控制中的应用。内容涵盖三电阻双通道AD采样技术、前馈控制、弱磁控制及斜坡启动等关键控制策略的实现方法,旨在通过详细的代码解析帮助开发者深入理解基于STM32平台的高性能电机控制算法设计与工程实现。文档适用于从事电机控制开发的技术人员,重点解析了无位置传感器控制下的转子初始定位、速度估算与系统稳定性优化等问题。; 适合人群:具备一定嵌入式开发基础,熟悉STM32平台及电机控制原理的工程师或研究人员,尤其适合从事无感FOC开发的中高级技术人员。; 使用场景及目标:①掌握龙贝格观测器在PMSM无感控制中的建模与实现;②理解三电阻采样与双AD同步采集的硬件匹配与软件处理机制;③实现前馈补偿提升动态响应、弱磁扩速控制策略以及平稳斜坡启动过程;④为实际项目中调试和优化无感FOC系统提供代码参考和技术支持; 阅读建议:建议结合STM32电机控制硬件平台进行代码对照阅读与实验验证,重点关注观测器设计、电流采样校准、PI参数整定及各控制模块之间的协同逻辑,建议配合示波器进行信号观测以加深对控制时序与性能表现的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值