Slide 1

Slide 1 text

1 2024.11.9 第20回FA設備技術勉強会 in TOKYO を使った 株丹 亮 Kabutan Ryo 産業用ロボット向け 動作作成方法の紹介

Slide 2

Slide 2 text

今日のLTの内容 2 MoveItと呼ばれるOSSを使って産業用ロボットの動作を作成する方法を紹介。

Slide 3

Slide 3 text

MoveItを使ったら何ができる? • ロボットアームの動作を自動で作ることができる。 • センサで障害物を検知しながら、複雑な動作が自動生成できる。 (自動ピッキングシステム等のロボットアプリが比較的簡単に作成できる。) 3 3次元距離センサ MoveItの画面 障害物 myCobot

Slide 4

Slide 4 text

MoveItの特徴(FA寄りの目線から) 4 Bad! Good! • 従来型の産業用ロボットのティーチングと異なり、動作を自動で生成することが できる(障害物を回避する複雑な動作も自動生成可)。 • ROSで産業用ロボットを繋げば、C++やPythonでロボットのメーカ・種類関係 なく共通のロボットアプリが作れる。 • かつてのMoveIt(MoveIt 1と呼称)では先進的な動作生成技術が使える一方、 従来のティーチングでよく使う関節補間(MOVJ)、直線補間(MOVL)が 簡単に使える状況ではなかった。 • MoveIt 1では前者と後者の組み合わせた動作が作れなかった。 この区間は障害物があるので回避動作を自動生成、この区間は単純に 直線補間でZマイナス方向に手先をおろすなど。 最新バージョンのMoveIt 2では上記のデメリットが解消されていたので、 紹介させていただきます。

Slide 5

Slide 5 text

実際にやってみた MoveItでは以下のような動作生成アルゴリズムがプラグインとして活用できる 5 種別 プラグイン名 特徴 動画 自動生成系 プラグイン • OMPL • CHOMP • STOMP • TrajOpt 障害物を事前定義または センシングすることで障害物を 回避できる複雑な動作を自動生成 可能。 右の動画は障害物回避している例 産業用ロボット 動作系 プラグイン pilz industrial motion planner 以下の動作が作成可能。 • 関節補間(PTP) • 直線補間(LIN) • 円弧補間(CIRC) 右の動画は直線補間の例

Slide 6

Slide 6 text

実際にやってみた • MoveIt 2のC++/Python APIでは、区間ごとに使用する プラグイン名と動作生成ロジックが指定可能。 6 Pythonでの実装例 動作生成ロジックを切り替える場合はここの 実装を変更する MoveIt 2のIFで提供された新しいAPI (MoveIt 1はできなかった) 直線補間 OMPLの RRT-Connect を使った自動生成 手先の位置姿勢の指定 だけでなく 関節角度の指定でもOK 参考サイト: https://moveit.picknik.ai/main/doc/examples/motion_planning_python_api/motion_planning_python_api_tutorial.html

Slide 7

Slide 7 text

実際にやってみた 障害物回避動作と直線補間動作を組み合わせて動作作成テストを行った。 7 テストシナリオ 開始姿勢 中間姿勢 障害物回避区間 ?? 直線移動 障害物回避 終了姿勢 直線移動区間 ① ② ③

Slide 8

Slide 8 text

実際にやってみた 障害物回避動作と直線補間動作を組み合わせて動作作成テストを行った。 8

Slide 9

Slide 9 text

まとめ • MoveIt 2では、 動作を自動生成できるだけでなく、 従来のティーチングのような確定的な動作の生成も どちらも同じ使用感で実行できるようになっている。 • 今日示したサンプルのような実装を切り貼りするだけで、 そこそこ色々なロボットアプリが作れる気がする。 • 産業用ロボットのROS 2対応も順次進んできているので、 MoveItをFA領域で活用できるシーンは増えてきそう。 9

Slide 10

Slide 10 text

ご静聴ありがとうございました。 質問があれば、お気軽にどうぞ!! 10