feat: huoyi M20 smooth/bridge training and stability docs
Current code snapshot: smooth/bridge task configs, smooth random terrain, roll/pitch stability rewards, M20 URDF updates, eval profile and stability training documentation.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Copyright (c) 2025 Deep Robotics
|
||||
# SPDX-License-Identifier: BSD 3-Clause
|
||||
|
||||
"""机器人形态注册表。
|
||||
|
||||
**加一个机器人 = 在这里加一条记录**,评价代码不动。
|
||||
|
||||
数值来源:火蚁的 link/joint 取自
|
||||
``source/rl_training/rl_training/tasks/manager_based/locomotion/velocity/config/wheeled/deeprobotics_m20/rough_env_cfg.py``;
|
||||
机身尺寸取自 ``docs/solenopsis_urdf_comparison.md`` 里记录的碰撞体尺寸。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from eval_kit.core.schema import RobotProfile
|
||||
|
||||
SOLENOPSIS = RobotProfile(
|
||||
name="solenopsis",
|
||||
# None = 运行时从仿真资产读真实质量(Solenopsis.urdf 当前为 24.74 kg)。
|
||||
# 旧 eval.py 的命令行默认值是 25.482,那是更早的 M20 简化模型名义质量,
|
||||
# 会让 COT 偏低约 4%。
|
||||
mass_kg=None,
|
||||
# 四个轮就是支撑多边形的接触点。
|
||||
feet_body_patterns=(".*_wheel",),
|
||||
# 机身与膝部允许作为越障时的短暂支撑。
|
||||
support_body_patterns=("base_link", ".*_knee"),
|
||||
# 火蚁 8 个关节全部主动驱动;分两组写便于将来出现被动关节时收窄范围。
|
||||
actuated_joint_patterns=(".*knee_joint", ".*wheel_joint"),
|
||||
support_force_threshold_n=15.0,
|
||||
# 机身碰撞体 0.706 x 0.310 x 0.1714 m,取长边。
|
||||
body_length_m=0.706,
|
||||
)
|
||||
|
||||
#: 四足对照机,仅用于验证「换机器人只改数据」这一点,尚未在仿真里跑过。
|
||||
LITE3 = RobotProfile(
|
||||
name="lite3",
|
||||
mass_kg=None,
|
||||
feet_body_patterns=(".*_FOOT",),
|
||||
# 四足没有「机身支撑」这个语义,留空 → 支撑类指标返回 nan 而不是 0。
|
||||
support_body_patterns=(),
|
||||
actuated_joint_patterns=(".*_joint",),
|
||||
support_force_threshold_n=15.0,
|
||||
# 未知,仅用于地形瓦片尺寸校验。
|
||||
body_length_m=0.0,
|
||||
)
|
||||
|
||||
PROFILES: dict[str, RobotProfile] = {
|
||||
SOLENOPSIS.name: SOLENOPSIS,
|
||||
LITE3.name: LITE3,
|
||||
}
|
||||
|
||||
|
||||
def get_profile(name: str) -> RobotProfile:
|
||||
if name not in PROFILES:
|
||||
raise KeyError(f"未知机器人描述 {name!r};可选:{sorted(PROFILES)}")
|
||||
return PROFILES[name]
|
||||
Reference in New Issue
Block a user