java - JAVA中使用键盘控制机器人

标签 java nao-robot

我开始在 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/

相关文章:

java - Vector<> 类的 toArray() 方法

JavaFX WebView 不加载页面

python - 无法在 Aldebaran Nao 上运行代码

nao-robot - NAO 机器人陷入地板(webots)

NAO Robot 上的 C++ - 如何运行我的 C++ 代码?

java - 检查索引是否超出数组范围

java - 调色板颜色缓存的单例实例

java - Hibernate 使 Weld 不在 Java SE 中初始化