RLPark 1.0.0
Reinforcement Learning Framework in Java

CritterbotWithLatencyExample.java

Go to the documentation of this file.
00001 package rlpark.plugin.critterbot.examples;
00002 
00003 import rlpark.plugin.critterbot.actions.CritterbotAction;
00004 import rlpark.plugin.critterbot.actions.VoltageSpaceAction;
00005 import rlpark.plugin.critterbot.actions.XYThetaAction;
00006 import rlpark.plugin.critterbot.data.CritterbotLabels;
00007 import rlpark.plugin.critterbot.environment.CritterbotEnvironment;
00008 import rlpark.plugin.critterbot.environment.CritterbotSimulator;
00009 import rlpark.plugin.critterbot.environment.CritterbotSimulator.SimulatorCommand;
00010 import rlpark.plugin.rltoys.envio.observations.Legend;
00011 import zephyr.plugin.core.api.synchronization.Chrono;
00012 
00013 public class CritterbotWithLatencyExample {
00014   final static public long Latency = 100;
00015 
00016   public static void main(String[] args) {
00017     SimulatorCommand command = CritterbotSimulator.startSimulator();
00018     CritterbotEnvironment environment = new CritterbotSimulator(command);
00019     Legend legend = environment.legend();
00020     Chrono chrono = new Chrono();
00021     while (!environment.isClosed()) {
00022       chrono.start();
00023       double[] obs = environment.waitNewObs();
00024       CritterbotAction action;
00025       if (obs[legend.indexOf(CritterbotLabels.IRDistance + "0")] > 128)
00026         action = new XYThetaAction(20, -20, 20);
00027       else
00028         action = new VoltageSpaceAction(20, -20, 20);
00029       environment.sendAction(action);
00030       long remainingTime = Latency - chrono.getCurrentMillis();
00031       if (remainingTime > 0)
00032         try {
00033           Thread.sleep(remainingTime);
00034         } catch (InterruptedException e) {
00035           e.printStackTrace();
00036         }
00037     }
00038   }
00039 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark