深度图转激光在ROS包depthimage_to_laserscan中实现,本篇讲解其计算过程。关于点云转激光数据的思路也是类似的,只需要将一定高度范围内的数据进行投影即可。
1. 深度图转激光原理
原理如图(1)所示。深度图转激光中,对任意给定的一个深度图像点m(u,v,z),其转换激光的步骤为:
a.将深度图像的点m(u,v,z)转换到深度相机坐标系下的坐标点M(x,y,z),具体求解过程请参考“深度图转点云的原理”;
b.计算直线AO和CO的夹角AOC,计算公式如下:
c.将角AOC影射到相应的激光数据槽中.已知激光的最小最大范围[α,β],激光束共细分为N分,那么可用数组laser[N]表示激光数据。那么点M投影到数组laser中的索引值n可如下计算:
laser[n]的值为M在x轴上投影的点C到相机光心O的距离r,即