ロボットアーム(マニピュレータ)の概要

スポンサーリンク

ロボットアームの基本的な構造

ロボットアームは、人間の腕のように動き、人間の手のように作業を行うことができるロボットです。人間の腕は「肩」「ひじ」「手首」などの複数の「関節」を持ち、関節部分が回転動作をすることで腕の先にある手を様々な場所(座標)へ届けることができます。ロボットアームも通常は複数の関節を持ち、関節を回転動作させます。関節と関節の間の部分の棒状の構造の部分を「リンク」と呼びます。また、手に相当する部分を「エンドエフェクタ」と呼びます。つまり、ロボットアームは「関節」「リンク」「エンドエフェクタ」によって構成されると言えます。なお、ロボットアームは、作業・操作を行う装置という意味で「マニピュレータ」とも呼ばれます。

ロボットアームの自由度

1つの関節の回転動作のさせ方は大きく分けて2パターンあります。X軸・Y軸・Z軸から表現される3次元空間で、原点に関節があって X 軸方向に棒状のリンクがあったとします。このリンクが Z 軸を中心に回転する、というのが1つ目のパターンです。1つの軸に沿って回転するので「1軸」と呼びます。この場合、リンクはX‐Y平面上で移動可能です。ただし、リンクは長さが一定であることから、リンクの先端部分(エンドエフェクタ)が移動できる範囲はリンクの長さを半径に持つ「円」の上に限られ、X-Y平面上を自由に移動できるわけではありません。円の上の座標は「角度」という1つの変数によって決まります。エンドエフェクタの座標が1つの変数によって決まることから、1軸の関節の自由度は1です。

回転動作の2つ目のパターンは、1つの関節でZ軸に加えてY軸を中心とした回転ができる状態です。この場合、エンドエフェクタは X-Y-Zの3次元空間上を移動可能です。ただし、やはりリンクの長さが一定であることから、移動範囲は一定の半径の球面上に限られます。球面上の座標は、2つの角度によって表現できますので、2軸の関節の自由度は2です。

X-Y-Z の3次元空間上を自由に移動するためには、自由度3の機構が必要です。これは、1軸の関節を3つ持つロボットアームか、1軸の関節1つと2軸の関節を2つ持つロボットアームによって実現できます。このように、自由度と関節の軸の総数が一致することから、ロボットアームの自由度は「軸」という単位によって表現されます。つまり自由度3を「3軸」と呼び、自由度5を「5軸」と呼んだりします。エンドエフェクタの位置を3次元空間内で自由に動かすためには3軸が必要で、さらにエンドエフェクタの角度を自由に決めるためにはさらに3軸が必要となり、制限のないロボットアームを作るためには最低でも6軸が必要とされています。(ロボットアーム自身の構造が邪魔になることがありますので、6軸でも足りないケースもあります。)

ロボットアームの用途の概要

ロボットアームは、先端のエンドエフェクタを変えることで様々な用途に使用されます。ロボットアームを製作する際の基本的な発想は人間の手の代わりの役目を果たさせることです。人間は手を器用に使って様々な種類の作業を行ってきましたので、ロボットアームが多くの用途で使用されるのは当然の流れと言えます。

ロボットアームの代表的な活用事例は工場内の製造ラインでしょう。自動車のような大型の製品の製造から小型の電子機器の製造まで、至る所で使われています。自動車の製造ラインでは、プレス加工によって成形された金属部品同士をつなげるためには「溶接」の機能を持ったエンドエフェクタが使われます。また、そうやってつなぎ合わせて作られた車体に着色をするための「塗装」も代表的なロボットアームの用途です。その他、「切断」「研磨」「レーザー加工」も重要な機能です。こういった感じで、ロボットアームなどで製造ラインを自動化することを「FA(Factory Automaton)」と言います。

