当前位置:网站首页>Programming implementation of ROS learning 5-client node
Programming implementation of ROS learning 5-client node
2022-07-05 08:45:00 【m0_ forty-six million ninety-three thousand eight hundred and t】
One 、 Concept
service Service It is a way of synchronous communication between nodes ; Allow clients Client Node issue request Request; By the server Server Feedback response after node processing Response.

Two 、 establish Client Process overview of
1、 establish Client Program
2、 compile
3、 Configure environment variables
4、 perform Client Program
3、 ... and 、 The specific process is as follows :
3.1 establish client.cpp file
Create in the function pack of the corresponding workspace client.cpp file , The file should include the following four parts
1. initialization ROS node
2. Create a Client example
3. Publish service request data
4. wait for Server Response result after processing
example : Create a turtle_spawn.cpp
/** * The routine will request /spawn service , Service data type turtlesim::Spawn */ #include <ros/ros.h> #include <turtlesim/Spawn.h> int main(int argc, char** argv) { // initialization ROS node ros::init(argc, argv, "turtle_spawn"); // Create node handle ros::NodeHandle node; // Find out /spawn After service , Create a service client , The connection name is /spawn Of service ros::service::waitForService("/spawn");// This is a blocking function , It means waiting for the server to start ros::ServiceClient add_turtle = node.serviceClient<turtlesim::Spawn>("/spawn");// The data type of the requested service is turtlesim::Spawn // initialization turtlesim::Spawn Request data for turtlesim::Spawn srv; srv.request.x = 2.0; srv.request.y = 2.0; srv.request.name = "turtle2"; // Request service call , That is, publish the request data ROS_INFO("Call service to spwan turtle[x:%0.6f, y:%0.6f, name:%s]", srv.request.x, srv.request.y, srv.request.name.c_str()); add_turtle.call(srv); // Display the service call result ROS_INFO("Spwan turtle successfully [name:%s]", srv.response.name.c_str()); return 0; };
3.2 compile
1. First in CMakeLists.txt Add Compilation Rules to
add_executable(turtle_spawn src/turtle_spawn.cpp)
target_link_libraries(turtle_spawn ${catkin_LIBRARIES})
The reasons for adding these two Compilation Rules and their adding locations are as follows :

2. Return to the workspace home directory , At terminal catkin_make
3.3 Set the environment variable
Also in the workspace main directory , Input... At the terminal :source devel/setup.bash
3.4 perform client Program
Because the service makes the little turtle move , So start the little turtle first
roscore
rosrun turtlesim turtlesim_nodeThen directly execute your client File can , The instructions are as follows :
rosrun Function package name .cpp file name
rosrun learning_service turtle_spawn边栏推荐
猜你喜欢

L298N module use

Shift operation of complement

Redis实现高性能的全文搜索引擎---RediSearch

Bluebridge cup internet of things competition basic graphic tutorial - clock selection

Halcon snap, get the area and position of coins

My university

Guess riddles (9)

UE pixel stream, come to a "diet pill"!

Example 007: copy data from one list to another list.
![[matlab] matlab reads and writes Excel](/img/80/78e4c7fcd27473526e480d4b930e2c.jpg)
[matlab] matlab reads and writes Excel
随机推荐
猜谜语啦(9)
One dimensional vector transpose point multiplication np dot
Bluebridge cup internet of things basic graphic tutorial - GPIO input key control LD5 on and off
Business modeling of software model | object modeling
287. 寻找重复数-快慢指针
深度学习模型与湿实验的结合,有望用于代谢通量分析
Example 005: three numbers sorting input three integers x, y, Z, please output these three numbers from small to large.
Arduino burning program and Arduino burning bootloader
猜谜语啦(2)
Dynamic dimensions required for input: input, but no shapes were provided. Automatically overriding
Tips 1: Web video playback code
整形的分类:short in long longlong
Low code platform | apaas platform construction analysis
Guess riddles (11)
319. 灯泡开关
每日一题——输入一个日期,输出它是该年的第几天
猜谜语啦(4)
My university
Count of C # LINQ source code analysis
287. Looking for repeats - fast and slow pointer