JokerJohn / LIO_SAM_6AXIS

LIO_SAM for 6-axis IMU and GNSS.
628 stars 123 forks source link

[lio_sam_6axis_mapOptmization-5] process has died, whenever I play the rosbag #84

Open shchoi00 opened 6 months ago

shchoi00 commented 6 months ago

I appreciate for you job!

Using #70 I can build the package with noetic.

But, when I play the rosbag, it prints some error like following:

[lio_sam_6axis_mapOptmization-5] process has died [pid 1468503, exit code -11, cmd /home/ubuntu/catkin_ws/devel/lib/lio_sam_6axis/lio_sam_6axis_mapOptmization __name:=lio_sam_6axis_mapOptmization __log:=/home/ubuntu/.ros/log/a8830fe6-184d-11ef-b4f1-87907ca5256a/lio_sam_6axis_mapOptmization-5.log].

I'm using ouster OS-1 64 and internal IMU(6 axis) as well.

Here is my yaml config. There are few changes of param.

io_sam_6axis:

  #  velodyne16 and stim300(6 axis)

  # Topics
  pointCloudTopic: "/ouster/points"               # Point cloud data
  imuTopic: "/ouster/imu"                         # IMU data
  odomTopic: "odometry/imu"                   # IMU pre-preintegration odometry, same frequency as IMU
  gpsTopic: "gps_odom"                   # GPS odometry topic from navsat, see module_navsat.launch file

  # Frames
  lidarFrame: "base_link"
  baselinkFrame: "base_link"
  odometryFrame: "odom"
  mapFrame: "map"

  # GPS Settings
  useGPS: false
  gpsFrequence: 10                            # set proper gps frequence to align gps and lidar timestamp
  useImuHeadingInitialization: false         # if using GPS data, set to "false"
  useGpsElevation: true                      # if GPS elevation is bad, set to "false"
  gpsCovThreshold: 2.0                        # m^2, threshold for using GPS data
  poseCovThreshold: 25.0                      # m^2, threshold for using GPS data

  # debug setting
  debugLidarTimestamp: false
  debugImu: false
  debugGps: false

  # Export settings
  savePCD: false                              # https://github.com/TixiaoShan/LIO-SAM/issues/3
  savePCDDirectory: "/Downloads/LOAM/"        # actually we do not use the floder to save maps

  # depends on your own lidar!!!!
  sensor: ouster                            # lidar sensor type, 'velodyne' or 'ouster' or 'livox' or 'hesai'
  N_SCAN: 64                                  # number of lidar channel (i.e., Velodyne/Ouster: 16, 32, 64, 128, Livox Horizon: 6)
  Horizon_SCAN: 1024                          # lidar horizontal resolution (Velodyne:1800, Ouster:512,1024,2048, Livox Horizon: 4000)
  downsampleRate: 1                           # default: 1. Downsample your data if too many points. i.e., 16 = 64 / 4, 16 = 16 / 1
  lidarMinRange: 1.5                          # default: 1.0, minimum lidar range to be used
  lidarMaxRange: 1000.0

  # IMU Settings
  imuFrequence: 100
  imuAccNoise: 0.0011501915187049582
  imuGyrNoise: 5.084312924828687e-05
  imuAccBiasN: 3.729854069064516e-05
  imuGyrBiasN: 6.509823412408377e-07
  imuGravity: 9.80511
  imuRPYWeight: 0.01

Additionally, When I play FusionPortable DATASET which located in readme, even though I just used default test_ouster128.launch, it gets stuck like #59

JokerJohn commented 6 months ago

@shchoi00 show me your full yaml file, do not delete any parameters here

shchoi00 commented 6 months ago

Here's my full yaml file.

