Error in nav2 path planning of nvblox

Platform: Jetson Agx orin, jetpack 6, ubuntu22.04

We follow the quickstart and change the realsense_example.launch.py to try nav2.
We use the people mode: ros2 launch nvblox_examples_bringup realsense_example.py :=people
However, the program dies after we pubulish Goal pose.

[rviz2-3] [INFO] [1719218702.687899080] [rviz2]: Setting goal pose: Frame:odom, Position(-0.0620599, 0.373484, 0), Orientation(0, 0, 0.866043, 0.49997) = Angle: 2.09446
[component_container_mt-4] [INFO] [1719218702.692443560] [bt_navigator]: Begin navigating from current location (-0.36, -0.03) to (-0.06, 0.37)
[component_container_mt-4] [INFO] [1719218702.805125339] [controller_server]: Received a goal, begin computing control effort.
[component_container_mt-4] [WARN] [1719218702.805421947] [controller_server]: No goal checker was specified in parameter 'current_goal_checker'. Server will use only plugin loaded stopped_goal_checker . This warning will appear once.
[component_container_mt-4] [INFO] [1719218702.812563612] [controller_server]: Optimizer reset
[component_container_mt-4] [WARN] [1719218702.895972201] [controller_server]: Control loop missed its desired rate of 20.0000Hz
[component_container_mt-4] [WARN] [1719218702.967895861] [controller_server]: Control loop missed its desired rate of 20.0000Hz
[component_container_mt-4] terminate called after throwing an instance of 'std::runtime_error'
[component_container_mt-4]   what():  Taking data from action client but nothing is ready
[ERROR] [component_container_mt-4]: process has died [pid 360163, exit code -6, cmd '/opt/ros/humble/lib/rclcpp_components/component_container_mt --ros-args --log-level info --ros-args -r __node:=nvblox_container --params-file /opt/ros/humble/share/nova_carter_navigation/params/nova_carter_navigation.yaml --params-file /tmp/6c528240-09e3-4a30-86bd-16abb54c1b30.yaml --params-file /tmp/21db3e01-9901-4d65-8751-a8edca861397.yaml --params-file /tmp/c146c626-b74a-4a0c-8ed6-21289898472f.yaml --params-file /tmp/67a36707-c0b4-4488-9d3f-ecae900104ce.yaml --params-file /tmp/43f56e77-3757-4a3b-b921-2a54ad74a098.yaml --params-file /tmp/85336e79-90bf-45b1-b1dd-76e150a0b22a.yaml --params-file /tmp/bc7b66ab-46c5-4e49-bd6e-cd0a4600a6b6.yaml --params-file /tmp/8b6ea6c5-22cd-41b4-9764-fb09d9455540.yaml'].
[INFO] [launch]: process[component_container_mt-4] was required: shutting down launched system
[INFO] [rviz2-3]: sending signal 'SIGINT' to process[rviz2-3]
[INFO] [static_transform_publisher-2]: sending signal 'SIGINT' to process[static_transform_publisher-2]
[INFO] [static_transform_publisher-1]: sending signal 'SIGINT' to process[static_transform_publisher-1]
[rviz2-3] [INFO] [1719218707.449254608] [rclcpp]: signal_handler(signum=2)
[static_transform_publisher-2] [INFO] [1719218707.450418480] [rclcpp]: signal_handler(signum=2)
[static_transform_publisher-1] [INFO] [1719218707.451320209] [rclcpp]: signal_handler(signum=2)
[INFO] [static_transform_publisher-1]: process has finished cleanly [pid 360157]
[INFO] [static_transform_publisher-2]: process has finished cleanly [pid 360159]
[INFO] [rviz2-3]: process has finished cleanly [pid 360161]

This is my realsense_example.launch.py

from isaac_ros_launch_utils.all_types import *
import isaac_ros_launch_utils as lu
from launch import LaunchDescription
from launch_ros.actions import Node

from nvblox_ros_python_utils.nvblox_launch_utils import NvbloxMode, NvbloxCamera, NvbloxPeopleSegmentation
from nvblox_ros_python_utils.nvblox_constants import SEMSEGNET_INPUT_IMAGE_WIDTH, \
    SEMSEGNET_INPUT_IMAGE_HEIGHT, NVBLOX_CONTAINER_NAME


