2
1

More than 5 years have passed since last update.

[はじめてのRDBOX(3)]rdbox使ってみました:ROSパッケージ作成編

Last updated at Posted at 2019-08-29

はじめに

ROS の初心者が、とっても簡単なROSアプリを作ってみました。(連載記事です)

今回の記事の概要

  • GitHub に、今回の記事用の repository を作成
    • GitHub アカウントを必要とします
  • 新規 ROS パッケージを作成
  • 画像ファイルの受け渡しに使用するメッセージを定義
  • 作成したソースファイルを GitHub に登録
  • 今回の記事に該当するソースファイルは、以下のアドレスから参照可能です

使用環境

  • Docker(ROS) 環境起動
  $ sudo docker pull ros:melodic-ros-base
  $ sudo docker run -dit --name hajimete_rdbox_ros --net host ros:melodic-ros-base
  $ sudo docker exec -it hajimete_rdbox_ros /bin/bash
  root@hajimete_rdbox_ros:/#

連載記事内共通情報

  • ROS アプリのソースファイルは GitHub にて管理/共有しています
  • ROS アプリによって、コンパイルおよび実行環境が異なる(amd64/arm)ため、GitHub を仲介してソースファイルを共有しています

GitHub に新規 repository 作成

  • GitHub の使い方に関する説明は省略します
  • 作成する repository 名は「picam_ros」
    • 'Initialize this repository with a README' にチェックを入れておくと良い

GitHub から clone/pull

  • 必要に応じて、GitHub から clone や pull します
  $ mkdir -p ${HOME}/ros_ws/src
  $ cd ${HOME}/ros_ws/src
  $ git clone https://github.com/YourGitHubAccount/picam_ros.git
  # 以下は clone 済みの場合
  $ cd ${HOME}/ros_ws/src/picam_ros
  $ git pull

構築

ROS パッケージ作成

  • パッケージ作成

    • パッケージ名は「picam_ros」
    • 関連パッケージ
    パッケージ名 説明
    roscpp c++用パッケージ
    rospy python用パッケージ
    std_msgs 基本的なデータ型用メッセージ形式
    sensor_msgs 画像を含むセンサー類のメッセージ形式
  • 以下(↓)は具体的な手順

    • 実行後、${HOME}/ros_ws/src/picam_ros ディレクトリ以下にファイルが作成される
  $ cd ${HOME}/ros_ws/src
  $ catkin_create_pkg picam_ros roscpp rospy std_msgs sensor_msgs

msg/picam_photo.msg

  • 今回の一連の記事で使用する ROS メッセージの定義ファイルの作成
  • 以下の情報を含むメッセージとする
    • 撮影日時情報
    • 撮影端末識別情報
    • 画像データ
  • ROS アプリ(sub_photo.py および take_pub_photo.py)で使用する
  • 以下(↓)は具体的な手順(下記例では、GitHubよりファイルを取得)
  $ cd ${HOME}/ros_ws/src/picam_ros
  $ mkdir msg
  $ cd msg
  $ curl -s -o picam_photo.msg https://raw.githubusercontent.com/higuchi-toshio-intec/example-picam/master/picam_ros/msg/picam_photo.msg

CMakeLists.txt

  • 自動作成された CMakeLists.txt を ROS アプリ picam_ros 用に修正(修正箇所は diff で確認)
    • 新たにメッセージ型を作成するため message_generation の記述を追加、generate_messages 関連の記述を有効化
    • 新たなメッセージ型として picam_photo.msg の記述を追加
    • パッケージの依存関係の記述を有効化
  • 以下(↓)は具体的な手順(下記例では、GitHubより修正済みファイルを取得)
  $ cd ${HOME}/ros_ws/src/picam_ros
  $ mv CMakeLists.txt CMakeLists.txt.orig
  $ curl -s -o CMakeLists.txt https://raw.githubusercontent.com/higuchi-toshio-intec/example-picam/master/picam_ros/CMakeLists.txt
  $ diff -up CMakeLists.txt.orig CMakeLists.txt

catkin_make

  • コンパイル実行

    • 実行コマンドは catkin_make
    • 「catkin_make: command not found」となった場合は、以下のコマンドを実行
    $ source /opt/ros/${ROS_DISTRO}/setup.bash
    
  • 以下(↓)は具体的な手順

$ cd ${HOME}/ros_ws/
$ catkin_make

GitHub への登録

  • 作成したファイル全てを GitHub に登録
    • clone 済みなので、add/commit/push を実行
    • commit メッセージは、あとでどのような commit であるかわかるようにすると良い
  • 以下(↓)は具体的な手順
  $ cd ${HOME}/ros_ws/src/picam_ros
  $ git add .
  $ git commit -m 'CommitMessage'
  $ git push

記事リスト

  1. 概要編
  2. 画像参照アプリの構築編
  3. ROSパッケージ作成編(← 今回の記事)
  4. ROS Subscriber編
  5. ROS Publisher編
  6. DockerImage 作成編
  7. RDBOX(k8s) ポート転送編
  8. RDBOX(k8s) Subscriber アプリ編
  9. RDBOX(k8s) Publisher アプリ編
  10. 雑記
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1