<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DHパラメータ on Physical AI Hub</title>
    <link>https://physicalaihub.net/tags/dh%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF/</link>
    <description>Recent content in DHパラメータ on Physical AI Hub</description>
    <generator>Hugo</generator>
    <language>ja-jp</language>
    <lastBuildDate>Wed, 30 Sep 2026 14:21:31 +0900</lastBuildDate>
    <atom:link href="https://physicalaihub.net/tags/dh%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF/index.xml" rel="self" type="application/rss+xml" />
    <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>
  </channel>
</rss>
