我开始在IntelliJ IDEA中编写一个 NAO 机器人,我是两个新手,我创建了一些功能,让 NAO 移动或说话,每次都是看看发生了什么我必须运行项目。现在我想在KeyPress上执行一些功能。你能举个例子吗?
如何更改此代码,以允许 NAO 站立,蹲伏或坐在某些KeyPress上(例如:q-&gt; Stand,w-&gt; Crouch,e-&gt; Sit)< / p>
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);
}
}
答案 0 :(得分:2)
我没有描述所有可能性,但为了给你一个方法,你可以检查许多Java库,它们将让你管理民意调查或事件驱动的键盘输入。
然后你可以在一个无限循环中听你的键盘活动,并根据击中的键做出反应。
它几乎看起来像那样:
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控制器的Web应用程序,当你按下网页按钮时,你的机器人会相应地移动。
可以使用Java Spring Boot快速实现。