Linux kernel 3.10内核源码分析--进程退出exit_code

本文详细介绍了进程退出时的状态码exit_code及其用途,并通过waitpid接口解释了如何捕获并利用这一信息来判断进程退出的原因。此外还深入探讨了内核中与进程退出状态相关的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程退出时,有相应的exit_code,可用于判断进程退出的原因。
比如,waitpid()接口用于等待进程退出,此时被等待退出的进程的返回值比较重要,需要用其来判断进程退出的相应状态,而这就是通过进程退出时的exit_code来获取的。waitpid()库函数接口定义如下:
pid_t waitpid(pid_t pid, int *status, int options);
其中status用于保存被wait进程的退出状态值,其实就是exit_code,相关实现代码如下:

点击(此处)折叠或打开

  1. SYSCALL_DEFINE3(waitpid, pid_t, pid, int __user *, stat_addr, int, options)
  2. {
  3. return sys_wait4(pid, stat_addr, options, NULL);
  4. }

点击(此处)折叠或打开

  1. /*sys_waitpid()和sys_wait4系统调用的实现*/
  2. SYSCALL_DEFINE4(wait4, pid_t, upid, int __user *, stat_addr,
  3.         int, options, struct rusage __user *, ru)
  4. {
  5.     struct wait_opts wo;
  6.     struct pid *pid = NULL;
  7.     enum pid_type type;
  8.     long ret;

  9.     if (options & ~(WNOHANG|WUNTRACED|WCONTINUED|
  10.             __WNOTHREAD|__WCLONE|__WALL))
  11.         return -EINVAL;

  12.     if (upid == -1)
  13.         type = PIDTYPE_MAX;
  14.     else if (upid < 0) {
  15.         type = PIDTYPE_PGID;
  16.         pid = find_get_pid(-upid);
  17.     } else if (upid == 0) {
  18.         type = PIDTYPE_PGID;
  19.         pid = get_task_pid(current, PIDTYPE_PGID);
  20.     } else /* upid > 0 */ {
  21.         type = PIDTYPE_PID;
  22.         pid = find_get_pid(upid);
  23.     }

  24.     wo.wo_type    = type;
  25.     wo.wo_pid    = pid;
  26.     wo.wo_flags    = options | WEXITED;
  27.     wo.wo_info    = NULL;
  28.     wo.wo_stat    = stat_addr;
  29.     wo.wo_rusage    = ru;
  30.     ret = do_wait(&wo);
  31.     put_pid(pid);

  32.     return ret;
  33. }
do_wait()->
  do_wait_thread()->
      wait_consider_task->
        wait_task_zombie
         wait_task_stopped
         wait_task_continued


点击(此处)折叠或打开

  1. /*sys_wait4和sys_waitpid的实现for task in state EXIT_ZOMBIE*/
  2. static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
  3. {
  4.    ...
  5.         status = (p->signal->flags & SIGNAL_GROUP_EXIT)
  6.         ? p->signal->group_exit_code : p->exit_code;
  7.     if (!retval && wo->wo_stat)
  8.         retval = put_user(status, wo->wo_stat);
  9. ...
  10. }
其中,p->exit_code,即被wait进程的exit_code,其值有两种情况:
1、由用户态exit()接口传入,此时的exit_code=用户态传入的error_code<<8,相应代码如下:

点击(此处)折叠或打开

  1. SYSCALL_DEFINE1(exit, int, error_code)
  2. {
  3.     do_exit((error_code&0xff)<<8);
  4. }

2、内核中直接调用do_exit()时作为入参传入的错误码,此时的错误应该都是小于255(低8位表示)的。


原文地址: http://blog.chinaunix.net/uid-14528823-id-4729703.html

