ROS学習-ROSメッセージとROSサービスを作成します
1つ、msgおよびsrvの紹介
1. msg(メッセージ):msgファイルは、ROSメッセージのフィールドを説明するために使用されるテキストファイルです。これらは、さまざまなプログラミング言語で記述されたメッセージのソースコードを生成するために使用されます。
2. srv(サービス):srvファイルはサービスを記述します。これは、要求と応答の2つの部分で構成されています。
3. msgファイルはソフトウェアパッケージのmsgディレクトリに保存され、srvファイルはsrvディレクトリに保存されます。
次に、msgを使用します
次に、以前に作成したパッケージに新しいメッセージを定義します。
1. catkin_ws / src / Learning_communicationファイルで、フォルダーを作成してmsgという名前を付けます。このmsgフォルダーで、.msgファイルを作成し、msg.msgという名前を付けます。
2. msg.msgを開き、次のコンテンツをコピーします。もちろん、上記のフォームを模倣し、さらに数行追加して、より複雑なメッセージを取得することもできます。
int64 num
string first_name
string last_name
uint8 age
uint32 score
3.msgファイルがC ++、Python、その他の言語のソースコードに変換できることを確認する必要があります。
package.xmlを開き、次の2行が含まれていて、コメントが付いていないことを確認します。
これらの2行の<!-、->を削除します(行全体が削除されないことに注意してください)
< !-- <build_depend>message_generation</build_depend> -- >
< !-- <exec_depend>message_runtime</exec_depend> -- >
4. catkin_ws / src / Learning_communicationの下にあるCMakeLists.txtを開き、
message_generation依存関係をfind_package関数に追加して、メッセージを生成できるようにします。
以下に示すように、message_generationをCOMPONENTSリストに追加するだけです。
#不要直接复制这一大段,只需将message_generation加在括号闭合前即可
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
5.次のコードブロックを見つけて、新しいメッセージ名を追加します。
## Generate messages in the 'msg' folder
# add_message_files(
# FILES
# Message1.msg
# Message2.msg
# )
コメントを解除するために#記号を削除してから、以下に示すように、Message * .msgをmsg.msgファイル名に置き換えます。
## Generate messages in the 'msg' folder
add_message_files(
FILES
msg.msg
)
6、コンパイル
cd ~/catkin_ws/
catkin_make
7.
上記は、rosmsgを使用してメッセージを作成するためのすべての手順です。rosmsg showコマンドを使用して、ROSがそれを認識できるかどうかを確認しましょう。
rosmsg show msg
表示は次のとおりです。
メッセージタイプには2つの部分があります。
-
Learning_communication / msg-メッセージの場所
-
int64 num
string first_name
string last_name
uint8 age
uint32スコア–消息名。
3、srvを使用します
以前に作成したパッケージを使用してサービスを作成しましょう。
1. catkin_ws / src / Learning_communicationファイルで、フォルダーを作成してsrvという名前を付けます。このsrvフォルダーで、.srvファイルを作成し、AddTwoInts.srvという名前を付けます。
2. AddTwoInts.srvを開き、次のコンテンツをコピーします。srv
ファイルは、要求と応答の2つの部分に分かれており、「— 」で区切られています。ここで、aとbは要求で、sumは応答です。
int64 a
int64 b
---
int64 sum
3.srvファイルをC ++、Python、その他の言語のソースコードに変換できることを確認する必要があります。(このステップは上記のメッセージを使用して実行されました。ここでは必要ありません)
4. find_package関数にmessage_generation依存関係を追加します()(このステップは上記のmsgを使用して実行されたため、ここでは必要ありません)
5.次のコードブロックを見つけて、新しいサービス名を追加します。
## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
コメントを解除するために#記号を削除してから、以下に示すように、Service * .srvをsrv.srvファイル名に置き換えます。
## Generate services in the 'srv' folder
add_service_files(
FILES
AddTwoInts.srv
)
6、コンパイル
cd ~/catkin_ws/
catkin_make
7. rosmsgの使用と
上記は、サービスを作成するためのすべてのステップです。rossrv showコマンドを使用して、ROSがそれを認識できるかどうかを確認しましょう。
rossrv show learning_communication/AddTwoInts