56151| 17
|
[项目] NUKA-LEX外骨骼机器人制作(膝关节下肢外骨骼) |
[i]NUKA-LEX外骨骼穿戴图 引子大三完成了机器人大赛中的四轮全向移动机器人后,我开始思考新的可能。已经学过机械类专业课,有了机器人竞赛相关经验后的我,是否可以开始新的“技术冒险”了? 因此,想到了当初骗我进机械专业的“钢铁侠”“COD11”,自然而然的就准备向着外骨骼机器人方向进发了。 作为经历过大大小小科创比赛的我,自然知道外骨骼机器人的研发难度。因此从一开始,我就决定只做单关节外骨骼了。在项目难度、资金、人手等方面,单关节外骨骼是目前本科生团队刚好能达到的一个技术题目。 接下来就是选择上肢还是下肢、选择做哪个关节的问题。自然,很多人会选择做肘关节外骨骼,因为这是一个兼具视觉感受与技术直觉的一个方向。 但是我当时认为,任何可穿戴设备如果没有支撑的基础,那它就是一个负重,过大的负重没有实用意义,而优化设备的重量则会让初期研究难度直线上升。因此我觉得首先研究基础最为重要,即应当先研究下肢外骨骼。 然后,在踝关节、膝关节、髋关节三个关节中,我选择了膝关节。这里的选择则更偏向了视觉感受了,因为膝关节的运动幅度大,到时候成果展示得起来。(后来才发现选择膝关节,在技术上其实是相对尴尬的) 最后,招募了一群小伙伴,一起来搞这个,通过申请大学生创新训练项目,获得资金保障。然后,就开始这个膝关节外骨骼的研究了。首先为这个膝关节外骨骼取个名字——NUAA Knee-Actuated Lower Extremity Exoskeleton, NUKA-LEX 技术方案1.和机械设计课程设计的步骤一样,第一步总是先搞定动力源的问题。从技术直觉上来看,选择液压或气动系统作为外骨骼动力选择是不二选择。但是机器人所用的液压或气动系统中,并不能用简单的开关阀,得用伺服阀或者高速开关阀以达到作动器的闭环控制。 其次,市面上普遍缺乏用于机器人的液压系统,即使有,价格也不是一个本科项目能够买得起的。而市面上价格便宜的气动系统中也只有负责换向的开关阀,完全不能满足机器人的需求。 所以,只能用电机了。由于我不是电学出身的,自行研发电机驱动器代价过高,因此选择了伺服电机系统,这样就不用自己写电机闭环控制系统了。(然而并不是)
自然的,为了实现不受电缆束缚的可移动式外骨骼,就只能用电池供电了。 2.然后是传动系统设计经过资料收集,知道了主要的外骨骼都用的什么传动方式。大部分是电机+谐波减速器直连关节的形式。 谐波减速器我们是买不起的,只能放弃这个技术路线。 除了谐波减速器,就只剩行星减速器还买得起。但是伺服电机+行星减速器带来的弊端是——它太长了。 为了避免步入2004年中科院合肥智能机械研究所当时的后尘。(没有要黑的意思,合肥智能机械研究所反而是国内最早开始外骨骼相关研究的院所之一)
解决这种电机过长的方法,一是按照哈工大2016年的HIT-LEX那样,使用锥齿结构,电机倒放在腿杆上。
二是按照东南大学2014年的下肢液压套索驱动外骨骼样机,将驱动源放置在其他地方,通过套索远距离传动。
由于指导老师也是研究套索驱动的,老师技术指导方面比较方便,因此我选用了电机置于后腰,然后用双套索传动的方案。这种传动方案的好处是,电机可以放置在任何位置,比如容易安放的背部。其次是外骨骼腿杆处就没有了笨重的电机和减速器,腿杆惯量小了,控制上会方便些。 但是缺点就是,需要搞定套索的预紧机构、套索传力的非线性等问题。(套索传力的非线性使得后期差点放弃了力控的想法)
这里插一个技术原理:套索传动为何需要预紧机构 首先,套索是与自行车刹车线一样的东西,是多股钢丝拧成的钢丝绳。套管外层是橡胶管,内部有钢圈,如下图
当双套索传动系统搭起来,套索套管的总长度就确定了。在还没有预紧的时候,两根套索是不紧的。当改变预紧机构位置,使套管两端顶板间距减小,套管就被“挤弯了”,曲率变大。可以想到,套管里的套索也被套管弯曲的地方“顶弯了”,而驱动轮与从动轮的中心距不变,导致套索实际张成的曲线长度比原长要大,造成了套索内部的张紧力。 如果没有预紧机构,由于下肢关节与驱动轮在空间中的相对位置会时刻发生变化,可能下肢运动到某一位置时某根套索就完全松掉了,如果此时的控制算法是让这根套索拉紧并传递动力时,驱动力得先经过一个空载-加载过程,这带来了严重的非线性。 因此,需要将套索预紧,并使其在下肢运动期间都保持张紧状态,以减小非线性。 3.如何确定的控制方案在搜集资料中,我已经知道了BLEEX的灵敏度放大法,但是仍不清楚具体怎么实现。HAL的sEMG肌电信号控制在我当时看来不太喜欢,原因是搞sEMG的信号处理算法能让我单独开个项目,其次是当时得知了实际的sEMG信号也最多做到阈值判断,觉得不具备实用性。 因此投入人机交互力控制的怀抱。 一个朴素的核心问题是,究竟是外骨骼带着人动,还是人带着外骨骼动? 这个朴素的问题着实困扰了我不久,因为我对于外骨骼最初的印象是——增强人体的力量。那么不管是外骨骼带着人动,还是人带着外骨骼动,都体现不了“增强”的含义,前者相当于人体放弃了运动,仿佛失去了意志,后者相当于外骨骼给人带来了阻力,那怎么能算“增强”呢? 后来我与研究生副导师刘旭亮交流中理清了这个问题。 答案就是,一定要联系到应用场景。
由于我这个外骨骼根本不会达到实际用途,只作为一个技术验证样机,因此我就选择了看起来更酷的军事用途,所以总体的控制策略就是人带动外骨骼了。 那么,为了使人带动外骨骼显得不那么费力,另一个朴素的控制策略就出现了——采集人与外骨骼之间的交互力,使这个力保持很小的一个值,那么外骨骼就相当于时刻跟紧人体运动了,就达到了人带动外骨骼的结果。 这个控制方案在学术上叫“直接力控制”,就是直接用力去控制的意思。力作为控制量直接参与到闭环中去,使用PID或其他控制器,让交互力稳定在很小的值,就可以达到目标了。 同时,使用的伺服系统具有位置环、速度环、力矩环三环控制功能,理想情况下,使用伺服电机力矩环可以减小电机端扭矩误差。这么一看,用直接力控制岂不是稳稳的? 但是,在文献查阅中发现,套索传动中力传递特性具有非线性的特点,它包括力传递迟滞、死区等特性[1]。因此,双套索传动系统的输入端的电机力矩与膝关节实际收到的力矩由很大的动态误差!正是因为这个特性,正如前文所说差点放弃了力控制。 那又是什么拯救了NUKA-LEX呢? 文献中的实验也揭示了,套索传动中位移传递线性度是非常好的,这为NUKA-LEX的控制方案带来了转机。 既然不能直接用力控制,那就用其他控制量去控制,比如位置控制。 伺服系统的位置控制只能保证电机端的位置精度,而我们的控制对象——膝关节与电机端相差一个双套索系统。虽然双套索系统的位移传递线性度很好,但是只用伺服系统的位置控制的话,仍然是半闭环控制。因此,最后还是不得不用伺服系统的速度环手写了膝关节的PID位置控制。 有了PID位置控制,接下来就是怎么去用了。 又一个朴素的想法出现了——设定阈值,当交互力大于这个阈值时就驱动外骨骼使让这个交互力减小的方向运动。 这个运动如果是给定一个固定速度或者固定角位移的话,每当交互力大于阈值,关节就运动固定量,然后运动到使交互力小于阈值时马上停止。很容易想到,这种给定固定量运动的方式势必会导致顿挫感,因为其运动不是连续的。 为了让运动连续起来,你可能想到了让运动与交互力联系起来。没错,就是需要建立交互力与运动的动力学关系,也是接下来要讲到的阻抗模型。 -- 阻抗模型 物体的动力学关系有牛顿第二定律、黏性定律,还有胡克定律。其中,牛二定理描述力与加速度的关系,通过惯性系数 ${m}$表征;黏性定律描述力与速度的关系,通过阻尼系数 ${b}$表征;胡克定律描述力与位移的关系,通过刚度系数 ${k}$表征,三者合起来的一个经典模型就是阻抗模型。阻抗模型中,物体与环境施与的力(交互力)的关系为下式:
详细的阻抗控制方法请见这篇文章: 在阻抗控制方法中,使用阻抗控制主要是为了让机器人在完成期望轨迹的同时,对外界的干扰保持一定的柔性。这在协作机器人、装配机器人、打磨机器人上很有用,协作机器人如果在运动过程中碰到人,可以表现出低惯量低刚度的特性,从而避让;装配机器人在轴孔的安装过程中可以允许两者偏差;打磨机器人为了控制磨削厚度,往往需要根据目标表面的平整与否调整打磨法向力,因此需要使关节具有力控柔性。 而外骨骼机器人的柔顺控制,往往是需要与人进行柔顺的交互,因此通常采用导纳控制。导纳控制解决了如何获取外骨骼机器人的期望轨迹问题,通过阻抗模型将交互力转换成了期望轨迹,然后采用一个运动量跟踪器去实现位置控制。 传统的工业机器人通常拥有良好的位置控制精度,因此导纳控制适合“改装”这些机器人。因此我们看到很多能够拖动示教的工业机器人都只是末端加装了一个6维力传感器,这个传感器就是用于导纳控制器的交互力输入。
阻抗控制和导纳控制两者比较起来,发现导纳控制很符合我们的要求——力输入,运动量输出。 因此,同样的也给NUKA-LEX外骨骼小腿杆处安装人机交互力传感器,只不过因为只需要控制单自由度,因此该人机交互力传感器只测量一维力,如下图:
那么,NUKA-LEX外骨骼中的导纳控制器应该包含下面这个阻抗动力学模型:
在之前那篇文章中,提到了当人机交互力矩${\tau_h}$为已知输入量时,关于式(3)输出运动量${\ddot\theta_d、\dot\theta_d、\theta_d}$的迭代解法。就是将其中两个运动量用上一计算周期${n-1}$获得的值,代入到本周期${n}$,并用式(3)求本周期剩下那个运动量的值,然后通过微分或积分的方法计算本周期其余的那两个运动量。 自然,NUKA-LEX外骨骼膝关节是要安装编码器来直接计算关节角度的,也就是说${\theta_{dn-1}}$可以直接获得,人机交互力矩${\tau_{hn-1}}$也可以直接获得。因此${\ddot\theta_{dn-1}}$可以用角度量微分求得: 将式(4)化成只用直接获得量表达的简单形式:
整个控制模型如下图: 但是,当时在写NUKA-LEX控制代码时,导纳控制器计算期望角度的迭代公式却写成了这样: 是想通过上一周期的交互力矩${\tau_{hn-1}}$ 乘以一个简单的系数${K_{ad}}$,然后将其赋予到本周期的期望角度量${\theta_{dn}}$上,但系统无意外地表现出了弹簧一样的回弹特性,并不能人机跟随。因此后面加了一项上一个周期的角度量${\theta_{dn-1}}$ ,以求交互力为0时能够保持在原位置。然后竟然实现了拖动控制效果。控制效果如下视频所示: 代码里是通过调节${K_{ad}}$来获得合适的跟随性能,所以${K_{ad}}$只是个参数。因此,式(9)可以写为:
因此,先不考虑有死区力矩时,即${\tau_d=0}$时,膝关节在某时刻获得的期望角度${\theta_{dn}}$与交互力在这之前积累的冲量成正比,其比例系数为${K_{ad}}$。 难怪当我瞬间出大力去拖动护具后,后面想拉回来拉都拉不住,原来是交互力在那一瞬间的冲量过大,慢慢拉回来得先消耗掉之前的冲量,才能生成反方向的轨迹。 而死区力矩${\tau_d}$的存在,仅仅叠加了一个负斜率的比例函数,稍微降低了冲量与期望角度曲线的斜率。
因此,NUKA-LEX外骨骼里的控制算法其实不算是正确的导纳控制算法。这也是当时编写控制算法时犯的一个错误吧。 不过后面就没机会去改了,所以也无从验证上面推导的导纳控制算法是否有效,算是一大遗憾。 4.具体的实现机械结构设计虽然项目是单关节外骨骼,但是本着“要来就来全套”的想法,我还是从下肢3个关节多自由度、刚性腿杆调节、独立背部控制系统、足底穿戴结构、穿戴式绑缚结构选型等多方面进行了综合设计。
当然,机械结构经过了多次的迭代改进,其中重要的两次迭代分别是大小腿绑缚护具和足底的改进。 在初期设计中,并没有考虑到大小腿绑缚的稳定性。因此觉得,放两个魔术贴绑带绑起来应该就可以了吧。事实结果告诉我们,魔术贴绑带根本绑不稳。(后面直接放弃这个方案,绑带长度也就懒得去调整了)
后面在淘宝买了一款用于腿部恢复代替石膏的支具。去掉其支撑结构,剩下的护具才是我们想要的。腿部护具上有固定间距的安装孔,简直是为外骨骼绑缚结构量身打造。
一代足底的只有一层,并没有考虑到测量足底压力的问题,因此改进,使用了金属脚踏结构来传递上面的压力。然后在足底的4个关键点放置了薄膜压力传感器。
事实上,在后期的测试中发现,这种单点式的薄膜压力传感器极易损坏。原因是,人体穿戴外骨骼后可能不小心一个踉跄,足底局部压力就超传感器量程了。因为的胶粘和扎带连接,因此传感器更换不方便。这是这双足底的两大重要的缺陷。 你可能会问我为什么不用淘宝这种集成好了的全脚掌分布式薄膜测压传感器。 原因是,这种集成式的传感器适合嵌入鞋垫里,与人体的足部充分接触,因为人体的足底形状变化大,且有充分的弹性,能够与这种传感器充分接触。 而我们希望的外骨骼是能让穿戴者穿自己的鞋穿上去,从而完成快穿快卸。因此与外骨骼足底接触的是穿戴者的鞋底,这鞋底一般相对较硬,因此再用这种鞋垫式的就不容易采集得到。 当然也不是说不能用这种鞋垫,而是要经过恰当的外骨骼足底设计,使其与穿戴者的鞋底尽可能贴合。事实上,我们采用点位的足底,某些足中间的点在部分步态上也经常接收不到信号。 针对薄膜压力传感器容易坏的问题,采用扁形的金属的压力传感器会好一些,而且同样价位的金属的压力传感器的线性性能要比薄膜压力传感器好很多。
交互力传感器的设计由于众所周知的原因(没钱),我们很自然的放弃了购买高精度多维力传感器来检测交互力,因为一个较好精度的小型二维力传感器的价格就已经赶上电机的价格了。因此我们打算自己做交互力传感器。 传感器要求的性能降低到最低要求,仅能测量垂直于腿杆的拉压力就行了。用什么做呢,当然是便宜的薄膜压力传感器。 传感器结构一晚上就想好了。既然薄膜压力传感器只能测压力,那两边整两个,弄个单摆一样的结构去分别压左右两个薄膜压力传感器,两个薄膜压力传感器检测到的压力一减,垂直于腿杆的力不就来了?
有意思的是,在想出这个交互力检测机构后,我在后面的阅读文献中发现2013年里有一篇硕士论文里也用到了这种用薄膜压力传感器设计拉压力传感器的思路 ,不过他是用的平行移动的机构,而且空隙留的更大,真的用了弹簧。 这种用弹簧或者橡胶垫+薄膜压力传感器的方法在后来的实验中缺陷明显。 首先,不管是摆杆式结构,还是平行移动式结构,必然要使用弹性体来填充与薄膜压力传感器间的空隙,并产生预压力。否则用硬的物体如硬垫片来填充的话,当一侧受压力后,另一侧的薄膜压力传感器与硬物脱离,其上检测的压力也会因为脱离接触而瞬间降为0,这是一种非线性因素。为了维持两侧压力线性变化,必然要提供预压力,使其一侧受压时另一侧仍能对薄膜产生压力。而提供预压力则必然要引入弹性体,否则无法完成装配。 那么,两侧缝隙被弹性体充满后,势必会带来位置偏差,即“摆件”与“框架”间必然存在移动。这个移动十分要命,它会大大地降低系统的控制带宽,从而带来控制上的不稳定。 即使是使用低弹性(高刚度)的橡胶片,保证了弹性变形不会太多,但这使得“摆件”和“框架”间的间隙成了一个关键的尺寸。如果间隙过大,橡胶片就不一定能“充满”缝隙,摆件和框架有很大的活动空间;如果间隙过小,在装配时又难以塞入。实际使用中,0.1mm的间隙误差就能使传感器从不能活动到能活动很大范围。 电路设计整个外骨骼的电气结构如下图所示: 其中,交互力采集系统和足底压力采集系统几乎是一样的,只是所用的薄膜压力传感器不一样,用的位置也不一样罢了。 力采集电路就是一个4通道的A/D采集电路,只不过因为薄膜压力传感器的电信号与所受压力是反比关系,因此用了一个二级运放电路来反向和滤波。 背部的主控电路其实就是一个STM32的扩展板。主要用来安装降压电路和各类传感器接口转换。因为没有什么集成,都是用的各种现成的模块,所以就不放图了(逃 5.整体效果评价想看视频的可以去B站视频: 首先说一下这个外骨骼的一些亮点。
然后,是这个外骨骼多如牛毛的缺陷。 - 套索传动系统带来的控制上非线性问题。 下图是我们后期做膝关节位置控制实验的图像。当参考信号频率${f=0.1\mathrm{Hz}}$时,可以明显观察到实际角度曲线波峰被“削平”了。这是套索传动系统特有的“平顶现象”,它是由套索的迟滞、死区、摩擦等多重因素决定的 。因此,在使用套索传动方案时,要注意补偿问题。 - 交互力传感器精度不高 这个在交互力传感器设计那一部分已经说过了。总的来说,就是使用薄膜压力传感器制作高精度交互力传感器的方案是很难的,不如用应变片做。但经过优化修改后,不妨为一个低成本传感器方案。 - 电机性能不足 由于采用的普通的工业级伺服电机,其各项性能都不是专门为机器人设计,因此在扭矩性能上比较吃亏。电机经过减速器(50减速比)和套索驱-从动轮(驱动轮直径60mm,从动轮110mm)的力矩放大后,勉强满足膝关节的力矩需求58.4Nm,但是转速却只有32.7rpm,并不能满足外骨骼机器人膝关节的运动速度需求。可见,若要找到满足力矩需求和转速需求的电机,其性能至少要提升一倍。 - 人机穿戴绑缚性不佳 即使使用了具备人体工程学的康复医疗护具,但在运动中大小腿护具与人体仍有阻碍,这是因为人体下肢与外骨骼腿杆并不完全重合,外骨骼关节运动中心也不过人体关节中心,因此在站立姿态下可能很好的贴合,但是一运动起来就不协调了。 结语由于以上各种缺陷,最终导致了外骨骼控制上的失败——它没能为人提供助力,反而提供较大的阻力,甚至很难跟随人体运动。 但是,作为原型样机,它很好的完成了它的任务——验证技术原理。 至少在成功实现了拖动控制,完整的机械样机制作流程也给我们带来了如上所述的种种经验教训,作为本科的学习大总结,这个NUKA-LEX外骨骼机器人项目可以说是圆满地完成了它的任务。 最后,感谢指导老师在此期间的倾情帮助,感谢项目组成员付出过的努力,感谢各位对此外骨骼有过帮助的同学。 参考文献[1] 奚如如, 王兴松, 鲁婧等. 套索传动特性建模分析[J]. 机械工程学报, 2012, 48(17): 38–44. [2]]陈辉. 下肢助力外骨骼生物-机械系统仿真及驱动单元设计[D]. 哈尔滨工业大学, 2013. [3]]WU Q, WANG X, CHEN L等. Transmission model and compensation control of double-tendon-sheath actuation system[J]. IEEE Transactions on Industrial Electronics, 2015, 62(3): 1599–1609. DOI:10.1109/TIE.2014.2360062. 以上内容未经许可不得转载 |
6666666666666666666666666666666666666666666666666666 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed