通过测量信号强度指导汽车前进信号

时间:2017-06-07 19:45:03

标签: algorithm arduino

我有一个汽车机器人套件,(Sunfounder Smart Video Car Kit
而且据我所知,我想让它成为一个灯塔。

我知道如何测量信号强度,
我现在想要制作一个算法来将汽车引导到灯塔。

我提出了几个想法,但我不认为它们是最佳的:

  • 定义t时间部分 - 量子的时间跨度。
  • 定义Q - Quanta - 汽车在时间't'驱动的距离。
  • 定义P - 功率 - 信号强度

想法1:

  • 假设汽车是@(0,0)
  • 假设汽车标题为@(0,1)
  • 前进1Q
  • 记录A0 = P [T] - P [T-t]
  • 向后驾驶1Q
  • 将车轮转到(alpha =(常数))度(导致预先计算/测量的角度)
  • 前进1Q
  • 记录A1 = P [T] -P [T-t]
  • Axis0 = b0 =(0,1)
  • Axis2 = b1 =(cos(alpha),sin(alpha))
  • D = A0 * b0 + A1 * b1
  • 现在我需要前往D

但这种方法感觉很慢。

Idea2

  • 前进
  • 如果(dP <0)开车向后
  • 当'dP~ = 0'//我知道我正在垂直于becon
  • 右转90deg
  • if(dP <0)后退

这有点好但仍然不是最佳的,因为我可以在我达到dP = 0之前进行调整

此外,我无法确保我正在做一个好的90度转弯,
我的车有转弯半径(不像坦克机器人)

第三个想法

我的第三个想法旨在接近最优,但我没有做对:

让p - 信号的力量 设D - 距信标的距离

我的想法,包括纠正我的角度,我 那是“当在灯塔前进时,dP将以P(D)'速率下降, 所以我试着去那里。

为了减少计算,我将使用D代替P并尝试得到D = 0

  1. CMD = FORWARD

  2. 如果dD减小(d2D <0)=&gt;灯塔在我面前,但不是直接的 所以CMD =最后右/左CMD

  3. 如果d2D~ = 0 CMD = FORWARD

  4. 现在我遗漏了,如果CMD = LEFT / RIGHT&amp;&amp; 越来越差 CMD = OPPOSITE(CMD)

  5. 转到第2步

  6. 我尝试模拟这个想法,但它让我真的无处可去。

    你可以帮我制定算法吗?

    I created an Excel sheet to simulate, Enter the degree of turn in the CMD column and look at the results.

1 个答案:

答案 0 :(得分:0)

你能算出每单位距离信号强度变化的比率吗?!
比如,当我移动距离信标5厘米时,强度变化多少 如果你有这个,当dP比率高于或低于给定的dPRatio时,你可以“随时改正角度”。
因为那个dPRatio意味着你将直接进入灯塔!!