はじめに
ROS の初心者が、とっても簡単なROSアプリを作ってみました。(連載記事です)
今回の記事の概要
- 以前の記事で定義したメッセージに従い画像ファイルを待ち受け、取得(Subscribe)した画像ファイルを指定ディレクトリに保存する ROS アプリを構築する
- 作成したソースファイルを GitHub に登録する
- 今回の記事に該当するソースファイルは、以下のアドレスから参照可能です
構築
関連パッケージ
- 画像データ取り扱いに関連して OpenCV を使用している
$ sudo apt install -y python-opencv ros-melodic-cv-bridge
ROS アプリ作成 : scripts/sub_photo.py
- 今回の記事のアプリソースファイルの作成
- 画像データ受信(=Subscribe)する
- 受信した画像データをファイルに保存する
- 以下(↓)は具体的な手順(下記例では、GitHubよりファイルを取得)
$ mkdir -p ${HOME}/ros_ws/src/picam_ros/scripts
$ cd ${HOME}/ros_ws/src/picam_ros/scripts
$ curl -s -o sub_photo.py https://raw.githubusercontent.com/higuchi-toshio-intec/example-picam/master/picam_ros/scripts/sub_photo.py
$ chmod +x sub_photo.py
ソースファイルの主要部分説明
- 画像ファイルの待ち受け(Subscriber)
- トピック名称:example_picam_photo
- データ型:picam_photo
- Callback:save_photo
- 以下(↓)は対応する部分
def sub_photo():
rospy.init_node('sub_photo', anonymous=True)
rospy.Subscriber('example_picam_photo', picam_photo, save_photo)
rospy.spin()
- Callback (メッセージ picam_photo が届いたら呼び出される処理)
- 引数の数:1
- データ型:picam_photo
- 以下(↓)は対応する部分
def save_photo(msg):
print("[INFO] Call : save_photo")
### 以降省略 ### 画像ファイル作成などの処理 ###
GitHub への登録
- 作成したファイル全てを GitHub に登録
- clone 済みなので、add/commit/push を実行
- commit メッセージは、あとでどのような commit であるかわかるようにすると良い
- 以下(↓)は具体的な手順
$ cd ${HOME}/ros_ws/src/picam_ros
$ git add .
$ git commit -m 'CommitMessage'
$ git push
- 念のため、ブラウザで以下のアドレスに接続し GitHub の登録状況を確認する
アプリ起動
- 以下(↓)は具体的な手順
$ cd ${HOME}/ros_ws
$ source /opt/ros/${ROS_DISTRO}/setup.bash
$ source devel/setup.bash
$ rosrun picam_ros sub_photo.py