6. ROS2メッセージのJSON表現¶
ROS2メッセージをintdashで伝送する際の形式としてJSONを選択した場合、JSONデータには以下のようにメタデータとROSメッセージが格納されます。
6.1. トピックに関するメッセージ¶
{
"msg": {
# ROSトピックのメンバが含まれます
}
}
6.2. サービスに関するメッセージ¶
ROS2では1つのサービスリクエスト、サービスレスポンスは、16個の8ビット整数 "writer_guid"
とシーケンス番号 "sequence_number"
で識別されます。
6.2.1. サービスリクエスト¶
{
"writer_guid": [
# 16個の8bit整数が含まれます
],
"sequence_number": # リクエストを識別するシーケンス番号が含まれます
"msg": {
# サービスリクエストが含まれます
}
}
6.2.2. サービスレスポンス¶
{
"writer_guid": [
# 16個の8bit整数が含まれます
],
"sequence_number": # リクエストを識別するシーケンス番号が含まれます
"msg": {
# サービスレスポンスが含まれます
}
}
6.3. パラメータに関するメッセージ¶
ROS2ではパラメータはサービスとして実装されています。そのため1つのパラメータリクエスト、パラメータレスポンスは、16個の8ビット整数 "writer_guid"
とシーケンス番号 "sequence_number"
で識別されます。
6.3.1. パラメータリクエスト¶
{
"writer_guid": [
# 16個の8bit整数が含まれます
],
"sequence_number": # リクエストを識別するシーケンス番号が含まれます
"msg": {
# パラメータリクエストが含まれます
}
}
6.3.2. パラメータレスポンス¶
{
"writer_guid": [
# 16個の8bit整数が含まれます
],
"sequence_number": # リクエストを識別するシーケンス番号が含まれます
"msg": {
# パラメータレスポンスが含まれます
}
}
6.4. アクションに関するメッセージ¶
ROS2では1つのアクションに紐づくリクエスト、レスポンス、フィードバック、リザルトは、16個の8ビット整数"uuid"で識別されます。そのため、アクションに関わるメッセージにはUUIDが含まれます。
6.4.1. アクションゴールリクエスト¶
{
"uuid": [
# 16個の8bit整数が含まれます
],
"msg": {
"goal_id": {
"uuid": [
# 16個の8bit整数が含まれます
]
},
"goal": {
# アクションのゴールが含まれます
}
}
}
6.4.2. アクションゴールレスポンス¶
{
"uuid": [
# 16個の8bit整数が含まれます
],
"goal_response": # "REJECT"、"ACCEPT_AND_EXECUTE"、"ACCEPT_AND_DEFER" のいずれかが入ります
}
6.4.3. アクションフィードバック¶
{
"uuid": [
# 16個の8bit整数が含まれます
],
"msg": {
# ゴールのフィードバックが含まれます
}
}
6.4.4. アクションリザルト¶
{
"uuid": [
# 16個の8bit整数が含まれます
],
"result_code": # "SUCCEEDED", "UNKNOWN"、"CANCELED"、"ABORTED"のいずれかが含まれます
"msg": {
# アクションリザルトが含まれます
}
}
6.4.5. アクションキャンセルリクエスト¶
{
"uuid": [
# 16個の8bit整数が含まれます
]
}
6.4.6. アクションキャンセルレスポンス¶
{
"uuid": [
# 16個の8bit整数が含まれます
],
"result_code": # "SUCCEEDED", "UNKNOWN"、"CANCELED"、"ABORTED"のいずれかが含まれます
}