ノートブック

古き良きスタイルのノートブックです。

シンプルなロボットアーム Part 3

f:id:primitivem:20170926183823p:plain

ロボットオペレーティングシステムのROSと、ロボットシミュレーターのGazeboを使いシンプルなロボットアームをステップバイステップで作ってゆきたいと思います。
シンプルなロボットアーム Part2 に続いてこの記事ではPart2で作成したロボットの先端にグリッパーを取り付けてみたいと思います。

以下の内容は Ubuntu 16.04 と ROS kinetic の環境で実行したものです。

この記事で解説するコード等は以下にあります。
https://github.com/embodmt/Gazebo_ROS/tree/master/simple_arm_2_with_gripper/urdf
このgithub上のディレクトリを手元のcatkin workspace内にコピーしてcatkin makeすれば依存ライブラリ等も必要なく、簡単に実行できます。 シンプルなロボットアーム Part2 と内容はほぼ同じなのですが今回はアーム本体とグリッパーを別々の.xacroファイルとして分割して記述しています。

このロボットモデルを構成するファイルは
arm.urdf.xacro、 gripper.urdf.xacro、 robot.gazebo.xacro、 robot.transmission.xacro、 robot.urdf.xacro
の5つからなりそれぞれアーム、グリッパー、gazeboの物理パラメータ、Gazebo-ROSのコントローラー部分、そしてこれらを統合するロボット全体を記述するファイルになっています。
統合する部分のファイルを見てみましょう。
robot.urdf.xacro

<?xml version="1.0"?>
<robot name="simple_arm" xmlns:xacro="http://www.ros.org/wiki/xacro">

  <link name="world"/>
  <xacro:include filename="arm.urdf.xacro" />
  <xacro:include filename="gripper.urdf.xacro" />
  
  <joint name="fixed" type="fixed">
    <parent link="world"/>
    <child link="base"/>
  </joint>

  <joint name="arm_to_gripper" type="fixed">
    <parent link="link5"/>
    <child link="gripper_base"/>
  </joint>
  
  <xacro:include filename="robot.transmission.xacro" />
  <xacro:include filename="robot.gazebo.xacro" />
  
</robot>

このように、robot.urdf.xacroがそれ以外の4つのxacroファイルをincludeしているのがわかります。
このロボットモデルの記述に関すること以外はだいたいシンプルなロボットアーム Part2の記事で説明した内容と同じです。

以下のようにして動かしてみると

$ roslaunch simple_arm_2_with_gripper gazebo_rviz.launch

このようにグリッパーが付け加えられて動くのが観察できます。 f:id:primitivem:20170926183823p:plain


以上で シンプルなロボットアーム Part1 と  シンプルなロボットアーム Part2 とそしてこのPart3で3回に分けて ROSとGazeboを使って簡単なロボットモデルを作って動かす例を記事にしたものを終わります。
こうしてミニマルなROSパッケージを作って記事にしておくことで今後新しいROSパッケージを作ろうと思った時に便利なたたき台になることを意図して本記事を書きました。