SLAM-去除激光雷达运动畸变/去除激光帧畸变

博客介绍了激光雷达运动畸变相关内容。激光帧产生畸变是因每个激光点基准位姿不同,且激光测量时机器人运动、帧率低会带来畸变。去除畸变原理是将激光点坐标变换到不同时刻的机器人里程计上,可借助IMU和轮式里程计,还提及程序流程及显示方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 激光雷达运动畸变

  • 1)激光帧产生畸变的根源:
      每个激光点都具有不同的基准位姿。
  • 2)产生的原因:
      激光测量时伴随机器人的运动,激光点的数据不是瞬时获得的,当激光帧率较低时,机器人运动带来的激光帧运动畸变不能忽略。(如5Hz的激光雷达,一帧激光的首尾时间差为200ms,如果机器人转速为1.57rad/s,那么首尾激光点基准坐标系位姿误差将达到18度)

2 去除畸变原理

  • 去除激光帧畸变原理:把一帧激光的每个激光点坐标变换到不同时刻的机器人里程计上
  • 里程计辅助方法:imu、轮式里程计
  • 1)IMU
      直接测量获得角速度和线速度,但对于机器人位移和角度需要积分
      更新速度高1khz-8khz
      具有较高的角速度测量精度,但线加速度精度差
  • 2)轮式里程计
      更新速度高100-200Hz
      (一般机器人轮式里程计200hz,即可认为满足一定的要求,200hz一帧5ms,1.57rad/s下,误差仅为0.45度,可认为机器人没有运动。)

3 程序流程

1) main-构造函数
    订阅scan话题
    调用scancallback处理
2) scancallback
    scan话题数据提取到vector数组(包括angles,ranges) 
    vector数组保存到pcl::PointCloud<plc::PointXYZRGB>类型的点云中
    调用Lidar_Calibration进行畸变矫正
3) Lidar_Calibration
    程序对激光雷达数据进行分段线性插值*****
    调用Lidar_MotionCalibration激光雷达运动畸变去除分段函数*****
    调用getLaserPose得到激光雷达在odom中的位姿

4 程序实现显示

  • scan使用ros话题显示
  • 校正后的使用pcl_viewer显示
     (后续可以把pcl改为话题发布,这样数据一块显示可以作比较)
    郝奇-去除激光雷达运动畸变
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值