我开始在 IntelliJ IDEA 中对 NAO 机器人进行编程,我对这两个机器人都是新手,我创建了一些函数,使 NAO 每次都能移动或说话。看看发生了什么我必须运行项目。现在我想在 KeyPress 上执行一些功能。能给我举个例子吗?
如何更改此代码,以允许 NAO 在某些按键上站立、蹲伏或坐下(例如:q-> 站立、w-> 蹲伏、e-> 坐下)
package test;
import com.aldebaran.qi.Application;
import com.aldebaran.qi.helper.proxies.ALMotion;
import com.aldebaran.qi.helper.proxies.ALRobotPosture;
import com.aldebaran.qi.helper.proxies.ALTextToSpeech;
public class StandNao {
private static ALMotion motion;
public static void main(String[] args) throws Exception {
Application application = new NaoSettings().NaoConnect(args);
application.start();
motion = new ALMotion(application.session());
// Create an ALTextToSpeech object and link it to your current session
ALTextToSpeech tts = new ALTextToSpeech(application.session());
// Make your robot say something
tts.say("MAC Start Stand");
motion.killAll();
ALRobotPosture posture = new ALRobotPosture(application.session());
posture.getPostureList();
posture.goToPosture("Stand", 1.0f);
Thread.sleep(10000);
posture.goToPosture("Crouch", 1.0f);
Thread.sleep(10000);
posture.goToPosture("Sit", 1.0f);
}
}
最佳答案
我不会描述所有的可能性,但为了给您提供一种方法,您可以检查许多 Java 库,它们可以让您管理轮询或事件驱动的键盘输入。
然后,您可以进行无限循环,在其中监听键盘 Activity ,并根据击键使用react。
它看起来几乎不像这样:
Keyboard.poll();
while(Keyboard.next()) {
if(Keyboard.getEventKey() == Keyboard.KEY_LEFT && !Keyboard.getEventKeyState()) {
// do something if the letter left arrow key is released
}
}
如果您想学习 Java 和 Web 方面,例如带有 REST Controller 的 Web 应用程序,并且当您点击网页上的按钮时,您的机器人会相应地移动,还可以考虑尝试制作有趣的东西。
使用 Java Spring Boot 即可快速实现.
关于java - JAVA中使用键盘控制机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498316/