lio_sam_6axis:

  #  velodyne16 and stim300(6 axis)

  # Topics
  pointCloudTopic: "/ouster/points"               # Point cloud data
  imuTopic: "/ouster/imu"                         # IMU data
  odomTopic: "odometry/imu"                   # IMU pre-preintegration odometry, same frequency as IMU
  gpsTopic: "gps_odom"                   # GPS odometry topic from navsat, see module_navsat.launch file

  # Frames
  lidarFrame: "base_link"
  baselinkFrame: "base_link"
  odometryFrame: "odom"
  mapFrame: "map"

  # GPS Settings
  useGPS: false
  gpsFrequence: 10                            # set proper gps frequence to align gps and lidar timestamp
  useImuHeadingInitialization: false         # if using GPS data, set to "false"
  useGpsElevation: true                      # if GPS elevation is bad, set to "false"
  gpsCovThreshold: 2.0                        # m^2, threshold for using GPS data
  poseCovThreshold: 25.0                      # m^2, threshold for using GPS data

  # debug setting
  debugLidarTimestamp: false
  debugImu: false
  debugGps: false

  # Export settings
  savePCD: false                              # https://github.com/TixiaoShan/LIO-SAM/issues/3
  savePCDDirectory: "/Downloads/LOAM/"        # actually we do not use the floder to save maps

  # depends on your own lidar!!!!
  sensor: ouster                            # lidar sensor type, 'velodyne' or 'ouster' or 'livox' or 'hesai'
  N_SCAN: 64                                  # number of lidar channel (i.e., Velodyne/Ouster: 16, 32, 64, 128, Livox Horizon: 6)
  Horizon_SCAN: 1024                          # lidar horizontal resolution (Velodyne:1800, Ouster:512,1024,2048, Livox Horizon: 4000)
  downsampleRate: 1                           # default: 1. Downsample your data if too many points. i.e., 16 = 64 / 4, 16 = 16 / 1
  lidarMinRange: 1.5                          # default: 1.0, minimum lidar range to be used
  lidarMaxRange: 1000.0

  # IMU Settings
  imuFrequence: 100
  imuAccNoise: 0.0011501915187049582
  imuGyrNoise: 5.084312924828687e-05
  imuAccBiasN: 3.729854069064516e-05
  imuGyrBiasN: 6.509823412408377e-07
  imuGravity: 9.80511
  imuRPYWeight: 0.01

  # stim300  lidar->imu
  imu_type: 0   # 0: 6axis, 1:9 axis
  extrinsicTrans: [ -0.047781, 0.007303, -0.026583 ]
  extrinsicRot: [ 0.9999872, -0.0010636, -0.0049547,
                  0.0010324,  0.9999796, -0.0062985,
                  0.0049613,  0.0062933,  0.9999679 ]
  extrinsicRPY: [ 0.9999872, -0.0010636, -0.0049547,
                  0.0010324,  0.9999796, -0.0062985,
                  0.0049613,  0.0062933,  0.9999679 ]

  # LOAM feature threshold
  edgeThreshold: 1.0
  surfThreshold: 0.1
  edgeFeatureMinValidNum: 10
  surfFeatureMinValidNum: 100

  # voxel filter paprams
  odometrySurfLeafSize: 0.4                     # default: 0.4 - outdoor, 0.2 - indoor
  mappingCornerLeafSize: 0.2                    # default: 0.2 - outdoor, 0.1 - indoor
  mappingSurfLeafSize: 0.4                      # default: 0.4 - outdoor, 0.2 - indoor

  # robot motion constraint (in case you are using a 2D robot)
  z_tollerance: 1000                            # meters
  rotation_tollerance: 1000                     # radians

  # CPU Params
  numberOfCores: 8                              # number of cores for mapping optimization
  mappingProcessInterval: 0.15                  # seconds, regulate mapping frequency

  # Surrounding map
  surroundingkeyframeAddingDistThreshold: 0.5   # meters, regulate keyframe adding threshold
  surroundingkeyframeAddingAngleThreshold: 0.2  # radians, regulate keyframe adding threshold
  surroundingKeyframeDensity: 2.0               # meters, downsample surrounding keyframe poses
  surroundingKeyframeSearchRadius: 50.0         # meters, within n meters scan-to-map optimization (when loop closure disabled)

  # Loop closure
  loopClosureEnableFlag: true
  loopClosureFrequency: 1.0                     # Hz, regulate loop closure constraint add frequency
  surroundingKeyframeSize: 30                   # submap size (when loop closure enabled)
  historyKeyframeSearchRadius: 40.0             # meters, key frame that is within n meters from current pose will be considerd for loop closure
  historyKeyframeSearchTimeDiff: 25.0           # seconds, key frame that is n seconds older will be considered for loop closure
  historyKeyframeSearchNum: 25                  # number of hostory key frames will be fused into a submap for loop closure
  historyKeyframeFitnessScore: 0.9              # icp threshold, the smaller the better alignment

  # Visualization
  globalMapVisualizationSearchRadius: 1000.0    # meters, global map visualization radius
  globalMapVisualizationPoseDensity: 10.0       # meters, global map visualization keyframe density
  globalMapVisualizationLeafSize: 0.5           # meters, global map visualization cloud density

  # mapping
  globalMapLeafSize: 0.2                        # saved map voxgrid size
yunliuh commented 5 months ago

I am encountering the same issue as you did. Have you managed to resolve it?

yunliuh commented 5 months ago

I have found that the node crashes when attempting to add elements to surroundingKeyPosesDS (during the operation surroundingKeyPosesDS->push_back) or when destructing surroundingKeyPosesDS.

yunliuh commented 5 months ago

I resolved the issue by following the approach provided in the link https://github.com/TixiaoShan/LIO-SAM/issues/191.