实感D415看到弯曲的地板

时间:2019-06-20 15:57:31

标签: 3d computer-vision realsense

我有一个安装在机器人头部的Realsense D415凸轮。

凸轮的中心在地板上方1525毫米处,并以59度角(即凸轮的玻璃前角与地板的角度)指向地板。

我使用凸轮的1280x720分辨率,并将值减3,最后得到240行* 428列的矩阵。

我想检查机器人路径中的障碍物/深渊。 以为我可以通过将depth_frame的距离乘以凸轮行的正弦值来获得地板的Y(高度)值,并得出以下代码:

decimate = rs.decimation_filter()
decimate.set_option(rs.option.filter_magnitude, 3)
depth_frame = frames.get_depth_frame()
depth_frame = decimate.process(depth_frame)
depth = np.asanyarray(depth_frame.get_data()).astype(np.float)
depth.shape = (240, 428)

topRowAngle = -59 + (42.5 / 2) # Vertical FOV of D415 is 42.5 deg
rowDeg = 42.5 / 240            # number of rows is 240
angle = topRowAngle
for row in range(240):
    rowSin = np.sin(np.radians(angle))
    floorY[row,:] = depth[row,:] * rowSin
    angle -= rowDeg

绘制结果表明,我最终看到了一块弯曲的地板,阻碍了机器人的前进。在我预计水平线比较直的行范围内,检测到地板有明显的向上凸起。

Y values of some of the coloms
我知道凸轮的安装高度,并且我看着一个平坦的地板,所以我想到了每个点的校正系数。我最终得出的因子范围是.95到1.2。

由于这些校正因子使我能够“移出地面范围”并检测障碍物和深渊,这对我来说有点奇怪。为什么需要校正凸轮的测量值?

还是我的假设是错误的,即我可以通过将垂直FOV除以一个或多个行来获得各个行的角度?

0 个答案:

没有答案