What is the component_container_isolated used for?

To understand the NAV2 stack properly, I need to reconstruct a set of minimal systems that each one only performs one piece of function in the stack.

Yesterday, I got stuck on how to show a path by just using the planner server.
(How to show the path generated by ‘NavfnPlanner.)

There is a component_container_isolated node in the file bringup_launch.py of the official nav2_bringup package.
bringup_launch.py

    Node(
        condition=IfCondition(use_composition),
        name='nav2_container',
        package='rclcpp_components',
        executable='component_container_isolated',
        parameters=[configured_params, {'autostart': autostart}],
        remappings=remappings,
        output='screen'),

What is this node used for?
It seems that there is something that should be isolated.
If we do not isolate them, what will happen?

Hello @bluebird,

component_container_isolated this is not a Nav2 executable but a ROS2 executable. It is used to implement what is called composition. In this case composition is used to run multiple Nav2 nodes in a single process to lower the memory utilization and CPU utilization of Nav2. This is specially useful when running Nav2 on constrained devices which are limited by the computational power and memory.
If you don’t use composition you will have a higher memory utilization and CPU utilization.

Cheers,

Roberto