ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
What exactly does the
spin
function do ? I thought it is used for callbacks.
It does call callbacks.
At this point it seems that the
auto node = std::make_shared<ClassName>(topic);
has completely been executed as i goes again to the main (why?)
If I understand correctly the question is why the lambda auto_publish
was not executed in the constructor? It's because it was never called in the constructor. It was defined, but not called.
Does that mean that the
auto_publish
function in the constructor is called byspin
?
Yes. This line in the constructor created a timer: timer_ = this->create_wall_timer(2s, publish_message);
. It calls the callback publish_message
(a lambda) every 2 seconds.
More info about lambdas here http://en.cppreference.com/w/cpp/language/lambda