DHパラメータ・順運動学 戻る
解析ツール

デナビット・ハルテンベルグパラメータ・順運動学計算機

DHパラメータ(α, a, d, θ)を入力して最大6DOFシリアルロボットアームの順運動学を計算。PUMA/SCARA/UR型プリセット付き。エンドエフェクタの位置・姿勢をリアルタイム表示。

パラメータ設定
プリセット
DHパラメータテーブル
関節 α[°] a[mm] d[mm] θ[°]
関節角スライダ
計算結果
X [mm]
Y [mm]
Z [mm]
Roll [deg]
Pitch [deg]
Yaw [deg]
ワークスペース半径 [mm]
DOF数
Dh
理論・主要公式

各関節のDHパラメータから変換行列を構成:

$$^{i-1}T_i = \begin{bmatrix}c\theta_i & -s\theta_i & 0 & a_{i-1}\\ s\theta_i c\alpha_{i-1}& c\theta_i c\alpha_{i-1}& -s\alpha_{i-1}& -s\alpha_{i-1}d_i \\ s\theta_i s\alpha_{i-1}& c\theta_i s\alpha_{i-1}& c\alpha_{i-1}& c\alpha_{i-1}d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

順運動学:$T_{0n}= T_{01}\times T_{12}\times \cdots \times T_{(n-1)n}$

デナビット・ハルテンベルグ(DH)パラメータ・順運動学計算機とは

🙋
DHパラメータって何ですか?ロボットの設計図みたいなものですか?
🎓
その通り!大まかに言うと、ロボットアームの「関節」と「リンク」のつながり方を、たった4つの数字のセットで表した世界共通の設計図だ。例えば、このシミュレーターのPUMAプリセットを選ぶと、6つの関節それぞれにα, a, d, θの値が自動で入るよ。上のスライダーでθ(シータ)を動かすと、ロボットが実際にどう動くかリアルタイムで見られるんだ。
🙋
え、そうなんですか!4つの数字だけで動きが決まるんですね。でも、このa(リンク長さ)とかα(アルファ)って、ロボットのどこを指してるんですか?
🎓
いい質問だね。実務ではロボットの3Dモデルからこれらを測定する作業が多い。aは「リンクの長さ」、αは「リンクのねじれ角」を表す。例えば、SCARAロボットのプリセットを確認してみて。最初の3関節はαが0度だろ?これは関節の回転軸がすべて平行(垂直)で、水平面内で動くことを意味してる。パラメータを動かしてαを90度に変えてみると、動きが大きく変わって面白いよ。
🙋
なるほど!で、この「順運動学」って、結局何を計算してるんですか?エンドエフェクタの位置が求まるということですか?
🎓
その通り。各関節の角度(θ)や長さ(d)を入力として、先端の「手」が空間のどこにあって、どんな向きをしているかを計算するのが順運動学だ。このツールでは、画面右側に「位置(X,Y,Z)」と「姿勢(ロール,ピッチ,ヨー)」がリアルタイムで表示される。URロボットのプリセットで遊んでみると、複雑な6軸ロボットの動きが、この4パラメータの組み合わせでシンプルに記述できることが実感できるはずだ。

よくある質問

通常はα(ツイスト角)、a(リンク長)、θ(関節角)、d(リンクオフセット)の順で入力します。本ツールのプリセットもこの順に従っています。順序を間違えると全く異なる姿勢が計算されるため、各パラメータの定義を確認してから入力してください。
はい、手動で各関節のDHパラメータを直接入力することで、任意の6DOF以下のシリアルロボットアームを計算できます。プリセットは代表的なパラメータ例として提供しており、ユーザーが自由に編集・保存してご利用いただけます。
位置(x, y, z座標)と姿勢(ロール・ピッチ・ヨー角、または回転行列)をリアルタイムで表示します。数値が即座に更新されるため、θの値をスライダーなどで変更しながら動作を確認するのに適しています。
本ツールは順運動学のみ対応しています。逆運動学は解析解がロボット構造に依存するため、汎用的な実装が困難です。ただし、順運動学の結果を基に数値的な逆運動学を別途実装する際の検証用としてご活用いただけます。

実世界での応用

ロボット制御・軌道計画:産業用ロボットアーム(溶接、塗装、組立)の動作プログラムを作成する際の基礎となります。目標の手先位置・姿勢を実現するための各関節の目標角度(逆運動学の入力)を求める前に、必ずこの順運動学モデルが必要です。

マルチボディダイナミクス(MBD)シミュレーション:CAEソフトウェアでロボットや機械機構の動的解析を行う際、部品間のジョイント(結合条件)を定義する方法の一つとしてDHパラメータが利用されます。これにより、複雑な機構の運動をコンピュータ内で再現できます。

ROS (Robot Operating System) / URDFモデル:ロボット用のミドルウェアであるROSでは、ロボットの物理構造をURDF形式で記述します。多くの場合、メーカー提供の3DモデルやDHパラメータからURDFファイルが自動生成され、シミュレーションや実機制御に活用されます。

構造解析における荷重設定:ロボットアームのリンクやベースの強度をCAEで解析する場合、エンドエフェクタで発生する力やモーメントが、各関節にどのように伝達・増幅されるかを知る必要があります。順運動学と静力学の計算を組み合わせることで、解析に必要な境界条件(荷重・固定条件)を正確に設定できます。

よくある誤解と注意点

DHパラメータを使い始めるとき、いくつかの落とし穴にはまることが多いよ。まず大きな誤解が「DHパラメータの定義は世界で一つだけ」と思ってしまうこと。実は、標準的なDH(Standard DH)と修正DH(Modified DH)という二つの主流な規約があるんだ。このツールは標準DHを使っているけど、別の教科書やソフトウェアでは修正DHを使っていることもある。パラメータの値が全然違ってくるから、どちらを使っているかは最初に確認するクセをつけよう。

次に、パラメータ「a」と「α」の符号と方向。リンクの長さ「a」は常に正の値と思いがちだけど、座標系の設定の仕方によっては負の値になることもある。例えば、関節の回転軸の向きを逆に設定した場合だね。また、ねじれ角「α」は、右手の法則に従って符号が決まる。親指をX軸の向きに合わせ、Y軸からZ軸へ回す方向が正だ。これを間違えると、ロボットが鏡像のように逆の動きをしてしまう。

最後に実務的な注意点として、特異姿勢での計算結果には気をつけて。ロボットアームが完全に伸びきったり、複数の関節軸が一直線上に並んだりする「特異姿勢」では、数学的に姿勢が一意に決まらなくなることがある。このツールでPUMAプリセットの第4関節と第6関節を特定の角度に設定すると、エンドエフェクタの姿勢(特にロール角)が急激に変化する様子を観察できる。これは計算上の問題であってツールのバグじゃないから、頭の片隅に入れておこう。