leggedrobotics / icp_localization

This package provides localization in a pre-built map using ICP and odometry (or the IMU measurements).
https://rsl.ethz.ch
BSD 3-Clause "New" or "Revised" License
245 stars 48 forks source link

"malloc(): memory corruption" and then "[icp_node-2] process has died [pid 18948, exit code -6" #17

Open howaix1 opened 1 year ago

howaix1 commented 1 year ago

Bug Description

It often worked well but occasionally triggered:

malloc(): memory corruption

and then the [icp_node-2] process died:

[icp_node-2] process has died [pid 18948, exit code -6, cmd /home/admin/robotproject/icplocalization/catkin_ws/devel/lib/icp_localization/localizer_node __name:=icp_node __log:=/home/admin/.ros/log/92752c16-ada5-11ed-ad1e-c0b6f9cda807/icp_node-2.log].
log file: /home/admin/.ros/log/92752c16-ada5-11ed-ad1e-c0b6f9cda807/icp_node-2*.log 

The localization was perfect just until this bug occurred and it occurred randomly without patterns.

Detailed Information

... logging to /home/admin/.ros/log/92752c16-ada5-11ed-ad1e-c0b6f9cda807/roslaunch-admin-18912.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://admin:41469/

SUMMARY
========

PARAMETERS
 * /icp_node/calibration/imu_to_range_sensor/pitch: 0.0
 * /icp_node/calibration/imu_to_range_sensor/roll: 0.0
 * /icp_node/calibration/imu_to_range_sensor/x: 0.068
 * /icp_node/calibration/imu_to_range_sensor/y: 0.135
 * /icp_node/calibration/imu_to_range_sensor/yaw: 3.14159265359
 * /icp_node/calibration/imu_to_range_sensor/z: 0.275
 * /icp_node/calibration/odometry_source_to_range_sensor/pitch: 0.0
 * /icp_node/calibration/odometry_source_to_range_sensor/roll: 0.0
 * /icp_node/calibration/odometry_source_to_range_sensor/x: -0.076
 * /icp_node/calibration/odometry_source_to_range_sensor/y: -0.024
 * /icp_node/calibration/odometry_source_to_range_sensor/yaw: 0.0
 * /icp_node/calibration/odometry_source_to_range_sensor/z: 0.034
 * /icp_node/icp_config_path: /home/admin/wo...
 * /icp_node/icp_localization/fixed_frame: map
 * /icp_node/icp_localization/gravity_vector_filter_time_constant: 0.01
 * /icp_node/icp_localization/imu_data_topic: /imu/data
 * /icp_node/icp_localization/initial_pose/pitch: 0.0
 * /icp_node/icp_localization/initial_pose/roll: 0.0
 * /icp_node/icp_localization/initial_pose/x: 0.0
 * /icp_node/icp_localization/initial_pose/y: 0.0
 * /icp_node/icp_localization/initial_pose/yaw: 0.0
 * /icp_node/icp_localization/initial_pose/z: 0.0
 * /icp_node/icp_localization/is_provide_odom_frame: False
 * /icp_node/icp_localization/is_use_odometry: False
 * /icp_node/icp_localization/min_num_odom_msgs_before_ready: 5
 * /icp_node/icp_localization/num_accumulated_range_data: 1
 * /icp_node/icp_localization/odometry_data_topic: /camera/odom/sample
 * /icp_node/icp_localization/range_data_topic: /velodyne_points
 * /icp_node/input_filters_config_path: /home/admin/wo...
 * /icp_node/pcd_filename: /home/admin/wo...
 * /rosdistro: melodic
 * /rosversion: 1.14.13
 * /use_sim_time: True

NODES
  /
    icp_node (icp_localization/localizer_node)
    rosbag (rosbag/play)
    rviz_icp (rviz/rviz)

auto-starting new master
process[master]: started with pid [18934]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 92752c16-ada5-11ed-ad1e-c0b6f9cda807
process[rosout-1]: started with pid [18945]
started core service [/rosout]
process[icp_node-2]: started with pid [18948]
process[rosbag-3]: started with pid [18953]
process[rviz_icp-4]: started with pid [18954]
[ERROR] [1676516217.436628947]: PluginlibFactory: The plugin for class 'jsk_rviz_plugin/TFTrajectory' failed to load.  Error: According to the loaded plugin descriptions the class jsk_rviz_plugin/TFTrajectory with base class type rviz::Display does not exist. Declared types are  moveit_rviz_plugin/MotionPlanning moveit_rviz_plugin/PlanningScene moveit_rviz_plugin/RobotState moveit_rviz_plugin/Trajectory rviz/Axes rviz/Camera rviz/DepthCloud rviz/Effort rviz/FluidPressure rviz/Grid rviz/GridCells rviz/Illuminance rviz/Image rviz/InteractiveMarkers rviz/LaserScan rviz/Map rviz/Marker rviz/MarkerArray rviz/Odometry rviz/Path rviz/PointCloud rviz/PointCloud2 rviz/PointStamped rviz/Polygon rviz/Pose rviz/PoseArray rviz/PoseWithCovariance rviz/Range rviz/RelativeHumidity rviz/RobotModel rviz/TF rviz/Temperature rviz/WrenchStamped
Map size is: 1316460
Init pose set to, xyz: 0 0 0, q: 0 0 0 1, rpy: 0 0 0 deg 
odometry data topic: /camera/odom/sample
imu data topic: /imu/data
Is use odometry: false
Gravity vector filter time constant: 0.01
Min num odom measurements before ready: 5
Calibration: 
imu to range sensor: t:[0.068000, 0.135000, 0.275000] ; q:[0.000000, 0.000000, 1.000000, 0.000000] ; rpy (deg):[0.000000, 0.000000, 180.000000]

odometry source to range sensor: t:[-0.076000, -0.024000, 0.034000] ; q:[0.000000, 0.000000, 0.000000, 1.000000] ; rpy (deg):[0.000000, 0.000000, 0.000000]

range data parameters: 
topic: /velodyne_points
num range data accumulated: 1

Setting fixed frame to: map
ICPlocalization: Initialized 
succesfully initialized icp
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
malloc(): memory corruption
[icp_node-2] process has died [pid 18948, exit code -6, cmd /home/admin/workspace/robotproject/icplocalization/catkin_ws/devel/lib/icp_localization/localizer_node __name:=icp_node __log:=/home/admin/.ros/log/92752c16-ada5-11ed-ad1e-c0b6f9cda807/icp_node-2.log].
log file: /home/admin/.ros/log/92752c16-ada5-11ed-ad1e-c0b6f9cda807/icp_node-2*.log
[rosbag-3] process has finished cleanly
log file: /home/admin/.ros/log/92752c16-ada5-11ed-ad1e-c0b6f9cda807/rosbag-3*.log
nubertj commented 1 year ago

Thanks for reporting the issue. Is it reproducible on any dataset you have? If so, it would be great if you could provide data for us such that we can check. Also, would it be possible for you to run a debugger, s.t. we know where the issue occurs?

thanks