また、自動車に限らず、組み立てに使われる部品を製造ラインに運ぶ「搬送」の機能を持つロボットアームもあります。自動車のフロントガラスを吸引してエンドエフェクタにくっつけて運んだり、半導体のウェハー(シリコンの円盤状の塊)のようなものに対して形にあった枠に対象物をはめて運んだりします。また、部品や商品をピックアップして選別したり箱に詰めたりといった用途のロボットアームもあります。運び方も実に様々です。

その他、ネジを締めたり、瓶などにラベルを貼ったり、電子機器にコネクタを挿入したりといった用途もあります。カメラ等のセンサーを動かして部品や商品の外観検査を行ったり、タッチパネルをタップして動作の検査を行ったりと、検査の用途でも使われます。さらには、生物/化学/医療/医薬などの分析/実験や、宇宙ステーション等で宇宙空間での作業にも使われます。

2020年頃からは「協働ロボット」と呼ばれるロボットアームも少しずつ使われるようになってきました。それまでのロボットアームは、人間が立ち入れないスペースで作業を行うことを前提に動作してきました。それに対して協働ロボットは、ロボットと人間の間に柵を設けたりせず、極めて近い場所で一緒になって作業を行うことを想定して作られています。例えば、人間が調理した料理(唐揚げなど)を協働ロボットが容器に詰める、といったようなイメージです。

ロボットアームの関節の動かし方

ロボットアームの関節の回転動作を実行するために使われるのは、モーター、油圧アクチュエータ、空気圧アクチュエータです。モーターは回転力を生むアクチュエータデバイスですので、モーターの軸がそのまま関節の中心にあると考えればイメージしやすいかと思います。ただしモーターには「ステッピングモーター」「ブラシ付きモーター」「ブラシレスモーター」など色々な種類があります。ステッピングモーターは、外部から角度を指定することができるモーターで、ロボットアームを制御しやすいとされています。一方でブラシ付きモーターやブラシレスモーターはステッピングモーターに比べて電力効率に優れていると言われ、同じ作業を少ない消費電力で実行できるメリットがあります。その代わり、角度を直接的に指定できませんので、角度を制御する仕組みが必要です。角度などのパラメータを制御することを「サーボ機構」と呼び、サーボ機構を備えたモーターを「サーボモーター」と呼びます。

なお、モーター単体では十分な力を発生することができず、ロボットアーム自身の重さを支えきれずに意図した動きをさせられなかったり、エンドエフェクタで必要な作業ができなかったりすることもあります。そういった場合には「減速機」という部品をモーターの軸とロボットアームの関節の間にはさみます。減速機は、回転運動の速度を落とす機能を持つデバイスです。速度を落とす代わりに、回転力(トルク)を大きくすることができます。また、電力が与えられてない状態でロボットアームを静止するために「ブレーキ」が必要になることもあります。

油圧アクチュエータと空気圧アクチュエータは、それぞれ油圧と空気圧の力を利用して直線運動の力を発生するデバイスです。回転させたい関節につながっている2つのリンクの途中部分に直線の端点を接続して使います。端点が自由に動ける状態になっていれば、アクチュエータの伸び縮みの直線運動を関節の回転運動に変換することが可能です。ともすれば直接的に回転運動を行うモーターに比べて不便な感じもしますが、油圧アクチュエータと空気圧アクチュエータはモーターよりも簡単に大きな力を発生することができることから、昔から重宝されてきました。

ロボットアームの関節の制御の概要

ロボットアームでは、先端のエンドエフェクタを所定の場所に運ぶことが求められます。ロボットアームを設計する際には、所定の場所に届くようにリンクの長さと関節の可動範囲を決める必要があります。例えば、ロボットアームの根元側の関節の位置を基準にして、そこから半径 2m の球面内でエンドエフェクタを自由に動かしたいのであれば、リンクの長さの合計は 2m 以上必要で、関節の自由度は 3 軸以上必要になります。(球面内ではなく球面上のみ動ければ良いのなら 2 軸以上でOK。)こうして決めたリンクと関節の構造で、目標の位置座標 \((x, y, z)\) にエンドエフェクタを届けるために各関節の角度がどのようになっていれば良いかを計算します。この計算過程と計算結果に基づいて関節を回転動作させることが「ロボットアームの関節の制御」となります。

