作为学生项目,我们正在建造一个机器人,该机器人应该通过一个固定的课程运行,然后捡起一个木制立方体。它的核心是一台单机计算机,在250MHz用ARM9运行一台德比安式计算机。因此,控制器的处理能力就足够了。此外,它也做了一些图像处理(而不是在驾驶时,只有当它停止了的时候),这就是为什么我们不使用一个没有OS的简单的微控制器。
整个过程目前运作良好,但有一个问题:主要的控制环在没有任何延误的情况下执行,并达到超过1kHz的周期频率。这已经足够了,100Hz也足够。但是,每时每刻,都有一个单周期,需要100米以上,这可能会大大干扰控制器。
我怀疑还有其他任务造成这种延误,因为排程器可能发现,他们在很长一段时间内没有CPU时间。
因此,我最喜欢的是以下内容:在控制器主流中短短的睡眠时间可能为5米,这实际上只需要5米,但给系统其余部分一些处理时间。我可以包括一个延迟时间,例如500秒使用纳米睡眠,但这总是需要超过10米的时间才能执行,所以这实际上不是一种替代方法。我更喜欢像自愿睡觉那样的睡眠,让等待任务有机会做点什么,但尽快返回。
否则系统就会被卸载,所以没有任何东西可以 长期真正需要大量处理。
有没有办法在用户空间里做这件事, 即不用坚持像RTAI那样的事情?
Thanks, Philipp