当前位置:网站首页>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_node
Then directly execute your client File can , The instructions are as follows :
rosrun Function package name .cpp file name
rosrun learning_service turtle_spawn
边栏推荐
猜你喜欢
Hello everyone, welcome to my CSDN blog!
我从技术到产品经理的几点体会
猜谜语啦(8)
Bluebridge cup internet of things basic graphic tutorial - GPIO input key control LD5 on and off
Guess riddles (6)
Meizu Bluetooth remote control temperature and humidity access homeassistant
猜谜语啦(9)
Guess riddles (8)
Example 008: 99 multiplication table
猜谜语啦(10)
随机推荐
猜谜语啦(4)
Esphone retrofits old fans
Daily question - input a date and output the day of the year
Mathematical modeling: factor analysis
Speech recognition learning summary
Guess riddles (5)
Guess riddles (2)
Task failed task_ 1641530057069_ 0002_ m_ 000000
Basic number theory - fast power
Halcon affine transformations to regions
Infix expression evaluation
Adaboost使用
Illustration of eight classic pointer written test questions
Cmder of win artifact
It cold knowledge (updating ing~)
Count of C # LINQ source code analysis
MPSoC QSPI Flash 升级办法
猜谜语啦(9)
287. 寻找重复数-快慢指针
One dimensional vector transpose point multiplication np dot