外骨骼机器人

柔性外骨骼机器人模拟平台

Posted by koryako on February 2, 2023

柔性外骨骼机器人


前言

中国正在进入老龄化社会,行动不变,影响生活质量,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 解算力矩,关节角度

方法

  1. 基于环境的人体姿态模拟

使用姿态识别模型生成序列化的骨骼点数据 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

  1. 人体三维重建知识手部和物体重建, 数据驱动SMPL for unity,结合人体运动学ik,训练动作生成模型(直接生成3d运动模型 frankmocap转.fbx)
  1. NVIDIA的Physx 或 bullet 物理引擎模拟在真实世界的行走时的情况

  2. 行走时肢体和关节活动、足地作用力的观察和分析,使用opensim对、韧带力的推算和分析

软件架构

smpl模拟作为前端, opensim 作为后端

参数和公式注解

名词解释

  • 步长(steplength),即一足着地至对侧足着地的平均距离,国内亦称之为步幅:

  • 步长时间(steptime,即一足着地至对侧足着地的平均时间:

  • 步幅(stridelength)即一足着地至同一足再次着地的距离,也有人称之为跨步长;

  • 平均步幅时间(stridetime,相当于支撑相与摆动相之和:

  • 步频cadence,指每分钟平均步数(步数/min),由于步长时间两足不同,所以一般取其均值。

  • 步速(velocitd,指步行的平均速度(m/S):

  • 步宽(walkingbase,也称之为支撑基础(supportingbase,指两脚跟中心点或重力点之间的水平距离,也有采用两足内侧缘或外侧缘之间的最短水平距离。左、右足分别计算:

  • 足偏角(toeoutangle,指足中心线与同侧步行直线之间的夹角。左、右足分别计算

执行

  1. 视频转3d 导入到unity
  2. 使用ml-agent 进行模拟训练动作模型(预训练模型)
  3. 制作机构和建立仿真环境
  4. 使用robot仿真外接ros ,opensim,RL 训练

创建外骨骼仿真环境

  1. 官方教程
  2. 教程

制作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/video2bvhvideoPose3D : https://github.com/facebookresearch/VideoPose3Dvideo-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 计算关节助力值