turtlebot3-burger_150.png
turtlebot3-waffle-pi_150.png
turtlebot3-arm_150.png
walking-y2_150.png
turbot3-multi_150.png
turbot3-dl-ros1_150.png
turbot3-ai.png
turbot3-dl-ros2_150.png
turbot3-slam_150.png
turbot3-arm_150.png
turtlebot4-lite_150.png
turtlebot4-pro_150.png
turbot4-dl_150.png
turbot4-ai_150.png
aidriving-racebot_150.png
aidriving-autodrive_150.png
turtlebot-arm_150.png
openmanipulator-x_150.png
Home » OpenDuckMini强化学习框架入门教程 » OpenDuckMini强化学习框架入门教程-机器人模型

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.2220.524, 右: -0.5241.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交流群,微信扫描右侧二维码立即进群交流

群二维码

标签: OpenDuckMini强化学习框架