我正在建立自动迷宫求解器,其灵感来自以下方面:

http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=related
我已经使用步进器构建了迷宫控制,并且正在使用以下步进电机控制板:

http://www.sparkfun.com/products/10025

我正在使用视觉系统来控制迷宫求解器。我还找到了解决此问题的链接:

http://cse.logicol.org/?p=52

他们使用模板匹配来识别球。上面链接中提到的团队还上传了一个视频,该视频看起来他们具有精明的边缘检测功能,可以找到路径并执行PID算法。

http://www.youtube.com/watch?v=8b5ARjT22bg&feature=player_embedded

现在,我还在opencv中建立了模板匹配和边缘检测。我还通过USB串行端口建立了对步进器的控制。如何实现导航算法?如何执行PID控制?我从理论上了解PID控制的概念,但我只是不知道如何使用摄像机提供的信息来实现它。我只是不知道让球追线。

请找到我到目前为止获得的结果的附件图像。

最佳答案

我不太理解您的问题,但是如果您问给定的命令是什么,这是我的猜测:

1. you find the location of the ball.
2. you have the line of the desired path drown on the board and detected
using canny.
3. Find the closest point to the ball which is on the path line.  If
it was a straight line then the calculation is simple geometrical
formulae dist(point,line). Let us call the result D.
4. The resulting point on the line is where the ball should be.
5. Advance distance D along the path line. This would give you your
destination point.
6. Subtract ball coordinates from destination point, and then, using atan2()
method to calculate in which direction to move the ball.
7. Activate motores to tilt board in that direction.

澄清步骤5。为什么我说沿路径前进距离D?因为这样您才将球引导至最多与路径线成45度的位置。这样可以使电机运动相对平稳。

如果我不明白您的问题,请告诉我,我会更正我的回答

关于opencv - 基于OpenCV的迷宫迷宫求解器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6470755/

10-12 22:45