柔性外骨骼机器人
前言
中国正在进入老龄化社会,行动不变,影响生活质量,2023年初工信部支持大力发展外骨骼的设备,但传统外骨骼不适合,机体庞大,不够美观,最好有包裹性很强的柔性外骨骼设备
概况
本项目侧重于柔性外骨骼模拟器平台的开发,兼顾硬件的开发工作
原理
创造一个模拟人体运动学与仿真物理交互的环境,外骨骼机器人作为agent ,通过强化学习,生成致动器需要的参数。
关键技术: 1.建立基于模型物理的先验模型生成的3d pos姿态生成符合人体运动学的,建立人体在行走时关节内应力分布和肌肉模型的仿真数据包括关节数据 (动作数据绑定人体模型,使用动作生成模型,通过 opensim api,ml agent SMPL 2.在物理引擎加持虚拟环境下产生人物和环境刚性物理数据,生成自适应动作参数数据 3.对可穿戴外骨骼机器人内部算法进行训练。
1.vedio 数据转成bvh 格式+外部传感器 2.加载到Unity模拟器中使用smpl 模型+物理引擎模拟环境,模拟不同环境下的姿态ml agent 框架 3.使用unity2opensim 生成motion数据和其他数据 4.输入到opensim 解算力矩,关节角度
方法
- 基于环境的人体姿态模拟
使用姿态识别模型生成序列化的骨骼点数据 video to 3d 单目转3D模型,如 easymocap | neuralbody | humannerf
2d 识别 AlphaPose : https://github.com/MVIG-SJTU/AlphaPose https://github.com/mkocabas/VIBE 追踪 https://github.com/MVIG-SJTU/AlphaPose/tree/master/trackers 转3d https://github.com/facebookresearch/VideoPose3D
https://github.com/zh-plus/video-to-pose3D https://github.com/HW140701/VideoTo3dPoseAndBvh
https://github.com/nghorbani/human_body_prior 先验
https://github.com/nghorbani/amass 数据集
https://meshcapade.wiki/SMPL
- 人体三维重建知识,手部和物体重建, 数据驱动SMPL for unity,结合人体运动学ik,训练动作生成模型(直接生成3d运动模型 frankmocap转.fbx)
-
NVIDIA的Physx 或 bullet 物理引擎模拟在真实世界的行走时的情况
-
行走时肢体和关节活动、足地作用力的观察和分析,使用opensim对、韧带力的推算和分析
软件架构
smpl模拟作为前端, opensim 作为后端
参数和公式注解
名词解释
-
步长(steplength),即一足着地至对侧足着地的平均距离,国内亦称之为步幅:
-
步长时间(steptime,即一足着地至对侧足着地的平均时间:
-
步幅(stridelength)即一足着地至同一足再次着地的距离,也有人称之为跨步长;
-
平均步幅时间(stridetime,相当于支撑相与摆动相之和:
-
步频cadence,指每分钟平均步数(步数/min),由于步长时间两足不同,所以一般取其均值。
-
步速(velocitd,指步行的平均速度(m/S):
-
步宽(walkingbase,也称之为支撑基础(supportingbase,指两脚跟中心点或重力点之间的水平距离,也有采用两足内侧缘或外侧缘之间的最短水平距离。左、右足分别计算:
-
足偏角(toeoutangle,指足中心线与同侧步行直线之间的夹角。左、右足分别计算
执行
- 视频转3d 导入到unity
- 使用ml-agent 进行模拟训练动作模型(预训练模型)
- 制作机构和建立仿真环境
- 使用robot仿真外接ros ,opensim,RL 训练
创建外骨骼仿真环境
- 创建开发环境和架构 确定研究平台(mujoco 研究代码)
- 动作生成模型
- 模仿学习代码学习理解,代码运行 进度50%
- 人形机器人模仿学习加物理基础
- opensim 使用
制作Demo机
- 机械设计,线拉受力点驱动力技术验证,电机马达选型 ,驱动板,ai芯片,传感器
- 3d 打印 进度1%
在线/离线学习
开发日志
2023/04/10 直接使用视频转成bvh格式的文件,在unity3d 里面直接加载bvh 驱动 smpl 模型, 相关nocap 模型 AlphaPose : https://github.com/MVIG-SJTU/AlphaPose,视频转bvh 格式参考代码 video2bvh : https://github.com/KevinLTT/video2bvh 、videoPose3D : https://github.com/facebookresearch/VideoPose3D 、 video-to-pose3D : https://github.com/zh-plus/video-to-pose3D
转 Bvh https://github.com/HW140701/VideoTo3dPoseAndBvh
Physics-based Character Animation AI Paper List
opensim
https://github.com/opensim-org/opensim-core https://github.com/hmok/OpenSimColab https://github.com/hmok/OpenSimColab/blob/main/OpenColab.ipynb
https://simtk.org/frs/?group_id=2149 https://simtk.org/projects/realtimekin
pose 识别
https://github.com/open-mmlab/mmpose Higher-HRNet-Human-Pose-Estimation : https://github.com/HRNet/Higher-HRNet-Human-Pose-Estimation openpose : https://github.com/CMU-Perceptual-Computing-Lab/openpose https://github.com/facebookresearch/meshtalk
https://blog.csdn.net/weixin_43955293/article/details/124670725 转motion 文件
https://github.com/facebookresearch/frankmocap https://github.com/zju3dv/EasyMocap https://github.com/mkocabas/VIBE https://github.com/garyzhao/SemGCN
2d pose 识别 https://github.com/HRNet/DEKR
算法 https://github.com/yul85/movingcam 导入pkl wenji https://github.com/inventec-ai-center/carl-siggraph2020
动作识别 https://github.com/open-mmlab/mmaction2 https://github.com/kennymckormick/pyskl
模拟器 https://github.com/simbody/simbody#installing
Unity +Ml agent + motion drive smpl model +物理环境训练动作生成模型 获取身体运动数据 Unity +robot +opensim 计算关节助力值