use of control.Controller in project Grupo5Cine by Diroro14.
the class Main method cargar.
private static void cargar() throws IOException {
InputStream is = new FileInputStream(new File(_inFile));
Controller controller = new Controller();
controller.load(is);
}
use of control.Controller in project Pathfinder2 by Wobblyyyy.
the class ExampleElevator method exampleShifterElevator.
public void exampleShifterElevator() {
Pathfinder pathfinder = Pathfinder.newSimulatedPathfinder(0.01);
Map<Integer, Integer> levels = new HashMap<Integer, Integer>() {
{
put(1, 100);
put(2, 200);
put(3, 300);
put(4, 400);
put(5, 500);
}
};
Controller controller = new ProportionalController(0.001);
Shifter shifter = new Shifter(1, 1, 5, false, gear -> {
int target = levels.get(gear);
controller.setTarget(target);
});
pathfinder.getListenerManager().bind(ListenerMode.CONDITION_NEWLY_MET, this::aButton, b -> b, b -> shifter.shift(ShifterDirection.UP));
pathfinder.getListenerManager().bind(ListenerMode.CONDITION_NEWLY_MET, this::bButton, b -> b, b -> shifter.shift(ShifterDirection.DOWN));
pathfinder.onTick(pf -> {
int elevatorPosition = getPosition();
double elevatorPower = controller.calculate(elevatorPosition);
setElevatorPower(elevatorPower);
});
}
use of control.Controller in project Pathfinder2 by Wobblyyyy.
the class TestFollowerExecutor method testSingleFollowerExecution.
@Test
public void testSingleFollowerExecution() {
SimulatedOdometry odometry = new SimulatedOdometry();
SimulatedDrive drive = new SimulatedDrive();
Robot robot = new Robot(drive, odometry);
Trajectory trajectory = new LinearTrajectory(new PointXYZ(10, 10, 0), 1.0, 0.1, Angle.fromDeg(3));
Controller controller = new GenericTurnController(0.1);
GenericFollowerGenerator generator = new GenericFollowerGenerator(controller);
Follower follower = generator.generate(robot, trajectory);
List<Follower> list = new ArrayList<Follower>() {
{
add(follower);
}
};
FollowerExecutor executor = new FollowerExecutor(odometry, drive, list);
Assertions.assertFalse(executor.tick());
odometry.setRawPosition(new PointXYZ(10, 10, 0));
Assertions.assertTrue(executor.tick());
}
use of control.Controller in project Pathfinder2 by Wobblyyyy.
the class TestGenericFollowerGenerator method testGeneration.
@Test
public void testGeneration() {
Robot robot = new Robot(new SimulatedDrive(), new SimulatedOdometry());
Controller controller = new GenericTurnController(0.1);
Trajectory trajectory = new LinearTrajectory(new PointXYZ(10, 10, 10), 0.5, 0.1, Angle.fromDeg(3));
GenericFollowerGenerator generator = new GenericFollowerGenerator(controller);
Follower follower = generator.generate(robot, trajectory);
Assertions.assertEquals(trajectory, follower.getTrajectory());
}
use of control.Controller in project Pathfinder2 by Wobblyyyy.
the class TestExecutorManager method testExecutorManager2.
@Test
public void testExecutorManager2() {
SimulatedOdometry odometry = new SimulatedOdometry();
SimulatedDrive drive = new SimulatedDrive();
Robot robot = new Robot(drive, odometry);
Trajectory trajectory1 = new LinearTrajectory(new PointXYZ(10, 10, 0), 1.0, 0.1, Angle.fromDeg(3));
Trajectory trajectory2 = new LinearTrajectory(new PointXYZ(20, 20, 45), 1.0, 0.1, Angle.fromDeg(3));
Trajectory trajectory3 = new LinearTrajectory(new PointXYZ(30, 30, 90), 1.0, 0.1, Angle.fromDeg(3));
Controller controller = new GenericTurnController(0.1);
GenericFollowerGenerator generator = new GenericFollowerGenerator(controller);
Follower follower1 = generator.generate(robot, trajectory1);
Follower follower2 = generator.generate(robot, trajectory2);
Follower follower3 = generator.generate(robot, trajectory3);
List<Follower> followers = new ArrayList<Follower>() {
{
add(follower1);
add(follower2);
add(follower3);
}
};
ExecutorManager manager = new ExecutorManager(robot);
manager.addExecutor(followers);
manager.tick();
Assertions.assertTrue(manager.isActive());
odometry.setRawPosition(new PointXYZ(10, 10, 0));
manager.tick();
Assertions.assertTrue(manager.isActive());
odometry.setRawPosition(new PointXYZ(20, 20, 30));
manager.tick();
Assertions.assertTrue(manager.isActive());
odometry.setRawPosition(new PointXYZ(20, 20, 45));
manager.tick();
Assertions.assertTrue(manager.isActive());
odometry.setRawPosition(new PointXYZ(30, 30, 45));
manager.tick();
Assertions.assertTrue(manager.isActive());
odometry.setRawPosition(new PointXYZ(30, 30, 90));
manager.tick();
Assertions.assertFalse(manager.isActive());
}
Aggregations