Skip to content

Fails to map during motion, works in LiDAR_IMU_Init but not here #57

@yakultbottle

Description

@yakultbottle

Hi, I am attempting to map in simulation using a humanoid robot in Isaac Sim and FAST_LIO. I recorded a rosbag of the movement, and when playing it back the scans become incoherent after movement, when the robot turns and tilts forward/backwards.

Image

Before moving

Image

After moving

When attempting to calibrate the extrinsic, I found that LiDAR_IMU_Init can produce a coherent map.

Image

However, even after setting the extrinsic and fiddling with the config I still cannot produce a coherent map using FAST_LIO. Here is the configuration I am using:

/**:
    ros__parameters:
        feature_extract_enable: false
        point_filter_num: 1
        max_iteration: 3
        filter_size_surf: 0.05
        filter_size_map: 0.15
        cube_side_length: 1000.0
        runtime_pos_log_enable: false
        map_file_path: "./test.pcd"

        common:
            lid_topic:  "/point_cloud"
            imu_topic:  "/imu"
            time_sync_en: false         # ONLY turn on when external time synchronization is really not possible
            # time_offset_lidar_to_imu: 0.0 # Time offset between lidar and IMU calibrated by other algorithms, e.g. LI-Init (can be found in README).
                                        # This param will take effect no matter what time_sync_en is. So if the time offset is not known exactly, please set as 0.0
            time_offset_lidar_to_imu: -0.039862

        preprocess:
            lidar_type: 4 # 1 for Livox serials LiDAR, 2 for Velodyne LiDAR, 3 for ouster LiDAR, 4 for any other pointcloud input
            scan_line:  6
            blind: 1.0
            timestamp_unit: 4
            scan_rate: 10

        mapping:
            acc_cov: 2.0
            gyr_cov: 2.0
            b_acc_cov: 0.0001
            b_gyr_cov: 0.0001
            fov_degree:    360.0
            det_range:     100.0
            extrinsic_est_en:  false      # true: enable the online estimation of IMU-LiDAR extrinsic
            extrinsic_T: [ -0.013481,  0.014976,  0.247690 ]   # lidar_imu_init
            extrinsic_R: [
                 0.999270,  0.033314,  0.018680,
                -0.032879,  0.999191, -0.023149,
                -0.019436,  0.022518,  0.999557,
            ]

        publish:
            path_en: true                # true: publish Path
            effect_map_en: false         # true: publish Effects
            map_en: true                 # true: publish Map cloud
            scan_publish_en:  true       # false: close all the point cloud output
            dense_publish_en: true       # false: low down the points number in a global-frame point clouds scan.
            scan_bodyframe_pub_en: true  # true: output the point cloud scans in IMU-body-frame

        pcd_save:
            pcd_save_en: false
            interval: -1                 # how many LiDAR frames saved in each pcd file; 
                                        # -1 : all frames will be saved in ONE pcd file, may lead to memory crash when having too much frames.

Do you have any tips on how to debug this/what I can try?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions