(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

ROSのパッケージを手動で作る

Description: このチュートリアルは、どのようにROSのパッケージを手動で作るかを説明します。

Tutorial Level: INTERMEDIATE

Next Tutorial: Managing System Dependencies

ROSのPackages (catkin_create_pkg)を作るツールはありますが、ご覧いただくように決定的な違いはありません。roscreate-pkgはミスを減らし、楽をできますが、パッケージはディレクトリとシンプルなXMLファイルだけです。

さて、新しいfoobarパッケージを作りましょう。このチュートリアルでは、catkinのワークスペースで作業し、setupファイルを読み込み済みであることを想定しています。

catkin_ws_top $ mkdir -p src/foobar
catkin_ws_top $ cd src/foobar

まず初めにわれわれがすべきことは、manifestファイルを加えることです。package.xmlファイルはrospackのようなツールがパッケージがどれに依存してるかなどの情報についての決定できるようにサポートします。

foobar/package.xmlの中で, 以下をコピーペーストしてください:

<package>
  <name>foobar</name>
  <version>1.2.4</version>
  <description>
  This package provides foo capability.
  </description>
  <maintainer email="foobar@foo.bar.willowgarage.com">PR-foobar</maintainer>
  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>std_msgs</build_depend>

  <run_depend>roscpp</run_depend>
  <run_depend>std_msgs</run_depend>
</package>

this page from catkin tutorialも更なるcatkin/package.xmlに関する情報が必要ならご覧ください。

もうパッケージはmanifestを持っているので、ROSはこのパッケージを見つけることができます。以下のコマンドを打ってみてください。

rospack find foobar

もしROSが正しく準備されているなら、/home/user/ros/catkin_ws_top/src/foobarのようなものを見るでしょう。これがROSがパッケージを見つけ出せる理由です。

roscppstd_msgsと依存関係をこのパッケージは持っていることに注意してください。

そのような依存関係は正しい順序でパッケージを構成するために、catkinによって使われます。

次にCMakeLists.txtがマルチプラットフォームでビルドするときに強力な柔軟性をもつCMakeを利用するcatkin_makeがパッケージをビルドするのに必要である。

foobar/CMakeLists.txtの中で, 以下をコピーペーストしてください:

cmake_minimum_required(VERSION 2.8.3)
project(foobar)
find_package(catkin REQUIRED roscpp std_msgs)
catkin_package()

以上がcatkinを使ってROSの中でパッケージをビルドするのに必要なことです。もちろん、何かをビルドしようと思ったなら、CMakeのマクロについて学ばなければなりません。詳しくはCMakeLists.txtをご覧ください。package.xmlCMakeLists.txtなどをカスタマイズするために、いつでも初心者レベルのチュートリアルもご覧ください。(CreatingPackageなど)

Wiki: ja/ROS/Tutorials/Creating a Package by Hand (last edited 2014-10-14 02:10:14 by KoheiWatanabe)