def generate_launch_description() -> LaunchDescription:
    args = lu.ArgumentContainer()
    args.add_arg(
        'rosbag', 'None', description='Path to rosbag (running on sensor if not set).', cli=True)
    args.add_arg('rosbag_args', '', description='Additional args for ros2 bag play.', cli=True)
    args.add_arg('log_level', 'info', choices=['debug', 'info', 'warn'], cli=True)
    args.add_arg(
        'mode',
        default=NvbloxMode.static,
        choices=NvbloxMode.names(),
        description='The nvblox mode.',
        cli=True)
    args.add_arg(
        'people_segmentation',
        default=NvbloxPeopleSegmentation.peoplesemsegnet_vanilla,
        choices=[
            str(NvbloxPeopleSegmentation.peoplesemsegnet_vanilla),
            str(NvbloxPeopleSegmentation.peoplesemsegnet_shuffleseg)
        ],
        description='The  model type of PeopleSemSegNet (only used when mode:=people).',
        cli=True)
    args.add_arg(
        'navigation',
        True,
        description='Whether to enable nav2 for navigation in Isaac Sim.',
        cli=True)
    actions = args.get_launch_actions()

    # Globally set use_sim_time if we're running from bag or sim
    actions.append(
        SetParameter('use_sim_time', True, condition=IfCondition(lu.is_valid(args.rosbag))))

    # Navigation
    # NOTE: needs to be called before the component container because it modifies params globally
    actions.append(
        lu.include(
            'nvblox_examples_bringup',
            'launch/navigation/nvblox_carter_navigation.launch.py',
            launch_arguments={
                'container_name': NVBLOX_CONTAINER_NAME,
                'mode': args.mode,
            },
            condition=IfCondition(lu.is_true(args.navigation))))
    # tf from base_link to camera_link
    # from launch import LaunchDescription
    # from launch_ros.actions import Node
    actions.append(
        Node(
            package='tf2_ros',
            executable='static_transform_publisher',
            arguments=['0', '0', '0', '0', '0', '0', '1', 'camera_link', 'base_link'],
            name='static_tf_pub_world_to_base_link'
        )
    )
    # Realsense
    actions.append(
        lu.include(
            'nvblox_examples_bringup',
            'launch/sensors/realsense.launch.py',
            launch_arguments={'container_name': NVBLOX_CONTAINER_NAME},
            condition=UnlessCondition(lu.is_valid(args.rosbag))))

    # Visual SLAM
    actions.append(
        lu.include(
            'nvblox_examples_bringup',
            'launch/perception/vslam.launch.py',
            launch_arguments={
                'container_name': NVBLOX_CONTAINER_NAME,
                'camera': NvbloxCamera.realsense,
            },
            # Delay for 1 second to make sure that the static topics from the rosbag are published.
            delay=1.0,
            ))

    # People segmentation
    actions.append(
        lu.include(
            'nvblox_examples_bringup',
            'launch/perception/segmentation.launch.py',
            launch_arguments={
                'container_name': NVBLOX_CONTAINER_NAME,
                'people_segmentation': args.people_segmentation,
                'input_topic': '/camera/color/image_raw',
                'input_camera_info_topic': '/camera/color/camera_info',
            },
            condition=IfCondition(lu.has_substring(args.mode, NvbloxMode.people))))

    # Nvblox
    actions.append(
        lu.include(
            'nvblox_examples_bringup',
            'launch/perception/nvblox.launch.py',
            launch_arguments={
                'container_name': NVBLOX_CONTAINER_NAME,
                'mode': args.mode,
                'camera': NvbloxCamera.realsense,
            }))

    # Play ros2bag
    actions.append(
        lu.play_rosbag(
            bag_path=args.rosbag,
            additional_bag_play_args=args.rosbag_args,
            condition=IfCondition(lu.is_valid(args.rosbag))))

    # Visualization
    actions.append(
        lu.include(
            'nvblox_examples_bringup',
            'launch/visualization/visualization.launch.py',
            launch_arguments={
                'mode': args.mode,
                'camera': NvbloxCamera.realsense
            }))

    # Container
    actions.append(lu.component_container(NVBLOX_CONTAINER_NAME, log_level=args.log_level))

    return LaunchDescription(actions)

Following is the detailed log
test.log

Hi @u3612843

In ROS humble, the multithreaded executor has a deadlock issue which can make nav2 crash on the goal pose action call:

terminate called after throwing an instance of 'std::runtime_error' what(): Taking data from action client but nothing is ready

To solve this, we are using an isolated component container for applications running nav2 (see here).

