通信の種類¶
前回の Hello world ではトピック通信というものを使ってデータの送受信を行いました。 ROS 2の世界ではトピック通信の他に、サービス通信やアクション通信というものがあります。
通信の種類 |
特徴 |
用途 |
---|---|---|
トピック通信 |
一方向、非同期通信 |
センサーからのデータの送信、受信など |
サービス通信 |
双方向、同期通信 |
起動、終了、状態の確認など |
アクション通信 |
双方向、同期通信、サービス通信より高機能 |
時間がかかる処理で途中経過も知りたい時 |
トピック通信¶
センサからから得られた情報を送受信する場合に使う
メッセージは
.msg
ファイルで定義使用例
センサ情報の送受信
ロボットへの速度司令
サービス通信¶
短時間で処理が終わるものに使う
メッセージは
.srv
ファイルで定義使用例
ロボットアームへの司令
地図情報の読み込み
アクション通信¶
サービス通信とアクション通信を組み合わせたようなもの
メッセージは
.action
ファイルで定義使用例
ナビゲーションの司令
データの種類¶
std_msgs
パッケージでは以下のようなメッセージが使えます。
Bool
Byte
Char
Float32
Float64
Int8
Int16
Int32
Int64
String
UInt8
UInt16
UInt32
UInt64
また、データを配列にしたMultiArray型も存在します。
ByteMultiArray
Float32MultiArray
Float64MultiArray
Int8MultiArray
Int16MultiArray
Int32MultiArray
Int64MultiArray
MultiArrayDimension
MultiArrayLayout
UInt16MultiArray
UInt32MultiArray
UInt64MultiArray
UInt8MultiArray