尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

MASS数据文件完整详解:metadata.txt、human.xml、muscle284.xml与BVH动作参考全解析

MASS数据文件完整详解:metadata.txt、human.xml、muscle284.xml与BVH动作参考全解析 MASS数据文件完整详解metadata.txt、human.xml、muscle284.xml与BVH动作参考全解析【免费下载链接】MASS项目地址: https://gitcode.com/gh_mirrors/ma/MASSMASSMuscle-Actuated Skeletal System肌肉驱动骨骼系统是一个全身肌肉骨骼仿真与控制项目人体动作由肌肉收缩驱动并可结合深度强化学习PPO进行训练。想要跑通或定制 MASS最该弄懂的就是data/目录下的四类数据文件metadata.txt环境配置、human.xml人体骨架、muscle284.xml肌肉模型、*.bvh参考动作。本文带你逐个拆解它们的结构、字段含义与相互关系轻松搭建起自己的仿真环境。 data 目录总览四类文件如何协作先看整体分工一张表理清各文件的角色文件路径作用环境配置data/metadata.txt全局开关是否启用肌肉、仿真频率、奖励权重人体骨架data/human.xml22 个身体节点的质量、几何、关节与运动限位地面data/ground.xml仿真世界里的地面1000×1000 的大平面肌肉模型data/muscle284.xml284 条肌肉单元的连接点与力学参数参考动作data/motion/8 个 BVH 动作走、跑、后空翻、舞蹈等外观模型data/OBJ/各肢体的 OBJ 网格用于渲染展示启动时core/Environment.cpp 会逐行读取metadata.txt再按配置加载骨架、肌肉与 BVH 动作——这正是理解所有数据文件的总入口。⚙️ metadata.txt 逐行解读8 行配置掌控全局metadata.txt是整个仿真的总开关默认内容只有 7 行use_muscle true con_hz 30 sim_hz 600 skel_file /data/human.xml muscle_file /data/muscle284.xml bvh_file /data/motion/walk.bvh true reward_param 0.75 0.1 0.0 0.15逐行看它控制什么use_muscletrue表示启用肌肉驱动模型同时加载muscle284.xml设为false则退化为关节力矩驱动肌肉文件会被跳过加载。con_hz / sim_hz控制频率 30 Hz、物理仿真频率 600 Hz。仿真频率远高于控制频率保证动力学稳定——控制器每 30Hz 决策一次物理引擎以 600Hz 高速推进。skel_file / muscle_file / bvh_file三个资源文件路径均以项目根目录为基准拼接。bvh_file 行尾的 true表示该动作为循环动作播放到末尾会回到第一帧适合 walk、run 这类周期步态。reward_param四个奖励权重分别对应状态位置跟踪0.75、速度跟踪0.1、末端执行器跟踪0.0与质心跟踪0.15——权重越大智能体越在意该指标。⚠️ 特别提醒训练与测试阶段的 metadata.txt 必须保持一致改动配置后旧的网络权重可能不再适用。 human.xml 深度解析22 个人体节点如何组装human.xml描述人体骨架采用Skeleton→Node的树形结构以骨盆Pelvis为根节点向下延伸出四肢与躯干。每个节点包含两部分Bodymass质量、size包围盒尺寸、contact是否参与碰撞、obj关联的渲染网格如Pelvis.obj来自data/OBJ/目录。Joint关节类型与运动限位以及bvh属性——它把骨架节点名映射到 BVH 动作中的骨骼名如FemurR↔Character1_RightUpLeg是骨架与动作数据对得上号的关键。项目中用到了三类关节关节类型自由度典型用途Free6骨盆根部可在空间自由运动Ball3髋、肩、脚踝等球状关节带角度上下限Revolute1膝、肘等单轴铰链关节指定axis与限位几个值得注意的细节质量分布贴近人体真实比例骨盆 15kg、大腿 7kg、躯干 10kg、手 0.2kg。contact 开关只有双脚末端Talus与脚趾设为On其余部位关闭碰撞大幅节省仿真开销。endeffectorTrue标记在脚踝、头、手掌上它们是奖励函数中末端执行器跟踪的评测点。 muscle284.xml 解剖284 条肌肉单元的力学参数muscle284.xml定义了 284 个肌肉单元Unit每条肌肉通过若干Waypoint锚点连接到具体骨骼上。以一条真实数据为例Unit nameL_Adductor_Brevis f0151.850000 lm1.000000 lt0.200000 pen_angle0.000000 lmax-0.100000 Waypoint bodyPelvis p0.031900 0.919600 0.041600 / Waypoint bodyFemurL p0.083100 0.833800 0.004900 / Waypoint bodyFemurL p0.110400 0.826200 -0.008400 / /Unit字段含义如下name解剖学命名左右对称L_/R_前缀同名带数字后缀表示同一肌肉的多条力线。f0肌肉最大等长收缩力牛顿如髂腰肌组高达 1000 N。lm最优肌肉长度系数肌肉在该长度下发力最高效。lt肌腱长度系数描述肌腱段占肌肉-肌腱总长的比例。Waypoint肌肉锚点body指明挂在哪个骨骼上p是该骨骼坐标系下的三维坐标——多个锚点连起来就是肌肉的路径。正是这些肌肉与关节的映射关系让 MASS 能够求解给定目标力矩需要哪些肌肉以多大激活度收缩这也是它区别于普通刚体仿真的核心所在。相关计算逻辑在 core/Muscle.cpp 中实现。 BVH 动作参考HIERARCHY 与 MOTION 两段结构data/motion/目录提供 8 个现成参考动作是深度强化学习的老师动作文件内容walk.bvh行走循环默认动作run.bvh跑步dance.bvh舞蹈backflip.bvh后空翻pirouette.bvh芭蕾旋转kick.bvh踢腿balance.bvh平衡动作cart.bvh侧手翻类动作每个 BVH 文件分为两大段HIERARCHY骨骼树结构。根节点Character1_Hips带 6 通道3 位置 3 旋转其余关节各 3 个旋转通道OFFSET描述相邻骨骼的相对偏移单位毫米。MOTION逐帧数据。Frames:给出总帧数之后每行是一帧所有关节的通道值按 HIERARCHY 声明顺序排列。core/BVH.cpp 负责解析这两段内容解析 HIERARCHY 建立骨骼树读入 MOTION 帧序列并根据 metadata 中的循环标志决定播放方式循环时帧号取模回绕。BVH 骨骼名与human.xml的bvh属性一一对应从而实现动作重定向到仿真骨架。 串联全流程从配置到仿真的加载顺序把四类文件串起来MASS 的启动逻辑非常清晰读取metadata.txt确定是否启用肌肉、频率与奖励权重加载human.xml构建骨架同时读取data/OBJ/网格用于渲染若use_muscle true加载muscle284.xml建立肌肉-关节映射加载 BVH 参考动作通过bvh名称映射对齐骨骼载入ground.xml地面构建完整世界交给 PPO 训练或推理。 上手建议与常见坑换动作只需把 metadata 中bvh_file指向data/motion/下的其他文件即可非周期动作记得去掉行尾的true。改奖励reward_param四个数顺序固定位置、速度、末端、质心总和无需为 1。肌肉 vs 力矩use_muscle false时运行速度更快适合调试训练后的网络需与配置匹配肌肉模式需额外加载xxx_muscle.pt。不要随意改结构human.xml的节点名、bvh映射名、BVH 骨骼名三者必须一致改名会导致动作无法对齐。掌握这四类文件的结构与关系后你既可以流畅运行官方示例也有能力替换自己的动作数据或人体模型真正玩转这套肌肉驱动的仿真系统。【免费下载链接】MASS项目地址: https://gitcode.com/gh_mirrors/ma/MASS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表