Please note that the nvblox_carter_navigation.launch.py you are including, is launching nav2 with configurations for the Nova Carter robot and will not work out of the box with RealSense cameras.

@u3612843 running into the same issue(program crashed after setting goal for nav2) with zed2 camera. local and global cost maps are properly populated. have you figured out the reason for the crash?

Hi @weimoumw

Which Isaac ROS version and setup are you using?

Best,
Raffaello

i’m using Isaac ROS Dev Docker image, isaac ros 3.2 on x86_64. and a slightly modified carter_nav2.yaml for nav2.

bt_navigator:
  ros__parameters:
    # use_sim_time: True
    global_frame: map
    robot_base_frame: base_link
    bt_loop_duration: 10
    default_server_timeout: 20
    navigators: ['navigate_to_pose', 'navigate_through_poses']
    navigate_to_pose:
      plugin: "nav2_bt_navigator/NavigateToPoseNavigator"
    navigate_through_poses:
      plugin: "nav2_bt_navigator/NavigateThroughPosesNavigator"
    # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
    # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
    # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
    # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
    plugin_lib_names:
      - nav2_compute_path_to_pose_action_bt_node
      - nav2_compute_path_through_poses_action_bt_node
      - nav2_smooth_path_action_bt_node
      - nav2_follow_path_action_bt_node
      - nav2_spin_action_bt_node
      - nav2_wait_action_bt_node
      - nav2_assisted_teleop_action_bt_node
      - nav2_back_up_action_bt_node
      - nav2_drive_on_heading_bt_node
      - nav2_clear_costmap_service_bt_node
      - nav2_is_stuck_condition_bt_node
      - nav2_goal_reached_condition_bt_node
      - nav2_goal_updated_condition_bt_node
      - nav2_globally_updated_goal_condition_bt_node
      - nav2_is_path_valid_condition_bt_node
      - nav2_initial_pose_received_condition_bt_node
      - nav2_reinitialize_global_localization_service_bt_node
      - nav2_rate_controller_bt_node
      - nav2_distance_controller_bt_node
      - nav2_speed_controller_bt_node
      - nav2_truncate_path_action_bt_node
      - nav2_truncate_path_local_action_bt_node
      - nav2_goal_updater_node_bt_node
      - nav2_recovery_node_bt_node
      - nav2_pipeline_sequence_bt_node
      - nav2_round_robin_node_bt_node
      - nav2_transform_available_condition_bt_node
      - nav2_time_expired_condition_bt_node
      - nav2_path_expiring_timer_condition
      - nav2_distance_traveled_condition_bt_node
      - nav2_single_trigger_bt_node
      - nav2_goal_updated_controller_bt_node
      - nav2_is_battery_low_condition_bt_node
      - nav2_navigate_through_poses_action_bt_node
      - nav2_navigate_to_pose_action_bt_node
      - nav2_remove_passed_goals_action_bt_node
      - nav2_planner_selector_bt_node
      - nav2_controller_selector_bt_node
      - nav2_goal_checker_selector_bt_node
      - nav2_controller_cancel_bt_node
      - nav2_path_longer_on_approach_bt_node
      - nav2_wait_cancel_bt_node
      - nav2_spin_cancel_bt_node
      - nav2_back_up_cancel_bt_node
      - nav2_assisted_teleop_cancel_bt_node
      - nav2_drive_on_heading_cancel_bt_node
      - nav2_is_battery_charging_condition_bt_node
bt_navigator_navigate_through_poses_rclcpp_node:
  ros__parameters:
    use_sim_time: False
bt_navigator_navigate_to_pose_rclcpp_node:
  ros__parameters:
    use_sim_time: False
