2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ROSについてまとめてみる #3

Last updated at Posted at 2020-12-10

この記事は、ROSについてまとめてみる #2の続きです。
*重複している部分もありますが、ひとまずこのまま公開します。
*この記事の記載内容はROS1に関するものです。

#アーキテクチャ
##コンピュテーショングラフ
こちらの書籍を参考にまとめているのですが、この書籍では、コンピューティンググラフ、という項目で解説されていました。

ROSプログラミング(森北出版株式会社)
https://www.morikita.co.jp/books/book/3010

コンピュテーショングラフというのが何なのか、調べてみてもよくわからなかったのですが…。おそらく演算、処理(computing)の仕組みがどうなっているのか?という部分のことだという理解でいいと思います。
ROSの処理は、以下のような要素からなります。

  • ノード
  • roscore
    • マスター
    • パラメーターサーバー
  • メッセージ
    • トピック
  • サービス
  • バッグ

これらの要素を用いて、ROSのシステムは、数理的なグラフで表すことができます。
*大きな四角はネームスペース、その中の小さな四角はトピック、丸はノード。
snap_rqt_graph_moveit_demo.png

###ノード
ROS1ではプロセスのことです。基本的には単一の処理をします。
パッケージはノードが集まったものです。

###roscore
####マスター
マスターはroscoreの提供する機能です。
トピックやノード、サービスの登録、検索などの管理を行うROSのコア機能です。
ノードは、起動時にマスターに自分の配信(publish)するトピックと、購読(subscribe)したいトピックを登録します。
あとはマスターが相手のピアを見つけてくれるので、それ以降はノード同士のピアツーピアの通信となります。
後からノードを追加した場合なども、マスターがよしなにやってくれます。

####パラメーターサーバー
こちらもroscoreの機能です。トピックのようにPub/Subでイベント的にメッセージを飛ばすのとは違い、こちらは値を保持するような場合に使われます。分散システム内の各ノードから見えるグローバル変数を保持するといったような感じでしょうか。複数ノード起動時の、ノードのコンフィグレーションなどに使われます。

###メッセージ
ノード間の通信におけるデータ単位のひとつ。
メッセージのデータ型は、標準的なものは用意されており、複数言語での実装でも問題のないように取り決められています。これらのデータ型は独自に設定が可能な上、headerにタイムスタンプやフレームIDを持たせることもでき、メッセージの時系列的な管理もできます。

####トピック
ノード間で通信を行う際に、配信者、購読者がお互いに参照する場所。
データパス。メッセージの流れてくる場所。
トピックメッセージのまわりに関しては、用語が混乱しやすいのですが、トピックを公開して、そこにメッセージを配信する。という解釈が一番近いと思います。
本に例えると、トピックは漫画や雑誌のタイトル(またはそれ自体)、メッセージは中の文章といった感じでしょうか。"トピックを配信する"といったような表現も時々見ますが、"トピックを公開してメッセージを配信する"の方が理解しやすいかなと思います。

###サービス
ROSでは、上記のメッセージのようなPub/Sub型の通信のみでなく、Req/Rep型(クライアント-サーバ型)の通信も提供しています。サービスとは、あるノードが提供する関数(サービス)を、他のノードが利用する仕組みのことです。
使用頻度が高くなく、短い時間で処理が終わるものに適しています。
センサーのスイッチを入れたり、シャッターを押したりといったような操作などです。

###バッグ
rosbagのことです、メッセージの記録、再生を行うことができるツールです。
現状では対応しているのはメッセージのみで、サービスに関しては記録されtないですが、将来的には対応予定だそうです。(ほんとかな)

#4へつづく
#参考
ROS
http://wiki.ros.org/

プログラミングROS(O'Reilly Japan)
https://www.oreilly.co.jp/books/9784873118093/

ROSプログラミング(森北出版株式会社)
https://www.morikita.co.jp/books/book/3010

2
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?