【ROS入门4总结:ROS-Service服务的编程实现】

6 篇文章 0 订阅
本文档详细介绍了如何在ROS环境下实现Service服务的客户端编程。首先,通过catkin_create_pkg创建名为learning_service的功能包,并指定依赖库。接着,在src目录下编写turtle_spawn.cpp代码,实现召唤turtle2的功能。在CMakeLists.txt中配置编译规则,编译并运行客户端程序,最终在turtlesim环境中成功召唤出turtle2。
摘要由CSDN通过智能技术生成

前言

强推古月大大
我用的:环境是Ubuntu20.04、ros-noetic
实现:ROS的服务(service)消息类型中的(客户端)client的编程实现
偷图古月大大
在这里插入图片描述

Service服务下的Client客户端的编程实现

创建service的功能包

service的功能包得放在工作空间的src文件夹下

cd catkin_wksp/
catkin_creat_pkg learing_service roscpp rospy std_msgs geometry_msgs turtlesim

在这里插入图片描述

==注意:==创建功能包的时候不要使用mkdir learning_service,因为还得放入依赖的文件,上面的命令roscpp rospy std_msgs geometry_msgs turtlesim就是功能包learning_servie依赖的问价

创建客户端代码

代码功能

代码是turtle_spawn.cpp,主要的功能是在具体的位置放置一个名为turtle2的小乌龟
代码要放置在新建的learning_service文件夹下的src文件夹里

代码实现

初始化ros节点
创建一个client实例(就是放置一个小乌龟)
发布服务请求数据
等待service处理之后的应答结果

配置创建的功能包的编译规则

编译规则要在新建的功能包learning_service文件夹里的CMakeLists.txt里进行增添
讲一下代码放入CMakeLists.txt文档的如下位置:

add_executable(turtle_spawn src/turtle_spawn.cpp)
target_link_libraries(turtle_spawn ${catkin_LIBRARIES})

在这里插入图片描述第一句命令是将src下的turtle_spawn.cpp文件编译成turtle_spawn ,
第二句是将turtle_spawn链接到catkin_LIBRARIES库中

编译工作空间(编译客户端)

在工作空间的根目录下进行编译

cd catkin_wksp/
catkin_make

在这里插入图片描述编译的控制台有以下代码

-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 3 packages in topological order:
-- ~~  - test_pkg
-- ~~  - learning_service
-- ~~  - learning_topic
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

上面可以看出工作空间已经有三个功能包,分别是
test_pkg //创建工作空间测试的功能包
learning_service //创建服务的功能包
learning_topic //创建话题的功能包
剩下的工作就是运行client客户端程序了

运行客户端

roscore

在这里插入图片描述

rosrun turtlesim turtlesim_node 

(召唤小乌龟,这次的小乌龟很好看)
在这里插入图片描述在这里插入图片描述

在工作空间下运行客户端(client)程序文件turtle_span(感觉就是运行add_executable(turtle_spawn src/turtle_spawn.cpp这句话创造出来的文件)

cd catkin_wksp/
source devel/setup.bash 
rosrun learning_service turtle_spawn

在这里插入图片描述
点击回车,召唤小乌龟二号(这次的hello小红龟也好看)
在这里插入图片描述

在这里插入图片描述然后在rosrun turtlesim turtlesim_node 命令下出来的界面里面多了一个关于turtle2的描述,位置:X:2,Y:2,name:turtle2
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值