YouDuck.ai

学習タスク一覧

最終更新

uv run list-envs を実行すると、実際に有効なタスクレジストリが表示されます。正はその出力で、以下の表はそれを整理したものです。

flat/rough と書かれたタスクには、平地版と不整地版の 2 つがあります。

タスクごとの個別ページ

以下はクイックリファレンスです。各タスクの学習のコツ、難しい点、向いている場面はそれぞれ個別のページにあります。

タスク 内容
Velocity 主タスク。速度指令での歩行。最初に学習させるのはこれ
VelStand 歩行と転倒復帰を同時に学習
StandUp うつ伏せ / 仰向け / 座位から立ち上がる
SitStand 指令による着座 ↔ 起立
GroundPick しゃがんでくちばしの先端を地面に触れさせる
BallKick ボールを蹴る。ポリシーはボールを見ていない
Roulade 前転
Rollers ローラーでの速度追従。roller モードの主タスク
Swizzle 左右対称のスウィズル走法
RollerCrouch 滑走しながらしゃがむ
RollerSlope 斜面を滑り降りる
RollerStandUp 地面からローラーの上に立ち上がる
Spin その場旋回

歩行と起立

タスク id 地形 内容
Mjlab-Velocity-{Flat,Rough}-MicroDuck 平地 / 不整地 主タスク。速度指令での歩行 + 頭部姿勢指令
Mjlab-VelStand-{Flat,Rough}-MicroDuck 平地 / 不整地 歩行と転倒復帰を 1 つのポリシーにまとめたもの
Mjlab-StandUp-{Flat,Rough}-MicroDuck 平地 / 不整地 うつ伏せ / 仰向け / 座位から立ち上がり、その後は姿勢制御付きで立ち続ける
Mjlab-SitStand-{Flat,Rough}-MicroDuck 平地 / 不整地 指令による着座 ↔ 起立。動きは滑らかで、頭部も制御可能

最初の学習は Mjlab-Velocity-Flat-MicroDuck から始めてください。

スキル動作

タスク id 地形 内容
Mjlab-GroundPick-{Flat,Rough}-MicroDuck 平地 / 不整地 しゃがんでくちばしの先端を地面に触れさせ、立位に戻る
Mjlab-BallKick-Flat-MicroDuck 平地 70 mm / 15 g のボールを前方へ蹴る(actor はボールを見ていない)
Mjlab-Roulade-Flat-MicroDuck 平地 頭を越えて前方に一回転し、両足で着地する

BallKick の「actor がボールを見ていない」という点は注目に値します。ポリシーはボールの位置をまったく観測せず、動作そのものの再現性に頼っています。

ローラー(roller)

足元に受動輪を付けた状態のタスク一式です。

タスク id 地形 内容
Mjlab-Velocity-Flat-MicroDuck-Rollers 平地 ローラーでの速度追従
Mjlab-Velocity-Swizzle-MicroDuck 平地 古典的な左右対称のスウィズル滑走
Mjlab-RollerCrouch-Flat-MicroDuck 平地 滑走しながらしゃがむ
Mjlab-RollerSlope-Flat-MicroDuck 斜面 斜面を滑り降りる
Mjlab-RollerStandUp-Flat-MicroDuck 平地 地面からローラーの上に立ち上がる
Mjlab-Spin-Flat-MicroDuck 平地 その場で高速に旋回する

Backlash 版:バックラッシュのモデリング

主要タスクにはそれぞれ Backlash の双子があり、歯車のガタを含むモデルの上で学習します。14 個のサーボ関節それぞれに ±1°(合計 2°)のバックラッシュが直列に入ります。

使い方は、タスク id の MicroDuck の前に -Backlash を挿入するだけです。

Mjlab-Velocity-Flat-Backlash-MicroDuck

このモデリングは sim2real にとって重要で、公式実装では次の 3 点が押さえられています。

  1. 各サーボに非駆動の passive_<joint>_backlash ヒンジを追加します。
  2. 実機のエンコーダはバックラッシュの出力側にあるため、ファームウェアの PD エミュレーション(BacklashEncoderBamActuator)も joint_pos / joint_vel の観測も、バックラッシュを通して読み取ります。つまり qpos[servo] + qpos[backlash] です。
  3. 観測次元も行動次元も変わらないため、ONNX の書き出しと実機ランタイムには一切変更が要りません。

実装はリポジトリの src/mjlab_microduck/tasks/backlash.py にあります。

アクチュエータモデル

すべてのタスクが、Dynamixel XL330 を模擬するために BAMM6 アクチュエータモデルを使います。電圧制御則、逆起電力、クーロン / ストライベック / 負荷依存の摩擦を含みます。

その上に環境ごとのドメインランダム化が乗ります。

  • バッテリー電圧
  • 負荷時の電圧降下
  • 指令の遅延
  • 摩擦の大きさ

実装は src/mjlab_microduck/actuator/FrictionDRBamActuator です。

関連