はじめに
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
https://github.com/higuchi-toshio-intec/example-picam/blob/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
https://github.com/higuchi-toshio-intec/example-picam/blob/master/picam_ros/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
-
念のため、ブラウザで以下のアドレスに接続し GitHub の登録状況を確認する