0


使用开源激光SLAM方案LIO-SAM运行KITTI数据集,如有用,请评论雷锋

第一次写博客~

  1. LIOSAM作为优秀的激光slam方案,当然想尝试着运行更多数据啦,然而没有发现类似的方法分享到底如何实现,在B站看到有伙伴发布了测试视频,但是仍然没有写出方法。所以我跑通了之后记录一下
  2. 关于代码层面要修改的,因为liosam 要求输入的点云每个点都有ring 信息和相对时间信息,目前的雷达基本具备这些信息啦,但是早期的kitti数据集不具备,所以代码要自己计算一下 ring和time。方法可以参考lego-loam中这部分内容。多说一点,计算的时候每束激光都应该判断halfpassed,而lego-loam中只判断一次,我觉着是有点问题的,如果你不知道我在说什么,就先用lego-loam的方法修改就好了
  3. 关于数据,已有公开的kitti2bag 工具,使用方法:https://zhuanlan.zhihu.com/p/104875159 但是输出的bag liosam是不能正常跑的,位姿Z型突变,仔细了解一下发现 这个bag的imu频率跟雷达一样,也就是很低频。liosam作者提供了一个kitti bag 在google drive,至于如何下载就是另一个好问题 。 如果想自己制作bag, 作者自己改了kittitobag 就在源码的文件夹下,至少你还要多下载一个 *extract文件,举例如下:在这里插入图片描述 然后运行 pip3 install tqdm python3 kitti2bag.py -t 2011_09_30 -r 0027 raw_synced
  4. 配置参数修改 只需要按照readme中修改: extrinsicTrans: [-8.086759e-01, 3.195559e-01, -7.997231e-01] extrinsicRot: [9.999976e-01, 7.553071e-04, -2.035826e-03, -7.854027e-04, 9.998898e-01, -1.482298e-02, 2.024406e-03, 1.482454e-02, 9.998881e-01] extrinsicRPY: [9.999976e-01, 7.553071e-04, -2.035826e-03, -7.854027e-04, 9.998898e-01, -1.482298e-02, 2.024406e-03, 1.482454e-02, 9.998881e-01]
  5. 是的 我想到了,您是不是觉着下载kitti再制作很麻烦, 想要我的bag呢,云盘如下: 请叫我雷锋 链接: https://pan.baidu.com/s/13MlLlzqUJME8ungRNJbaSQ 密码: hl71
  6. 运行结果:请添加图片描述备注: 我运行kitti的参数文件(部分):
#CPU Params
  numberOfCores:4                              # number of cores for mapping optimization
  mappingProcessInterval:0.15                  # seconds, regulate mapping frequency

  #Topics  for processing kitti by author
  pointCloudTopic:"points_raw"           # Point cloud data/for kitti  "/kitti/velo/pointcloud"
  imuTopic:"imu_raw"                         # IMU data/for kitti  "/kitti/oxts/imu"#Topics for normal kitti#pointCloudTopic:"kitti/velo/pointcloud"#Point cloud data/for kitti  "/kitti/velo/pointcloud"#imuTopic:"kitti/oxts/imu"#IMU data/for kitti  "/kitti/oxts/imu"

  odomTopic:"odometry/imu"                   # IMU pre-preintegration odometry, same frequency as IMU
  gpsTopic:"odometry/gpsz"                   # GPS odometry topic from navsat, see module_navsat.launch file

  #Frames
  lidarFrame:"base_link"
  baselinkFrame:"base_link"
  odometryFrame:"odom"
  mapFrame:"map"#GPS Settings
  useImuHeadingInitialization: false           # if using GPS data, set to "true"
  useGPSInfo: false
  useGpsElevation: false                      # 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

  #Export settings
  savePCD: false                              # https://github.com/TixiaoShan/LIO-SAM/issues/3
  savePCDDirectory:"/home/zch/00-test/SavedMap"        # in your home folder, starts and ends with "/". Warning: the code deletes "LOAM" folder then recreates it. See "mapOptimization"for implementation
  #Lidar Settings
  #  特别注意: 如果 sensor: velodyne, useCloudRing 和useCloudTime 都为true!! 如果 sensor: kitti useCloudRing 和useCloudTime 都为false!!
  useCloudRing: false
  useCloudTime: false
  sensor: kitti                              # lidar sensor type, either 'velodyne' or 'ouster' or kitti without ring information
  N_SCAN:64                                  # number of lidar channel(i.e.,16,32,64,128)
  Horizon_SCAN:1800                          # lidar horizontal resolution(Velodyne:1800, Ouster:512,1024,2048)
  downsampleRate:2                           # default:1. Downsample your data if too many points. i.e.,16=64/4,16=16/1
  lidarMinRange:1.0                          # default:1.0, minimum lidar range to be used
  lidarMaxRange:250.0                       # default:1000.0, maximum lidar range to be used
  lidar_has_ring: true
  #IMU Settings
  imuAccNoise:3.9939570888238808e-03
  imuGyrNoise:1.5636343949698187e-03
  imuAccBiasN:6.4356659353532566e-05
  imuGyrBiasN:3.5640318696367613e-05
  imuGravity:9.80511
  imuRPYWeight:0.01#Extrinsics(lidar -> IMU)for kitti
  extrinsicTrans:[-8.086759e-01,3.195559e-01,-7.997231e-01]
  extrinsicRot:[9.999976e-01,7.553071e-04,-2.035826e-03,-7.854027e-04,9.998898e-01,-1.482298e-02,2.024406e-03,1.482454e-02,9.998881e-01]
  extrinsicRPY:[9.999976e-01,7.553071e-04,-2.035826e-03,-7.854027e-04,9.998898e-01,-1.482298e-02,2.024406e-03,1.482454e-02,9.998881e-01]#LOAM feature threshold
  edgeThreshold:1.0
  surfThreshold:0.1
  edgeFeatureMinValidNum:10
  surfFeatureMinValidNum:100#voxelfilter 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

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

  #Surrounding map
  surroundingkeyframeAddingDistThreshold:1.0   # 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)

本文转载自: https://blog.csdn.net/weixin_44528885/article/details/122576884
版权归原作者 我兔会飞 所有, 如有侵权,请联系我们删除。

“使用开源激光SLAM方案LIO-SAM运行KITTI数据集,如有用,请评论雷锋”的评论:

还没有评论