六つの関節を持つ産業用ロボットアームがあるとします。関節が一つ少し回るだけで、その先につながる腕全体が一緒に動き、先端の手はまったく別の場所へ移ります。この連鎖した動きを計算するには、まず各関節と腕の節がどうできているかを決まった書き方で残さなければなりません。人ごとに基準を勝手に取れば、同じロボットでも式が違ってしまいます。関節ごとに数字四つだけでこの関係をすっきり整理する約束、それが『デナビット・ハーテンバーグ表記法(Denavit-Hartenberg Convention)』です。
デナビット・ハーテンバーグ表記法とは、簡単に言えば『直列につながったロボットアームの各関節に座標系を一定の規則で付け、隣り合う二つの座標系の関係を四つのパラメータで表す方法』を意味します。1955年、ジャック・デナビット(Jacques Denavit)とリチャード・ハーテンバーグ(Richard Hartenberg)が機械連結装置の座標系を標準化しようと初めて提案しました。しばしばDH表記法、DHパラメータと略され、今でもロボット工学の教科書で最初に学ぶ道具の一つに数えられます。
本資料では、この表記法がなぜ必要だったか、四つの数字がそれぞれ何を意味するか、数字をつなげて手先位置を求める流れ、そして古典形と修正形に分かれた事情まで順に見ていきます。
数字四つでロボットアームを書く約束
デナビット・ハーテンバーグ表記法はなぜ生まれたか?

ロボットアームは硬い節が関節で次々つながった鎖です。手先がどこにあるかを知るには、節ごとの長さと向き、関節の回った量をすべて数えなければなりません。問題は、空間で一つの物体の位置と向きを表すにはもともと六つの値が必要だという点です。
(1) ばらばらだった座標系
表記法が定着する前は、研究者ごとに座標軸の取り方が違っていました。同じ機械を解析しても式の形が違い、結果の比較や検討が難しかったのです。
(2) 1955年の提案
デナビットとハーテンバーグは、アメリカ機械学会の応用力学誌に掲載された論文で、行列を用いた機構表記法を示しました。座標軸を付ける規則を決めておけば、隣り合う節のあいだの関係を六つではなく四つの値に減らせる、というのが核心でした。
(3) ロボットへ渡った時期
当初は一般的な機械連結装置向けの方法でした。1981年、リチャード・ポール(Richard Paul)がロボットマニピュレータの教科書でこの表記法をロボットアーム解析に本格的に使い、ロボット工学の標準ツールとして定着しました。
関節ごとに付く四つの数字

規則は意外と単純です。各関節の回転軸やすべる方向をz軸とし、隣り合う二つの関節軸にともに垂直な線、すなわち共通垂線をx軸とします。こうして軸を合わせると、ある座標系から次の座標系へ移るのに必要な値はちょうど四つだけ残ります。
- 関節角(Joint Angle):前のz軸を中心にx軸が回った角度です。
- リンクオフセット(Link Offset):前のz軸に沿って次の共通垂線まで離れた距離です。
- リンク長(Link Length):二つの関節軸のあいだの共通垂線の長さです。
- リンクねじれ(Link Twist):共通垂線を中心に二つのz軸が互いにねじれた角度です。
回転関節なら関節角がモータに応じて変わり、残りの三つは機械の形で固定されます。すべり関節なら逆にリンクオフセットが変わる値になります。結局、関節一つに動く数字一つと、形を決める数字三つが付くわけです。

表をつなげて手先を求める

四つの数字を関節の順に書けば、一行に関節一つ、ロボットアーム全体を収めた簡単な表ができます。この表さえあれば、手先位置を求める計算は機械的な手順に変わります。
(1) 一マスずつ進む変換
各行の数字は一つの座標変換になります。z軸に沿って回して動かし、その後x軸に沿って再び動かして回す、四段階の移動です。この変換は回転と位置をまとめて収めた4行4列の行列に整理されます。
(2) 順に掛け合わせれば終わり
床から第一関節、第一から第二関節へと続く行列を順に掛け合わせると、床から手先までの関係が一つの行列になります。関節角だけ入れれば手先の位置と向きがすぐ計算されるのです。これが順運動学の基本の枠です。
(3) ほかの計算の出発点
同じ表は、望みの手先姿勢から関節角を逆に求める逆運動学や、速度と力を扱う動力学の計算にもそのまま使われます。ロボットシミュレーションのプログラムがこの表を入力として受け取る場合が多いのもそのためです。
古典形と修正形、二つの約束

広く使われるほど混乱もあります。同じ名前の下で二つの方式が並び使われているからです。教科書やプログラムを見るとき、どちらに従うかをまず確認すべき理由です。
(1) 古典形の表記法
もともとの方式で、各節の座標系をその節の先側の関節に付けます。多くの教科書と公開資料がこの方式を基準に説明します。
(2) 修正形の表記法
ジョン・クレイグ(John Craig)の教科書『ロボット工学入門(Introduction to Robotics)』などが使う方式で、座標系を節の始まり側の関節に付け、変換の順序も変えます。パラメータの名は似ていても入る場所が違い、二つの方式を混ぜるととんでもない結果になります。
(3) 限界と代替
隣り合う二つの関節軸が平行に近いと、共通垂線の位置が定まらず、小さな誤差でも値が大きく揺れます。そのため精密な校正が必要な分野では、ほかの表現法もあわせて研究されてきました。それでも単純で手で追いやすいという利点のおかげで、いまも最初に学ぶ方法です。
複雑に見えるロボットアームも、関節ごとに四つの数字で順々に書き下ろしていくこと——それがデナビット・ハーテンバーグ表記法を理解する第一歩です。