<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>模倣学習 on Physical AI Hub</title>
    <link>https://physicalaihub.net/tags/%E6%A8%A1%E5%80%A3%E5%AD%A6%E7%BF%92/</link>
    <description>Recent content in 模倣学習 on Physical AI Hub</description>
    <generator>Hugo</generator>
    <language>ja-jp</language>
    <lastBuildDate>Thu, 22 Oct 2026 13:27:39 +0900</lastBuildDate>
    <atom:link href="https://physicalaihub.net/tags/%E6%A8%A1%E5%80%A3%E5%AD%A6%E7%BF%92/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ロボット学習のアクション表現を選ぶ：関節・手先・速度指令の設計比較</title>
      <link>https://physicalaihub.net/posts/robot-policy-action-representation-selection/</link>
      <pubDate>Thu, 22 Oct 2026 13:27:39 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-policy-action-representation-selection/</guid>
      <description>&lt;p&gt;同じ「アクション」でも、方策の出力と実機コントローラの入力は分けて設計できる点が気になります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;結論機体と制御層に合わせて選ぶ&#34;&gt;結論：機体と制御層に合わせて選ぶ&lt;/h2&gt;&#xA;&lt;p&gt;関節空間・エンドエフェクタ空間・速度指令のどれかが、すべてのタスクとロボットで優れるわけではありません。単一の既知ロボットで、デモデータと既存の低レベル制御器が関節軌道を中心に構成されているなら、関節空間が実装上の第一候補です。手先の幾何や複数ロボット間の共通化を重視するなら、エンドエフェクタ空間が有力になります。&lt;/p&gt;&#xA;&lt;p&gt;速度指令は、状態を観測しながら短い時間幅で修正する閉ループ・サーボに向きます。ただし、積分、飽和、遅延、センサーノイズの影響を受けるため、方策の出力をそのままアクチュエータへ渡す設計は避けるべきです。実機では、方策と安全・制限処理を分離し、下位の制御層へ責務を分担させる構成が現実的です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜアクション表現を分けるのか&#34;&gt;なぜアクション表現を分けるのか&lt;/h2&gt;&#xA;&lt;p&gt;模倣学習やVLAでいう「アクション」は、学習方策が予測する値と、実機の低レベルコントローラが受け取る指令の両方を指すことがあります。しかし、両者を同じ表現にする必要はありません。ROS 2 JazzyのJoint Trajectory Controllerは、関節の位置、速度、加速度、effortなどのインターフェースと、軌道の補間・実行を扱います。一方、方策は手先の姿勢や相対変位を出力し、別の制御層で関節指令へ変換することもできます。&lt;/p&gt;&#xA;&lt;p&gt;したがって選定では、学習しやすさだけでなく、タスクの幾何、データの形式、機体固有性、更新周期、安全監視をどの層に置くかを確認します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;3つの表現の仕組み&#34;&gt;3つの表現の仕組み&lt;/h2&gt;&#xA;&lt;h3 id=&#34;関節空間&#34;&gt;関節空間&lt;/h3&gt;&#xA;&lt;p&gt;関節空間では、各関節の位置や速度などを出力します。関節インターフェースへ直接接続しやすく、方策から逆運動学を呼び出さずに済む点が利点です。固定ロボットで収集した関節状態・関節目標中心のデータを使う場合、学習データと実行系の対応も明確になります。ACTはALOHAのような固定された二腕機構で、関節状態・関節目標に近いアクション構成を用いています。&lt;/p&gt;&#xA;&lt;p&gt;反面、関節数、ゼロ点、可動域、リンク構成への依存が強くなります。別の機構へ移す場合、同じ数値列をそのまま利用できるとは限りません。関節値の変化だけでは、対象物に対する手先の移動を表しにくいタスクもあります。&lt;/p&gt;&#xA;&lt;h3 id=&#34;エンドエフェクタ空間&#34;&gt;エンドエフェクタ空間&lt;/h3&gt;&#xA;&lt;p&gt;エンドエフェクタ空間では、手先の位置・姿勢、または相対的な変化を指令します。把持点や接触点など、タスクの幾何に近い表現です。Octoは複数のロボット・タスクへの適用を意識し、手先の位置・姿勢とグリッパを含む7次元のアクション表現を用いています。&lt;/p&gt;&#xA;&lt;p&gt;手先の位置・姿勢を関節指令へ変換するには、通常、逆運動学を扱う制御層が必要です。手先の速度やtwistなら、ヤコビアンや微分逆運動学による変換が候補になります。特異点、関節限界、衝突などの制約も下流の制御層で処理しなければなりません。抽象度を上げられる一方、変換器や監視機能は複雑になり得ます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;速度指令&#34;&gt;速度指令&lt;/h3&gt;&#xA;&lt;p&gt;速度指令は、関節または手先の速度を指定する形式です。現在の状態を使い、短い時間幅で更新するため、反応的なサーボに適します。状態に応じて誤差を連続的に修正したい場合の候補です。&lt;/p&gt;&#xA;&lt;p&gt;ただし、速度を積分して位置を更新する構成では、遅延やノイズの影響が蓄積する可能性があります。速度上限、飽和、通信断、異常値、停止時の積分状態も設計対象です。サーボ周波数や通信遅延が成功率へ与える定量的な影響は、資料内で条件を統一した比較がありません。採用時は対象機体で確認する必要があります。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;方策の出力と実機インターフェースを分離し、表現ごとの変換・制限・安全処理を下位の制御層に配置する構成を示します。&#34;&gt;flowchart LR&#xA;  A[&#34;観測センサー&#34;] --&gt; B[&#34;学習方策&#34;]&#xA;  B --&gt; C1[&#34;関節目標&#34;]&#xA;  B --&gt; C2[&#34;手先 pose / twist&#34;]&#xA;  B --&gt; C3[&#34;速度指令&#34;]&#xA;  C1 --&gt; D1[&#34;スケーリング・レート制限&#34;]&#xA;  C2 --&gt; D2[&#34;逆運動学・ヤコビアン&#34;]&#xA;  C3 --&gt; D3[&#34;積分・速度制限・平滑化&#34;]&#xA;  D1 --&gt; E[&#34;関節・速度・加速度などの制限&#34;]&#xA;  D2 --&gt; E&#xA;  D3 --&gt; E&#xA;  E --&gt; F[&#34;安全監視・異常値確認・停止処理&#34;]&#xA;  F --&gt; G[&#34;サーボ層 / 関節軌道制御&#34;]&#xA;  G --&gt; H[&#34;アクチュエータ・実機&#34;]&#xA;  H --&gt; A&lt;/pre&gt;&lt;figcaption&gt;方策の出力と実機インターフェースを分離し、表現ごとの変換・制限・安全処理を下位の制御層に配置する構成を示します。&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;em&gt;図1：方策の出力表現と実機制御層の分担。表現の優劣ではなく、変換・制限・安全監視の配置を示す概念図です。&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボット学習のアクティブラーニング：実機データ収集を不確実性とカバレッジで最適化する</title>
      <link>https://physicalaihub.net/posts/active-learning-for-robot-real-world-data-collection/</link>
      <pubDate>Tue, 13 Oct 2026 15:39:47 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/active-learning-for-robot-real-world-data-collection/</guid>
      <description>&lt;p&gt;実機データを増やすほど学習が良くなるとは限らない点が、このテーマで特に気になるところです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボット学習で次に収集する実機データは、単に失敗回数が多いものや、モデルの不確実性が高いものから選ぶべきではありません。タスク、状態、作業フェーズ、環境条件ごとに、&lt;strong&gt;不確実性、条件付き失敗リスク、既存データのカバレッジ不足、多様性、安全性、収集コスト&lt;/strong&gt;を組み合わせて判断します。&lt;/p&gt;&#xA;&lt;p&gt;実装の出発点としては、候補となる状態や時間窓ごとに、次のような獲得スコアを計算します。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;S(x)=w_uU(x)+w_fF(x)+w_cC(x)+w_dD(x)-w_kK(x)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;ここで、&lt;code&gt;U&lt;/code&gt;は不確実性、&lt;code&gt;F&lt;/code&gt;は条件付き失敗リスク、&lt;code&gt;C&lt;/code&gt;はカバレッジ不足、&lt;code&gt;D&lt;/code&gt;は多様性・新規性、&lt;code&gt;K&lt;/code&gt;は収集コストまたは安全リスクです。スコア上位をそのまま大量収集するのではなく、似た候補が集中しないよう多様性制約を加え、収集後は固定した層別ホールドアウトで効果を検証します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ収集対象の選択が必要か&#34;&gt;なぜ収集対象の選択が必要か&lt;/h2&gt;&#xA;&lt;p&gt;実機データには、ロボットの稼働時間、操作者の作業時間、設備の占有、安全監視などのコストがあります。データ量を増やしても、すでに十分観測された状態ばかりが追加されれば、未経験の初期条件や失敗直前の状態は埋まりません。&lt;/p&gt;&#xA;&lt;p&gt;ロボットの模倣学習では、デモンストレーションの総量だけでなく、品質、タスクや状態の多様性、初期条件のばらつきが性能に関係します。したがって、全体の平均的な成功率だけでなく、どの条件が不足しているかを把握する必要があります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;判断に使う用語&#34;&gt;判断に使う用語&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;不確実性&lt;/strong&gt;は、モデルが入力に対してどれほど確信を持てないかを表します。たとえばMC dropoutでは、dropoutを有効にした確率的推論を複数回行い、予測の分散からモデル由来の不確実性を近似します。ただし、これは成功確率や失敗確率そのものではありません。センサー雑音、接触の偶然性、物体の滑りやすさのようなデータ固有の不確実性とは一致しない場合があります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;条件付き失敗リスク&lt;/strong&gt;は、全体の失敗件数ではなく、特定の条件における失敗確率です。対象には、タスク、物体、初期姿勢、作業フェーズ、環境、操作者、ロボット構成などが含まれます。頻出する失敗でも、すでに十分な例が集まっていれば、追加収集の情報価値は低い可能性があります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;カバレッジ不足&lt;/strong&gt;は、既存データで十分に観測されていない領域です。タスク・フェーズ別のヒストグラム、表現空間の近傍密度、クラスタ占有率、環境・物体・操作者の組み合わせなどで確認できます。全体平均ではなく、どの条件の組み合わせが空いているかを見ることがポイントです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;アクティブラーニングの仕組み&#34;&gt;アクティブラーニングの仕組み&lt;/h2&gt;&#xA;&lt;p&gt;候補を作る単位は、エピソード全体に限りません。失敗直前の時間窓、接触イベント、タスクの初期状態、リカバリ操作などを候補にできます。各候補について、モデルの予測、過去ログ、状態分布を参照して指標を正規化します。&lt;/p&gt;&#xA;&lt;p&gt;不確実性の選択には、MC dropout、アンサンブル分散、モデル間の行動不一致、予測エントロピー、価値関数の分散などが考えられます。失敗については、生の件数よりも条件付き失敗確率、失敗の重大度を加味した期待損失、回復可能性を考慮した優先度が適しています。&lt;/p&gt;&#xA;&lt;p&gt;そのうえで、期待値の高い候補をバッチで選びます。不確実性上位だけを選ぶと、外れ値や互いに似たサンプルばかりになることがあります。代表性や多様性を組み込み、異なるクラスタ、作業フェーズ、環境条件が同じバッチに含まれるようにします。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;不確実性や条件付き失敗リスクだけでなく、カバレッジ不足、多様性、安全性、収集コストを統合して実機データを選択する反復ループです。&#34;&gt;flowchart LR&#xA;  A[&#34;既存データ・実機ログ&#34;] --&gt; B[&#34;タスク・状態・フェーズ・環境ごとに分割&#34;]&#xA;  B --&gt; C[&#34;候補状態・時間窓・接触イベントを作成&#34;]&#xA;  C --&gt; D[&#34;モデル推論&#34;]&#xA;  C --&gt; E[&#34;既存データ分布の分析&#34;]&#xA;  C --&gt; F[&#34;安全性・収集コストの確認&#34;]&#xA;  D --&gt; G[&#34;不確実性を推定&#34;]&#xA;  D --&gt; H[&#34;条件付き失敗リスクを推定&#34;]&#xA;  E --&gt; I[&#34;カバレッジ不足・新規性を計算&#34;]&#xA;  G --&gt; J[&#34;獲得スコアを統合&#34;]&#xA;  H --&gt; J&#xA;  I --&gt; J&#xA;  F --&gt; J&#xA;  J[&#34;S(x)=w_uU+w_fF+w_cC+w_dD-w_kK&#34;] --&gt; K[&#34;多様性制約付きバッチ選択&#34;]&#xA;  K --&gt; L{&#34;安全確認を通過したか&#34;}&#xA;  L --&gt;|&#34;はい&#34;| M[&#34;人間デモ・自律試行・リカバリ試行を割り当て&#34;]&#xA;  L --&gt;|&#34;いいえ&#34;| N[&#34;候補を除外または条件を再設計&#34;]&#xA;  M --&gt; O[&#34;実機データを収集&#34;]&#xA;  O --&gt; P[&#34;モデルを再学習&#34;]&#xA;  P --&gt; Q[&#34;固定した層別ホールドアウトで評価&#34;]&#xA;  Q --&gt; R[&#34;未観測条件・成功率・回復率・安全性を確認&#34;]&#xA;  R --&gt; C&#xA;  N --&gt; C&lt;/pre&gt;&lt;figcaption&gt;不確実性や条件付き失敗リスクだけでなく、カバレッジ不足、多様性、安全性、収集コストを統合して実機データを選択する反復ループです。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;指標と選択方法の比較&#34;&gt;指標と選択方法の比較&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;観点&lt;/th&gt;&#xA;          &lt;th&gt;代表的な方法&lt;/th&gt;&#xA;          &lt;th&gt;優先しやすいケース&lt;/th&gt;&#xA;          &lt;th&gt;誤選択のリスク&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;不確実性&lt;/td&gt;&#xA;          &lt;td&gt;MC dropout、アンサンブル分散、行動不一致&lt;/td&gt;&#xA;          &lt;td&gt;モデルが判断に迷う状態&lt;/td&gt;&#xA;          &lt;td&gt;外れ値やノイズを選びやすい。不確実性は失敗確率を直接示さない&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;失敗&lt;/td&gt;&#xA;          &lt;td&gt;条件付き失敗確率、期待損失、回復可能性&lt;/td&gt;&#xA;          &lt;td&gt;特定条件で失敗が集中する状態&lt;/td&gt;&#xA;          &lt;td&gt;生の件数だけでは露出回数や既存データ量を反映しない&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;カバレッジ&lt;/td&gt;&#xA;          &lt;td&gt;フェーズ別分布、近傍密度、クラスタ占有率&lt;/td&gt;&#xA;          &lt;td&gt;未観測の初期条件や環境&lt;/td&gt;&#xA;          &lt;td&gt;密度を広げてもデモ品質や接触ダイナミクスが不足する場合がある&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;多様性&lt;/td&gt;&#xA;          &lt;td&gt;クラスタ別層化、代表性制約&lt;/td&gt;&#xA;          &lt;td&gt;バッチ内の重複を避けたい場合&lt;/td&gt;&#xA;          &lt;td&gt;代表性を優先しすぎると高リスク条件を取り逃す可能性がある&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;コスト・安全&lt;/td&gt;&#xA;          &lt;td&gt;監視コスト、損傷リスク、収集時間&lt;/td&gt;&#xA;          &lt;td&gt;実機試行に制約がある場合&lt;/td&gt;&#xA;          &lt;td&gt;低コストだけを選ぶと重要な危険状態を学べない&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;実装の流れ&#34;&gt;実装の流れ&lt;/h2&gt;&#xA;&lt;p&gt;まず、ログにタスク名だけでなく、物体、初期姿勢、作業フェーズ、環境、照明、操作者、ロボット構成、成功・失敗、失敗の重大度、リカバリ結果を記録します。次に、既存データを条件別に分割し、状態ごとの露出回数と失敗確率を推定します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボット行動方策の実行粒度：アクションチャンクと再計画周期の設計</title>
      <link>https://physicalaihub.net/posts/robot-action-chunking-replanning-period/</link>
      <pubDate>Thu, 24 Sep 2026 13:31:55 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-action-chunking-replanning-period/</guid>
      <description>&lt;p&gt;アクションチャンクの「長さ」と再計画の「間隔」は、同じ数字で語られがちな点が気になります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボットの行動方策では、1回の推論で予測する長さ &lt;strong&gt;H&lt;/strong&gt; と、次の推論まで実際に実行する長さ &lt;strong&gt;K&lt;/strong&gt; を分けて設計するべきです。Hはタスクの時間的なまとまりや先読みを表し、Kは環境変化に対する反応性と推論負荷を左右します。&lt;/p&gt;&#xA;&lt;p&gt;基本方針は、通常 &lt;strong&gt;H &amp;gt;= K&lt;/strong&gt; とし、予測した全アクションを固定的に実行しないことです。接触、物体移動、外乱、視覚変化が多い局面ではKを小さくし、安定した自由空間動作や推論コストが高い構成ではKを大きくする候補があります。ただし、最適な数値はロボット、制御周期、アクション表現、推論遅延、タスクによって変わるため、実機でHとKを組み合わせたアブレーションを行って決めます。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜhとkを分けるのか&#34;&gt;なぜHとKを分けるのか&lt;/h2&gt;&#xA;&lt;p&gt;アクションチャンクとは、方策が1回の推論で単一のアクションではなく、複数ステップの連続アクション列を予測する設計です。ACT（Action Chunking with Transformers）は固定長のアクション列を予測し、時間的に重なる予測をtemporal ensembleで融合する構成を採用しています。一方、Diffusion Policyはアクション列を生成し、その一部を実行して観測を更新し、再計画するreceding-horizon controlを用います。&lt;/p&gt;&#xA;&lt;p&gt;ここで「チャンク長」という言葉を、予測する列の長さと、再計画まで実行する長さの両方に使うと、実装上の議論が曖昧になります。本稿では、予測長をH、実行してから次に推論する間隔をKと定義します。Hを長くしても、Kを短く保つことは可能です。逆にHとKを同じ値にして、予測列全体をオープンループで実行することもできますが、その場合は途中の観測を使った修正機会が減ります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;ステップ数ではなく時間で考える&#34;&gt;ステップ数ではなく時間で考える&lt;/h2&gt;&#xA;&lt;p&gt;HとKはステップ数だけでなく、低レベル制御周期 &lt;strong&gt;Δt_ctrl&lt;/strong&gt; と組み合わせて評価します。予測時間はHΔt_ctrl、再計画時間はKΔt_ctrlです。同じKでも、制御周期が異なれば、ロボットが観測なしで動く物理的な時間は変わります。&lt;/p&gt;&#xA;&lt;p&gt;さらに、観測、通信、方策推論を含むエンドツーエンド遅延を &lt;strong&gt;T_inf&lt;/strong&gt; とします。同期推論では、少なくともT_infがKΔt_ctrlを超えないかを確認する必要があります。超える場合、推論完了までに現在のアクション列を使い切る可能性があります。そのときは、アクションバッファ、非同期推論、低レベルサーボ、安全な停止・ホールド機構などを設け、推論の遅さを単純なオープンループ時間の増加として放置しないことが重要です。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;予測長Hは先読みの長さ、再計画間隔Kは実際に実行してから次の推論を行うまでの長さを表す。基本方針はHをK以上とし、観測更新によって実行列を分割することです。&#34;&gt;flowchart LR&#xA;  A[&#34;時刻 t0：観測&#34;] --&gt; B[&#34;方策推論&#34;]&#xA;  B --&gt; C[&#34;長さHのアクション列を予測&#34;]&#xA;  C --&gt; D[&#34;最初のKステップだけ実行&#34;]&#xA;  D --&gt; E[&#34;時刻 t0+K：新しい観測&#34;]&#xA;  E --&gt; F[&#34;次のアクション列を再計画&#34;]&#xA;  F --&gt; G[&#34;新しい列の一部を実行&#34;]&#xA;  G --&gt; H[&#34;次の観測と再計画&#34;]&#xA;  C -. &#34;HΔt_ctrl：予測時間&#34; .-&gt; D&#xA;  D -. &#34;KΔt_ctrl：実行・再計画間隔&#34; .-&gt; E&#xA;  F -. &#34;予測が重なる場合&#34; .-&gt; I[&#34;temporal ensembleや加重平均で融合&#34;]&#xA;  I -. &#34;滑らかさと反応遅れを評価&#34; .-&gt; G&#xA;  C -. &#34;基本方針 H≥K&#34; .-&gt; F&lt;/pre&gt;&lt;figcaption&gt;予測長Hは先読みの長さ、再計画間隔Kは実際に実行してから次の推論を行うまでの長さを表す。基本方針はHをK以上とし、観測更新によって実行列を分割することです。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;hとkの時間軸&#34;&gt;HとKの時間軸&lt;/h2&gt;&#xA;&lt;p&gt;時刻t0で方策が長さHのアクション列を予測し、そのうち最初のKステップを実行します。t0+Kで新しい観測を取得し、次の列を予測します。新しい予測と過去の予測が同じ時刻に対応する場合は、temporal ensembleや加重平均によって融合できます。これにより、チャンク境界での入力の不連続や急変を抑えられる可能性があります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボット学習データの収集設計：実機デモの記録形式と品質検証</title>
      <link>https://physicalaihub.net/posts/robot-learning-demonstration-data-collection/</link>
      <pubDate>Sun, 08 Mar 2026 08:24:51 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-learning-demonstration-data-collection/</guid>
      <description>&lt;p&gt;実機デモは動画として残すだけで十分なのか、という疑問から整理しました。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボット学習用の実機デモは、動画だけでなく、&lt;strong&gt;episodeの中に時系列のstepを持つデータ&lt;/strong&gt;として収集するのが基本です。各stepには、観測、行動、時刻、終了状態を紐づけ、episodeにはタスク、ロボット、センサー、キャリブレーションなどのメタデータを付与します。&lt;/p&gt;&#xA;&lt;p&gt;品質検証は、保存後に一度だけ行うのでは不十分です。まずスキーマ、配列、欠損、時刻系列を自動検査し、次に行動値や関節状態の物理的妥当性、タスク成功ラベルを確認します。最後に、episode単位でデータを分割し、同じセッションや環境が学習・検証・テストにまたがるリークを防ぎます。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ収集形式が重要なのか&#34;&gt;なぜ収集形式が重要なのか&lt;/h2&gt;&#xA;&lt;p&gt;模倣学習やVLAでは、画像だけでなく、ロボットの状態と操作指令の対応を学習します。映像、関節状態、エンドエフェクタの状態、操作コマンドの時刻関係が崩れると、モデルは誤った因果関係を学習する可能性があります。また、成功デモだけを残すと、停止、失敗、やり直しといった実環境で起きる状態を扱いにくくなります。&lt;/p&gt;&#xA;&lt;p&gt;そのため、収集時点では失敗や中断も含めて保存し、後から終了理由やタスク結果を明示する設計が扱いやすくなります。ただし、成功・失敗ラベルの自動判定と人手判定のどちらが常に優れるかについて、全タスクに共通する基準はありません。タスクごとに判定方法を定義する必要があります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;基本用語とデータ単位&#34;&gt;基本用語とデータ単位&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;episode&lt;/strong&gt;は、タスクの開始から終了までの一つの試行です。&lt;strong&gt;step&lt;/strong&gt;は、episode内のある時刻における観測と行動の組です。RLDSはepisodeとstepの階層を採用し、stepにobservation、action、reward、discount、is_first、is_last、is_terminalなどを持たせます。&lt;/p&gt;&#xA;&lt;p&gt;一方、robomimicはHDF5内のdemo単位に、actions、observations、rewards、donesなどを格納します。終了状態を表すフィールド名や意味は実装によって異なるため、単に&lt;code&gt;done&lt;/code&gt;という名前を合わせるだけでは不十分です。時間制限による終了と、タスクの成功・失敗による終了を区別するかを仕様に記録してください。&lt;/p&gt;&#xA;&lt;h2 id=&#34;推奨する収集スキーマ&#34;&gt;推奨する収集スキーマ&lt;/h2&gt;&#xA;&lt;p&gt;最低限、次の情報をepisode・stepに分けて保持します。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;観測&lt;/strong&gt;：カメラ画像、深度、関節位置・速度、エンドエフェクタ状態などのraw値と前処理済み値&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;行動&lt;/strong&gt;：指令値と実行値。関節位置・速度・トルク、エンドエフェクタ姿勢、デルタ動作などの表現を明記&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;時刻&lt;/strong&gt;：センサーごとのtimestamp、フレーム番号、制御周期、episode開始・終了時刻&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;終了情報&lt;/strong&gt;：報酬または評価値、discount、is_first、is_last、is_terminal、成功・失敗・中断の理由&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;メタデータ&lt;/strong&gt;：タスクID、ロボット構成、センサー構成、単位、座標系、カメラとロボットのキャリブレーション&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;再現性情報&lt;/strong&gt;：収集ソフトウェア、データスキーマ、前処理、設定のバージョン&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;複数のロボットやデータセットを統合する場合は、共通の論理スキーマを使いながら、元の行動空間、単位、座標系、制御周期、観測モダリティをメタデータとして残します。同じ&lt;code&gt;action&lt;/code&gt;というフィールドでも、関節指令なのかエンドエフェクタの相対動作なのかで意味は変わるためです。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;実機デモはepisodeとstepの階層で管理し、各stepに観測・行動・時刻・終了状態を、episodeにタスクやセンサーなどのメタデータを付与します。&#34;&gt;flowchart TB&#xA;  D[&#34;Dataset&#34;] --&gt; E[&#34;Episode：1回の試行&#34;]&#xA;  E --&gt; EM[&#34;Episodeメタデータ：タスクID、ロボット構成、センサー構成、キャリブレーション、単位、座標系、バージョン&#34;]&#xA;  E --&gt; S[&#34;Step：episode内のある時刻の観測と行動&#34;]&#xA;  S --&gt; T[&#34;timestamp・フレーム番号・制御周期&#34;]&#xA;  S --&gt; O[&#34;observation：画像、深度、関節状態、エンドエフェクタ状態&#34;]&#xA;  S --&gt; A[&#34;action：指令値・実行値、行動表現&#34;]&#xA;  S --&gt; R[&#34;reward・評価値・discount&#34;]&#xA;  S --&gt; F[&#34;is_first・is_last・is_terminal&#34;]&#xA;  E --&gt; X[&#34;終了情報：成功・失敗・中断・時間制限などの理由&#34;]&lt;/pre&gt;&lt;figcaption&gt;実機デモはepisodeとstepの階層で管理し、各stepに観測・行動・時刻・終了状態を、episodeにタスクやセンサーなどのメタデータを付与します。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;保存形式は学習基盤で選ぶ&#34;&gt;保存形式は学習基盤で選ぶ&lt;/h2&gt;&#xA;&lt;p&gt;保存形式は一つに固定されません。重要なのは、論理的なepisode・step構造と、原仕様を失わないメタデータです。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;形式&lt;/th&gt;&#xA;          &lt;th&gt;構造・特徴&lt;/th&gt;&#xA;          &lt;th&gt;向いている場面&lt;/th&gt;&#xA;          &lt;th&gt;注意点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;RLDS&lt;/td&gt;&#xA;          &lt;td&gt;episodeとstepを中心に、観測、行動、終了状態などを表現&lt;/td&gt;&#xA;          &lt;td&gt;step中心の学習基盤、複数データセットの統合&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;is_last&lt;/code&gt;や&lt;code&gt;is_terminal&lt;/code&gt;の意味を実装間で確認する&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;robomimic HDF5&lt;/td&gt;&#xA;          &lt;td&gt;demo単位にactions、observations、rewards、donesなどを格納&lt;/td&gt;&#xA;          &lt;td&gt;robomimicを利用するロボット操作学習&lt;/td&gt;&#xA;          &lt;td&gt;HDF5内のキーとデータ型、終了状態の意味をそろえる&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Parquet・MP4系&lt;/td&gt;&#xA;          &lt;td&gt;低次元データやメタデータを表形式、映像を動画チャンクとして分離&lt;/td&gt;&#xA;          &lt;td&gt;映像と状態データを分けた運用、I/Oや管理単位を重視する場合&lt;/td&gt;&#xA;          &lt;td&gt;圧縮方式やフレーム欠落の影響をタスクごとに確認する&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;実務では、変更しないrawログ層、学習向けに正規化した層、品質検証結果とprovenanceを管理するmanifest層の三層構成が扱いやすい設計です。rawを上書きせず、変換元と変換処理のバージョンを追跡できるようにします。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
