見出し画像

ROS入門 (35) - MoveItのセットアップ

「MoveIt」のセットアップ方法をまとめました。

・Melodic

前回

1. MoveIt

「MoveIt」はロボット制御用のプラニングフレームワークです。

次のような機能を提供しています。

・モーションプランニング
ロボットアームが周囲の障害物の位置、関節の角度、ゴールまでの軌道などの情報を元に、ロボット自身の動きをプランニング。

・マニピュレーション
ロボットアームが対象物に対し、動かす、組み立てる、塗装する、溶接するなどの動作の制御。

・運動学(順運動学・逆運動学)
順運動学と逆運動学の計算。
  - 順運動学 : ロボットの関節の変位からロボットの姿勢を計算。
  - 逆運動学 : ロボットの姿勢からロボットの関節の変位を計算

・ナビゲーション
自立移動するロボットがゴール位置までの移動経路を計算。

・3D環境認識
自律移動するロボットがゴール位置までの移動経路を計算するために、周囲の3D環境を認識する機能。

2. ワークスペースのセットアップ

ROS入門 (8) - ROS1のパッケージの作成」と同様です。

3. パッケージの準備

今回は、「moveit_tutorials」と「panda_moveit_config」を使います。

・moveit_tutorials : MoveItのチュートリアル。
・panda_moveit_config : ロボットアームpandaの設定情報。

「panda」はFrankaEmikaのロボットアームです。

(1) 「moveit_tutorials」と「panda_moveit_config」をクローン。

$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-planning/moveit_tutorials.git -b melodic-devel
$ git clone https://github.com/ros-planning/panda_moveit_config.git -b melodic-devel

(2) パッケージの依存関係のインストール。

$ sudo apt update
$ rosdep update
$ rosdep install -y --from-paths . --ignore-src --rosdistro melodic

(3) ワークスペースのビルド。

$ cd ~/catkin_ws
$ catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
$ catkin build

(4) ワークスペースのセットアップ。

$ source ~/catkin_ws/devel/setup.bash

4. rvizの起動

rviz」の「MotionPlanningプラグイン」を使って、「MoveIt」でロボットアームを制御する様子を可視化します。

(1) rvizの起動。

$ roslaunch panda_moveit_config demo.launch rviz_tutorial:=true

(2) DisplaysタブのAddボタンを押し、「MotionPlanning」を選択し、OKボタンを押す。

rvizにpandaが表示されます。

(3) 「Displays → Global Options 」で以下を設定。

・Fixed Frame : /panda_link0

(4) 「Displays → MotionPlanning 」で以下を設定。

・RobotDescription : robot_description
・Planning SceneTopic : /move_group/monitored_planning_scene
・PlanningRequest → PlanningGroup : panda_arm
・Planned Path → TrajectoryTopic : /move_group/display_planned_path

5. ロボットの表示

ロボットの表示には4種類あり、「Displaysタブ」の「MotionPlanning 」で表示・非表示を切り替えることができます。

・Scene Robot → Show Robot Visual : 現在のロボットの姿勢。
・Planning Path → Show Robot Visual : ロボットのスタートからゴールまでの軌跡。
・Planning Request → Query Start State : ロボットのスタート姿勢 (緑)。
・Planning Request → Query Goal State : ロボットのゴール姿勢 (橙)。

6. インタラクティブマーカー

ロボットのスタート姿勢とゴール姿勢を表示すると、緑と橙のアームが表示されます。各アームのエンドポイントには「インタラクティブマーカー」が表示され、矢印をドラッグすること平行移動、円をドラッグすることで回転できます。

・マーカーが表示されていない場合
「rviz」のトップメニューの「Interact」を選択。
・ワークスペース(青い立方体)が表示されマーカーが選択できない場合
「Displays → Motion Planning → Planning Request → Show WorkspaceをOFF。
・rvizが重い場合
「Displays → Global Options → Frame Rate」に「10」を指定。

7. アームの衝突判定

アームのリンクを衝突させると、衝突しているリンクが赤くなります。

「MotionPlanning → Planning」の「Collision-Aware IK」をONにすることで、衝突のないエンドエフェクタの姿勢を見つけようとします。OFFの場合、衝突を許可します。この状態に関係なく、衝突しているリンクは赤くなります。

8. モーションプランニング

スタート姿勢とゴール姿勢を指定することで、軌跡を計算し、アームを動かすことができます。
今回は、現在のロボットの姿勢を非表示にして、スタート姿勢とゴール姿勢とその間の軌跡を表示します。

(1) マーカーでアームのスタート姿勢を指定。
(2) マーカーでアームのゴール姿勢を指定。
(3) アームのリンクが衝突していない(赤くなっていない)ことを確認。
(4) 「MotionPlanningタブ」の「Planning」の「Plan」ボタンを押す。
スタート姿勢からゴール姿勢までの軌跡が表示されます。

9. 関連


次回



この記事が気に入ったらサポートをしてみませんか?