我正在试着让一个机器人识别地面上的一条线并跟随它。
我在互联网上搜索了很多跟线机器人的例子,但它们都使用专门的传感器来检测这条线。
我想在机器人上使用摄像头来达到这个目的。
我是计算机视觉领域的新手,所以我想要一些关于如何处理这个问题的建议。具体地说,我如何检测直线及其相对于机器人的角度/方向?如何检测转弯?
更新以下nikies评论:
这条线看起来如何由我决定,我想在地上放一些鲜艳的胶带,但我可以用任何最简单的…
这款相机既可以拍摄彩色图像,也可以拍摄黑白图像。
照明和位置可能会有所不同,但我稍后会担心它,我只想知道如何开始。有没有一种“通用”的方法呢?
发布于 2011-12-14 04:29:56
这里有一种方法,适合于改进。
通过缩放、像素化过滤器和阈值的组合,将相机输入减少到由白色或黑色方块组成的3x3网格。通过适当的调整,缩小应该能够炸掉这条线,以便它恰好占据缩小的像素中的三个。然后,机器人的逻辑包括在八个方向中的一个方向上移动,以保持中心像素为黑色。
缩容后的图片:
☐ ■ ☐
☐ ■ ☐ ↑ move forward one unit
☐ ■ ☐左转是什么样子的:
☐ ☐ ☐
■ ■ ☐ ← turn 90 degrees left
☐ ■ ☐这是一个非常简单的方案,将视频输入转换为干净的3x3网格并不是一项简单的任务,但它应该足以让您朝着正确的方向移动。
发布于 2011-12-31 00:50:59
一种选择是使用OpenCV或类似的图像处理/视觉库以及向前和向下的相机来执行以下操作:
如果你的机器人移动缓慢,那么向下看的相机可能更合适。计算比较简单,但机器人不能往前看。
发布于 2011-12-19 05:43:23
你的机器人需要多快移动?有AI (人工智能)选项(这将比另一个答案中描述的做出简单决定要慢。
在AI领域,您可以调查:
自组织映射(SOM),尝试在黑线上进行推理。你可以教它识别形状(我以前用过它来识别字母)。我认为这可以在现代计算机上相当快地计算出来,但这取决于你的机器人硬件(不能完全记住)。
AI技术需要相当长的时间来训练,并且需要你去学习。如果你想要一种固定的代码方式,另一个答案也是一个很好的选择。
https://stackoverflow.com/questions/8463489
复制相似问题