【図解】ロボットアームの動作計画【概要】

【図解】ロボットアームの動作計画【概要】

image

お疲れ様です。秋並です。

この記事では「ロボットアームの動作計画」について解説します。

動作計画とは

ロボットアームの動作計画 (motion planning) とは

  • 障害物と衝突しないような「初期姿勢」から「目標姿勢」に至る動作を生成すること

になります。

image

動作計画の解法

動作計画には、以下のような幾つかの解法があります。

各解法については、説明が長くなるのでそれぞれ別の記事で説明します。

  • タスク空間(task space) における動作計画:「タスク空間における動作計画」では、タスク空間上で「初期手先位置Pstart\vec{P}_{\mathrm{start}}」と「目標手先位置Pgoal\vec{P}_{\mathrm{goal}}」を結ぶ軌道を求める
  • コンフィギュレーション空間(Configuration space) を用いた動作計画:コンフィギュレーション空間上で「初期関節角度Qstart\vec{Q}_{\mathrm{start}}」と「目標関節角度Qgoal\vec{Q}_{\mathrm{goal}}」を結ぶ軌道を求める
  • 深層学習による動作計画

各手法のメリット·デメリット

各手法のメリット·デメリットは以下のようになります。

🔍
深層学習による動作計画については様々な手法があり、単純に比較できないので割愛します

タスク空間における動作計画

  • メリット
    • タスク空間における軌道を求めるので、人間が任意の手先軌道を指定することが可能(動作計画法を用いることで、自動的に軌道を求めることも可能)
  • デメリット
    • 逆運動学を何度も解く必要がある(手先軌道の長さ分)

コンフィギュレーション空間上を用いた動作計画

  • メリット
    • コンフィギュレーション空間上で軌道を求めるため、逆運動学を計算する回数が少なくて済む(「初期関節角度Qstart\vec{Q}_{\mathrm{start}}」と「目標角度Qgoal\vec{Q}_{\mathrm{goal}}」の2回だけでよい)
  • デメリット
    • コンフィギュレーション空間上で軌道を求めるため、タスク空間においてどのような手先軌道になるか、実際に動かしてみないと分からない

「タスク空間における動作計画」と「コンフィギュレーション空間を用いた動作計画」を比較すると下動画のようになります。

image

どちらの手法が良いかは一概には言えませんが、個人的なイメージとしては以下のような使い分けになるかなと思っています。

  • タスク空間における動作計画:任意の軌道を描くように手先位置を制御したい時
    • 例:ペンを持って絵を描く
  • コンフュギュレーション空間を用いた動作計画:単に、障害物にぶつからないように「初期手先位置Pstart\vec{P}_{\mathrm{start}}」から「目標手先位置Pgoal\vec{P}_{\mathrm{goal}}」まで移動させたい時
    • 例:A地点からB地点までぶつからないように物を運びたい

ちなみに、ROSで採用されているロボットアームの動作計画用フレームワークである「MoveIt!」では「コンフィギュレーション空間を用いた動作計画」が採用されています。

最後に

今回は、ロボットアームの動作計画の概要について説明しました。