chengwei0427 / ct-lio

CT-LIO: Continuous-Time LiDAR-Inertial Odometry
GNU General Public License v2.0
317 stars 42 forks source link

Drift in Rotating MID360 #15

Closed satyajitghana closed 4 months ago

satyajitghana commented 4 months ago

Hi,

I am trying out ct-lio on a rotating mid 360 setup, but it is drifting right away!

Here's a screenshot

Screenshot 2024-05-21 at 3 07 16 PM

Here are the bag files: https://drive.google.com/drive/folders/18-ifGeaiTr3D9s_H4-1-hGLMq95te4I-?usp=sharing

here's the mapping.yaml

YAML: 1.0

preprocess:
  point_filter_num: 1
  lidar_type: 1  # 1-AVIA 2-velodyne 3-ouster  4-robosense 5-pandar
  blind: 0.01

common:
  # imu_topic: /imu/data #/os_cloud_node/imu  /imu_raw   /gps/gtimu
  # lid_topic: /rslidar_points #/os_cloud_node/points /points_raw  /rslidar_points /velodyne_points

  imu_topic: /livox/imu #/os_cloud_node/imu  /imu_raw   /gps/gtimu
  lid_topic: /livox/lidar #/os_cloud_node/points /points_raw  /rslidar_points /velodyne_points
mapping:
  extrinsic_est_en: true
  extrinsic_T: [ -0.011, -0.02329, 0.04412 ]
  extrinsic_R: [ 1, 0, 0, 0, 1, 0, 0, 0, 1]

delay_time: 0.3

odometry:
  surf_res: 0.2
  log_print: false
  max_num_iteration: 15
  # ct_icp
  icpmodel: CT_POINT_TO_PLANE                    # Options: [CT_POINT_TO_PLANE, POINT_TO_PLANE]
  size_voxel_map: 0.2                         # The voxel size of in the voxel map
  min_distance_points: 0.05
  max_num_points_in_voxel: 20                 # The maximum number of points per voxel of the map
  max_distance: 500.0                        # The threshold of the distance to suppress voxels from the map
  weight_alpha: 0.9
  weight_neighborhood: 0.1
  max_dist_to_plane_icp: 0.1   # This is important
  init_num_frames: 20
  voxel_neighborhood: 1
  max_number_neighbors: 20
  threshold_voxel_occupancy: 1
  estimate_normal_from_neighborhood: true
  min_number_neighbors: 20                    # The minimum number of neighbor points to define a valid neighborhood
  power_planarity: 2.0
  num_closest_neighbors: 1

  sampling_rate: 1.0
  ratio_of_nonground: 2
  max_num_residuals: 3000
  min_num_residuals: 300
  motion_compensation: CONSTANT_VELOCITY #NONE, CONSTANT_VELOCITY, ITERATIVE, CONTINUOUS
  beta_location_consistency: 1.0
  beta_orientation_consistency: 1.0
  beta_constant_velocity: 0.0
  beta_small_velocity: 0.0

  thres_translation_norm: 0.01            # m
  thres_orientation_norm: 0.1             # deg
satyajitghana commented 4 months ago

@chengwei0427

chengwei0427 commented 4 months ago

Hi, @satyajitghana Thanks for your interesting in our project. ct-lio adopt static initialization in our system to estimate some necessary variables including initial velocity, gravitational acceleration, accelerometer bias and gyroscope bias.

chengwei0427 commented 4 months ago

@satyajitghana Maybe ctlo can solve this problem.