首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Lejos自主NXJ机器人线程制造麻烦

Java Lejos自主NXJ机器人线程制造麻烦
EN

Stack Overflow用户
提问于 2015-04-27 15:02:03
回答 1查看 435关注 0票数 1

我正在编写一个java代码来控制一个相当简单的机器人,它应该执行以下操作:PID-线边框,超声波检测和颜色检测。

由于这是我在java中的第一个程序,我显然在OOP方面有很多需要学习的地方。

机器人在一条轨道上运行,在这条线路上伴随着道路上的颜色,机器人应该定期检查这些颜色,如果发现了,则根据它读取的颜色采取不同的行动。

因此,这个过程应该运行得有点类似于以下伪(Java)-code:

代码语言:javascript
复制
Initialize and calibrate sensors.
while (! Button.ENTER.isDown)
Run PID-controller
If (ColorSensorColor = 0 || ColorSensorColor = 2)
    if (color = 0)
        turn left
    if (color = 2)
        turn right
while (UltraSonicDistance < 30cm)
    free-roll motors

因此,我的问题是:如何构造两个可以与主线程并行运行ColorSensor和UltraSonicSensor的线程?

最新的实际代码位于这里

最后,谢谢你的所有投入-我已经搜索了interwebz的好教程,但似乎我的脑细胞太少,无法理解所有OOP的母亲。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-28 17:45:06

/u/邪恶_墨西哥玉米煎饼在/r/javahelp kindle上回答如下,工作建议:

首先,您可能需要考虑实时JVM,如果您还没有考虑的话。如果您的控制器必须不受干扰地运行,这可能是需要考虑的问题。FWIW,RT根本不是我的专业领域。但是,有关线程的基本问题更容易回答。为每个超声波传感器和颜色传感器创建一个内部类。让这些类实现Runnable。在run方法中,检查适当的传感器并更新外部类中的易失性变量。使用ScheduledExecutorService对每个类执行传感器检查(创建内部类的一个实例,并将其提交给执行器,每隔1ms或100微秒或任何时间运行一次)。主类只需监视易失性变量的值,并决定如何执行w/o中断。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29899270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档