Skip to content

CHOMP and STOMPの使い方

Ry0 edited this page Nov 29, 2016 · 1 revision

準備

この文章は,Ubuntu 14.04,ROS Indigo向けです. CHOMPを使う場合,moveitを自分でビルドする必要があります(まだapt経由でインストールされるmoveitでは上手に動作しない).

STOMPを使う場合,ROS-Iが開発しているindustrial_moveitを引っ張ってきてビルドする必要があります. 今回はどちらも導入するための手順をメモしておきます.

build

moveitindustrial_moveitのソースをcloneしてくる.ビルドに必要な依存パッケージも同様にcloneしてきます. wstoolを本来使ってぜんぶ持ってくればいいのですが,今回はメモのためわざと自分で引っ張ってくるようなコマンドを書いておきます.

これ以降の操作はmotoman_projectのインストール手順を終えたあとのことを書いています.

CHOMP

git clone https://github.com/ros-planning/moveit.git
cd moveit
git branch indigo-devel origin/indigo-devel
git checkout indigo-devel
git clone https://github.com/ros-planning/moveit_msgs.git
cd moveit_msgs
git branch indigo-devel origin/indigo-devel
git checkout indigo-devel
git clone https://github.com/ros-planning/moveit_resources.git
git clone https://github.com/ros-planning/srdfdom.git
cd srdfdom
git branch indigo-devel origin/indigo-devel
git checkout indigo-devel

STOMP

最新版のmoveitのmoveit_experimentalとパッケージ名が競合するので削除したものを西田研究室でforkしているのでそれを持ってくる.

git clone https://github.com/Nishida-Lab/industrial_moveit.git
cd industrial_moveit
git branch delete_moveit_experimental origin/delete_moveit_experimental
git checkout delete_moveit_experimental

これでcatkin_makeするだけ.

どこでプランナーを切り替えているか

motoman_project/motoman_sia5_moveit_config/launch/move_group.launchの46行目からの

  <!-- Planning Functionality -->
  <include ns="move_group" file="$(find motoman_sia5_moveit_config)/launch/planning_pipeline.launch.xml">
    <arg name="pipeline" value="$(arg planning_config)" />
    <arg name="ompl_config" value="$(arg ompl_config)" if="$(arg use_ompl)" />
    <arg name="use_ompl" value="$(arg use_ompl)"/>
  </include>

基本的に引数のpipelineomplorstomporchompの文字列を突っ込んでるだけ.

その他の追加記述

motoman_sia5_moveit_config/launch/chomp_planning_pipeline.launch.xmlmotoman_sia5_moveit_config/launch/stomp_planning_pipeline.launch.xmlを追加しています. 先ほどのplanning_pipeline.launch.xmlによって読みに行くファイルを変えています.

STOMPは追加の引数が必要なので motoman_project/motoman_sia5_moveit_config/launch/move_group.launchの79行目にこれを追加しています.

<param name="collision_detector" value="IndustrialFCL" if="$(arg use_stomp)" />

launchの仕方

motomanにD-handが装備されているモデルを例に示します. いつもmoveitを利用するときにlaunchファイルであるmotoman_project/motoman_moveit/launch/sia5_with_dhand_moveit_planning_execution.launchを調整します.

<!-- Choose planner [ompl|chomp|stomp] -->
<arg name="planning_config" default="ompl"/>
<!-- If you choose ompl, "use_ompl" is true. -->
<arg name="use_ompl" default="true"/>
<!-- If you choose stomp, "use_stomp" is true. -->
<arg name="use_stomp" default="false"/>

2行目でomplchompstompどれがいいかを書く. もしomplを使うなら4行目をtrueに,それ以外のプランナーを使うならfalseに. もしstompを使うなら...同じ要領で調整してください.

これで設定は終了.

CHOMPの注意点

issueに書いているので,エラーが起こった場合は確認してみてください.

CHOMPプランナーにおけるFailed to call service get_planning_sceneについて
https://github.com/Nishida-Lab/motoman_project/issues/78

スクリーンショット

CHOMP

img

Movie

画像をクリックするとYoutubeに飛びます.

img

STOMP

img

Movie

画像をクリックするとYoutubeに飛びます.

img