#プログラミング ROS< アクションと定義 >
##はじめに
1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.改めて初めから学び,復習も兼ねながら学習を進めていくこととする.その第5弾として,アクションと定義を扱う.
##環境
#####仮想環境
ソフト | VMware Workstation 15 |
実装RAM | 2 GB |
OS | Ubuntu 64 ビット |
isoファイル | ubuntu-mate-20.04.1-desktop-amd64.iso |
#####コンピュータ
デバイス | MSI |
プロセッサ | Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz |
実装RAM | 8.00 GB (7.89 GB 使用可能) |
OS | Windows (Windows 10 Home, バージョン:1909) |
#####ROS
Distribution | noetic |
プログラミング言語 | Python 3.8.5 |
##アクションとは?
サービスでは苦手な時間のかかるゴール指向のタスクを実装するのに最も適した方法.サービスが同期的であるのに対してアクションは非同期的である.アクションの中身は複数のトピックで構成されている.そのトピックには,ゴール,リザルト,フィードバックなどがある.以下にそれらのトピックのイメージを示す.
フィードバックの役割:
・ゴールに対する進歩状況の更新に使われる
・ゴールを取り消す仕組みも用意
##アクションの定義
アクション定義ファイル(.action):
ゴール,リザルト,フィードバックのメッセージフォーマットをもつ.
ここでは,自作タイマー用のアクション定義ファイルを例とする.以下に示すのは,その定義ファイルである.
メッセージやサービス同様,package.xmlファイルとCMakeList.txtファイルの一部をアクション定義のために変更し,catkin_make
を~/catkin_ws
において,実行することで,アクション定義を完了させる.完了後,rosmsgs list | grep Timer
として,定義されていることを確認する.そのときの様子を次に示す.
パッケージ名の後ろにいろいろな名前でアクションが作成されていることが分かる.これで,アクションの定義は完了である.
##感想
改めてしっかりとアクションについて学び,トピックの組み合わせと捉えられたことで,アクションの扱いづらそうなイメージを払拭できたと思う.次回は今回定義したアクションを利用することで,アクションの扱いへの理解をより深められることを期待する.
##参考文献
プログラミングROS Pythonによるロボットアプリケーション開発
Morgan Quigley, Brian Gerkey, William D.Smart 著
河田 卓志 監訳
松田 晃一,福地 正樹,由谷 哲夫 訳
オイラリー・ジャパン 発行