我正在开发一款可以移动的iPhone机器人。其中一个挑战是估计与物体的距离 - 我不希望机器人碰到物体。我看到了一些非常昂贵的(~1000美元)激光测距仪,并希望用iPhone模拟它。
我有一两个摄像头和两个激光指示器。激光指示器以一定角度安装在约6英寸处。激光器相对于摄像机的角度是已知的。彼此相机的角度是已知的。
激光指向相机前方,在相机输入上创建2个点。是否可以通过查看相机图像中点之间的距离来估计到点的距离?
激光从
形成梯形 /wall \
/ \
/laser mount \
当激光安装座靠近墙壁时,这些点应该相互远离。
我说的是可行的吗?有没有人这样做过?
我需要一台或两台相机进行此类计算吗?
答案 0 :(得分:2)
如果你只是不想碰到事情,而不是准确了解它们的距离,那么你就可以在它上面找到“dambusters”,然后检测两点何时成为一个 - 这将是与物体的已知距离。
为了计算,有四个激光器,两个对,每个对以不同的角度,一对在另一个之上,便宜得多。然后比较点之间的相对差异可能会让你找出一个合理准确的距离。但是数学溢出了。
答案 1 :(得分:2)
理论上,是的,这样的事情可以奏效。谷歌“轻度条纹”或“结构化光线深度测量”,以便在更大范围内对这种想法进行一些很好的讨论。
在实践中,您的测量可能很粗糙。需要考虑许多因素:相机内部参数(焦距等)和外部参数将影响点在图像帧中的显示方式。
只有两个样本点(注意结构光方法使用行等),环境将给距离测量带来困难。可以合理地处理直接垂直于地板(和行进方向)的表面。斜坡和偏角墙可能是可探测的,但您会发现许多情况会产生模糊或不正确的距离测量。