当前位置:网站首页>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
边栏推荐
- golang 基础 ——map、数组、切片 存放不同类型的数据
- Meizu Bluetooth remote control temperature and humidity access homeassistant
- 猜谜语啦(2)
- Guess riddles (5)
- 微信H5公众号获取openid爬坑记
- Pytorch entry record
- Basic number theory -- Euler function
- [daiy4] jz32 print binary tree from top to bottom
- MATLAB小技巧(28)模糊综合评价
- Bluebridge cup internet of things competition basic graphic tutorial - clock selection
猜你喜欢
Guess riddles (2)
Guess riddles (10)
Daily question - input a date and output the day of the year
Hello everyone, welcome to my CSDN blog!
Classification of plastic surgery: short in long long long
猜谜语啦(9)
猜谜语啦(2)
Apaas platform of TOP10 abroad
【NOI模拟赛】汁树(树形DP)
Business modeling of software model | object modeling
随机推荐
Business modeling | process of software model
MATLAB skills (28) Fuzzy Comprehensive Evaluation
319. Bulb switch
Esphone retrofits old fans
One dimensional vector transpose point multiplication np dot
Typescript hands-on tutorial, easy to understand
Bit operation related operations
Digital analog 2: integer programming
Count of C # LINQ source code analysis
It cold knowledge (updating ing~)
Shift operation of complement
Dynamic dimensions required for input: input, but no shapes were provided. Automatically overriding
Some pitfalls of win10 network sharing
Reasons for the insecurity of C language standard function scanf
多元线性回归(梯度下降法)
容易混淆的基本概念 成员变量 局部变量 全局变量
每日一题——替换空格
【NOI模拟赛】汁树(树形DP)
Run menu analysis
Redis implements a high-performance full-text search engine -- redisearch