首页 > 解决方案 > 需要有关千鸟模式形成算法的建议

问题描述

我正在尝试使用kilobots围绕中央机器人制作分层环(如同心圆)。我能够形成半径小于中央机器人通信半径的环,但是我想形成半径大于通信半径的环。

这是我目前拥有的

这就是我所拥有的

这就是我想做的

这就是我想做的

这是我到目前为止尝试过的

  1. 三边测量:希望建立一个局部坐标系(因为kilobots是这些愚蠢的机器人,它们只能相互交换ID和距离信息,它们没有GPS,没有摄像头,没有方向数据)我尝试实现三边测量所以我可以得到一个机器人相对于 2 个信标机器人的位置(我只使用了 2 个 bc,我总是可以消除不可行的解决方案),但我意识到在我的机器人所在的测试区域中有一些“盲点”并不总是与 2 个信标机器人通信。此外,我必须使用 9 个信标机器人来覆盖整个测试区域,由于机器人数量有限,我无法做到,我也无法缩小测试区域。所以我放弃了它。

  2. 该算法

int previous_minimum distance = 30000;
int actionable_distance=0;
int current_distance; //this is the distance measurements recieved by our robot

void loop()
{

  if (within the desired distance)
  {
    STOP
  }

//so basically only updated whenever there exists a robot  in the already formed ring (in red) which has a smaller
// distance to our robot (in green) than the previous robot in the ring (red)

  if (previous_minimum distance > current_distance)
  {
    previous_minimum distance=current_distance; /
  } 

  if (actionable_distance < previous_minimum distance) //moving away
  {
    TURN
  }

  if (actionable_distance > previous_minimum distance)
  {
    GO STRAIGHT
  }
  
  actionable_distance = previous_minimum distance
}

这两种方法都不适合我,现在我没有想法了。因此,如果有人可以推荐任何将不胜感激的想法。

注:所有机器人的通讯半径相同

标签: algorithmrobotics

解决方案


推荐阅读