7

SLAM从入门到精通(服务通信)

 11 months ago
source link: https://blog.csdn.net/feixiaoxing/article/details/133163641
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们谈到了消息通信,但是这种通信是单向的。也就是一个人发送消息,一个人接收消息,仅此而已。在ros当中,还有一种通信,称之为服务通信。它和单项通信最大的区别就是,我们把数据发送给对方,还能得到对方的反馈结果。这在很多场合下都是非常适合的。

8f62dfba93f54777a8a6913cfa842593.png

1、创建srv文件

        和消息传递一样,服务通信也需要创建脚本文件。首先在package目录下面创建一个srv文件加,里面添加PassWord.srv文件,内容如下,

        内容是比较简单的。这个时候cd到workspace顶层,输入catkin_make,就可以生成对应的头文件,当然CMakeLists.txt也是需要修改的。

2、修改CMakeLists.txt



newCodeMoreWhite.png

        通过make编译以及查找,我们发现生成的.h文件都被放到了devel目录下了,

3、重写talker.cpp文件



newCodeMoreWhite.png

        代码中唯一需要注意的就是client.call这个用法。

4、重写listener.cpp文件



newCodeMoreWhite.png

        这里的回调函数注意一下,也就是serverCallback的用法。

5、启动和测试

        准备了节点之后就可以开始编译。编译的方法也比较简单,就是输入catkin_make。确认没有问题之后,就是启动roscore和source ~/devel/setup.sh。依次打开listener和talker,

rosrun beginner_tutorials listener

        不出意外,打开talker之后,就可以看到这样的打印信息,


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK