当前位置:网站首页>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
边栏推荐
- C language data type replacement
- Infected Tree(树形dp)
- Guess riddles (7)
- EA introduction notes
- Business modeling of software model | stakeholders
- Basic number theory - fast power
- Go dependency injection -- Google open source library wire
- MPSoC QSPI Flash 升级办法
- Example 007: copy data from one list to another list.
- The first week of summer vacation
猜你喜欢
图解八道经典指针笔试题
Xrosstools tool installation for X-Series
Matlab tips (28) fuzzy comprehensive evaluation
Guess riddles (6)
Bluebridge cup internet of things competition basic graphic tutorial - clock selection
[noi simulation] juice tree (tree DP)
猜谜语啦(2)
微信H5公众号获取openid爬坑记
Arduino+a4988 control stepper motor
Guess riddles (2)
随机推荐
696. Count binary substring
How apaas is applied in different organizational structures
每日一题——输入一个日期,输出它是该年的第几天
Some pitfalls of win10 network sharing
Pytorch entry record
Classification of plastic surgery: short in long long long
Several problems to be considered and solved in the design of multi tenant architecture
MATLAB小技巧(28)模糊综合评价
An enterprise information integration system
Dynamic dimensions required for input: input, but no shapes were provided. Automatically overriding
Business modeling of software model | overview
多元线性回归(梯度下降法)
Meizu Bluetooth remote control temperature and humidity access homeassistant
ABC#237 C
MPSoC QSPI Flash 升级办法
Daily question - input a date and output the day of the year
Infected Tree(树形dp)
Halcon: check of blob analysis_ Blister capsule detection
GEO数据库中搜索数据
[formation quotidienne - Tencent Selection 50] 557. Inverser le mot III dans la chaîne