controller_server:
  ros__parameters:
    # use_sim_time: True
    controller_frequency: 20.0
    progress_checker_plugin: "progress_checker"
    goal_checker_plugins: ["stopped_goal_checker"]
    controller_plugins: ["FollowPath"]
    # Progress checker parameters
    progress_checker:
      plugin: "nav2_controller::SimpleProgressChecker"
      required_movement_radius: 0.5
      movement_time_allowance: 10.0
    stopped_goal_checker:
      plugin: "nav2_controller::StoppedGoalChecker"
      trans_stopped_velocity: 0.1
      rot_stopped_velocity: 0.1
      xy_goal_tolerance: 0.25
      yaw_goal_tolerance: 0.25
    FollowPath:
      plugin: "nav2_mppi_controller::MPPIController"
      time_steps: 56
      model_dt: 0.05
      batch_size: 2000
      vx_std: 0.2
      wz_std: 0.4
      vx_max: 0.5
      vx_min: -0.35
      wz_max: 1.9
      iteration_count: 1
      prune_distance: 1.7
      transform_tolerance: 0.1
      temperature: 0.3
      gamma: 0.015
      motion_model: "DiffDrive"
      visualize: false
      reset_period: 1.0 # (only in Humble)
      regenerate_noises: false
      TrajectoryVisualizer:
        trajectory_step: 5
        time_step: 3
      critics: ["ConstraintCritic", "ObstaclesCritic", "GoalCritic", "GoalAngleCritic", "PathAlignCritic", "PathFollowCritic", "PathAngleCritic", "PreferForwardCritic"]
      ConstraintCritic:
        enabled: true
        cost_power: 1
        cost_weight: 4.0
      GoalCritic:
        enabled: true
        cost_power: 1
        cost_weight: 5.0
        threshold_to_consider: 1.4
      GoalAngleCritic:
        enabled: true
        cost_power: 1
        cost_weight: 3.0
        threshold_to_consider: 0.5
      PreferForwardCritic:
        enabled: true
        cost_power: 1
        cost_weight: 5.0
        threshold_to_consider: 0.5
      ObstaclesCritic:
        enabled: true
        cost_power: 1
        repulsion_weight: 4.0
        critical_weight: 20.0
        consider_footprint: True
        collision_cost: 10000.0
        collision_margin_distance: 0.1
        near_goal_distance: 0.5
        inflation_radius: 0.8 # (only in Humble)
        cost_scaling_factor: 10.0 # (only in Humble)
      PathAlignCritic:
        enabled: true
        cost_power: 1
        cost_weight: 14.0
        max_path_occupancy_ratio: 0.05
        trajectory_point_step: 3
        threshold_to_consider: 0.5
        offset_from_furthest: 20
        use_path_orientations: false
      PathFollowCritic:
        enabled: true
        cost_power: 1
        cost_weight: 5.0
        offset_from_furthest: 5
        threshold_to_consider: 1.4
      PathAngleCritic:
        enabled: true
        cost_power: 1
        cost_weight: 2.0
        offset_from_furthest: 4
        threshold_to_consider: 0.5
        max_angle_to_furthest: 1.0
        mode: 0
        # TwirlingCritic:
        #   enabled: true
        #   twirling_cost_power: 1
        #   twirling_cost_weight: 10.0
local_costmap:
  local_costmap:
    ros__parameters:
      footprint_padding: 0.03
      update_frequency: 5.0
      publish_frequency: 2.0
      global_frame: odom
      robot_base_frame: base_link
      rolling_window: true 
      width: 6
      height: 6
      resolution: 0.05
      transform_tolerance: 0.3
      footprint: "[ [0.14, 0.25], [0.14, -0.25], [-0.607, -0.25], [-0.607, 0.25] ]"
      mark_threshold: 2
      always_send_full_costmap: True
      plugins: ['nvblox_layer', 'inflation_layer']
      inflation_layer:
        plugin: "nav2_costmap_2d::InflationLayer"
        enabled: True
        cost_scaling_factor: 10.0
        inflation_radius: 0.8
      nvblox_layer:
        plugin: "nvblox::nav2::NvbloxCostmapLayer"
        enabled: True
        nav2_costmap_global_frame: odom # must match with global_frame of local_costmap
        nvblox_map_slice_topic: "/nvblox_node/static_map_slice"
        convert_to_binary_costmap: True
global_costmap:
  global_costmap:
    ros__parameters:
      footprint_padding: 0.0
      update_frequency: 1.0
      publish_frequency: 1.0
      global_frame: map
      robot_base_frame: base_link
      # use_sim_time: True
      footprint: "[ [0.14, 0.25], [0.14, -0.25], [-0.607, -0.25], [-0.607, 0.25] ]"
      resolution: 0.05
      # The following is only used as a default when no map is specified.
      width: 60
      height: 60
      origin_x: -30.0
      origin_y: -30.0
      track_unknown_space: False
      mark_threshold: 2
      always_send_full_costmap: False
      plugins: ['nvblox_layer', 'inflation_layer']
      inflation_layer:
        plugin: "nav2_costmap_2d::InflationLayer"
        enabled: True
        cost_scaling_factor: 10.0
        inflation_radius: 0.8
      nvblox_layer:
        plugin: "nvblox::nav2::NvbloxCostmapLayer"
        enabled: True
        nav2_costmap_global_frame: map # must match with global_frame of global_costmap
        nvblox_map_slice_topic: "/nvblox_node/static_map_slice"
        convert_to_binary_costmap: True
