硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1408|回复: 11
收起左侧

纯髋关节助力外骨骼机器人步态识别相关论文学习

[复制链接]

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
发表于 2026-3-13 13:42:33 | 显示全部楼层 |阅读模式

最近一个星期闲着无事(项目嵌入式单片机部分做完了)
由于笔者新加入的这家公司规模很小是个草台班子,导致没有完整的项目管理计划。

硬件和APP部分的资源被一个紧急的项目所占用(该项目五月份到底能不能结束都难说),导致我三月份开始等着硬件画板子(我都想自己画了)以及等着APP组联调。

这个很紧急的项目就是一个助行器的项目(不是我负责),所以最近一个星期读了下面这些文章,探究了一下助行器的控制方法,反正也是闲着。


下肢助力外骨骼(类似于hypershell),控制主要有三个部分组成:感知层,决策层和执行层。

执行层主要为电机部分代码,输入的力矩指令。
决策层需要根据传感器数据,做步态预测和力矩规划。
感知层是处理传感器数据(双编码器+骨盆处IMU)。

在阅读完几篇综述性的论文之后,笔者了解到决策层的控制策略与外骨骼结构是息息相关的。
外骨骼有很多结构:有利用足底压力传感器识别步态。有的在膝关节也有电机,能识别到膝关节的角度。有的使用肌电信号进行识别。

笔者考虑到实际商业化,用户穿戴一个足底传感器很不方便,穿戴一个肌电信号就更加是天方夜谭了(先不说怎么走线)。
从落地性考虑,以现在最火热的hyperShell为参考,把论文搜索范围缩小到纯髋关节助力机器人。

这种形态的外骨骼,传感器往往只有两个髋关节电机,最多在增加几路IMU。

决策层控制策略

决策层(步态识别)的策略,具笔者了解到基于现有的传感器有以下两种步态识别方法:
1.全局髋关节相轨迹法:根据全局髋关节相平面的轨迹进行步态归一化。

2.自适应振荡器法:根据人走路的步频去锁相“学习”。

据论文里说方法1会比方法2要好,尤其是当走路的步频,幅度发生变化的时候。(笔者没有时间去两种方法都了解,论文里这样子说,我就这样子相信了)
于是着重了解方法一的思路。
参考复现的论文为DOI为 : 10.1109/TNSRE.2016.2569019
标题叫:A Robust Parameterization of Human Gait PatternsAcross Phase-Shifting Perturbations
作者:Dario J. Villarreal
研究机构: Robert D. Gregg

根据这篇文章,笔者找到了一个开源的数据集,用上述论文中的理论处理了下面这个数据集里面的数据。
数据集地址:https://www.nature.com/articles/s41597-025-05391-0#Sec9

这篇文章里前言说了,各类方法依赖于时间(例如自适应震荡)。
而他这里采用了和时间无关的控制量表示步态。

他是怎么做的呢?

首先我们要知道,作者想解决一个什么问题

因为人步行的时候,整个过程是非单调的。什么意思呢?
就是说人走一步路,以一条大腿为例子,腿会向前迈(屈曲)再向后蹬(伸展)
髋关节角度在一个步态周期内是来回摆动的。

我们想用0%~100%去映射一个完整的步态周期。这个0%~100%怎么来?
显然根据髋关节角度去得到是不行的(因为不是单调的,同一个髋关节角度,可能是屈曲过程中的,也可能是伸展过程中的)

为了解决这个问题,作者做了如下的定义:
PixPin_2026-03-13_10-38-39.png

θ_p:是骨盆前倾角(笔者认为可以通过腰部的IMU得到)
θ_h:是髋关节角度(就是编码器角度啦)

这里作者重点关注的量就是红色的θ:大腿绝对角。
这三个角度的图像如下:
PixPin_2026-03-13_11-26-52.png


我们以“大腿绝对角”为x轴,它的导数为y轴,做一个相平面。
在人步行的过程中,就是在这个相平面上画圆。
(我认为宏观上理解就是:通过髋关节角度以及髋关节角度的导数也就是速度,能够完全的表征腿的运动。)
PixPin_2026-03-13_12-49-16.png


接下来的问题,就是怎么把这个东西,归一化映射到0%~100%。作者是这样做的

目前画出来的图像是一个椭圆,既然你要映射,直接求相平面上椭圆的极角不就可以了?
(求角度很简单,直接用atan2(dtheta,theta)这个公式计算即可。最后用unwrap处理一下非连续的跳变)
(笔者在matlab里处理了一下数据集,得到的结果如下:)
PixPin_2026-03-13_12-55-37.png

