本連載は、「システム開発」をテーマとしたコーナーです。フォーラムエイトのシステム開発の実績にもとづいて、毎回さまざまなトピックを紹介していきます。第23回は、逆運動学に基づいた重機の動作表現について解説します。
自動施工に向けた逆運動学に基づく重機の動作表現
はじめに
自動車の自動運転が進む中、建設現場においても自動化の動きが広まっています。特に、重機の自動化による自動施工・遠隔操縦は重要なテーマであり、人手不足や技術者の高齢化が進行している現代にとって必要不可欠な技術です。
重機が人の手から離れた時、重機は目標位置から逆算して動きを決定する必要があります。特に、アームやバケットの動きは複数の関節を変形させて動作させるものであり、緻密なシミュレーションが求められています。
そこで今回は、弊社開発の3DVRソフトウェア「UC-win/Road」を用いて、自動施工に向けた試行として、逆運動学に基づく重機の動作表現について紹介します。逆運動学とは目的位置を先に決めておき、そこからどのように機械が動作するか(位置・姿勢の変化)を扱う学問であり、その工学的概念も併せて説明します。逆運動学による動作表現は、複数の関節を持つ機械を目標位置まで正確に到達させ、複数の目標位置を連続的に定めることで任意の軌跡で動作できるものとなり、自動施工にとって重要な技術となります。
逆運動学の概要
(1)順運動学との関係
逆運動学を理解するためには、順運動学とセットで考えると分かりやすいです。順運動学と逆運動学の概念を表したものを図1に示します※1。重機のアーム(関節)の動きを考えた時に、順運動学は関節の動きからアームの位置を特定します。関節の角度を調整することで、アームの先端を目標位置に到達させます。図1の「関係式」については、例えば図2のように関節が3本、3自由度でアームを動かす場合、目標位置をL1・L2・L3とそれぞれのX軸とのなす角度で表したものになっています。
一方、逆運動学の場合は先に目標位置を決定し、順運動学の結果(目標位置決定)から逆算して関節角度を求める考え方です。ロボットの動きと同様に、自動操縦で重機を動かすためには目標位置の設定が必要です。そのため、逆運動学によって目標位置に到達するために最適な関節角度を算出することが求められているのです。
逆運動学は一般的にはあまり知られていませんが、実は日常生活にも深く結びついています。人間の関節は前後左右の動き、曲げ伸ばしの動き、ひねりの動きなど複数の自由度が存在しており、腕の自由度は7つといわれています。何か物を掴むとき、どのように肩や肘や手首を曲げたら良いのかを脳内で計算しており、これをロボットや重機で表現するために逆運動学が必要になります。
(2)逆運動学の解析手法
関節角度を求める方法はいくつかありますが、代表的な手法として解析解法と数値解法が存在します。解析解法は、理論的・代数的に関節角度を求める手法であり、図2の例で言えば目標位置(X, Y)をL1・L2・L3、θ1・θ2・θ3で表す式を作成し、連立方程式を作成して関節角度であるθ1・θ2・θ3を求める考え方です。一般的に、3自由度までの計算であれば解析手法が使用できますが、機械が自由に物を掴むようにするには最低でも6自由度が必要だと言われており※2、解析手法による手計算的な導出は困難になります。
そのため、解析手法ではなく数値解法で関節角度を求める必要があります。数値解法は、線形近似的に関節角度を微調整しながら最適解を求めるものです。最急降下法やニュートン・ラプソン法は大学の講義等でもよく知られていると思います。順運動学で得られた関係式を微分し、実際の値との誤差が最小になるよう関節角度を調整し、最終的には目標位置に到達させる手法となります。
図1 順運動学と逆運動学の概念 |
図2 順運動学と逆運動学の概念 |
UC-win/Roadによる可視化
UC-win/Roadを用いて、逆運動学によって重機の関節角度が変化する様子を可視化しました。図3に重機モデルの説明図を示します。関節は3つ存在し、それぞれの関節角度を先ほどご紹介した数値解法で算出し、重機モデルの関節角度に反映させていきます。
逆運動学による動作を行うには先に目標位置の情報を与えることが必要ですが、今回はCSV形式でUC-win/Roadに情報を読み込ませます。表1には重機モデルのアーム先端の目標位置、目標姿勢を示しています。目標位置はモデル原点からの相対位置(m)になっており、加えて目標姿勢としてモデル全体のピッチ角を変化させます。この情報により、各関節角を決定します。
図4~図6は、それぞれ表1の1行目~3行目の目標位置・目標姿勢に応じた関節角度で重機モデルを表現したものになります。地面を掘削する一連の流れを逆運動学により表現することが出来ました。
このように、目標となる先端位置とモデルの姿勢さえ入力すれば各関節の情報は不要であり、実際の重機にも各関節に対してはセンサーの取り付けが不要になるため、コストが最小限で済みます。
目標位置 |
目標位置 |
目標位置 |
目標姿勢 |
目標姿勢 |
目標姿勢 |
0 |
4.2 |
6.05 |
0 |
24 |
0 |
0 |
1.4 |
5.05 |
0 |
88 |
0 |
0 |
1 |
2.25 |
0 |
173 |
0 |
表1 CSVの値
図3 重機モデル説明図 |
図4 表1、1行目 記載の目標位置、姿勢に合わせた関節角度の変化 |
図5 表1、2行目記載の目標位置、姿勢に合わせた関節角度の変化 |
図6 表1、2行目記載の目標位置、姿勢に合わせた関節角度の変化 |
おわりに
今回は自動施工に向けた逆運動学に基づく重機の動作表現についてご紹介しました。逆運動学を重機のアームの動作に応用し、単なる数値計算ではなく実際の建設現場を模した環境での動作表現をUC-win/Roadにて再現できました。自動施工に向けた様々なシミュレーションに活用が可能です。
また、重機の動作を中心とした建設現場全体のシステムとしては、遠隔操縦中に作業員が重機の可動域内へ侵入した場合に警告を促すものや、事前に重機の動作を把握することで作業員の教育訓練を行うものなど、より実環境に適したシステムの開発も可能です。今後の開発にぜひご期待ください。
注釈
※1 【図解】運動学入門:順運動学と逆運動学について解説!https://agirobots.com/introduction-to-kinematics//
(Up&Coming '23 盛夏号掲載)
|
Up&Coming |
LOADING