自治车辆的抢占式调度算法

时间:2016-10-24 03:57:22

标签: arduino scheduling priority-queue interrupt-handling preemption

我不确定这是否是这个问题的最佳位置,但我认为问题与最优调度算法和排队理论有一些关系,所以希望它没问题。

我打算建造一辆RC车来自主导航课程。我们的想法是直到它的一个接近传感器检测到一堵墙或其他障碍物,这将导致中断和转向调整。

我在嵌入式系统课程中学到了一些关于RTOS调度算法的知识,并在网络性能课程中学习了抢先排队,所以我想知道在编程微控制器时是否可以将这些概念应用到这个任务中,或者如果我过度思考它?主要目标是以尽可能快的速度驾驶汽车而不发生碰撞的方式进行开发,但我也希望防止汽车作为次要目标而紧张不安。

所以,我认为是一种高级别的意义,是否有一种特定的方法,方案或类型的调度策略来使用中断,从而为这样的系统带来最佳性能?是否有任何特定的关键部分我应该禁用中断?关于硬件限制的参考,我计划使用类似于arduino的微控制器,可能有三个IR传感器。非常感谢任何建议或建议。

1 个答案:

答案 0 :(得分:1)

在这里使用RTOS是一种过度杀伤力。你需要考虑的是:

  • 您将使用哪种类型的传感器:距离(将返回到物体的距离)或存在(仅指示是否存在障碍物)?距离传感器需要一些处理(运行ADC转换或读取I2C),而存在传感器可以直接连接到uC的外部中断。
  • 如何确保您的车真正驾驶?即使理论上你命令它直接进行,你会发现它可能略微转动。

取决于上述问题的答案:

  • 如果使用状态传感器,请尽快处理。即使您运行任何其他控制算法(如某些PID),中断它也不会成为问题。

  • 如果使用模拟距离传感器,请使用ADC转换就绪中断。然后,如果您有侧面的传感器,您可以使用返回值与墙壁保持恒定距离,结果,直行(检查微型机器人)

底线:如果你想快速行驶并避免撞到墙壁 - 尽可能快地处理传感器。