很明显按照这样子根本不单调。。
作者在这里搞了一个缩放系数K
最后计算方式变为:atan2(K*dtheta,theta)

作者用了一堆证明方式,我没看懂,反正最后他给出的结论是
这个K=-1/ω
ω是频率。

这里求K的方法很简单:把角度最大值和最小值的差值除以速度最大值最小值的差值,取负数即可。
PixPin_2026-03-13_13-02-11.png

公式如上,工程上实现方式也很简单,就是实时更新记录角度最大值和速度最大值,这两个参数电机上都是可以得到的。
所以说这个K也是实时更新变化的,并且步子加速减速对这个步态识别算法没影响。
(笔者注:步子大小就是x轴theta的坐标,步子快慢就是y轴dtheta的坐标)
PixPin_2026-03-13_13-07-27.png
也就是说你走快走慢,步伐走大走小影响的是这个椭圆的大小!对于求角度,其实没影响。
你还是绕着这个圈圈在转,只是转的圈圈大小有变化。

好的按照作者的方案(atan2(K*dtheta,theta)/2*PI)处理后的图像就变成了一个圆
(这里除以2PI是为了让坐标归到0~1)
PixPin_2026-03-13_13-18-03.png
整理后从左图变为了右图

也就是最后可以用整理后的相角,表示步态0%~100%
而且这个表示方法和时间无关。

最后笔者对比了不同情况下的极角对比图:
PixPin_2026-03-13_13-21-01.png

可以看到在连续相位下,无论是上坡还是下坡表现都很不错。
(原作者还测试了鲁棒性)

但是在非连续的工况下(例如坐着到站起来,站起来到坐着),它的表现不佳。
(也许需要一个方法去识别人体在不在静止状态,只有当连续运动时才切换到这个相轨迹方法)

后续研究:
笔者找了一下这个作者后续的研究。
他有写过不同的步态如何输出力矩的文章。(大概看了一下,类似有一个表格去查表)
这个计算量我认为应该是能够部署到MCU里在线识别的。

他还写过如何处理非连续的工况。(还没看,我打算用IMU+编码器搞个简单的CNN去判断,不知道可行与否)
由于时间关系就不展开去了。

附件中为部分文章,以及单个受测试者的数据集。以及对应处理的matlab脚本。
附件: 相轨迹法.7z (14.84 MB, 下载次数: 0)


评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123680
QQ
发表于 2026-3-14 10:02:33 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

6

主题

369

回帖

387

积分

高级会员

积分
387
发表于 2026-3-14 17:47:23 | 显示全部楼层
厉害。佩服。
回复

使用道具 举报

41

主题

258

回帖

381

积分

高级会员

积分
381
发表于 2026-3-16 10:03:18 | 显示全部楼层
学习了,感谢分享
回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 2026-6-1 10:08:34 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2026-6-1 11:23 编辑

负责这个项目的同事离职了。。貌似现在要我来做。。

目前还需要一个根据IMU判断上楼,下楼,静止,走路,跑步的模式识别算法。
以及一个根据步态输出力矩的公式。



原项目周期定的12月~4月,要4个月量产。(老板有点不靠谱,我一看这个工作量就知道4个月量产不了,顶多搞个demo出来)



我们是分成算法、单片机、和物联网三个组在做。
之前项目的电机控制逻辑和单片机是A做的,蓝牙WIFI通讯部分B做。然后C做模式识别部分。

现在A离职了。



公司项目管理有点混乱,我领导偷偷和我说A要走。

然后上个星期突然问我有没有和A交接工作,我一问人家6月份都不来上班了。
过了十几天没下文,我以为A不走了呢。

我赶紧用AI阅读A的代码,临时抱佛脚看看。
今天C那边和我说,他让XXX在看步态识别以及输出力矩的文章。额,所以接下来到底是谁去做?



PS:这就是小公司的坏处。
目前这个公司没有项目经理,没人统筹规划项目进度。每个人都不知道其他同事的进度。
搞得我现在也不确定,到底谁去负责这块的内容。感觉都是独自为战。


包括我手头的项目,我发现只有我自己在推。我上家公司是有专门的项目经理的。
到新公司后,我尝试按照之前的工作习惯,去联系同事做进度对齐。
后来类似的工作貌似就默认让我去做了。

举个例子:
APP组要做数字孪生(所谓数字孪生就是APP上显示一个设备的3D模型,实物动起来的时候,模型也会动,看上去更具酷炫)。
结构给出的的3D模型包含了内部所有零件,APP直接跑比较卡,所以需要简化。

