We're not passing a node to the tf listener constructor in a few places on our code, for example:
https://github.com/ros-planning/navigation2/blob/a05c9440e76dfd0d76f243740c143a2a1b5d7c1d/nav2_costmap_2d/src/costmap_2d_ros.cpp#L135
Which by default will create a node and spin it:
https://github.com/ros2/geometry2/blob/64a19215f60aca42471a7da202085169dd39e6cc/tf2_ros/src/transform_listener.cpp#L59
This creates five transform listener nodes on our stack. From ros2 node list we get:
/transform_listener_impl_55c875370a30
/transform_listener_impl_55d272afebe0
/transform_listener_impl_55d45e65e560
/transform_listener_impl_56124de85420
/transform_listener_impl_5628bcd073e0
For example, in the case of Costmap2DROS (which is a node) it could just pass itself.
We're not passing a node to the tf listener constructor in a few places on our code, for example:
https://github.com/ros-planning/navigation2/blob/a05c9440e76dfd0d76f243740c143a2a1b5d7c1d/nav2_costmap_2d/src/costmap_2d_ros.cpp#L135
Which by default will create a node and spin it:
https://github.com/ros2/geometry2/blob/64a19215f60aca42471a7da202085169dd39e6cc/tf2_ros/src/transform_listener.cpp#L59
This creates five transform listener nodes on our stack. From
ros2 node listwe get:For example, in the case of
Costmap2DROS(which is a node) it could just pass itself.