use of com.neuronrobotics.sdk.dyio.dypid.DyPIDConfiguration in project java-bowler by NeuronRobotics.
the class DrivingTest method setupRealRobot.
private void setupRealRobot(DyIO dyio) {
DyPIDConfiguration dypid = new // PID group 0
DyPIDConfiguration(// PID group 0
0, // Input channel number
23, // Input mode
DyIOChannelMode.COUNT_IN_INT, // Output Channel
11, // Output mode
DyIOChannelMode.SERVO_OUT);
PIDConfiguration pid = new // PID group
PIDConfiguration(// PID group
0, // enabled
true, // inverted
false, // Async
true, // Kp
1, // Ki
1, // Kd
.5, // Value to latch on index pulse
0, // Use the latch system
false, // Stop PID controller on index latch event
false);
dyio.ConfigureDynamicPIDChannels(dypid);
dyio.ConfigurePIDController(pid);
PIDChannel drive = dyio.getPIDChannel(0);
ServoChannel srv = new ServoChannel(dyio.getChannel(10));
AckermanBot a = new AckermanBot(new ServoRotoryLink(srv, new LinkConfiguration(98, 51, 143, 1)), drive);
ServoChannel sweeper = new ServoChannel(dyio.getChannel(9));
range = new LaserRangeSensor(new NRSerialPort("/dev/ttyACM0", 115200));
// range = new LinearRangeSensor( sweeper,
// new AnalogInputChannel(dyio.getChannel(12)));
line = new LineSensor(new AnalogInputChannel(dyio.getChannel(13)), null, new AnalogInputChannel(dyio.getChannel(14)));
// This flame sensor uses the same servo as the rangefinder
flame = new LinearRangeSensor(sweeper, new AnalogInputChannel(dyio.getChannel(15)));
mainRobot = a;
}
use of com.neuronrobotics.sdk.dyio.dypid.DyPIDConfiguration in project java-bowler by NeuronRobotics.
the class RealLineTrack method main.
/**
* @param args
*/
public static void main(String[] args) {
final DyIO d = new DyIO();
ConnectionDialog.getBowlerDevice(d);
if (d.isAvailable()) {
new Thread() {
public void run() {
DyPIDConfiguration dypid = new // PID group 0
DyPIDConfiguration(// PID group 0
0, // Input channel number
23, // Input mode
DyIOChannelMode.COUNT_IN_INT, // Output Channel
11, // Output mode
DyIOChannelMode.SERVO_OUT);
PIDConfiguration pid = new // PID group
PIDConfiguration(// PID group
0, // enabled
true, // inverted
false, // Async
true, // Kp
1, // Ki
1, .5, 0, false, // Kd
false);
d.ConfigureDynamicPIDChannels(dypid);
d.ConfigurePIDController(pid);
PIDChannel drive = d.getPIDChannel(0);
ServoChannel srv = new ServoChannel(d.getChannel(10));
AbstractRobotDrive mainRobot = new AckermanBot(new ServoRotoryLink(srv, new LinkConfiguration(98, 51, 143, 1)), drive);
AbstractSensor line = new LineSensor(new AnalogInputChannel(d.getChannel(14), true), null, new AnalogInputChannel(d.getChannel(13), true));
// new LineTrack().runTrack(mainRobot,line);
}
}.start();
} else {
System.out.println("Failed");
d.disconnect();
}
}
use of com.neuronrobotics.sdk.dyio.dypid.DyPIDConfiguration in project java-bowler by NeuronRobotics.
the class Jfx3dManager method attachArm.
public void attachArm(DyIO master, String xml) {
for (int i = 0; i < master.getPIDChannelCount(); i++) {
// disable PID controller, default PID and dypid configurations are
// disabled.
master.ConfigureDynamicPIDChannels(new DyPIDConfiguration(i));
master.ConfigurePIDController(new PIDConfiguration());
}
attachArm(new DHParameterKinematics(master, xml));
}
use of com.neuronrobotics.sdk.dyio.dypid.DyPIDConfiguration in project java-bowler by NeuronRobotics.
the class DyIO method getDyPIDConfiguration.
/**
* This method gets the current state of the DyIO channel configuration of a given PID group
* @param group the index of the PID group to get information about
* @return
*/
public DyPIDConfiguration getDyPIDConfiguration(int group) {
BowlerDatagram conf = send(new ConfigureDynamicPIDCommand(group));
DyPIDConfiguration back = new DyPIDConfiguration(conf);
return back;
}
Aggregations