<?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/categories/%E3%82%AB%E3%83%A1%E3%83%A9/</link>
    <description>Recent content in カメラ on Physical AI Hub</description>
    <generator>Hugo</generator>
    <language>ja-jp</language>
    <lastBuildDate>Thu, 05 Nov 2026 15:22:58 +0900</lastBuildDate>
    <atom:link href="https://physicalaihub.net/categories/%E3%82%AB%E3%83%A1%E3%83%A9/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ロボット視覚の語彙設計：オープンボキャブラリー認識とタスク限定認識の使い分け</title>
      <link>https://physicalaihub.net/posts/robot-vision-open-vocabulary-task-specific-recognition/</link>
      <pubDate>Thu, 05 Nov 2026 15:22:58 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-vision-open-vocabulary-task-specific-recognition/</guid>
      <description>&lt;p&gt;語彙を広げるほどロボットが賢くなるのか、それとも判断を狭く保つことが安全につながるのかが、このテーマの出発点です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;結論&#34;&gt;結論&lt;/h2&gt;&#xA;&lt;p&gt;認識対象が頻繁に変わり、未知物体の発見や自然言語による対象指定が必要なら、オープンボキャブラリー認識を第一候補にする。一方、棚卸しSKUやピッキング対象が固定され、誤検出のコストと再現性が重い場合は、タスク限定認識を基本にするのが妥当だ。&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;/p&gt;&#xA;&lt;p&gt;そのため、認識器の選択は既知クラスの精度だけで決められない。未知物体を誤って受け入れる割合、低信頼度入力を拒否したときのカバレッジ、信頼度の校正、推論遅延、メモリ使用量、カテゴリ追加コスト、最終的な行動成功率を分けて考える必要がある。&lt;/p&gt;&#xA;&lt;h2 id=&#34;用語と仕組み&#34;&gt;用語と仕組み&lt;/h2&gt;&#xA;&lt;p&gt;オープンボキャブラリー認識は、学習時に固定したクラスIDだけでなく、推論時にテキストクエリなどで指定した語彙の対象を認識・検出する方式である。画像と自然言語の対応を学習したモデルでは、テキストラベルを指定したゼロショット分類が可能になる。OWL-ViT、Grounding DINO、ViLDは、この考え方を物体検出へ適用する代表例である。&lt;/p&gt;&#xA;&lt;p&gt;一方、タスク限定認識は、業務で扱う対象とラベル定義をあらかじめ限定し、その範囲で分類・検出する構成を指す。対象が固定されているなら、必要なクラス、属性、拒否条件を明確に設計しやすい。反復的なピッキングや固定SKUの棚卸しでは、語彙を広げることよりも、定義した対象を安定して扱うことが優先される。&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;/p&gt;&#xA;&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;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;オープンボキャブラリー候補生成\nテキストクエリで対象を指定&#34;]&#xA;  B --&gt; C{&#34;候補の信頼度と対象条件を確認&#34;}&#xA;  C --&gt;|&#34;未知・低信頼度、または条件不一致&#34;| D[&#34;拒否・再観測・人手確認&#34;]&#xA;  C --&gt;|&#34;検証対象として受理&#34;| E[&#34;タスク限定分類&#34;]&#xA;  E --&gt; F[&#34;属性・姿勢・把持可能性を検証&#34;]&#xA;  F --&gt; G{&#34;信頼度と安全規則を確認&#34;}&#xA;  G --&gt;|&#34;条件を満たす&#34;| H[&#34;ロボット動作&#34;]&#xA;  G --&gt;|&#34;条件を満たさない&#34;| D&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;推論時にテキストなどで変更・追加&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;固定SKU、反復ピッキング、固定部品&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-vision-global-rolling-shutter-selection/</link>
      <pubDate>Fri, 16 Oct 2026 13:17:57 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-vision-global-rolling-shutter-selection/</guid>
      <description>&lt;p&gt;ロボットの速度だけでは、カメラ画像の歪みを判断できない点が気になります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;グローバルシャッターとローリングシャッターは、ロボットの関節速度や公称フレームレートだけで選ぶべきではありません。判断の中心は、画像面上の速度 &lt;code&gt;v_img&lt;/code&gt;、センサーの実効読み出し時間 &lt;code&gt;T_read&lt;/code&gt;、そして認識・計測で許容できる画素誤差です。&lt;/p&gt;&#xA;&lt;p&gt;一次評価では、ローリングシャッターの行間位置ずれを &lt;code&gt;v_img × T_read&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;/p&gt;&#xA;&lt;p&gt;一次近似として、行間の位置ずれは次式で表せます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;位置ずれ ≈ v_img × T_read&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;ここで &lt;code&gt;v_img&lt;/code&gt; は画像面上の速度、&lt;code&gt;T_read&lt;/code&gt; はフレームの実効読み出し時間です。これは選定初期の目安であり、回転、加減速、深度変化を含む実際の動作では動的試験が必要です。ROIやビニングによって読み出し時間が変わる場合もあるため、カメラの設定条件をそろえて確認します。&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;FrameStartを同期しても、ローリングシャッターでは行ごとの露光時刻の差が残る。実効読み出し時間や行時間は実際の撮像設定とセンサー仕様で確認する。&#34;&gt;flowchart TB&#xA;  T0[&#34;FrameStartトリガー&#34;] --&gt; G&#xA;  subgraph G[&#34;グローバルシャッター&#34;]&#xA;    G1[&#34;行1：露光開始&#34;]&#xA;    G2[&#34;行2：露光開始&#34;]&#xA;    G3[&#34;行3：露光開始&#34;]&#xA;    G1 --- G2 --- G3&#xA;    GE[&#34;全行の露光区間が同時刻に近く重なる&#34;]&#xA;    G1 --&gt; GE&#xA;    G2 --&gt; GE&#xA;    G3 --&gt; GE&#xA;  end&#xA;  T0 --&gt; R&#xA;  subgraph R[&#34;ローリングシャッター&#34;]&#xA;    R1[&#34;行1：時刻 t0 に露光&#34;]&#xA;    R2[&#34;行2：時刻 t0 + Δt に露光&#34;]&#xA;    R3[&#34;行3：時刻 t0 + 2Δt に露光&#34;]&#xA;    R1 --&gt; R2 --&gt; R3&#xA;    RE[&#34;上端と下端で撮像時刻が異なる&#34;]&#xA;    R3 --&gt; RE&#xA;  end&#xA;  G --&gt; GT[&#34;実効読み出し時間 T_read と露光時間を仕様確認&#34;]&#xA;  R --&gt; RT[&#34;行時間・総読み出し時間 T_read・読み出し方向を仕様確認&#34;]&lt;/pre&gt;&lt;figcaption&gt;FrameStartを同期しても、ローリングシャッターでは行ごとの露光時刻の差が残る。実効読み出し時間や行時間は実際の撮像設定とセンサー仕様で確認する。&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;露光時間によるモーションブラーは、行間の幾何歪みとは別の現象です。露光時間を短くすれば露光中のブラーは減りますが、ローリングシャッターの行間時間差や読み出し由来の歪みが自動的に消えるわけではありません。グローバルシャッターでも、露光中の移動、レンズ歪み、振動、照明フリッカーは残り得ます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボット視覚の分布外検知：未知物体を見つけて安全に行動を保留する設計</title>
      <link>https://physicalaihub.net/posts/robot-visual-ood-detection-safe-abstention/</link>
      <pubDate>Sun, 04 Oct 2026 14:37:40 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-visual-ood-detection-safe-abstention/</guid>
      <description>&lt;p&gt;未知物体を見つけることと、ロボットを安全に止めることは、同じ判定ではありません。この違いが設計の分かれ目です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;結論&#34;&gt;結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボットの視覚認識で未知物体や分布外（OOD）入力を扱うには、最大ソフトマックス確率だけで行動可否を決めてはいけません。分類信頼度、OODスコア、物体の位置推定品質、モデル間の不一致、センサ健全性、フレーム間の一貫性を組み合わせた受理ゲートを設け、条件を満たさない入力は行動系へ渡さず、明示的な&lt;code&gt;safe-hold&lt;/code&gt;状態へ送る設計が現実的です。&lt;/p&gt;&#xA;&lt;p&gt;safe-holdでは、状況に応じて停止または減速し、再観測、再計画、人間確認などへ切り替えます。閾値は一般的な固定値ではなく、危険な誤受理を重く扱うリスク・カバレッジ評価と、照明、遮蔽、反射、モーションブラー、センサ欠損を含む実機シナリオで決める必要があります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ未知入力への備えが必要か&#34;&gt;なぜ未知入力への備えが必要か&lt;/h2&gt;&#xA;&lt;p&gt;OOD検知は、学習時のデータ分布から外れた入力を検出する問題です。一方、オープンセット認識は、テスト時に学習時には存在しなかった未知クラスを扱う問題として整理できます。既知クラスの精度が高くても、実環境で未知物体を既知クラスの一つとして誤認すれば、把持や進入などの行動に誤った前提を渡す可能性があります。&lt;/p&gt;&#xA;&lt;p&gt;ただし、未知物体であること自体が物理的危険を意味するわけではありません。反対に、既知クラスでも遮蔽、異常姿勢、反射、ブラー、センサ故障によって危険な認識が生じる場合があります。そのため、OOD検知は安全性全体の判定器ではなく、視覚認識パイプラインの一つの警告信号として扱います。&lt;/p&gt;&#xA;&lt;h2 id=&#34;信頼度とoodスコアの前提&#34;&gt;信頼度とOODスコアの前提&lt;/h2&gt;&#xA;&lt;p&gt;最大ソフトマックス確率は、誤分類例やOOD例を検出する低コストなベースラインです。しかし、その値を正しさや安全性の確率として直接解釈することはできません。深層モデルでは、予測確率と実際の正解率が一致しない校正不良が起こり得るためです。必要に応じて校正を検討しても、分布シフト下で安全な確信度が保証されるわけではありません。&lt;/p&gt;&#xA;&lt;p&gt;候補となる方法には、特徴空間での距離、クラス条件付き分布からのMahalanobis距離、複数モデルの予測分散を利用する深層アンサンブルがあります。手法ごとに検出しやすい分布外入力が異なり、画像分類、物体検出、敵対的入力、実環境のセンサ劣化を横断して論文上の数値を直接比較することはできません。&lt;/p&gt;&#xA;&lt;p&gt;ロボットでは画像全体のOOD判定だけで不十分な場合があります。未知物体が画面の一部にあるなら、その領域を局所化し、既知物体と未知物体を区別するオープンワールド物体検出が必要です。物体検出の信頼度が低い、位置が不安定、未知領域が行動経路に重なる、といった情報を行動判断へ渡せる形にします。&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;視覚認識の出力を直接アクチュエータへ接続せず、複数の信号を受理ゲートで確認してから行動またはsafe-holdへ分岐させる。&#34;&gt;flowchart LR&#xA;  A[&#34;カメラなどのセンサ入力&#34;] --&gt; B[&#34;物体検出・分類&#34;]&#xA;  B --&gt; C[&#34;物体クラス・位置・物体性・検出信頼度&#34;]&#xA;  C --&gt; D[&#34;OOD・不確実性の評価&#34;]&#xA;  D --&gt; D1[&#34;最大確率・校正済み信頼度&#34;]&#xA;  D --&gt; D2[&#34;特徴距離&#34;]&#xA;  D --&gt; D3[&#34;モデル間の予測ばらつき&#34;]&#xA;  C --&gt; E[&#34;未知物体の領域・局所化&#34;]&#xA;  A --&gt; F[&#34;センサ健全性の確認&#34;]&#xA;  B --&gt; G[&#34;フレーム間の位置・クラスの一貫性&#34;]&#xA;  D1 --&gt; H[&#34;多段の受理ゲート&#34;]&#xA;  D2 --&gt; H&#xA;  D3 --&gt; H&#xA;  E --&gt; H&#xA;  F --&gt; H&#xA;  G --&gt; H&#xA;  H --&gt;|&#34;条件を満たす&#34;| I[&#34;行動計画へ渡す&#34;]&#xA;  H --&gt;|&#34;条件を満たさない&#34;| J[&#34;safe-hold&#34;]&#xA;  J --&gt; J1[&#34;停止または減速&#34;]&#xA;  J --&gt; J2[&#34;再観測・再計画&#34;]&#xA;  J --&gt; J3[&#34;人間確認&#34;]&lt;/pre&gt;&lt;figcaption&gt;視覚認識の出力を直接アクチュエータへ接続せず、複数の信号を受理ゲートで確認してから行動またはsafe-holdへ分岐させる。&lt;/figcaption&gt;&lt;/figure&gt;&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-geometric-calibration-accuracy-validation/</link>
      <pubDate>Wed, 30 Sep 2026 14:21:31 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-geometric-calibration-accuracy-validation/</guid>
      <description>&lt;p&gt;ロボットの位置ずれは、単一の補正値だけでは説明できないことが多い点が気になります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボットの位置決め精度を改善するには、最初にベース、関節、フランジ、工具、カメラ、対象物の座標系と変換方向を定義する。そのうえで、関節オフセット、リンク幾何、工具先端点（TCP）、カメラ内部パラメータ、ハンドアイ変換を別々の誤差源として校正する。推定には十分な姿勢分布と外部計測器を用い、校正に使っていない姿勢で位置決め精度と繰返し精度を検証することが基本である。&lt;/p&gt;&#xA;&lt;p&gt;校正後の性能は、平均誤差だけで判断してはならない。最大誤差、試行間のばらつき、位置と姿勢の誤差、温度・荷重・速度、計測不確かさを併記し、対象工程の許容差と照合する必要がある。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ誤差を分解するのか&#34;&gt;なぜ誤差を分解するのか&lt;/h2&gt;&#xA;&lt;p&gt;指令した工具位置と実際の位置がずれる原因には、関節のゼロオフセット、リンク長・ねじれ・関節配置、フランジから工具先端までのTCP、カメラの内部パラメータ、ロボットとカメラの外部関係などがある。これらは異なる座標変換や観測量に関係するため、一つの補正値にまとめると別の姿勢で誤差が再び現れやすい。&lt;/p&gt;&#xA;&lt;p&gt;たとえばTCPの誤差をリンクパラメータへ吸収すると、校正に使った姿勢では残差が小さくても、工具の向きを変えたときにずれが現れる可能性がある。カメラのレンズ歪みをハンドアイ変換で補正する場合も、誤差源の管理が不明確になる。誤差の種類ごとに推定・保存・検証することが再利用の前提となる。&lt;/p&gt;&#xA;&lt;h2 id=&#34;座標系と運動学モデル&#34;&gt;座標系と運動学モデル&lt;/h2&gt;&#xA;&lt;p&gt;まず、各座標系の名称、親子関係、単位、変換行列の向きを記録する。ベースから関節列、フランジ、TCPへ至る関係に加え、カメラがフランジに取り付くeye-in-handか、作業空間に固定されるeye-to-handかも明示する。対象物やワールド座標系についても、どの座標からどの座標へ変換するかを定義する。&lt;/p&gt;&#xA;&lt;p&gt;運動学モデルには標準DH、修正DH、指数積形式などがある。同じ「リンク長」や「ねじれ」という名称でも、モデルが違えばパラメータの意味や符号は一致しない。したがって、数値だけを別のコントローラやソフトウェアへ移植してはならない。座標系規約、DH規約、単位、カメラ内外部パラメータの定義、コントローラとソフトウェアのバージョンを一緒に管理する。&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;p&gt;カメラ内部校正はロボット運動学とは分けて行う。焦点距離、主点、レンズ歪みは、平面パターンを複数の姿勢から撮影して推定できる。次に、フランジ装着カメラとロボットの関係、または固定カメラとロボットベースの関係をハンドアイ校正で求める。これは相対運動から剛体変換を推定するAX=XB型の問題として表せるが、eye-in-handとeye-to-handでは行列の定義と変換方向が異なる。式を流用せず、座標系の定義に合わせて確認する。&lt;/p&gt;&#xA;&lt;p&gt;TCPはフランジ座標系から工具座標系への変換として扱う。リンク幾何やカメラ外部パラメータへ混ぜず、工具姿勢を変えても同じTCPが対象点を表すかを独立に確認する。&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;ロボットの幾何キャリブレーションでは、関節列からTCPまでの運動学、カメラ内部パラメータ、カメラ外部変換、対象物との関係を分けて管理し、各変換の向きと単位を明示する。&#34;&gt;flowchart LR&#xA;  B[&#34;ベース座標系&#34;] --&gt;|&#34;順運動学&#34;| J1[&#34;関節1&#34;]&#xA;  J1 --&gt; J2[&#34;関節2 … 関節列&#34;]&#xA;  J2 --&gt; F[&#34;フランジ座標系&#34;]&#xA;  F --&gt;|&#34;T_フランジ→TCP&#34;| TCP[&#34;工具座標系（TCP）&#34;]&#xA;&#xA;  F --&gt;|&#34;取り付け関係・ハンドアイ変換&#34;| CEH[&#34;カメラ座標系\neye-in-hand&#34;]&#xA;  B --&gt;|&#34;ベース→カメラ外部変換&#34;| CETH[&#34;カメラ座標系\neye-to-hand&#34;]&#xA;&#xA;  W[&#34;ワールド座標系&#34;] --&gt;|&#34;対象物の配置&#34;| T[&#34;対象物座標系&#34;]&#xA;  CEH --&gt;|&#34;画像観測&#34;| T&#xA;  CETH --&gt;|&#34;画像観測&#34;| T&#xA;&#xA;  K[&#34;カメラ内部パラメータ\n焦点距離・主点・歪み&#34;] --&gt; CEH&#xA;  K --&gt; CETH&#xA;  N[&#34;各変換の向き・単位・規約を文書化&#34;] -.-&gt; B&#xA;  N -.-&gt; TCP&#xA;  N -.-&gt; CEH&#xA;  N -.-&gt; CETH&lt;/pre&gt;&lt;figcaption&gt;ロボットの幾何キャリブレーションでは、関節列からTCPまでの運動学、カメラ内部パラメータ、カメラ外部変換、対象物との関係を分けて管理し、各変換の向きと単位を明示する。&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;関節角の基準ずれ&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;TCP&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>ロボットの3D空間表現を選ぶ：ボクセル・TSDF・点群・ニューラル表現の比較</title>
      <link>https://physicalaihub.net/posts/robot-3d-spatial-representation-selection/</link>
      <pubDate>Tue, 22 Sep 2026 13:42:06 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-3d-spatial-representation-selection/</guid>
      <description>&lt;p&gt;3Dセンサーの入力形式が同じでも、地図と計画が必要とする情報は大きく異なります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボットの3D空間表現は、方式の優劣ではなく、下流処理が何を問い合わせるかで選びます。未知・自由・占有を区別する地図や保守的な障害物判定には占有ボクセルが基本候補です。疎な環境や可変解像度を重視する大域地図では、占有確率をオクトツリーで管理するOctoMapを検討します。&lt;/p&gt;&#xA;&lt;p&gt;表面の融合やメッシュ生成にはTSDF、障害物までの距離や勾配を局所計画で使うならESDF、センサ直結の登録・セグメンテーション・局所認識には点群が適します。ニューラル表現は、視点合成や連続的な形状クエリなど、手法固有の機能が必要な場合の候補です。ただし、安全性が重要なオンライン衝突回避では、占有表現または保守的な距離場との併用と検証が必要です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ選択が難しいのか&#34;&gt;なぜ選択が難しいのか&lt;/h2&gt;&#xA;&lt;p&gt;同じ深度カメラやLiDARの入力でも、地図、認識、計画が必要とする情報は異なります。「このセルは占有か」「表面までの距離はいくらか」「観測点の属性は何か」「任意の座標で形状を問い合わせられるか」は別のクエリです。したがって、表現を選ぶ際は、必要なクエリ、未知領域の規則、解像度、更新頻度、メモリ、計画への接続方法を先に決めます。&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;は3D空間をセルに分ける離散化単位です。セルには占有状態、占有確率、距離などを格納できます。&lt;strong&gt;占有グリッド&lt;/strong&gt;は、セルをoccupied、free、unknown、または占有確率で管理する表現です。センサ光線に沿った自由空間の更新や、未知を残した衝突判定に向きます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;OctoMap&lt;/strong&gt;は、占有確率をオクトツリーで管理する具体的な方式です。均質な領域を上位ノードにまとめるため、固定解像度の密な3D配列に比べ、疎な環境や可変解像度に対応しやすい構成です。ボクセルという一般的な単位と、OctoMapという管理方式は同じ抽象レベルではありません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TSDF&lt;/strong&gt;は、各ボクセルに最寄りの表面までの符号付き距離を格納し、一定の帯域で切り詰める表面中心の表現です。深度観測を重み付きで融合できます。&lt;strong&gt;ESDF&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;TSDFは「未知かどうか」より「観測された表面がどこにあるか」を扱います。深度センサからの密な表面再構成、メッシュ生成、カメラトラッキングに向く一方、占有確率や未知空間を直接表しません。TSDFだけを安全側の占有地図として使うには、表面抽出や追加の判定規則が必要です。&lt;/p&gt;&#xA;&lt;p&gt;ESDFは計画器が必要とする距離情報を直接提供します。VoxbloxはTSDFを増分更新し、そこからESDFを構築して計画に利用する構成を示しています。つまり、TSDFとESDFは競合する選択肢ではなく、観測融合と計画で連結できます。符号規約、障害物の定義、未知領域の扱いは実装ごとに確認してください。&lt;/p&gt;&#xA;&lt;p&gt;点群は点の座標に加え、法線、色、強度などの属性を保持できます。登録、特徴抽出、認識、セグメンテーションなどに直接使いやすい反面、未観測空間が自由か未知か、空間全体の占有確率は点群単体から直接は分かりません。長距離計画や保守的な衝突判定では、占有グリッドや距離場への変換が必要になることが多くなります。&lt;/p&gt;&#xA;&lt;p&gt;NeRFは位置と視線方向から放射輝度や体積密度を返す連続関数を最適化し、主用途は新規視点画像の合成です。原型のNeRFを、そのまま衝突判定用の幾何表現とはみなせません。一方、ニューラルSDF系はニューラルネットワークで連続的な符号付き距離関数を表し、ロボット向けのオンライン3D再構成や知覚に利用できます。&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;占有表現、TSDF、ESDFは保持する情報と得意な問い合わせが異なります。ESDFの符号規約や未知領域の扱いは実装ごとに確認が必要です。&#34;&gt;flowchart LR&#xA;  subgraph O[&#34;占有表現&#34;]&#xA;    O1[&#34;セル&#34;] --&gt; O2[&#34;occupied / free / unknown&#34;]&#xA;    O2 --&gt; O3[&#34;占有確率や保守的な判定&#34;]&#xA;  end&#xA;  subgraph T[&#34;TSDF&#34;]&#xA;    T1[&#34;ボクセル&#34;] --&gt; T2[&#34;表面までの符号付き距離&#34;]&#xA;    T2 --&gt; T3[&#34;切り詰め・重み付き融合&#34;]&#xA;    T3 --&gt; T4[&#34;表面再構成・メッシュ生成&#34;]&#xA;  end&#xA;  subgraph E[&#34;ESDF&#34;]&#xA;    E1[&#34;空間上の位置&#34;] --&gt; E2[&#34;障害物または表面までの距離&#34;]&#xA;    E2 --&gt; E3[&#34;距離勾配・クリアランス&#34;]&#xA;    E3 --&gt; E4[&#34;距離制約・軌道最適化&#34;]&#xA;  end&#xA;  O -.-&gt; N[&#34;未知領域の扱いは安全判定で確認&#34;]&#xA;  T -.-&gt; N&#xA;  E -.-&gt; N2[&#34;符号規約と未知領域の定義は実装ごとに確認&#34;]&lt;/pre&gt;&lt;figcaption&gt;占有表現、TSDF、ESDFは保持する情報と得意な問い合わせが異なります。ESDFの符号規約や未知領域の扱いは実装ごとに確認が必要です。&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;occupied/free/unknown、占有確率&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;OctoMap&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;TSDF&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;ESDF&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;放射輝度・密度、または連続SDF&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;一つの表現ですべてを賄う必要はありません。深度カメラやLiDARから点群を生成し、点群を占有ボクセルまたはTSDFへ融合します。計画時にはTSDFからESDFを構築し、距離制約や勾配を局所計画へ渡します。認識系では元の点群を登録やセグメンテーションに使い、必要に応じてニューラル特徴やニューラルSDFを並行利用できます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボットの能動視覚設計：認識精度と行動コストから次の視点を選ぶ方法</title>
      <link>https://physicalaihub.net/posts/robot-active-vision-next-best-view/</link>
      <pubDate>Mon, 21 Sep 2026 13:40:55 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-active-vision-next-best-view/</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;固定カメラによる受動的な認識では、ロボットは与えられた画像から判断します。能動視覚では、視点やセンサの動作をタスクと結び付け、遮蔽された面を別角度から観測したり、対象姿勢を推定しやすい位置へ移動したりします。知覚は入力処理だけでなく、観測行動を含むループになります。&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;とは、現在までの観測履歴から推定した対象姿勢、地図、自己位置、分類結果などの不確実な状態です。部分観測環境では真の状態を直接知れないため、観測のたびに信念状態を更新します。&lt;/p&gt;&#xA;&lt;p&gt;**Next-Best-View（NBV）**は、複数の候補視点から、次に観測する場所を選ぶ計画問題です。情報価値には、エントロピー減少、相互情報量、未知ボクセル数、推定共分散の減少などを使えます。ただし、最適な指標は認識、位置推定、再構成、把持などの下流タスクによって変わります。&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;p&gt;&lt;code&gt;score(a) = E[ΔJ | a] - λC(a)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;a&lt;/code&gt; は候補視点またはそこへ移動する行動、&lt;code&gt;E[ΔJ | a]&lt;/code&gt; は観測による期待タスク効用の増分、&lt;code&gt;C(a)&lt;/code&gt; は行動コスト、&lt;code&gt;λ&lt;/code&gt; はコストの重みです。&lt;code&gt;J&lt;/code&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;  B[&#34;現在の信念状態\n対象姿勢・地図・自己位置・分類結果&#34;] --&gt; G[&#34;候補視点を生成&#34;]&#xA;  T[&#34;タスク目標&#34;] --&gt; G&#xA;  G --&gt; P[&#34;観測予測\n可視領域・観測品質・期待結果&#34;]&#xA;  P --&gt; U[&#34;期待タスク効用を評価&#34;]&#xA;  P --&gt; C[&#34;行動コストを評価\n移動時間・距離・エネルギー・安全性&#34;]&#xA;  C --&gt; F[&#34;到達可能性・衝突を確認&#34;]&#xA;  U --&gt; S[&#34;スコア計算または制約判定&#34;]&#xA;  F --&gt; S&#xA;  S --&gt; V[&#34;次に実行する視点を選択&#34;]&#xA;  V --&gt; A[&#34;ロボットが移動・撮像&#34;]&#xA;  A --&gt; O[&#34;画像・深度情報を取得&#34;]&#xA;  O --&gt; R[&#34;信念状態と地図を更新&#34;]&#xA;  R --&gt; G&lt;/pre&gt;&lt;figcaption&gt;能動視覚では、視点を一度決めて固定するのではなく、観測後の信念状態と地図の更新を受けて次の視点を再計算します。&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;観測後は画像や深度情報から信念状態と地図を更新し、次の候補視点を再計算します。遮蔽、自己位置、対象姿勢、未知領域の推定は観測によって変わるため、最初の計画を最後まで固定するより、閉ループで再計画する方が未知環境や予測誤差を扱いやすくなります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボット自己位置推定のセンサーフュージョン設計：カメラ・LiDAR・IMUの役割分担</title>
      <link>https://physicalaihub.net/posts/robot-localization-camera-lidar-imu-fusion/</link>
      <pubDate>Thu, 13 Aug 2026 01:47:13 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-localization-camera-lidar-imu-fusion/</guid>
      <description>&lt;p&gt;センサーを増やすほど自己位置推定が安定するのか、環境条件から考え直せる点がこのテーマの面白さです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;導入&#34;&gt;導入&lt;/h2&gt;&#xA;&lt;p&gt;ロボットの自己位置推定で、カメラ・LiDAR・IMUを常にすべて使えばよいとは限りません。選択の基本は、IMUを短時間の運動伝播に使い、カメラは視覚特徴、LiDARは距離と幾何形状の拘束に使うことです。明るく特徴の多い環境ではカメラ+IMU、暗所や照明変動下で幾何が豊富な環境ではLiDAR+IMUが有力です。視覚と幾何のどちらか一方が失敗しやすく、冗長性も必要なら3センサー構成を検討します。&lt;/p&gt;&#xA;&lt;p&gt;ただし、センサー数の多さだけで精度が決まるわけではありません。時刻同期、外部パラメータ、座標系、IMUバイアスを整合でき、追加される計算量と実装負荷を許容できることが前提です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ組み合わせの判断が必要か&#34;&gt;なぜ組み合わせの判断が必要か&lt;/h2&gt;&#xA;&lt;p&gt;自己位置推定は、各センサーの観測を同じ状態推定問題へ取り込む処理です。センサーには得意な時間スケールと失敗条件があります。IMUは高レートですが、バイアスやノイズを積分するため、単独では時間とともにドリフトします。カメラは再観測による相対的な拘束を与えられますが、照明やテクスチャに左右されます。LiDARは照明そのものではなく形状を観測できますが、幾何的に特徴の少ない場所や点群が疎になる条件では位置合わせが退化します。&lt;/p&gt;&#xA;&lt;p&gt;したがって設計の問いは「どのセンサーが最も高性能か」ではなく、「対象環境でどの観測が残り、どの失敗を別の観測で補えるか」です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;各センサーが提供する情報&#34;&gt;各センサーが提供する情報&lt;/h2&gt;&#xA;&lt;h3 id=&#34;imu高レートの短期伝播&#34;&gt;IMU：高レートの短期伝播&lt;/h3&gt;&#xA;&lt;p&gt;IMUは角速度と比力を取得し、姿勢・速度・位置の短時間の伝播を支えます。カメラやLiDARの観測間をつなぎ、高速運動時にも状態を更新できる点が役割です。一方、慣性積分だけでは誤差が蓄積するため、カメラやLiDARからの拘束でバイアスと状態を補正します。&lt;/p&gt;&#xA;&lt;h3 id=&#34;カメラ特徴と外観による相対拘束&#34;&gt;カメラ：特徴と外観による相対拘束&lt;/h3&gt;&#xA;&lt;p&gt;カメラは画像特徴の追跡と、外観情報の再観測を利用します。十分な照明、視覚テクスチャ、適度なモーションがある環境では、IMUと組み合わせたVisual-Inertial Odometry（VIO）が機能します。画像特徴を一時的に追跡できない場合でも、IMUが短時間の運動拘束を提供しますが、視覚観測が長く失われれば慣性ドリフトを抑えにくくなります。&lt;/p&gt;&#xA;&lt;h3 id=&#34;lidar距離と幾何による拘束&#34;&gt;LiDAR：距離と幾何による拘束&lt;/h3&gt;&#xA;&lt;p&gt;LiDARは点群の距離・幾何形状を使い、スキャン間またはスキャンと地図の位置合わせを行います。暗所や照明変動の影響を受けにくい環境では、IMUと組み合わせたLiDAR-Inertial Odometry（LIO）が候補になります。IMUは短時間の運動推定だけでなく、点群のモーションデスクューにも利用できます。ただし、広く平坦な場所など幾何的な手掛かりが少ない環境では、LiDARの拘束が弱くなる可能性があります。&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;IMUによる短時間伝播に、カメラの視覚拘束とLiDARの幾何拘束を組み合わせる概念図。実際の性能や処理順序は実装に依存します。&#34;&gt;flowchart LR&#xA;  I[&#34;IMU\n角速度・比力&#34;] --&gt; P[&#34;高レートの短時間伝播\n姿勢・速度・位置&#34;]&#xA;  C[&#34;カメラ\n画像特徴・再観測&#34;] --&gt; V[&#34;視覚拘束&#34;]&#xA;  L[&#34;LiDAR\n距離・点群・幾何形状&#34;] --&gt; G[&#34;幾何拘束\nスキャン間または地図との位置合わせ&#34;]&#xA;  I --&gt; D[&#34;点群のモーションデスクュー&#34;]&#xA;  D --&gt; G&#xA;  P --&gt; E[&#34;状態推定器&#34;]&#xA;  V --&gt; E&#xA;  G --&gt; E&#xA;  E --&gt; S[&#34;状態・IMUバイアスの補正&#34;]&#xA;  E -.-&gt; Q[&#34;品質指標の監視\n残差・イノベーションなど&#34;]&#xA;  E --&gt; M[&#34;推定状態&#34;]&#xA;  K[&#34;EKF系または因子グラフ・平滑化系&#34;] --&gt; E&lt;/pre&gt;&lt;figcaption&gt;IMUによる短時間伝播に、カメラの視覚拘束とLiDARの幾何拘束を組み合わせる概念図。実際の性能や処理順序は実装に依存します。&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;IMU単独&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;カメラ+IMU（VIO）&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;LiDAR+IMU（LIO）&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;カメラ+LiDAR+IMU&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;p&gt;3センサー構成は、カメラとLiDARの観測が相互補完になるときに意味があります。たとえば照明条件が不安定でも形状が豊富ならLiDARが支え、幾何が一時的に弱くても視覚特徴が残っていればカメラが補います。ただし、3センサーの優位性をあらゆる条件で示す一般的な比較結果があるわけではなく、採用判断は環境、実装、計算資源に依存します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボット視覚サーボ入門：画像ベース制御と位置ベース制御の選択</title>
      <link>https://physicalaihub.net/posts/robot-visual-servoing-image-position-based-control/</link>
      <pubDate>Fri, 24 Jul 2026 01:33:52 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-visual-servoing-image-position-based-control/</guid>
      <description>&lt;p&gt;画像上の誤差と実空間の誤差は、同じ「ずれ」でも制御設計上の意味が異なります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;結論&#34;&gt;結論&lt;/h2&gt;&#xA;&lt;p&gt;視覚サーボの方式は、何を誤差として制御したいか、そして対象モデル・校正・深度情報をどの程度信頼できるかで選ぶ。画像上の特徴を目標へ合わせることが主目的で、対象の3Dモデルや絶対姿勢を十分に利用できない場合は、画像ベース視覚サーボ（IBVS）が候補になり得る。一方、対象との相対的な並進位置や回転姿勢を推定し、Cartesian空間の軌道や姿勢制約を設計したい場合は、位置ベース視覚サーボ（PBVS）が候補になる。&lt;/p&gt;&#xA;&lt;p&gt;ただし、これは一般的な性能順位ではない。深度推定、視野、初期条件、対象モデル、カメラ校正、遅延などによって結果は変わる。画像上の視認性と実空間の軌道精度を両立したい場合は、2.5D視覚サーボや、IBVSとPBVSを段階的・協調的に使うハイブリッド構成も検討対象になる。&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;ibvsとpbvs&#34;&gt;IBVSとPBVS&lt;/h2&gt;&#xA;&lt;p&gt;IBVSは、画像特徴量と目標画像特徴量の差を制御する方式である。画像上の点や輪郭などを特徴量として扱い、対象の完全な3D姿勢を明示的に復元せずに、画像上の誤差を直接小さくする。&lt;/p&gt;&#xA;&lt;p&gt;ただし、画像特徴の変化とカメラ運動の関係を表す相互作用行列には、対象までの深度、またはその近似値が必要になることが多い。したがってIBVSは、3D情報が一切不要な方式ではない。また、アイ・イン・ハンド構成では、画像特徴の変化をロボットの関節速度やエンドエフェクタ速度へ変換するため、カメラとロボット間の幾何関係が通常必要になる。完全な校正を避ける構成では、オンライン推定や適応的手法が必要になる場合があり、別途検討しなければならない。&lt;/p&gt;&#xA;&lt;p&gt;PBVSは、画像から対象物の3D姿勢を推定し、現在の状態と目標状態との差をCartesian空間で制御する方式である。並進位置は長さの単位で扱い、姿勢は回転行列、クォータニオン、軸角などで表現する。対象の幾何モデルまたは既知の3D情報、カメラの内部パラメータ、カメラとロボットの外部関係が重要になる。&lt;/p&gt;&#xA;&lt;h2 id=&#34;内部の仕組み&#34;&gt;内部の仕組み&lt;/h2&gt;&#xA;&lt;p&gt;IBVSでは、現在の画像特徴を &lt;code&gt;s&lt;/code&gt;、目標特徴を &lt;code&gt;s*&lt;/code&gt; とすると、制御器は概念的に &lt;code&gt;s - s*&lt;/code&gt; の誤差を使ってカメラまたはロボットの速度を決める。相互作用行列を介して画像特徴の変化と運動を結び付け、得られた運動をエンドエフェクタ速度や関節速度へ変換する。&lt;/p&gt;&#xA;&lt;p&gt;PBVSでは、画像特徴から対象の3D位置・姿勢を推定し、その誤差をCartesian制御器へ入力する。空間上の位置や回転姿勢を直接目標として扱える一方、推定値の誤差がそのまま制御へ影響する。対象モデル、カメラパラメータ、ハンドアイ変換の品質が前提になる。&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;IBVSは画像特徴の誤差、PBVSは推定した3D位置・姿勢の誤差をフィードバックする。どちらも画像からロボット運動への変換に必要な幾何情報や推定情報がある。&#34;&gt;flowchart LR&#xA;  subgraph IBVS[&#34;画像ベース視覚サーボ（IBVS）&#34;]&#xA;    I1[&#34;カメラ画像&#34;] --&gt; I2[&#34;画像特徴の抽出&#34;]&#xA;    I2 --&gt; I3[&#34;画像特徴の誤差 s - s*&#34;]&#xA;    I3 --&gt; I4[&#34;制御器・相互作用行列&#34;]&#xA;    I4 --&gt; I5[&#34;カメラまたはロボットの運動&#34;]&#xA;    I5 --&gt; I6[&#34;対象との相対運動&#34;]&#xA;    I6 --&gt; I1&#xA;    D1[&#34;深度または深度近似&#34;] --&gt; I4&#xA;    G1[&#34;カメラとロボットの幾何関係&#34;] --&gt; I4&#xA;  end&#xA;&#xA;  subgraph PBVS[&#34;位置ベース視覚サーボ（PBVS）&#34;]&#xA;    P1[&#34;カメラ画像&#34;] --&gt; P2[&#34;対象の3D位置・姿勢推定&#34;]&#xA;    P2 --&gt; P3[&#34;3D位置・姿勢の誤差&#34;]&#xA;    P3 --&gt; P4[&#34;Cartesian制御器&#34;]&#xA;    P4 --&gt; P5[&#34;エンドエフェクタまたはロボットの運動&#34;]&#xA;    P5 --&gt; P6[&#34;対象との相対運動&#34;]&#xA;    P6 --&gt; P1&#xA;    M1[&#34;対象モデル・既知の3D情報&#34;] --&gt; P2&#xA;    C1[&#34;カメラ内部パラメータ&#34;] --&gt; P2&#xA;    H1[&#34;ハンドアイ変換&#34;] --&gt; P4&#xA;  end&lt;/pre&gt;&lt;figcaption&gt;IBVSは画像特徴の誤差、PBVSは推定した3D位置・姿勢の誤差をフィードバックする。どちらも画像からロボット運動への変換に必要な幾何情報や推定情報がある。&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;IBVS&lt;/th&gt;&#xA;          &lt;th&gt;PBVS&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;画像特徴の誤差&lt;/td&gt;&#xA;          &lt;td&gt;3D位置・姿勢の誤差&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;3D情報、姿勢推定、カメラパラメータ&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;3Dモデルへの依存&lt;/td&gt;&#xA;          &lt;td&gt;完全なモデルに依存しにくい&lt;/td&gt;&#xA;          &lt;td&gt;対象モデルや既知の3D情報が重要&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;Cartesian空間の経路・姿勢&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;/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;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;タスク別の使いどころ&#34;&gt;タスク別の使いどころ&lt;/h2&gt;&#xA;&lt;p&gt;画像上の位置合わせや把持対象への接近では、対象の正確な3Dモデルがなくても画像特徴を目標へ近付けられるため、IBVSが候補になり得る。ただし、深度が不安定、特徴が遮蔽される、初期誤差が大きいといった条件では、その利点が小さくなる可能性がある。ピックアンドプレースでも、制御目標が「画像上で所定の位置へ合わせること」なのか、把持後の空間姿勢まで厳密に保証することなのかを分けて評価する必要がある。&lt;/p&gt;</description>
    </item>
    <item>
      <title>カメラとLiDARの外部キャリブレーション：点群と画像を正しく重ねる方法</title>
      <link>https://physicalaihub.net/posts/camera-lidar-extrinsic-calibration-validation/</link>
      <pubDate>Sat, 25 Apr 2026 00:51:08 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/camera-lidar-extrinsic-calibration-validation/</guid>
      <description>&lt;p&gt;画像と点群のずれは、外部変換だけでなく時刻やレンズ歪みにも現れます。切り分けを手順に組み込めるかが気になったテーマです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;結論&#34;&gt;結論&lt;/h2&gt;&#xA;&lt;p&gt;カメラとLiDARの融合で最初に固定すべきなのは、校正アルゴリズムよりも座標系、変換方向、単位、時刻基準です。そのうえで、カメラの内部パラメータとレンズ歪みを先に校正し、同期した観測からLiDAR座標系をカメラ座標系へ写す剛体変換を推定します。最後に、校正に使っていない姿勢・距離・視野・速度のデータへ点群を再投影し、誤差の大きさと分布を確認します。&lt;/p&gt;&#xA;&lt;p&gt;校正時の残差が小さいだけでは不十分です。画像上のずれが内部パラメータ、外部変換、時間オフセット、LiDARの走査遅延のどれに由来するかを条件別に切り分け、用途に応じた合格基準を定める必要があります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ外部キャリブレーションが重要か&#34;&gt;なぜ外部キャリブレーションが重要か&lt;/h2&gt;&#xA;&lt;p&gt;カメラは画素、LiDARは3次元点として同じ対象を観測します。しかし、それぞれの座標原点や軸方向は異なります。外部パラメータに誤りがあると、LiDAR点を画像へ重ねたときに、物体の輪郭から一定方向へずれたり、距離によってずれが変化したりします。物体検出への深度付与、障害物の位置推定、画像と点群の対応付けでは、この空間的な不整合が直接結果に影響します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;前提となる用語&#34;&gt;前提となる用語&lt;/h2&gt;&#xA;&lt;p&gt;外部パラメータは、LiDAR座標系の点をカメラ座標系へ変換する回転と並進、つまり剛体変換として管理します。実装では、変換をどちら向きに適用するのか、フレーム名、長さの単位、時刻基準を明示します。フレーム間の関係は一貫したフレームツリーで管理し、同じ数値を別の座標軸定義へそのまま移植しないことが重要です。&lt;/p&gt;&#xA;&lt;p&gt;内部パラメータは焦点距離や主点など、カメラ内部の投影特性を表します。レンズ歪みモデルも画像投影に関係するため、外部変換とは分けて推定し、外部キャリブレーションの前に妥当性を確認します。内部行列と歪みモデルが不正確なままでは、外部変換を調整しても再投影誤差を正しく解釈できません。&lt;/p&gt;&#xA;&lt;h2 id=&#34;推奨する校正手順&#34;&gt;推奨する校正手順&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-センサーを剛体として固定する&#34;&gt;1. センサーを剛体として固定する&lt;/h3&gt;&#xA;&lt;p&gt;カメラとLiDARの取り付けを固定し、校正中に相対位置が変わらない状態を作ります。振動や取り付け部の変形が疑われる場合、得られた変換はその時点の状態に限られる可能性があります。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-座標系と時刻を確認する&#34;&gt;2. 座標系と時刻を確認する&lt;/h3&gt;&#xA;&lt;p&gt;各センサーのフレーム名、軸方向、単位、変換の保存方向を記録します。さらに、ハードウェア同期の有無、LiDAR点ごとのタイムスタンプ、走査中の運動補償の有無を確認します。移動中に時間同期が不足すると、時間オフセットが空間的な外部パラメータ誤差として現れます。必要なら時間オフセットを別パラメータとして推定・検証します。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-カメラ内部を校正する&#34;&gt;3. カメラ内部を校正する&lt;/h3&gt;&#xA;&lt;p&gt;平面パターンなどを複数の視点から撮影し、内部パラメータ、歪み、各撮影姿勢を推定します。単一画像だけに依存せず、複数視点の観測で結果を確認します。ここで得た投影モデルを固定してから、カメラとLiDARの外部変換へ進みます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;4-対応を集めて初期値を求める&#34;&gt;4. 対応を集めて初期値を求める&lt;/h3&gt;&#xA;&lt;p&gt;既知形状のターゲットを使う場合、LiDAR側の3次元特徴と画像側の2次元特徴、またはターゲット平面を対応付けます。十分な姿勢や視点の違いを含む観測から、まず外部変換の初期値を求めます。初期値の品質が低いと、後段の非線形最適化が適切な解へ到達しない場合があります。&lt;/p&gt;&#xA;&lt;h3 id=&#34;5-se3上で最適化する&#34;&gt;5. SE(3)上で最適化する&lt;/h3&gt;&#xA;&lt;p&gt;初期変換を出発点に、3次元点をカメラ座標系へ変換し、内部パラメータと歪みモデルを適用して画像へ投影します。3D-2Dの再投影残差、点と平面の残差など、利用できる対応に応じた目的関数を最適化します。&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;外部キャリブレーションは、内部校正と座標・時刻の確認を分けたうえで、初期推定、SE(3)最適化、独立データによる検証の順に進めます。&#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;  D --&gt; E[&#34;3D-2Dまたは特徴・平面の対応を作成&#34;]&#xA;  E --&gt; F[&#34;外部変換の初期値を推定&#34;]&#xA;  F --&gt; G[&#34;SE(3)上で再投影・幾何残差を最適化&#34;]&#xA;  G --&gt; H[&#34;未使用データで再投影・幾何・時間整合を検証&#34;]&#xA;  H --&gt; I[&#34;条件別の誤差を診断して合否基準を判断&#34;]&#xA;  I -. &#34;運動時のみ誤差が増える場合&#34; .-&gt; B&lt;/pre&gt;&lt;figcaption&gt;外部キャリブレーションは、内部校正と座標・時刻の確認を分けたうえで、初期推定、SE(3)最適化、独立データによる検証の順に進めます。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;ターゲット方式とターゲットレス方式&#34;&gt;ターゲット方式とターゲットレス方式&lt;/h2&gt;&#xA;&lt;p&gt;既知ターゲット方式は、対応する幾何が明確で、初期推定と残差の意味を説明しやすい方法です。一方、設置や撮影の準備が必要で、ターゲットの見え方や配置が観測条件を制限します。&lt;/p&gt;&#xA;&lt;p&gt;ターゲットを設置しない方式では、LiDAR点群の反射強度や投影情報と、画像の明るさ・外観との相互情報量を最大化する方法が提案されています。また、画像エッジなどの視覚特徴とレーザー点の幾何を使い、運用中に外部パラメータを調整する方式もあります。ただし、シーンのテクスチャ、反射率、天候、動的物体による安定性は個別データで確認する必要があります。&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;既知ターゲット&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;推定した変換でLiDAR点をカメラ座標系へ移し、深度が正の点だけを残します。その後、内部行列と歪みモデルで画像へ再投影し、次の項目を記録します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ロボットセンサーの時刻同期設計：カメラ・LiDAR・IMUのデータを正しく重ねる方法</title>
      <link>https://physicalaihub.net/posts/robot-sensor-time-synchronization/</link>
      <pubDate>Fri, 06 Mar 2026 00:23:05 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-sensor-time-synchronization/</guid>
      <description>&lt;p&gt;センサー融合では、値の精度だけでなく「いつ取得した値か」の定義が結果を左右します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;カメラ・LiDAR・IMUの時刻同期では、近いタイムスタンプのメッセージを組み合わせるだけでは不十分です。まず、各センサーがどのクロックを使い、タイムスタンプが取得時刻、露光時刻、スキャン時刻、受信時刻のどれを表すのかを確認します。そのうえで、可能な範囲ではPTP、PPS、外部トリガーなどを使って共通の時間基準を構築し、残った固定オフセットやドリフトをログから推定します。&lt;/p&gt;&#xA;&lt;p&gt;補正では、センサー時刻を基準時刻へ変換し、IMUの状態補間、LiDARのデスキュー、カメラの露光時刻モデルを適用します。最後に、共通イベントの時刻差、運動信号の相関、推定残差、再投影誤差を確認します。ROS 2のApproximateTimeはメッセージの対応付けには使えますが、センサー内部の時計を直す機能ではありません。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ時刻同期が問題になるのか&#34;&gt;なぜ時刻同期が問題になるのか&lt;/h2&gt;&#xA;&lt;p&gt;センサーフュージョンでは、同じ「時刻」のデータを重ねているつもりでも、実際には異なる時間基準、単位、エポックを参照していることがあります。センサーが生成した時刻をドライバがホスト受信時刻に置き換えている場合もあります。&lt;/p&gt;&#xA;&lt;p&gt;ずれは、主に四つに分けて考えます。一定に近い固定オフセット、クロック周波数の差によるドリフト、通信・ドライバの可変遅延、タイムスタンプが示す物理的な時刻の違いです。最後の問題は、数値に固定値を加えるだけでは解消できません。角速度をω、時刻誤差をΔtとすると、短時間近似では角度誤差は概ね|ω|×|Δt|に比例します。高速回転や急加速、動体追跡、点群の画像投影ほど同期ずれの影響が大きくなります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;前提となる時刻の意味&#34;&gt;前提となる時刻の意味&lt;/h2&gt;&#xA;&lt;p&gt;ROS 2ではSystem Time、Steady Time、ROS Timeが区別されます。ROSの時刻とセンサーのハードウェア時刻が自動的に同一になるわけではありません。IMUメッセージのHeader stampは測定時刻として扱われますが、メッセージ定義だけでは、センサーのクロックやドライバが時刻を付与した位置までは保証されません。&lt;/p&gt;&#xA;&lt;p&gt;カメラでは、フレーム時刻が露光開始、露光中心、露光終了、転送完了のどれを示すかを確認します。ローリングシャッターでは行ごとに露光時刻が異なるため、フレーム全体を単一時刻の観測として扱えるとは限りません。&lt;/p&gt;&#xA;&lt;p&gt;LiDARの1スキャンも瞬間的な観測とは限りません。ビーム、列、パケットなどで取得時刻が異なる場合があるため、点ごとの時刻、またはセンサー固有のスキャン時刻モデルを使って運動補正します。時刻の提供粒度は機種、ファームウェア、データ形式、ドライバによって異なります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;同期の仕組みと検出方法&#34;&gt;同期の仕組みと検出方法&lt;/h2&gt;&#xA;&lt;p&gt;PTP（IEEE 1588）は、ネットワーク上のクロック間のオフセットと遅延を測定して同期する標準です。ハードウェアタイムスタンプを使える実装では、ソフトウェアだけで時刻を取得する場合より不確実性を抑えやすくなります。ただし、精度はネットワーク遅延の対称性、タイムスタンプ方式、プロファイル、実装に依存します。ptp4lでネットワーク上のクロックを同期しても、LinuxのPHC、システムクロック、センサーのタイムスタンプ経路まで自動的に同一になるわけではありません。&lt;/p&gt;&#xA;&lt;p&gt;PPSは時刻基準をそろえる手段、外部トリガーは取得イベントをそろえる手段です。ただし、対応機種、ファームウェア、ドライバによって意味が異なります。同期パルスを入力できても、センサー内部の取得からアプリケーション到着までの遅延は別途検証します。&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;各センサーの時計とタイムスタンプを共通の基準時刻へ変換し、共通タイムラインでデータを対応付ける概念図。PTPなどを有効にしても、センサーのタイムスタンプ経路や取得時刻の意味は別途確認が必要です。&#34;&gt;flowchart LR&#xA;  subgraph S1[&#34;センサー側の時刻&#34;]&#xA;    C[&#34;Camera Clock\n露光時刻モデル&#34;]&#xA;    L[&#34;LiDAR Clock\n点・パケット・スキャン時刻&#34;]&#xA;    I[&#34;IMU Clock\n測定時刻&#34;]&#xA;  end&#xA;&#xA;  P[&#34;PTP・PPS・外部トリガー\n利用可能な同期手段&#34;]&#xA;  R[&#34;Reference Clock\n共通の基準時刻&#34;]&#xA;  T[&#34;時刻変換\nt_ref = α_i × t_i + β_i&#34;]&#xA;  X[&#34;共通タイムライン\n対応付け・補間・融合&#34;]&#xA;&#xA;  P -. &#34;クロックまたは取得イベントを同期&#34; .-&gt; C&#xA;  P -. &#34;クロックまたは取得イベントを同期&#34; .-&gt; L&#xA;  P -. &#34;クロックまたは取得イベントを同期&#34; .-&gt; I&#xA;  C --&gt; T&#xA;  L --&gt; T&#xA;  I --&gt; T&#xA;  R --&gt; T&#xA;  T --&gt; X&#xA;&#xA;  D[&#34;固定オフセット β_i\nクロックレート差 α_i&#34;]&#xA;  D -. &#34;ログから推定&#34; .-&gt; T&lt;/pre&gt;&lt;figcaption&gt;各センサーの時計とタイムスタンプを共通の基準時刻へ変換し、共通タイムラインでデータを対応付ける概念図。PTPなどを有効にしても、センサーのタイムスタンプ経路や取得時刻の意味は別途確認が必要です。&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;検出の第一歩は、複数センサーで共通イベントを観測することです。同期パルスや外部イベントについて、各センサーが記録した時刻差を複数回測定し、平均値と分散を求めます。平均的な差は固定オフセット、分散はイベント検出や通信のばらつきを考える材料になります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>イベントカメラをロボットに使う判断：高速動作・HDR・低遅延の実装上の利点と限界</title>
      <link>https://physicalaihub.net/posts/event-camera-robot-vision-selection/</link>
      <pubDate>Fri, 06 Feb 2026 08:13:12 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/event-camera-robot-vision-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;フレームカメラは一定周期で画像全体を取得します。高速に動く対象では、露光中の移動によるモーションブラーや、フレーム間にある時間情報の欠落が問題になり得ます。逆に、対象がほぼ静止していて色や表面模様を認識するなら、画像全体を得られるフレームカメラのほうが扱いやすいでしょう。&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;/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;  subgraph F[&#34;フレームカメラ&#34;]&#xA;    F1[&#34;一定周期で露光&#34;] --&gt; F2[&#34;フルフレームを読み出し&#34;] --&gt; F3[&#34;画像処理・推論&#34;] --&gt; F4[&#34;認識または運動推定&#34;]&#xA;    F1 -.-&gt; F5[&#34;露光条件によってモーションブラーが生じ得る&#34;]&#xA;    F2 -.-&gt; F6[&#34;絶対輝度や色を画像として取得しやすい&#34;]&#xA;  end&#xA;&#xA;  subgraph E[&#34;イベントカメラ&#34;]&#xA;    E1[&#34;各画素で対数輝度の変化を監視&#34;] --&gt; E2[&#34;しきい値を超えた輝度変化を検出&#34;] --&gt; E3[&#34;位置・時刻・極性付きイベントを非同期出力&#34;] --&gt; E4[&#34;イベント列を処理&#34;] --&gt; E5[&#34;光フロー・追跡・速度推定・オドメトリ&#34;]&#xA;    E1 -.-&gt; E6[&#34;静止した一様領域からは基本的にイベントが出にくい&#34;]&#xA;    E3 -.-&gt; E7[&#34;変化が疎ならデータ量を減らせる可能性&#34;]&#xA;    E3 -.-&gt; E8[&#34;振動・全面運動・明滅ではイベントレートが増え得る&#34;]&#xA;  end&#xA;&#xA;  E5 --&gt; H[&#34;ロボットの認識・制御&#34;]&#xA;  F4 --&gt; H&#xA;  E3 -.-&gt; D[&#34;センサの時間性能&#34;]&#xA;  E4 -.-&gt; D&#xA;  D -.-&gt; L[&#34;推論・通信・制御周期を含むエンドツーエンド遅延とは別に評価&#34;]&lt;/pre&gt;&lt;figcaption&gt;フレームカメラはフルフレームと絶対的な外観情報を扱いやすく、イベントカメラは画素単位の時間情報を利用して運動推定を行う。センサの時間性能だけでなく、推論・通信・制御を含むエンドツーエンド遅延も評価する必要がある。&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;センサ内部の短い応答遅延と画素単位のタイムスタンプは、高速運動時の時間分解能を高め、フレーム撮影に伴うブラーを抑えやすくします。ただし、センサの時間性能はシステム全体の遅延ではありません。イベント処理、ノイズ除去、特徴抽出、推論、通信、制御周期まで含めて評価する必要があります。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
