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