map_server:
  ros__parameters:
    # use_sim_time: True
    # Overridden in launch by the "map" launch configuration or provided default value.
    # To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below.
    yaml_filename: ""
map_saver:
  ros__parameters:
    # use_sim_time: True
    save_map_timeout: 5.0
    free_thresh_default: 0.25
    occupied_thresh_default: 0.65
    map_subscribe_transient_local: True
planner_server:
  ros__parameters:
    expected_planner_frequency: 1.0
    # use_sim_time: True
    planner_plugins: ["GridBased"]
    GridBased:
      plugin: "nav2_smac_planner/SmacPlannerHybrid"
      downsample_costmap: false # whether or not to downsample the map
      downsampling_factor: 1 # multiplier for the resolution of the costmap layer (e.g. 2 on a 5cm costmap would be 10cm)
      tolerance: 0.25 # dist-to-goal heuristic cost (distance) for valid tolerance endpoints if exact goal cannot be found.
      allow_unknown: true # allow traveling in unknown space
      max_iterations: 1000000 # maximum total iterations to search for before failing (in case unreachable), set to -1 to disable
      max_on_approach_iterations: 1000 # Maximum number of iterations after within tolerances to continue to try to find exact solution
      max_planning_time: 5.0 # max time in s for planner to plan, smooth
      motion_model_for_search: "REEDS_SHEPP" # Hybrid-A* Dubin, Redds-Shepp
      angle_quantization_bins: 72 # Number of angle bins for search
      analytic_expansion_ratio: 3.5 # The ratio to attempt analytic expansions during search for final approach.
      analytic_expansion_max_length: 1.5 # For Hybrid/Lattice nodes: The maximum length of the analytic expansion to be considered valid to prevent unsafe shortcutting
      minimum_turning_radius: 0.20 # minimum turning radius in m of path / vehicle
      reverse_penalty: 2.0 # Penalty to apply if motion is reversing, must be => 1
      change_penalty: 0.0 # Penalty to apply if motion is changing directions (L to R), must be >= 0
      non_straight_penalty: 1.2 # Penalty to apply if motion is non-straight, must be => 1
      cost_penalty: 3.0 # Penalty to apply to higher cost areas when adding into the obstacle map dynamic programming distance expansion heuristic. This drives the robot more towards the center of passages. A value between 1.3 - 3.5 is reasonable.
      retrospective_penalty: 0.015
      lookup_table_size: 20.0 # Size of the dubin/reeds-sheep distance window to cache, in meters.
      cache_obstacle_heuristic: false # Cache the obstacle map dynamic programming distance expansion heuristic between subsiquent replannings of the same goal location. Dramatically speeds up replanning performance (40x) if costmap is largely static.
      debug_visualizations: false # For Hybrid nodes: Whether to publish expansions on the /expansions topic as an array of poses (the orientation has no meaning) and the path's footprints on the /planned_footprints topic. WARNING: heavy to compute and to display, for debug only as it degrades the performance.
      use_quadratic_cost_penalty: False
      downsample_obstacle_heuristic: True
      allow_primitive_interpolation: False
      smooth_path: True # If true, does a simple and quick smoothing post-processing to the path
      smoother:
        max_iterations: 1000
        w_smooth: 0.3
        w_data: 0.2
        tolerance: 1.0e-10
        do_refinement: true
        refinement_num: 2
smoother_server:
  ros__parameters:
    # use_sim_time: True
    smoother_plugins: ["simple_smoother"]
    simple_smoother:
      plugin: "nav2_smoother::SimpleSmoother"
      tolerance: 1.0e-10
      max_its: 1000
      do_refinement: True
behavior_server:
  ros__parameters:
    costmap_topic: local_costmap/costmap_raw
    footprint_topic: local_costmap/published_footprint
    cycle_frequency: 10.0
    behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"]
    spin:
      plugin: "nav2_behaviors/Spin"
    backup:
      plugin: "nav2_behaviors/BackUp"
    drive_on_heading:
      plugin: "nav2_behaviors/DriveOnHeading"
    wait:
      plugin: "nav2_behaviors/Wait"
    assisted_teleop:
      plugin: "nav2_behaviors/AssistedTeleop"
    global_frame: odom
    robot_base_frame: base_link
    transform_tolerance: 0.1
    # use_sim_time: true
    simulate_ahead_time: 2.0
    max_rotational_vel: 1.0
    min_rotational_vel: 0.4
    rotational_acc_lim: 3.2
