Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MoveItの新機能、 pilz industrial motionを試してみた

MoveItの新機能、 pilz industrial motionを試してみた

検証用コードはこちら
https://github.com/Ry0/test_pilz_industrial_motion

ROS Japan UG #36 飛び込みLT・ネットワーキング(オンライン開催)
日時:5月1日 18:45開場、19:00開始
場所:Google Meet

Ryo Kabutan

May 01, 2020
Tweet

More Decks by Ryo Kabutan

Other Decks in Science

Transcript

  1. の新機能、 pilz industrial motion を試してみた 株丹 亮 ROS Japan UG

    #36 2020.5.1 ⾶び込みLT・ネットワーキング(オンライン開催)
  2. ⽬的 MoveItでの新機能、Industrial motionを試す 従来型の産業⽤ロボットとMoveItの機能⽐較 その前に... 従来型の産業⽤ロボット ティーチングペンダントで動作を⽣成 作業内容に合わせて経由点を⼿動で定義する。 同じ動作を精度良く繰り返すのが得意。 例:溶接作業、組み⽴て作業など

    ⾃動でロボットの動作を⽣成 ティーチングでは⾮常に煩雑な障害物回避動作 を⾃動で⽣成可能。センシングした結果をもと にその場で動作を⽣成可能。 例:ばら積みピッキング作業など
  3. pilz industrial motionの登場 MoveItは⾰新的だが、 従来型の産業⽤ロボットが得意な細かい動作を 作り込むのは難しい。 動作⽣成アルゴリズムが乱数ベースで動作が毎回変わってしまう。 ありがたいときもあるし、不便なときもある。 そうだ!従来型の産業⽤ロボットの機能もつけてしまおう!! pilz

    industrial motionの登場 開発者 Pilz GmbH & Co. KG ドイツのFAメーカ 開発状況 本家MoveItにプルリクエスト、 絶賛レビュー中(5/1時点) 機能概要 pilz industrial motion planner としてプラグインで使⽤可能。 関節補間、直線補間、円弧補間、 3つの動作を⽣成可能。 悩み...!
  4. ビルド⽅法(参考情報) 5/1時点ではマージされていないので、以下の⼿順 で導⼊した。(※ マージされたらこんなことしなくてよい) 前提 • ROS1のmelodicで検証。 • MoveItのソースビルド済みの環境である。ソースビルドは、 https://moveit.ros.org/install/source/

    を参照。 $ git clone https://github.com/PilzDE/moveit.git $ cd moveit $ git checkout -b pilz_planner_merge origin/pilz_planner_merge $ cd .. $ git clone https://github.com/PilzDE/pilz_industrial_motion.git $ cd pilz_industrial_motion $ git checkout -b moveit_merge origin/moveit_merge $ cd .. $ git clone https://github.com/PilzDE/pilz_robots.git $ cd pilz_robots $ git checkout -b moveit_merge origin/moveit_merge $ cd .. $ git clone https://github.com/PilzDE/moveit_msgs.git $ cd moveit_msgs $ git checkout -b pilz_planner_merge origin/pilz_planner_merge $ cd ../.. $ rosdep install -i -y -r --from-paths src $ catkin build
  5. 実際に試してみる 関節補間 (PTP) 直線補間 (LIN) 円弧補間 (CIRC) [ INFO] [1588254635.697290019]:

    Generating CIRC trajectory... [ERROR] [1588254635.697460199]: No path constraint named "interim" or "center" found (found unknown constraint: "req.path_constraints.name" instead) [ WARN] [1588254635.714897758]: Fail: ABORTED: No motion plan found. No execution attempted. 移動に⼀番時間がかかる関節軸に合わせて すべての関節の動作が決定。 ⽬標姿勢まで直線的に結ぶ。 従来の直線補間よりも安定的? moveit::planning_interface::MoveGroup:: computeCartesianPath 評価はまだできていない。 plizのほうが補間失敗原因の内容が 親切な気がする。 ⼆点の姿勢と円弧の中⼼点を指定。 GUI上で指令しても以下のエラーが出る。この補間⽅法独⾃の制約情報が必要であるため。 C++/PythonからMotionPlanRequestをきちんと作って投げれば問題なし。
  6. プラス⽬⽟機能 複数の区間をまとめてリクエストとして投げることが できる。 P0〜P4が経由する姿勢 軌道⽣成区間はP0-P1、P1-P2、... blend_radiusで 経由点での内回り量を指定可能。 結果 blend_radius =

    0.1 blend_radius = 0.05 blend_radius = 0 内回り量が⼤きいほど 減速なしで次の区間の移動が可能 テスト⽤Pythonコードをここに置く予定。https://github.com/Ry0/test_pilz_industrial_motion ここがデカイ!!
  7. まとめ • MoveItの新機能を紹介した。 • 問題なく動作した。 • GUI等を作り込めば、FA現場でMoveItがさらに使える ようになる(はず)。 わかってないこと •

    パスプランニングとの組み合わせ技はできる? OMPLと共存させたい。 • 問題なく動いたが、パッケージ肥⼤化などの問題で マージされるか不透明な部分はある。 結論