ROS入門 (49) - MoveIt2の使い方
「MoveIt2」の使い方をまとめました。
前回
1. MoveIt2
「MoveIt2」はロボット制御用のプラニングフレームワークです。
次のような機能を提供しています。
2. ワークスペースのセットアップ
「ROS入門 (9) - ROS2のパッケージの作成」と同様です。
3. パッケージの準備
今回は、「moveit_tutorials」を使います。
(1) resdepとaptのアップデート。
$ rosdep update
$ sudo apt update
$ sudo apt dist-upgrade
(2) インストールに必要なツールのインストール。
$ sudo apt install python3-rosdep
$ sudo apt install python3-colcon-common-extensions
$ sudo apt install python3-colcon-mixin
$ colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
$ colcon mixin update default
$ sudo apt install python3-vcstool
(3) 「moveit2_tutorials」をクローンと依存関係のインストール。
$ cd ~/colcon_ws/src
$ git clone https://github.com/ros-planning/moveit2_tutorials.git -b foxy
$ vcs import < moveit2_tutorials/moveit2_tutorials.repos
$ rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
(4) ワークスペースのビルド。
$ cd ~/colcon_ws
$ colcon build --mixin release
(5) ワークスペースのセットアップ。
ターミナルを開くたびに必要になるため、「~/.bashrc」にも追加します。
$ source ~/colcon_ws/install/setup.bash
4. rviz2の起動
「rviz2」の「MotionPlanningプラグイン」を使って、「MoveIt2」でロボットアームを制御する様子を可視化します。
(1) rviz2の起動。
$ ros2 launch moveit2_tutorials demo.launch.py rviz_tutorial:=true
(2) DisplaysタブのAddボタンを押し、「MotionPlanning」を選択し、OKボタンを押す。
rviz2にpandaが表示されます。
(3) 「Displays → MotionPlanning 」で以下を設定。
5. ロボットの表示
ロボットの表示には4種類あり、「Displaysタブ」の「MotionPlanning 」で表示・非表示を切り替えることができます。
6. インタラクティブマーカー
トップメニューの「Interact」を選択した状態で、「スタート状態」と「ゴール状態」を表示することで、緑アームと橙アームが表示されます。各アームのエンドエフェクターには「インタラクティブマーカー」が表示され、ドラッグで移動させることができます。
7. アームの衝突判定
アームのリンク同士を衝突させると、リンクが赤くなります。
「MotionPlanning → Planning」の「Collision-aware IK」をONにすることで、衝突のないエンドエフェクタの姿勢を見つけようとします。OFFの場合、衝突を許可します。この状態に関係なく、衝突しているリンクは赤くなります。
8. モーションプランニング
スタート状態とゴール状態を指定することで、その軌跡を計算して実行することができます。
(1) マーカーでアームのスタート状態を指定。
(2) マーカーでアームのゴール状態を指定。
(3) 「MotionPlanningタブ」の「Planning」の「Plan」ボタンを押す。
スタート状態からゴール状態までの軌跡が表示されます。
(4)「MotionPlanningタブ」の「Planning」の「Execute」ボタンを押す。
ロボット本体でプランを実行します。
9. Pythonはまだ未対応な模様
「MoveIt」のROS2対応は遅れていて、move_commander(Python)とRvizプラグイン(GUI)もまだ未対応な模様です。「Unity Robotics Hub」も、NavigationのサンプルはROS2版ですが、MoveItのサンプルはROS1版でした。
次回
この記事が気に入ったらサポートをしてみませんか?