robot_state_publisher:
  ros__parameters:
    use_sim_time: False
waypoint_follower:
  ros__parameters:
    # use_sim_time: True
    loop_rate: 20
    stop_on_failure: false
    waypoint_task_executor_plugin: "wait_at_waypoint"
    wait_at_waypoint:
      plugin: "nav2_waypoint_follower::WaitAtWaypoint"
      enabled: True
      waypoint_pause_duration: 200
velocity_smoother:
  ros__parameters:
    # use_sim_time: True
    smoothing_frequency: 20.0
    scale_velocities: False
    feedback: "OPEN_LOOP"
    max_velocity: [0.7, 0.0, 1.0]
    min_velocity: [-0.7, 0.0, -1.0]
    max_accel: [2.5, 0.0, 3.2]
    max_decel: [-2.5, 0.0, -3.2]
    odom_duration: 0.1
    deadband_velocity: [0.0, 0.0, 0.0]
    velocity_timeout: 1.0

with error:

[rviz2-4] [INFO] [1736282183.175148892] [rviz2]: Setting goal pose: Frame:map, Position(0.345002, 0.0269473, 0), Orientation(0, 0, -0.0330056, 0.999455) = Angle: -0.0660231
[component_container_mt-2] [INFO] [1736282183.176497526] [bt_navigator]: Begin navigating from current location (0.00, 0.00) to (0.35, 0.03)
[component_container_mt-2] [INFO] [1736282183.207227135] [controller_server]: Received a goal, begin computing control effort.
[component_container_mt-2] [WARN] [1736282183.207327524] [controller_server]: No goal checker was specified in parameter 'current_goal_checker'. Server will use only plugin loaded stopped_goal_checker . This warning will appear once.
[component_container_mt-2] [INFO] [1736282183.214308928] [controller_server]: Optimizer reset
[component_container_mt-2] [WARN] [1736282183.391888359] [global_costmap.global_costmap]: [NvbloxCostmapLayer] Transformation from map to odom must be 2d, but it is 3d.
[component_container_mt-2] [INFO] [1736282184.257457075] [controller_server]: Passing new path to controller.
[component_container_mt-2] [WARN] [1736282184.442161733] [global_costmap.global_costmap]: [NvbloxCostmapLayer] Transformation from map to odom must be 2d, but it is 3d.
[component_container_mt-2] terminate called after throwing an instance of 'std::runtime_error'
[component_container_mt-2]   what():  Taking data from action client but nothing is ready
[ERROR] [component_container_mt-2]: process has died [pid 57010, exit code -6, cmd '/opt/ros/humble/lib/rclcpp_components/component_container_mt --ros-args --log-level info --ros-args -r __node:=nvblox_container --params-file /workspaces/isaac_ros-dev/install/nvblox_examples_bringup/share/nvblox_examples_bringup/config/navigation/zed_nav2.yaml --params-file /tmp/a8f4e380-3062-42ae-9c42-580cd7401593.yaml --params-file /tmp/6bd7c5be-ce81-4d65-a8f0-06d0f25160b2.yaml --params-file /tmp/f32e3f34-1be6-4c62-9933-c52287597d5a.yaml --params-file /tmp/4c94dcd6-5219-4014-963a-066c9a63efd9.yaml'].
[INFO] [launch]: process[component_container_mt-2] was required: shutting down launched system
[INFO] [rviz2-4]: sending signal 'SIGINT' to process[rviz2-4]
[INFO] [robot_state_publisher-3]: sending signal 'SIGINT' to process[robot_state_publisher-3]
[INFO] [static_transform_publisher-1]: sending signal 'SIGINT' to process[static_transform_publisher-1]
[rviz2-4] [INFO] [1736282185.937815389] [rclcpp]: signal_handler(signum=2)
[robot_state_publisher-3] [INFO] [1736282185.938543811] [rclcpp]: signal_handler(signum=2)
[static_transform_publisher-1] [INFO] [1736282185.939165752] [rclcpp]: signal_handler(signum=2)
[INFO] [robot_state_publisher-3]: process has finished cleanly [pid 57012]
[INFO] [static_transform_publisher-1]: process has finished cleanly [pid 57008]
[INFO] [rviz2-4]: process has finished cleanly [pid 57014]