文件名为turtle_command_server.cpp,ws_catkin/src/learning_service/src/turtle_command_server.cpp。
实现文件turtle_command_server.cpp。
第二步,编译CMakeLists.txt文件。在install上面添加如下两行代码
add_executable(turtle_command_serversrc/turtle_command_server.cpp)
target_link_libraries(turtle_command_server${catkin_LIBRARIES})。
第三步,编译代码,要建立service节点。这里,首先需要创建一个简单的service节点("add_two_ints_server"),该节点将接收到两个整形数字,并返回它们的和。在这里,编写client节点,
大家实例化一个由ROS编译系统自动生成的service类,并给其request成员赋值。一个service类包含两个成员request和response。同时也包括两个类定义Request和Response。
这段代码是在调用service。由于service的调用是模态过程(调用的时候占用进程阻止其他代码的执行),所以一旦调用完成,将返回调用结果。如果service调用成功,call()函数将返回true,srv.response里面的值将是合法的值。如果调用失败,call()函数将返回false,srv.response里面的值将是非法的。