本文へ移動
雑学書庫好奇心が集まる場所
日本語

関節の数が動きを決める、自由度(Degrees of Freedom)

コップに入った水を飲もうと腕を伸ばすとき、私たちは肩や肘、手首をどう動かすかを個別に考えることはありません。ところが、同じことをロボットアームにさせるには、関節の一つひとつがどの方向にどれだけ回転すべきかを正確に決めてやる必要があります。

ロボット工学では、このようにロボットが独立して動ける方向の数を「自由度(Degrees of Freedom)」と呼びます。自由度は、ロボットがどれほど多様な姿勢を取れるか、どれほど複雑な作業をこなせるかを示す、最も基本的な指標です。

本資料では、自由度の意味から、産業用ロボットアームが六つの関節を持つようになった理由、人の腕と手が持つ自由度、そして自由度を増やすことで生まれる利点と難しさまで、わかりやすく整理します。


自由度の理解と活用

動きの方向を数える方法

自由度を、位置と姿勢を定めるために必要な独立変数の数として説明するGK Libraryのインフォグラフィック。平面上で自由に動ける剛体は、x方向とy方向への二つの移動と、一つの回転角θにより3自由度を持つ。図には右向きのx軸、上向きのy軸と、板の平面内回転を示す矢印がある。空間内で自由に動ける剛体は、三つの移動と三つの回転により6自由度を持つ。三つの軸が一つの原点から伸びる座標系と立方体、x軸・y軸・z軸まわりの回転の表記がある。下部には、固定された軸のまわりを回る回転関節の角度θと、一本のレールに沿って滑る直動関節の距離dを、それぞれ1自由度の例として示している。関節数をそのまま足すのではなく、関節の種類と独立性を確認する必要があり、閉ループや接続による拘束があると、動きが互いに制約される場合があると説明している。自由度は、関節数やモーター数と常に等しいわけではない。
技術作業台の上に置かれた金属製のロボット関節一つと、露出した回転軸

自由度とは、物体の位置と姿勢を表すために必要な、独立した値の数です。空間に浮かぶ物体は、前後、左右、上下に移動でき、三つの軸を中心にそれぞれ回転することもできます。そのため、3次元空間の剛体は、3個の移動と3個の回転を合わせて、合計6個の自由度を持ちます。

ロボットでは、通常、一つの関節が一つの自由度を担います。蝶番のように一つの軸を中心に回る回転関節と、引き出しのように一方向へ滑る直動関節が代表的です。こうした関節をいくつ、どのような順序でつなぐかによって、ロボットが届く範囲と取れる姿勢が変わります。

自由度は、ロボットアームだけに使われる言葉ではありません。床の上を走る掃除ロボットは、前後への移動やその場での回転など、平面上の動きだけを扱えばよく、空を飛ぶドローンは、空中で位置と傾きの両方を調整しなければなりません。同じロボットでも、どのような空間でどのような作業をするかによって、必要な自由度は大きく変わります。


産業用ロボットアームが六つの関節を持つ理由

自動車の組立ラインで火花を散らしながら溶接する6軸産業用ロボットアーム

最初の産業用ロボットとされるユニメート(Unimate)は、1961年、米国のゼネラルモーターズ(General Motors)の工場で、高温の鋳造部品を取り出す作業を担いました。油圧で動くこのアームは、5個の自由度を持っていました。

現在、工場でよく見かけるロボットアームの多くは、6個の関節を持っています。先ほど見たように、空間内の物体の位置と向きを自由に決めるには、6個の値が必要だからです。下側の三つの関節が手先を目的の位置へ移動させ、手首にある三つの関節が工具の向きを合わせる仕組みです。

そのおかげで、6軸ロボットは、斜めの継ぎ目に溶接の炎を当てたり、傾いた部品にねじを正確に差し込んだりできます。一方、物をつかんで平らな場所に置くだけの包装用ロボットなら、4個程度の自由度でも十分なので、より高速で安価なものを作れます。

関節の少ないロボットのほうが、特定の作業では優れている場合もあります。スカラロボット(Selective Compliance Assembly Robot Arm)と呼ばれる水平多関節ロボットは、アームが水平方向にだけ折れ曲がったり伸びたりする単純な構造のおかげで、電子部品を基板に差し込む作業のように、短く素早い動作を何度も繰り返す仕事に広く使われています。


人の腕と手が持つ自由度

狭い棚の中のコップをつかもうと腕を伸ばす人と、関節が見えるロボットの手

人の腕は、一般に7個の自由度を持つと説明されます。肩が三方向、肘が一方向、手首と前腕が三方向に動くからです。手先の位置と向きを決めるために必要な6個より、一つ多いことになります。

この余分な自由度のおかげで、人は手を同じ場所に固定したまま、肘を上げたり下げたりできます。狭い棚の奥にある物を取り出すときに、肘をひねって障害物を避けられるのも、このおかげです。ロボット工学では、このように必要以上の自由度がある構造を「冗長自由度(Redundancy)を持つ」といいます。

手は、それよりもはるかに複雑です。五本の指の関節と手首を合わせると、20個を超える自由度を持つとされており、人の手のように繊細に物を扱うロボットハンドを作ることは、今も難しい課題として残っています。

そのため、多くのロボットハンドは、すべての関節を個別に動かす代わりに、一本のひもで複数の関節を一緒に曲げる方式を使っています。実際に動くモーターの数は少なくても、指が物体の形に沿って自然に包み込むようにつかむため、卵のように壊れやすい物から、形がさまざまな工具まで、比較的単純な制御でつかめます。


自由度を増やすことで生まれる利点と難しさ

明るい作業場で人の隣で働く、7個の関節を持つ協働ロボットアーム

最近では、人の腕のように7個の関節を持つロボットアームが増えています。余分な関節があれば、手を同じ位置に置いたままでもさまざまな姿勢を選べるので、人と一緒に働く作業場や狭い空間で衝突を避けやすくなります。

ただし、自由度が増えるほど負担も大きくなります。関節ごとにモーターや減速機、位置を測るセンサーが必要になるため、ロボットは重くなり、価格も高くなります。一つの関節の小さな誤差が手先に向かうほど積み重なり、精度を保つことも難しくなります。

制御も複雑になります。一つの目標位置に到達する関節角度の組み合わせが複数になるため、どの姿勢が最も安全で、必要な力が少ないかを別途判断しなければなりません。そのため、ロボットを設計するときは、担当する作業に必要な分だけ自由度を持たせることが重要です。

こうした課題は、人が直接ロボットを操縦するときにも現れます。手術ロボットは、小さな穴から挿入した器具の先端に手首関節を備え、医師の手の動きをそのまま再現します。画面を見ながら操作する人は、器具の先端がいくつの方向に動くかを把握してこそ、ミスなく扱えます。

自由度は、ロボットが世界と関わる方法を決める数値です。関節の数と配置を理解すると、あるロボットはなぜ動きが速く単純で、別のロボットはなぜ動きが遅くても繊細なのかがわかります。

作業にぴったり合う関節の数を見つけること。それが、うまく動くロボットを設計する第一歩です。