ROSのパッケージ作成(Hello World!)

概要

 ROSのプログラムは、パッケージとして作成します。パッケージの作成方法を確認するため、定番の「Hello World!」を表示するだけのプログラムのパッケージを作成してみます。
 このページのパッケージのソースは、https://github.com/joe-ash/my_helloにアップしてあります。

ROSの開発環境の設定

workspaceの作成

 以下のコマンドで、ビルドするためのワークスペースを作成します。

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make

ROSのパッケージの作成

パッケージの新規作成

 パッケージは、下記のコマンドで作成します。

$ cd ~/catkin_ws/src
$ catkin_create_pkg my_hello std_msgs roscpp
$ cd my_hello
$ ls
 include → インクルードファイルフォルダ
 src → ソースファイルフォルダ
 CMakeLists.txt → ビルド設定ファイル
 package.xml → パッケージ設定ファイル

パッケージ設定ファイル(package.xml)の修正

 パッケージ設定ファイル(package.xml)を下記のように修正します。

<?xml version="1.0"?>
<package>
  <name>my_hello</name>
  <version>0.0.0</version>
  <description>Hello world package</description>
  <maintainer email="joe@ash.jp">joe</maintainer>
  <license>BSD</license>
  <url type="website">http://joe.ash.jp/</url>
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>roscpp</build_depend>
  <run_depend>std_msgs</run_depend>
  <run_depend>roscpp</run_depend>
  <export></export>
</package>

ビルド設定ファイル(CMakeLists.txt)の修正

 ビルド設定ファイル(CMakeLists.txt)を下記のように修正します。

cmake_minimum_required(VERSION 2.8.3)
project(my_hello)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
)
catkin_package(
  CATKIN_DEPENDS roscpp std_msgs
)
include_directories(
  ${catkin_INCLUDE_DIRS}
)
add_executable(my_hello src/my_hello.cpp)
target_link_libraries(
  my_hello
  ${catkin_LIBRARIES}
)

ソースファイル(src/my_hello.cpp)の作成

#include <ros/ros.h>

int main(int argc, char **argv) {
  ros::init(argc, argv, "my_hello");
  ROS_INFO("Hello world");
  return 0;
}

パッケージのビルド

$ cd ~/catkin_ws
$ catkin_make

パッケージの実行

 rosrunコマンドで、パッケージ名とノード名を指定して、プログラムを起動すると、「Hello world!」が表示されます。

$ source ~/catkin_ws/devel/setup.bash
$ rosrun my_hello my_hello

[ INFO] [1551417712.766162913]: Hello world!

パッケージの削除

 パッケージを削除する場合は、ワークスペースのsrcディレクトリから、パッケージのディレクトリを削除します。次に、buildとdevelディレクトリを削除します。ディレクトリを削除したら、catkin_makeを実行し、buildとdevelを再作成します。

$ cd ~/catkin_ws
$ rm -rf src/my_hello
$ rm -rf build devel
$ catkin_make

Copyright (C) ASH Joe Masumura