【问题标题】:Algorithm to make balloon fly to specified altitude/height使气球飞到指定高度/高度的算法
【发布时间】:2013-11-11 11:21:09
【问题描述】:

我正在寻找一种方法/算法来让机器人气球飞到某个高度。该机器人由 Raspberry Pi 控制并带有螺旋桨。螺旋桨速度可以设置为多个值(它使用 PWM,因此从技术上讲有 1024 个不同的功率输出)。 气球有一个指向下方的距离传感器,因此每秒可以多次获取当前高度。 到目前为止,我唯一的想法是不断测量高度并根据剩余的行驶高度设置为最大速度。虽然这似乎不是最好的选择,但无法弄清楚如何适应所有电源输出。

欢迎任何想法。我正在使用 Java 对项目进行编码,但任何高级算法/描述都会很棒!

谢谢,

魔法

【问题讨论】:

  • 你确定使用Java吗?
  • @nipkon:为什么不使用 Java?当然,对于 R-Pi,C 可能是更好的风格,但它也支持 Java。

标签: java height balloon altitude


【解决方案1】:

有一个很棒的“游戏”可以让你尝试解决这个问题:Colobot(现在似乎是开源的)。创建一个捕翼机(或射击者,如果你更喜欢 FPS 类型的人)并尝试仅使用高度和电机控制让它飞到特定目的地。

一般来说,MadConan 的 Pseudo-Code 是可行的方法,但主要任务在于编写一个智能的 setPower 函数。最后,您需要一些平滑功能来降低与您与所需高度的接近程度相关的功率,但是该功能的确切值完全取决于您的硬件和最终系统的重量。

根据您的设置最终的价值和/或脆弱程度,您可能希望开发一个学习系统,该系统以欠/超调为基础,在运行时调整平滑函数。确保在计算中考虑上风/下风等因素。

【讨论】:

  • 很好的解释。我的算法(大致)考虑到了这一点。这取决于每秒执行多少次测量。随着气球越来越接近目标值,偏移量将越来越小,因此功率也应该降低。不过,我同意它并不是那么简单,因为它实际上可能永远无法达到高度。同样,取决于采样频率。
  • 采样不是问题,因为您可以根据速度、加速度和时间轻松插入当前位置。传感器只是对您的假设的修正,尤其是对于风等外部因素。我强烈建议试试这个游戏。起初我认为控制这样的机器人应该非常容易,但后来第一次(幸运的是数字)崩溃教会了我其他方面。 ;)
  • 我一直认为它是真正垂直的,但现在我想起来了,风会导致俯仰,使传感器与地面成一定角度,这会产生巨大的三角洲实际高度。因此需要一个完整的 x、y 和 z 坐标传感器来进行补偿。
  • 感谢您的回答。这个周末我会玩弄建议的程序来感受一下。气球主要供室内使用,所以我不认为风会是个大问题。您认为每秒测量多少次才能提供足够的信息?
  • 这取决于气球的加速能力。它加速得越快,您需要采样的频率就越高。实际上,开始可能需要 1/10 秒或更快。
【解决方案2】:

伪代码。

  while(true){
    val height = getHeight(); // from sensor

    // Get the difference between the current height and
    // the TARGET height.  Positive values mean too low
    // while negative values mean too high
    val offset = TARGET_VALUE - height;

    // Set the power to some direct ratio of the offset
    // When the baloon is at 0 height, the offset should 
    // be relatively high, so the power will be set 
    // high.  If the offset is negative, the power will be 
    // set negative from the current power.
    setPower(offset);// I'll leave it up to you to figure out the ratio
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2013-11-16
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    相关资源
    最近更新 更多