algorithm - 需要有关千鸟模式形成算法的建议
问题描述
我正在尝试使用kilobots围绕中央机器人制作分层环(如同心圆)。我能够形成半径小于中央机器人通信半径的环,但是我想形成半径大于通信半径的环。
这是我目前拥有的
这就是我想做的
这是我到目前为止尝试过的
三边测量:希望建立一个局部坐标系(因为kilobots是这些愚蠢的机器人,它们只能相互交换ID和距离信息,它们没有GPS,没有摄像头,没有方向数据)我尝试实现三边测量所以我可以得到一个机器人相对于 2 个信标机器人的位置(我只使用了 2 个 bc,我总是可以消除不可行的解决方案),但我意识到在我的机器人所在的测试区域中有一些“盲点”并不总是与 2 个信标机器人通信。此外,我必须使用 9 个信标机器人来覆盖整个测试区域,由于机器人数量有限,我无法做到,我也无法缩小测试区域。所以我放弃了它。
该算法
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
}
这两种方法都不适合我,现在我没有想法了。因此,如果有人可以推荐任何将不胜感激的想法。
注:所有机器人的通讯半径相同
解决方案
推荐阅读
- ios - 如何在 swift 4 中显示 FSCalendar 上的事件点?
- javascript - 动态生成的下拉列表中断 Web 服务调用
- c++ - c++字符串向量变化元素
- simpledateformat - 解析“2020-03-30T07:37:02.282+01:00”类型的日期时出现日期格式化问题,我必须在今天上午 12:30 格式化表格
- flutter - JSON结果未显示在颤振中
- c# - 来自一个组件的 CORS 错误,但不是其他组件
- php - PHP如何用二进制替换文件的部分十六进制?
- authentication - google翻译API授权问题
- python - 登录表单在 cs50 web pset 1 中根本不起作用(使用烧瓶)
- mysql - 如何在 mysql 查询中反转 Where 子句?