wjs@wjs-desktop:~/Drone_Slam$ ros2 launch fishbot_grapher test_grapher_3.launch.py [INFO] [launch]: All log files can be found below /home/wjs/.ros/log/2025-07-27-21-26-18-750077-wjs-desktop-2603 [INFO] [launch]: Default logging verbosity is set to INFO pkg_share =/home/wjs/Drone_Slam/install/fishbot_grapher/share/fishbot_grapher<== model_path =/home/wjs/Drone_Slam/install/fishbot_grapher/share/fishbot_grapher/urdf/fishbot_base.urdf<== [INFO] [sllidar_node-1]: process started with pid [2604] [INFO] [wit_ros2_imu-2]: process started with pid [2606] [INFO] [test01-3]: process started with pid [2608] [INFO] [robot_state_publisher-4]: process started with pid [2610] [INFO] [cartographer_node-5]: process started with pid [2612] [INFO] [cartographer_occupancy_grid_node-6]: process started with pid [2616] [sllidar_node-1] [INFO] [1753622779.123428206] [sllidar_node]: SLLidar running on ROS2 package SLLidar.ROS2 SDK Version:1.0.1, SLLIDAR SDK Version:2.0.0 [sllidar_node-1] [ERROR] [1753622779.166949150] [sllidar_node]: Error, operation time out. SL_RESULT_OPERATION_TIMEOUT! [ERROR] [sllidar_node-1]: process has died [pid 2604, exit code 255, cmd &#39;/home/wjs/Drone_Slam/install/sllidar_ros2/lib/sllidar_ros2/sllidar_node --ros-args -r __node:=sllidar_node --params-file /tmp/launch_params_09et7i92&#39;]. [robot_state_publisher-4] [WARN] [1753622779.340852788] [robot_state_publisher]: No robot_description parameter, but command-line argument available. Assuming argument is name of URDF file. This backwards compatibility fallback will be removed in the future. [robot_state_publisher-4] [INFO] [1753622779.403618429] [robot_state_publisher]: got segment base_link [robot_state_publisher-4] [INFO] [1753622779.404146730] [robot_state_publisher]: got segment imu_link [robot_state_publisher-4] [INFO] [1753622779.404233622] [robot_state_publisher]: got segment laser_link [cartographer_node-5] [INFO] [1753622779.592485766] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/home/wjs/Drone_Slam/install/fishbot_grapher/share/fishbot_grapher/config/test02.lua&#39; for &#39;test02.lua&#39;. [cartographer_node-5] [INFO] [1753622779.600612764] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/map_builder.lua&#39; for &#39;map_builder.lua&#39;. [cartographer_node-5] [INFO] [1753622779.600914554] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/map_builder.lua&#39; for &#39;map_builder.lua&#39;. [cartographer_node-5] [INFO] [1753622779.602523216] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/pose_graph.lua&#39; for &#39;pose_graph.lua&#39;. [cartographer_node-5] [INFO] [1753622779.602795339] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/pose_graph.lua&#39; for &#39;pose_graph.lua&#39;. [cartographer_node-5] [INFO] [1753622779.604405038] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/trajectory_builder.lua&#39; for &#39;trajectory_builder.lua&#39;. [cartographer_node-5] [INFO] [1753622779.604828741] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/trajectory_builder.lua&#39; for &#39;trajectory_builder.lua&#39;. [cartographer_node-5] [INFO] [1753622779.606033589] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/trajectory_builder_2d.lua&#39; for &#39;trajectory_builder_2d.lua&#39;. [cartographer_node-5] [INFO] [1753622779.606329861] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/trajectory_builder_2d.lua&#39; for &#39;trajectory_builder_2d.lua&#39;. [cartographer_node-5] [INFO] [1753622779.607970765] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/trajectory_builder_3d.lua&#39; for &#39;trajectory_builder_3d.lua&#39;. [cartographer_node-5] [INFO] [1753622779.608301075] [cartographer logger]: I0727 21:26:19.000000 2612 configuration_file_resolver.cc:41] Found &#39;/opt/ros/humble/share/cartographer/configuration_files/trajectory_builder_3d.lua&#39; for &#39;trajectory_builder_3d.lua&#39;. [cartographer_node-5] F0727 21:26:19.623965 2612 lua_parameter_dictionary.cc:399] Check failed: HasKey(key) Key &#39;collate_landmarks&#39; not in dictionary: [cartographer_node-5] { [cartographer_node-5] collate_fixed_frame = true, [cartographer_node-5] trajectory_builder_2d = { [cartographer_node-5] adaptive_voxel_filter = { [cartographer_node-5] max_length = 0.500000, [cartographer_node-5] max_range = 50.000000, [cartographer_node-5] min_num_points = 200.000000, [cartographer_node-5] }, [cartographer_node-5] ceres_scan_matcher = { [cartographer_node-5] ceres_solver_options = { [cartographer_node-5] max_num_iterations = 20.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] occupied_space_weight = 1.000000, [cartographer_node-5] rotation_weight = 40.000000, [cartographer_node-5] translation_weight = 10.000000, [cartographer_node-5] }, [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] loop_closure_adaptive_voxel_filter = { [cartographer_node-5] max_length = 0.900000, [cartographer_node-5] max_range = 50.000000, [cartographer_node-5] min_num_points = 100.000000, [cartographer_node-5] }, [cartographer_node-5] max_range = 8.000000, [cartographer_node-5] max_z = 2.000000, [cartographer_node-5] min_range = 0.300000, [cartographer_node-5] min_z = -0.800000, [cartographer_node-5] missing_data_ray_length = 1.000000, [cartographer_node-5] motion_filter = { [cartographer_node-5] max_angle_radians = 0.017453, [cartographer_node-5] max_distance_meters = 0.200000, [cartographer_node-5] max_time_seconds = 5.000000, [cartographer_node-5] }, [cartographer_node-5] num_accumulated_range_data = 1.000000, [cartographer_node-5] pose_extrapolator = { [cartographer_node-5] constant_velocity = { [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] pose_queue_duration = 0.001000, [cartographer_node-5] }, [cartographer_node-5] imu_based = { [cartographer_node-5] gravity_constant = 9.806000, [cartographer_node-5] imu_acceleration_weight = 1.000000, [cartographer_node-5] imu_rotation_weight = 1.000000, [cartographer_node-5] odometry_rotation_weight = 1.000000, [cartographer_node-5] odometry_translation_weight = 1.000000, [cartographer_node-5] pose_queue_duration = 5.000000, [cartographer_node-5] pose_rotation_weight = 1.000000, [cartographer_node-5] pose_translation_weight = 1.000000, [cartographer_node-5] solver_options = { [cartographer_node-5] max_num_iterations = 10.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_imu_based = false, [cartographer_node-5] }, [cartographer_node-5] real_time_correlative_scan_matcher = { [cartographer_node-5] angular_search_window = 0.349066, [cartographer_node-5] linear_search_window = 0.100000, [cartographer_node-5] rotation_delta_cost_weight = 0.100000, [cartographer_node-5] translation_delta_cost_weight = 10.000000, [cartographer_node-5] }, [cartographer_node-5] submaps = { [cartographer_node-5] grid_options_2d = { [cartographer_node-5] grid_type = "PROBABILITY_GRID", [cartographer_node-5] resolution = 0.050000, [cartographer_node-5] }, [cartographer_node-5] num_range_data = 35.000000, [cartographer_node-5] range_data_inserter = { [cartographer_node-5] probability_grid_range_data_inserter = { [cartographer_node-5] hit_probability = 0.550000, [cartographer_node-5] insert_free_space = true, [cartographer_node-5] miss_probability = 0.490000, [cartographer_node-5] }, [cartographer_node-5] range_data_inserter_type = "PROBABILITY_GRID_INSERTER_2D", [cartographer_node-5] tsdf_range_data_inserter = { [cartographer_node-5] maximum_weight = 10.000000, [cartographer_node-5] normal_estimation_options = { [cartographer_node-5] num_normal_samples = 4.000000, [cartographer_node-5] sample_radius = 0.500000, [cartographer_node-5] }, [cartographer_node-5] project_sdf_distance_to_scan_normal = true, [cartographer_node-5] truncation_distance = 0.300000, [cartographer_node-5] update_free_space = false, [cartographer_node-5] update_weight_angle_scan_normal_to_ray_kernel_bandwidth = 0.500000, [cartographer_node-5] update_weight_distance_cell_to_hit_kernel_bandwidth = 0.500000, [cartographer_node-5] update_weight_range_exponent = 0.000000, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_imu_data = true, [cartographer_node-5] use_online_correlative_scan_matching = true, [cartographer_node-5] voxel_filter_size = 0.025000, [cartographer_node-5] }, [cartographer_node-5] trajectory_builder_3d = { [cartographer_node-5] ceres_scan_matcher = { [cartographer_node-5] ceres_solver_options = { [cartographer_node-5] max_num_iterations = 12.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] intensity_cost_function_options_0 = { [cartographer_node-5] huber_scale = 0.300000, [cartographer_node-5] intensity_threshold = 40.000000, [cartographer_node-5] weight = 0.500000, [cartographer_node-5] }, [cartographer_node-5] occupied_space_weight_0 = 1.000000, [cartographer_node-5] occupied_space_weight_1 = 6.000000, [cartographer_node-5] only_optimize_yaw = false, [cartographer_node-5] rotation_weight = 400.000000, [cartographer_node-5] translation_weight = 5.000000, [cartographer_node-5] }, [cartographer_node-5] high_resolution_adaptive_voxel_filter = { [cartographer_node-5] max_length = 2.000000, [cartographer_node-5] max_range = 15.000000, [cartographer_node-5] min_num_points = 150.000000, [cartographer_node-5] }, [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] low_resolution_adaptive_voxel_filter = { [cartographer_node-5] max_length = 4.000000, [cartographer_node-5] max_range = 60.000000, [cartographer_node-5] min_num_points = 200.000000, [cartographer_node-5] }, [cartographer_node-5] max_range = 60.000000, [cartographer_node-5] min_range = 1.000000, [cartographer_node-5] motion_filter = { [cartographer_node-5] max_angle_radians = 0.004000, [cartographer_node-5] max_distance_meters = 0.100000, [cartographer_node-5] max_time_seconds = 0.500000, [cartographer_node-5] }, [cartographer_node-5] num_accumulated_range_data = 1.000000, [cartographer_node-5] pose_extrapolator = { [cartographer_node-5] constant_velocity = { [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] pose_queue_duration = 0.001000, [cartographer_node-5] }, [cartographer_node-5] imu_based = { [cartographer_node-5] gravity_constant = 9.806000, [cartographer_node-5] imu_acceleration_weight = 1.000000, [cartographer_node-5] imu_rotation_weight = 1.000000, [cartographer_node-5] odometry_rotation_weight = 1.000000, [cartographer_node-5] odometry_translation_weight = 1.000000, [cartographer_node-5] pose_queue_duration = 5.000000, [cartographer_node-5] pose_rotation_weight = 1.000000, [cartographer_node-5] pose_translation_weight = 1.000000, [cartographer_node-5] solver_options = { [cartographer_node-5] max_num_iterations = 10.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_imu_based = false, [cartographer_node-5] }, [cartographer_node-5] real_time_correlative_scan_matcher = { [cartographer_node-5] angular_search_window = 0.017453, [cartographer_node-5] linear_search_window = 0.150000, [cartographer_node-5] rotation_delta_cost_weight = 0.100000, [cartographer_node-5] translation_delta_cost_weight = 0.100000, [cartographer_node-5] }, [cartographer_node-5] rotational_histogram_size = 120.000000, [cartographer_node-5] submaps = { [cartographer_node-5] high_resolution = 0.100000, [cartographer_node-5] high_resolution_max_range = 20.000000, [cartographer_node-5] low_resolution = 0.450000, [cartographer_node-5] num_range_data = 160.000000, [cartographer_node-5] range_data_inserter = { [cartographer_node-5] hit_probability = 0.550000, [cartographer_node-5] intensity_threshold = 40.000000, [cartographer_node-5] miss_probability = 0.490000, [cartographer_node-5] num_free_space_voxels = 2.000000, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_intensities = false, [cartographer_node-5] use_online_correlative_scan_matching = false, [cartographer_node-5] voxel_filter_size = 0.150000, [cartographer_node-5] }, [cartographer_node-5] } [cartographer_node-5] [FATAL] [1753622779.626704366] [cartographer logger]: F0727 21:26:19.000000 2612 lua_parameter_dictionary.cc:399] Check failed: HasKey(key) Key &#39;collate_landmarks&#39; not in dictionary: [cartographer_node-5] { [cartographer_node-5] collate_fixed_frame = true, [cartographer_node-5] trajectory_builder_2d = { [cartographer_node-5] adaptive_voxel_filter = { [cartographer_node-5] max_length = 0.500000, [cartographer_node-5] max_range = 50.000000, [cartographer_node-5] min_num_points = 200.000000, [cartographer_node-5] }, [cartographer_node-5] ceres_scan_matcher = { [cartographer_node-5] ceres_solver_options = { [cartographer_node-5] max_num_iterations = 20.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] occupied_space_weight = 1.000000, [cartographer_node-5] rotation_weight = 40.000000, [cartographer_node-5] translation_weight = 10.000000, [cartographer_node-5] }, [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] loop_closure_adaptive_voxel_filter = { [cartographer_node-5] max_length = 0.900000, [cartographer_node-5] max_range = 50.000000, [cartographer_node-5] min_num_points = 100.000000, [cartographer_node-5] }, [cartographer_node-5] max_range = 8.000000, [cartographer_node-5] max_z = 2.000000, [cartographer_node-5] min_range = 0.300000, [cartographer_node-5] min_z = -0.800000, [cartographer_node-5] missing_data_ray_length = 1.000000, [cartographer_node-5] motion_filter = { [cartographer_node-5] max_angle_radians = 0.017453, [cartographer_node-5] max_distance_meters = 0.200000, [cartographer_node-5] max_time_seconds = 5.000000, [cartographer_node-5] }, [cartographer_node-5] num_accumulated_range_data = 1.000000, [cartographer_node-5] pose_extrapolator = { [cartographer_node-5] constant_velocity = { [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] pose_queue_duration = 0.001000, [cartographer_node-5] }, [cartographer_node-5] imu_based = { [cartographer_node-5] gravity_constant = 9.806000, [cartographer_node-5] imu_acceleration_weight = 1.000000, [cartographer_node-5] imu_rotation_weight = 1.000000, [cartographer_node-5] odometry_rotation_weight = 1.000000, [cartographer_node-5] odometry_translation_weight = 1.000000, [cartographer_node-5] pose_queue_duration = 5.000000, [cartographer_node-5] pose_rotation_weight = 1.000000, [cartographer_node-5] pose_translation_weight = 1.000000, [cartographer_node-5] solver_options = { [cartographer_node-5] max_num_iterations = 10.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_imu_based = false, [cartographer_node-5] }, [cartographer_node-5] real_time_correlative_scan_matcher = { [cartographer_node-5] angular_search_window = 0.349066, [cartographer_node-5] linear_search_window = 0.100000, [cartographer_node-5] rotation_delta_cost_weight = 0.100000, [cartographer_node-5] translation_delta_cost_weight = 10.000000, [cartographer_node-5] }, [cartographer_node-5] submaps = { [cartographer_node-5] grid_options_2d = { [cartographer_node-5] grid_type = "PROBABILITY_GRID", [cartographer_node-5] resolution = 0.050000, [cartographer_node-5] }, [cartographer_node-5] num_range_data = 35.000000, [cartographer_node-5] range_data_inserter = { [cartographer_node-5] probability_grid_range_data_inserter = { [cartographer_node-5] hit_probability = 0.550000, [cartographer_node-5] insert_free_space = true, [cartographer_node-5] miss_probability = 0.490000, [cartographer_node-5] }, [cartographer_node-5] range_data_inserter_type = "PROBABILITY_GRID_INSERTER_2D", [cartographer_node-5] tsdf_range_data_inserter = { [cartographer_node-5] maximum_weight = 10.000000, [cartographer_node-5] normal_estimation_options = { [cartographer_node-5] num_normal_samples = 4.000000, [cartographer_node-5] sample_radius = 0.500000, [cartographer_node-5] }, [cartographer_node-5] project_sdf_distance_to_scan_normal = true, [cartographer_node-5] truncation_distance = 0.300000, [cartographer_node-5] update_free_space = false, [cartographer_node-5] update_weight_angle_scan_normal_to_ray_kernel_bandwidth = 0.500000, [cartographer_node-5] update_weight_distance_cell_to_hit_kernel_bandwidth = 0.500000, [cartographer_node-5] update_weight_range_exponent = 0.000000, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_imu_data = true, [cartographer_node-5] use_online_correlative_scan_matching = true, [cartographer_node-5] voxel_filter_size = 0.025000, [cartographer_node-5] }, [cartographer_node-5] trajectory_builder_3d = { [cartographer_node-5] ceres_scan_matcher = { [cartographer_node-5] ceres_solver_options = { [cartographer_node-5] max_num_iterations = 12.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] intensity_cost_function_options_0 = { [cartographer_node-5] huber_scale = 0.300000, [cartographer_node-5] intensity_threshold = 40.000000, [cartographer_node-5] weight = 0.500000, [cartographer_node-5] }, [cartographer_node-5] occupied_space_weight_0 = 1.000000, [cartographer_node-5] occupied_space_weight_1 = 6.000000, [cartographer_node-5] only_optimize_yaw = false, [cartographer_node-5] rotation_weight = 400.000000, [cartographer_node-5] translation_weight = 5.000000, [cartographer_node-5] }, [cartographer_node-5] high_resolution_adaptive_voxel_filter = { [cartographer_node-5] max_length = 2.000000, [cartographer_node-5] max_range = 15.000000, [cartographer_node-5] min_num_points = 150.000000, [cartographer_node-5] }, [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] low_resolution_adaptive_voxel_filter = { [cartographer_node-5] max_length = 4.000000, [cartographer_node-5] max_range = 60.000000, [cartographer_node-5] min_num_points = 200.000000, [cartographer_node-5] }, [cartographer_node-5] max_range = 60.000000, [cartographer_node-5] min_range = 1.000000, [cartographer_node-5] motion_filter = { [cartographer_node-5] max_angle_radians = 0.004000, [cartographer_node-5] max_distance_meters = 0.100000, [cartographer_node-5] max_time_seconds = 0.500000, [cartographer_node-5] }, [cartographer_node-5] num_accumulated_range_data = 1.000000, [cartographer_node-5] pose_extrapolator = { [cartographer_node-5] constant_velocity = { [cartographer_node-5] imu_gravity_time_constant = 10.000000, [cartographer_node-5] pose_queue_duration = 0.001000, [cartographer_node-5] }, [cartographer_node-5] imu_based = { [cartographer_node-5] gravity_constant = 9.806000, [cartographer_node-5] imu_acceleration_weight = 1.000000, [cartographer_node-5] imu_rotation_weight = 1.000000, [cartographer_node-5] odometry_rotation_weight = 1.000000, [cartographer_node-5] odometry_translation_weight = 1.000000, [cartographer_node-5] pose_queue_duration = 5.000000, [cartographer_node-5] pose_rotation_weight = 1.000000, [cartographer_node-5] pose_translation_weight = 1.000000, [cartographer_node-5] solver_options = { [cartographer_node-5] max_num_iterations = 10.000000, [cartographer_node-5] num_threads = 1.000000, [cartographer_node-5] use_nonmonotonic_steps = false, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_imu_based = false, [cartographer_node-5] }, [cartographer_node-5] real_time_correlative_scan_matcher = { [cartographer_node-5] angular_search_window = 0.017453, [cartographer_node-5] linear_search_window = 0.150000, [cartographer_node-5] rotation_delta_cost_weight = 0.100000, [cartographer_node-5] translation_delta_cost_weight = 0.100000, [cartographer_node-5] }, [cartographer_node-5] rotational_histogram_size = 120.000000, [cartographer_node-5] submaps = { [cartographer_node-5] high_resolution = 0.100000, [cartographer_node-5] high_resolution_max_range = 20.000000, [cartographer_node-5] low_resolution = 0.450000, [cartographer_node-5] num_range_data = 160.000000, [cartographer_node-5] range_data_inserter = { [cartographer_node-5] hit_probability = 0.550000, [cartographer_node-5] intensity_threshold = 40.000000, [cartographer_node-5] miss_probability = 0.490000, [cartographer_node-5] num_free_space_voxels = 2.000000, [cartographer_node-5] }, [cartographer_node-5] }, [cartographer_node-5] use_intensities = false, [cartographer_node-5] use_online_correlative_scan_matching = false, [cartographer_node-5] voxel_filter_size = 0.150000, [cartographer_node-5] }, [cartographer_node-5] } [cartographer_node-5] *** Check failure stack trace: *** [cartographer_node-5] @ 0xffff861dd41c google::LogMessage::Fail() [cartographer_node-5] @ 0xffff861e46d0 google::LogMessage::SendToLog() [cartographer_node-5] @ 0xffff861dd0f4 google::LogMessage::Flush() [cartographer_node-5] @ 0xffff861deebc google::LogMessageFatal::~LogMessageFatal() [cartographer_node-5] @ 0xaaaadf20392c (unknown) [cartographer_node-5] @ 0xaaaadf20398c (unknown) [cartographer_node-5] @ 0xaaaadf203dc8 (unknown) [cartographer_node-5] @ 0xaaaadf2210a8 (unknown) [cartographer_node-5] @ 0xaaaadf1eaeec (unknown) [cartographer_node-5] @ 0xaaaadf14743c (unknown) [cartographer_node-5] @ 0xffff857c73fc (unknown) [cartographer_node-5] @ 0xffff857c74cc __libc_start_main [cartographer_node-5] @ 0xaaaadf14abf0 (unknown) [test01-3] Traceback (most recent call last): [test01-3] File "/home/wjs/.local/lib/python3.10/site-packages/serial/serialposix.py", line 322, in open [test01-3] self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK) [test01-3] FileNotFoundError: [Errno 2] No such file or directory: &#39;/dev/mcu_usb&#39; [test01-3] [test01-3] During handling of the above exception, another exception occurred: [test01-3] [test01-3] Traceback (most recent call last): [test01-3] File "/home/wjs/Drone_Slam/install/fishbot_grapher/lib/fishbot_grapher/test01", line 33, in <module> [test01-3] sys.exit(load_entry_point(&#39;fishbot-grapher==0.0.0&#39;, &#39;console_scripts&#39;, &#39;test01&#39;)()) [test01-3] File "/home/wjs/Drone_Slam/build/fishbot_grapher/fishbot_grapher/test01.py", line 101, in main [test01-3] tf_subscriber = TFSubscriber() [test01-3] File "/home/wjs/Drone_Slam/build/fishbot_grapher/fishbot_grapher/test01.py", line 20, in __init__ [test01-3] self.ser = serial.Serial("/dev/mcu_usb", 115200) [test01-3] File "/home/wjs/.local/lib/python3.10/site-packages/serial/serialutil.py", line 244, in __init__ [test01-3] self.open() [test01-3] File "/home/wjs/.local/lib/python3.10/site-packages/serial/serialposix.py", line 325, in open [test01-3] raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg)) [test01-3] serial.serialutil.SerialException: [Errno 2] could not open port /dev/mcu_usb: [Errno 2] No such file or directory: &#39;/dev/mcu_usb&#39; [wit_ros2_imu-2] [INFO] [1753622781.380078547] [imu]: Serial port opening failure [ERROR] [test01-3]: process has died [pid 2608, exit code 1, cmd &#39;/home/wjs/Drone_Slam/install/fishbot_grapher/lib/fishbot_grapher/test01 --ros-args&#39;]. [ERROR] [cartographer_node-5]: process has died [pid 2612, exit code -6, cmd &#39;/opt/ros/humble/lib/cartographer_ros/cartographer_node -configuration_directory /home/wjs/Drone_Slam/install/fishbot_grapher/share/fishbot_grapher/config -configuration_basename test02.lua --ros-args -r __node:=cartographer_node --params-file /tmp/launch_params_clup20by&#39;].
最新发布
07-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值