siar

Snowy Institute

Moveit! Setup Assistant を使って簡単に Moveit! する

Moveit! Setup Assistant を使って簡単に Moveit! する記事です.

この記事は ROS Advent Calendar 2018 の19日目の記事です. (自身がQiitaのアカウントを所持していないため, こちらへの投稿になります.)

はじめに

プログラムを1字も書かずに, 最低限の設定で Moveit! する方法を書いています.

詳しい解説などがある公式のチュートリアルこちらになります.

環境

  • OS: Ubuntu 16.04
  • ROS: Kinetic Kame
  • ロボットモデル: URDF(.urdf) + COLLADA(.dae)

の構成となっています.

Moveit!

Moveit! について

Moveit! はRobot Operating System (ROS) 上で動作する, 関節ロボットの動作計画を行うためのアプリケーション群です.

カメラと連携して障害物回避ができたり, あるいはエンドエフェクタの軌道追従をさせたりできます.

逆運動学ソルバや動作プランナが標準で数種類用意されており, またプラグイン等での追加も可能です.

準備

インストール

ROSはros-kinetic-desktop-fullがインストール済みの状態を想定しています.

sudo apt install ros-kinetic-moveit

モデルファイルの準備

URDF形式(.urdfまたは.urdf.xacro)のものを用意します.

こちらも詳しくはこちらをご確認ください.

使う

モデルファイルの読み込み

f:id:ssr-yuki:20181219233528p:plain

Create New Moveit Configuration Package を選択し, Browse からファイルを選択しします.

今回はWAREC-1のモデルを利用します.

f:id:ssr-yuki:20181219233715p:plain

右下のLoad ボタンを押すとモデルが読み込まれ, 右側にプレビューが表示されるようになります.

衝突判定の最適化

無駄な衝突判定が実行されないように調整します.

f:id:ssr-yuki:20181219233858p:plain

上欄のサンプリング密度だけ設定し, Generate Collision Matrix を押せば大丈夫です.

グループ化

個々の関節をグループ化します.

f:id:ssr-yuki:20181219234037p:plain

Add Group から名前と逆運動学ソルバ等を設定し, 関節を選択すればグループ化ができます.

エンドエフェクタの設定

エンドエフェクタを設定します.

f:id:ssr-yuki:20181219234243p:plain

Add End Effector からエンドエフェクタを設定します.

名前, 親となるリンクを指定すればよいです.

メンテナの登録

必須らしいので入れます.

f:id:ssr-yuki:20181219234418p:plain

その他の設定

移動ロボットに取り付ける場合のジョイント, ロボットの姿勢, 逆運動学に使用しない関節, カメラ等の設定ができます.

こちらは今回は省略しています.

ファイルの出力

f:id:ssr-yuki:20181219234500p:plain

ディレクトリを設定し, Generate Package を実行すれば完了です.

結果

出力したパッケージをビルドし,

roslaunch (パッケージ名) demo.launch

を実行すれば, もう RViz 上でGUI操作することができます.

f:id:ssr-yuki:20181219235053p:plain

楽しい!

おわりに

プログラムを1字も書かずにロボットで遊べます! やったね!