#include "rclcpp/rclcpp.hpp"
#include "example_interfaces/srv/add_two_ints.hpp"
#include "memory.h"
void add(const std::shared_ptr prequest,
std::shared_ptr presponse)
{
presponse->sum=prequest->a+prequest->b;
RCLCPP_INFO( rclcpp::get_logger("rclcpp"),"a=%d,b=%d,result:%d",prequest->a,prequest->b,presponse->sum );
}
int main(int argc,char ** argv)
{
rclcpp::init(argc,argv);
//define a node
auto pnode=std::make_shared("serverNode");
auto pservice=pnode->create_service("service1",&add);
rclcpp::spin(pnode);
rclcpp::shutdown();
}
说明:
111使用auto可以加快速度,例如:
std::shared_ptr
可以简写为
auto nodex=std::make_shared
222 std::shared_ptr与rclcpp::(Node/)::Shared_Ptr之间是可以互相替换的,例如
std::shared_ptr
rclcpp::Node::Shared_Ptr nodex
我觉得还是使用STD这个款式比较好,因为不依赖于ROS,而且其实更加好理解我觉得
格式:std::模板名称<模板参数类型>(参数);这就是标准的模板使用
3333那个spin函数的作用是:暂时不清楚,反正跟while(1)类似放在那里就好了