13.客户端client的编程实现

C++

1.ros::service::waitForService("/spawn");
waitForService函数查询系统中是否有名为/spawn的服务,如果没有,就一直等待。
实际上就是等相应的服务端的节点运行。

2.ros::ServiceClient add_turtle = node.serviceClient("/spawn")
创建服务客户端,请求名为/spawn的服务。serviceClient应该是模板类型,尖括号中的turtlesim::Spawn是服务的类型。

3.add_turtle.call(srv);
call函数将封装的请求数据srv发出。call发出数据后会等待,等待服务器的反馈。

python

4.rospy.wait_for_service('/spawn')

waitForService函数查询系统中是否有名为/spawn的服务,如果没有,就一直等待。

5.add_turtle = rospy.ServiceProxy('/spawn',Spawn)

创建服务客户端,请求名为/spawn的服务。Spawn是服务的类型,从turtlesim.srv中import。

6.response = add_turtle(2.0, 2.0, 0.0, "turtle2")

直接参数请求服务调用,而不用像在C++中那样创建数据srv。同样等待服务器的反馈。

你可能感兴趣的:(古月居ros21讲)