当前这样的任务,流程是:
1.我传达给结构的哥们,让他去简化模型。
2.结构把模型给我
3.我把模型给APP,让他们做数字孪生。
(就不能直接沟通吗..需要我在中间当传声筒传递信息一下)

如果我不去推进度。。他们能一直把某个节点的工作,卡在那里不动。

而且有个心累的点,叫做不在其位不谋其政。我本来就不负责干这个,我不知道其他同事的手头工作安排。
我去催进度,一句话就可以把我打回去:
我这个星期要忙XXX,下星期再来。
然后下星期可能A不忙了,B忙了。

大家的工作很容易出现那种:
我软件代码写完了。

Q:硬件咋还没画板子?
A:结构板框图还没定下来。

Q:结构大哥你卡在哪里了啊?
A:外观还没画好呢。

Q:外观的哥们你在干啥?
A:上个星期忙别的去了,这个星期给你画。









回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 2026-6-11 17:00:33 | 显示全部楼层
回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 2026-6-23 09:40:28 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2026-6-23 12:00 编辑

按照这篇文章我进行复刻,发现如果角度和速度是完美正弦信号的时候(例如用手拨动)

它的确能按照文章里给出一个相轨迹,但是当略有变换,速度出现双峰的时候,会导致相轨迹畸变。畸变的相轨迹导致我的力矩输出不是很顺滑。
穿上去的体验不好。

不知道论文作者他们到底是如何处理的。

因为要计算K值,但是K值是根据波峰波谷值得来的。K值每个周期是略微在变化的。
我最后真实穿戴设备去行走的时候,总是无法一直得到一个比较好的相轨迹,可能连续10个看上去比较好,就会有一两个畸变很严重的情况出现。
回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 2026-6-23 09:40:35 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2026-6-23 11:58 编辑

感觉这种调试手感的工作很难受。总感觉和竞品相比差距过大。
对方的助力效果很顺滑,我们的总是有缺陷。

这个是一个从结构到算法的系统性工程。可能你算法一样的,但是结构有差距,手感体验就有差距了。
琢磨不出来为啥他们能做的那么好。

而且工作是一个没有方向的感觉,不是那种只要做就能做完的的。
如果尝试的方向不正确,可能花了很多时间下去,依然没有成果。
回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 2026-7-14 15:37:07 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2026-7-14 16:10 编辑

前几天去合作的YI院听讲座。

有一个浙江大学的助理研究员,他们的课题组分享了一些方法,不过不是纯髋关节的方案,是柔性的方案。

结果前两天,我在一个QQ群里,看到有群友复刻论文的代码开源。我去github上看了一下代码,复刻的论文的作者,就是之前听过讲座的那位研究员。
感觉好巧。

赶紧在群里请教,问问这个方法的效果到底怎么样?

后来我问我们的算法工程师,她好像也知道这个人, 告诉我他们的研究团队和杭州的某个外骨骼竞品公司是有合作关系的。


人家公司都那么牛逼,我们这边是小猫三两只。

我也只能硬着头皮往上干。还好我只是嵌入式,不是算法。大头的压力不在我这里。
回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 2026-7-14 16:14:03 | 显示全部楼层
会飞的猪_2020 发表于 2026-6-1 10:08
负责这个项目的同事离职了。。貌似现在要我来做。。

目前还需要一个根据IMU判断上楼,下楼,静止,走路 ...

原计划只是A要离职,,结果A、B、C都走了。

嵌入式部分只有我一个人...我从上家公司离职,就是不想干物联网。

现在物联网部分也让我来干了。。

点评

博主还在吗?现在是啥情况了,我也是做这个的可以交流一下  详情 回复 发表于 7 天前
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 7 天前 | 显示全部楼层
会飞的猪_2020 发表于 2026-7-14 16:14
原计划只是A要离职,,结果A、B、C都走了。

嵌入式部分只有我一个人...我从上家公司离职,就是不想干 ...

博主还在吗?现在是啥情况了,我也是做这个的可以交流一下
回复

使用道具 举报

145

主题

753

回帖

1203

积分

至尊会员

积分
1203
QQ
 楼主| 发表于 6 天前 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2026-7-29 14:32 编辑
arke898 发表于 2026-7-28 17:49
博主还在吗?现在是啥情况了,我也是做这个的可以交流一下

可以交流。 目前在复刻一个AO振荡器的文章,然后也有一个朋友说是复刻成功了。浙大和程天外骨骼的文章。


之前我找的那个方法,我没复现成功。步态落地冲击导致相位不是一个标准的圆形,得到的结果不太好。





您可以加我QQ:154562451 ,我们一起交流,我也在寻找做这个的可以交流
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-8-4 06:04 , Processed in 0.324919 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表