OpenDuckMini强化学习框架入门教程-机器人模型
纠错,疑问,交流: 请进入讨论区或 请点击进入页面,扫码加入微信群或Q群进行交流
获取最新文章: 扫一扫加入“创客智造”公众号
欢迎加入我们的openduckmini交流群,微信扫描右侧二维码立即进群交流
机器人模型
- 理解机器人模型,包含模型文件,机器人层级结构,运动学配置,动力学属性,执行器配置,物理引擎配置,碰撞几何和3D 视觉模型等
概述
Open Duck Mini V2 的机器人模型使用 MuJoCo 的 MJCF(MuJoCo XML Format)格式定义。模型文件描述了机器人的运动学结构、动力学属性、传感器配置和可视化几何,是仿真的基础。
模型文件
核心模型文件位于 playground/open_duck_mini_v2/xmls/ 目录:
| 文件 | 说明 |
|---|---|
open_duck_mini_v2.xml |
主模型,不含回差建模 |
open_duck_mini_v2_backlash.xml |
包含回差虚拟关节的模型 |
open_duck_mini_v2_no_head.xml |
不含头部的简化模型 |
机器人层级结构
base (浮动基座, pos: 0 0 0.22)
│
├── trunk_assembly (躯干, mass: 0.699 kg)
│ │
│ ├── hip_roll_assembly (左髋, mass: 0.066 kg)
│ │ └── left_roll_to_pitch_assembly (mass: 0.075 kg)
│ │ └── knee_and_ankle_assembly (mass: 0.124 kg)
│ │ └── knee_and_ankle_assembly_2 (mass: 0.073 kg)
│ │ └── foot_assembly (左脚, mass: 0.075 kg)
│ │
│ ├── neck_pitch_assembly (颈部, mass: 0.066 kg)
│ │ └── head_pitch_to_yaw (mass: 0.017 kg)
│ │ └── neck_yaw_assembly (mass: 0.092 kg)
│ │ └── head_assembly (头部, mass: 0.407 kg)
│ │
│ └── hip_roll_assembly_2 (右髋, mass: 0.066 kg)
│ └── right_roll_to_pitch_assembly (mass: 0.075 kg)
│ └── knee_and_ankle_assembly_3 (mass: 0.124 kg)
│ └── knee_and_ankle_assembly_4 (mass: 0.073 kg)
│ └── foot_assembly_2 (右脚, mass: 0.075 kg)
运动学配置
自由度
Open Duck Mini V2 共有 14 个主动自由度(不含浮动基座):
| 身体部分 | 关节 | 数量 |
|---|---|---|
| 左腿 | 髋偏航/髋滚动/髋俯仰/膝/踝 | 5 |
| 右腿 | 髋偏航/髋滚动/髋俯仰/膝/踝 | 5 |
| 颈部 | 颈部俯仰 | 1 |
| 头部 | 头部俯仰/偏航/滚动 | 3 |
另有 7 个浮动基座自由度(位置 xyz + 姿态四元数),总计 21 个自由度。
关节范围
| 关节 | 范围 (rad) | 范围 (°) |
|---|---|---|
| 髋偏航 (hip_yaw) | ±0.524 | ±30° |
| 髋滚动 (hip_roll) | ±0.436 | ±25° |
| 髋俯仰 (hip_pitch) | 左: -1.222 |
非对称 |
| 膝 (knee) | ±1.571 | ±90° |
| 踝 (ankle) | ±1.571 | ±90° |
| 颈俯仰 (neck_pitch) | -0.349~1.134 | -20°~65° |
| 头俯仰 (head_pitch) | ±0.785 | ±45° |
| 头偏航 (head_yaw) | ±2.793 | ±160° |
| 头滚动 (head_roll) | ±0.524 | ±30° |
动力学属性
质量分布
| 组件 | 质量 (kg) | 说明 |
|---|---|---|
| 躯干 | 0.699 | 含电池、主板 |
| 每条腿 (6个部件) | ~0.414 | 髋→膝→踝 |
| 颈部+头部 | ~0.582 | 颈部+俯仰+偏航+滚动+头部 |
| 总重 | ~2.1 kg |
关键物理参数
- 浮动基座高度:0.22 m(基座中心初始离地高度)
- 仿真步长:0.002 s
- 重力:9.81 m/s²
执行器配置
使用 位置控制模式,模拟 STS3215 舵机的特性:
<actuator>
<position class="sts3215" name="left_hip_yaw" joint="left_hip_yaw" inheritrange="1"/>
<position class="sts3215" name="left_hip_roll" joint="left_hip_roll" inheritrange="1"/>
<!-- ... 共 14 个执行器 ... -->
</actuator>
STS3215 舵机参数
| 参数 | 值 | 说明 |
|---|---|---|
| KP | 13.37 Nm/rad | 位置比例增益 |
| Force Range | ±3.23 Nm | 最大输出力矩 |
| Damping | 0.56 Nms/rad | 关节阻尼 |
| Friction Loss | 0.068 Nm | 静摩擦力 |
| Armature | 0.027 kg·m² | 旋转惯量 |
物理引擎配置
<option iterations="1" ls_iterations="5">
<flag eulerdamp="disable"/>
</option>
<compiler angle="radian" meshdir="assets"/>
- CG 迭代次数:1 次(加快仿真速度)
- 线搜索迭代:5 次
- 欧拉阻尼:禁用
- 角度单位:弧度
- 网格目录:assets/
碰撞几何
机器人使用专用的碰撞几何体(不同于可视化几何)来提高碰撞检测效率:
<default class="collision">
<geom group="3"/>
</default>
足部碰撞检测使用名为 foot_bottom_tpu 的网格,配置为 group="3"(碰撞组)。
3D 视觉模型
机器人使用从 Onshape CAD 模型导出的 STL 网格文件(位于 xmls/assets/ 目录),共约 28 个网格部件。视觉模型由 group="2" 的几何体定义,碰撞由 group="3" 的几何体定义。
纠错,疑问,交流: 请进入讨论区或 请点击进入页面,扫码加入微信群或Q群进行交流
获取最新文章: 扫一扫加入“创客智造”公众号
欢迎加入我们的openduckmini交流群,微信扫描右侧二维码立即进群交流


















