msgとsrvの作成
http://www.ros.org/wiki/ROS/Tutorials/CreatingMsgAndSrv
ここで出てくるコマンド
rosmsg, rossrv, roscp, rosmake
msgファイル:ROSのメッセージを定義するファイル
ROSのメッセージとは公開構造体みたいな感じかな?
srvファイル:ROSのサービスを定義するファイル
こっちは返り値ありのAPIかな?
チュートリアルはそんな詳しい説明もなくつづきます。
$ roscd beginner_tutorials
$ mkdir msg
$ echo "int64 num" > msg/Num.msg
CMakeLists.txtの20行目の
#rosbuild_genmsg()
のコメントをはずして
rosbuild_genmsg()
とします。
この段階ですでに
$ rosmsg show [message type]
を使って
$ rosmsg show beginner_tutorials/Num
とすると
int64 num
と中身が見れます.
パッケージ名は省略できて
$ rosmsg show Num
とすると
[beginner_tutorials/Num]:
int64 num
次はサービス。
$ roscd beginner_tutorials
$ mkdir srv
srvは作るんじゃなくてコピーして持ってきます。
コピーはroscpを使うと便利。
$ roscp [package_name] [file_to_copy_path] [copy_path]
$ roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
中身は
int64 a
int64 b
---
int64 sum
なんだ、簡単じゃん。
CMakeLists.txtの22行目の
#rosbuild_gensrv()
のコメントを外しましょう。
次はrossrv。文法はrosmsgとまったく同じですね。
$ rossrv show
$ rossrv show beginner_tutorials/AddTwoInts
で中身が見れます。
で、もういちどmakeします。
$ rosmake beginner_tutorials
最後に復習。
- rospack = ros+pack(age) : provides information related to ROS packages
- rosstack = ros+stack : provides information related to ROS stacks
- roscd = ros+cd : changes directory to a ROS package or stack
- rosls = ros+ls : lists files in a ROS package
- roscp = ros+cp : copies files from/to a ROS package
- rosmsg = ros+msg : provides information related to ROS message definitions
- rossrv = ros+srv : provides information related to ROS service definitions
- rosmake = ros+make : makes (compiles) a ROS package
0 件のコメント:
コメントを投稿