制御のイメージを、簡単のために一旦 2 次元の x-y 平面上で考えることにします。関節が2つ、リンクが2つある構造を想定し、リンクの長さはそれぞれ \(L_1\)、\(L_2\) 関節の角度を \(\theta_1\)、\(\theta_2\) とします。そうすると目標の座標 \((x, y)\) は下記のように決まります。

$$x = L_1cos\theta_1 + L_2cos(\theta_1+\theta_2)$$

$$y = L_1sin\theta_1 + L_2sin(\theta_1+\theta_2)$$

三角関数の使い方を覚えてさえいれば、非常に簡単な数式です。ただしこの数式は、関節の角度を \(\theta_1\) と \(\theta_2\) に設定した時にエンドエフェクタが \((x, y)\) の位置に来る、ということしか表現していません。欲しい情報は、エンドエフェクタを \((x, y)\) に持っていくために \(\theta_1\) と \(\theta_2\)をどのように設定すべきか、です。つまり、上記の連立方程式から \(\theta_1\) と \(\theta_2\) を求める必要があります。このように関節の角度を計算するのがロボットアームの制御の基本的な内容となります。(解いた結果は \(cos\) の逆関数の \(arccos\) や \(tan\) の逆関数の \(arctan\) を使った式になり、やや複雑な形になりますのでここでは省略します。別ページに記載予定です。)

ここで問題になるのは \((x, y)\) の位置によっては、\(\theta_1\) と \(\theta_2\) に組み合わせが一意に決まらないというケースです。例えば、\(L_1 = 1, L_2 =1\) で \((x, y) = (1, 1)\) にしたい場合を考えます。これを満たすのは、\((\theta_1, \theta_2) = (0^\circ, 90^\circ)\) もしくは \((\theta_1, \theta_2) = (90^\circ, 0^\circ)\) で一意に決まりません。三角関数を含む連立方程式では、このようなことが往々にして起こります。ロボットアームの制御では、これを解決していずれか1つに決めるというアルゴリズムが必要となります。

さらに、ロボットアームでは、様々な形の作業対象物に柔軟に対応できるようにするために、2次元の \((x, y)\) 平面内の動作であっても関節の数を1個増やして3軸とするようなケースもあります。これを冗長マニピュレータと呼びます。3つ目のリンクの長さを \(L_3\)、関節の角度を \(\theta_3\) とすると、関係式は次のようになります。

$$x = L_1cos\theta_1 + L_2cos(\theta_1+\theta_2) + L_3cos(\theta_1+\theta_2+\theta_3)$$

$$y = L_1sin\theta_1 + L_2sin(\theta_1+\theta_2)+ L_3sin(\theta_1+\theta_2+\theta_3)$$

ロボットアームの制御で最終的に欲しい情報は \(\theta_1\)、\(\theta_2\)、\(\theta_3\) です。連立方程式を解くためには、求めたい変数の個数分だけ方程式が必要です。しかしながら、上記の式は2個しかありません。結果的に、この式を満たす \(\theta_1\)、\(\theta_2\)、\(\theta_3\) の組み合わせは無数に存在することになり、普通の計算過程では関節の角度を決めることができません。ロボットアームの制御では、複数あるいは無数に存在する解(角度の組み合わせ)から1つに絞り込むという計算が求められ、なかなか複雑です。この計算だけでも一大分野となって教科書が1冊書けてしまいます。以上がロボットアームの制御の大よそのイメージです。(複雑だということだけ理解していただければ十分です。)もう一歩踏み込んだ内容は、別ページに記載していこうと思います。

ロボットアームの勉強におススメな本はこちら

 

タイトルとURLをコピーしました