Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions classes/production/desktop/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root level="debug">
<appender-ref ref="Console"/>
</root>
</configuration>
12 changes: 12 additions & 0 deletions classes/production/rio/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root level="debug">
<appender-ref ref="Console"/>
</root>
</configuration>
5 changes: 3 additions & 2 deletions config/commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
#
DriveTank:
deadzone: .15
leftMultiplier: 120.0
rightMultiplier: 120.0
exponent: 2.0
multiplier:
left: 120.0
right: 120.0

DriveArcade:
deadzone: .1
Expand Down
26 changes: 26 additions & 0 deletions config/ports.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Drive:
leftMotor: { channel: 0, inverted: true }
rightMotor: { channel: 1, inverted: false }
leftEncoder: { aChannel: 2, bChannel: 3, reverse: true, distancePerPulse: .06597 }
rightEncoder: { aChannel: 0, bChannel: 1, distancePerPulse: .06597 }
Turret:
pinchRollerMotor: { channel: 5, inverted: false }
kingRollerMotor: { channel: 3, inverted: false }
ballSensor: { channel: 4, minDistance: 300.0, maxDistance: 26.0 }
ballCompressionSensor: { channel: 1, scale: 1.0, offset: 0.0 }
hoodDeploySolenoid: 0
shortSolenoid: 1
longSolenoid: 2
shooterWheelMotor: { channel: 2, inverted: true }
shooterWheelEncoder:
aChannel: 4
bChannel: 5
reverse: true
distancePerPulse: 0.0009765625
encodingType: k1X
# samplesToAverage: 100
turretRotationMotor: { channel: 4, inverted: true }
turretRotationEncoder: { aChannel: 6, bChannel: 7, reverse: true, distancePerPulse: 0.02538 }
leftLimit: { channel: 11, type: NPN }
rightLimit: { channel: 10, type: NPN }
centerLimit: { channel: 12, type: NPN }
34 changes: 8 additions & 26 deletions config/simulation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ Drive:
momentum: 50
dampening: 4
encoder: { multiplier: 25.13 } # 8 * pi
controller: { type: PID, P: .5, F: .00641 }
driveMode: CONTROLLER
maxSpeed: 156.0
OperatorInterface:
Picker:
motor: # 775Pro
Expand All @@ -22,6 +19,13 @@ Picker:
momentum: 50
dampening: 4
encoder: { multiplier: 1 }
pinchRollerMotor: # 1 x 550
maxRPM: 19000
maxTorque: 3.36 # 3.36in-lbf * 1
gearRatio: 70.0
momentum: 50
dampening: 4
pinchRollerEncoder: { multiplier: 1 }
Turret:
shooterWheelMotor: # 2 x 775Pro
maxRPM: 18730
Expand All @@ -30,15 +34,6 @@ Turret:
momentum: 50
dampening: 4
shooterWheelEncoder: { multiplier: 1 }
shooterWheelController:
type: PID
inputSamplesToAverage: 16
P: 0.025
I: 0.025
maxIError: 10.0
F: 0.004
minOutput: 0.0
target: { within: 1.0 }
rotationMotor: # 1 x 550
maxRPM: 19000
maxTorque: 3.36 # 3.36in-lbf * 1
Expand All @@ -53,18 +48,5 @@ Turret:
momentum: 50
dampening: 4
kingRollerEncoder: { multiplier: 1 }
pinchRollerMotor: # 1 x 550
maxRPM: 19000
maxTorque: 3.36 # 3.36in-lbf * 1
gearRatio: 70.0
momentum: 50
dampening: 4
pinchRollerEncoder: { multiplier: 1 }
angleController:
type: PID
maxAbsoluteSetpoint: 110.0
P: .1
D: 0
maxAbsoluteOutput: 0.75
target: { within: .5, stop: true }
angleRange: 110.0
Vision:
24 changes: 1 addition & 23 deletions config/subsystems.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
Drive:
leftMotor: { channel: 0, inverted: true }
rightMotor: { channel: 1, inverted: false }
leftEncoder: { aChannel: 2, bChannel: 3, reverse: true, distancePerPulse: .06597 }
rightEncoder: { aChannel: 0, bChannel: 1, distancePerPulse: .06597 }
controller:
type: PID
P: .01
Expand All @@ -11,7 +7,6 @@ Drive:
minISetpoint: 1.0
maxIError: 12.0
dataLogging: false
driveMode: CONTROLLER
maxSpeed: 120.0
Picker:
pickMotor: { channel: 6, inverted: false }
Expand All @@ -22,21 +17,6 @@ OperatorInterface:
driverJoystick: 0
gunnerJoystick: 1
Turret:
pinchRollerMotor: { channel: 5, inverted: false }
kingRollerMotor: { channel: 3, inverted: false }
ballSensor: { channel: 4, minDistance: 300.0, maxDistance: 26.0 }
ballCompressionSensor: { channel: 1, scale: 1.0, offset: 0.0 }
hoodDeploySolenoid: 0
shortSolenoid: 1
longSolenoid: 2
shooterWheelMotor: { channel: 2, inverted: true }
shooterWheelEncoder:
aChannel: 4
bChannel: 5
reverse: true
distancePerPulse: 0.0009765625
encodingType: k1X
# samplesToAverage: 100
shooterWheelController:
type: PID
# inputSamplesToAverage 16
Expand All @@ -47,8 +27,6 @@ Turret:
minOutput: 0.0
target: { within: 1.0 }
# dataLogging: true
turretRotationMotor: { channel: 4, inverted: true }
turretRotationEncoder: { aChannel: 6, bChannel: 7, reverse: true, distancePerPulse: 0.02538 }
angleController:
type: PID
maxAbsoluteSetpoint: 110.0
Expand All @@ -59,7 +37,7 @@ Turret:
leftLimit: { channel: 11, type: NPN }
rightLimit: { channel: 10, type: NPN }
centerLimit: { channel: 12, type: NPN }
defaultBallAge: NEW
defaultBallAge: AGED
Vision:
ledPower: { channel: 7, inverted: false } #not finalized
tableName: TatorVision
18 changes: 13 additions & 5 deletions core/src/main/java/org/teamtators/rotator/CoreModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
import dagger.Module;
import dagger.Provides;
import org.teamtators.rotator.commands.CoreCommands;
import org.teamtators.rotator.components.*;
import org.teamtators.rotator.config.ConfigCommandStore;
import org.teamtators.rotator.control.ForController;
import org.teamtators.rotator.control.Stepper;
import org.teamtators.rotator.operatorInterface.AbstractOperatorInterface;
import org.teamtators.rotator.scheduler.CommandStore;
import org.teamtators.rotator.scheduler.Scheduler;
import org.teamtators.rotator.scheduler.Subsystem;
import org.teamtators.rotator.subsystems.AbstractDrive;
import org.teamtators.rotator.subsystems.AbstractPicker;
import org.teamtators.rotator.subsystems.AbstractTurret;
import org.teamtators.rotator.subsystems.AbstractVision;
import org.teamtators.rotator.subsystems.Drive;
import org.teamtators.rotator.subsystems.Turret;
import org.teamtators.rotator.tester.ManualTester;

import javax.inject.Named;
import javax.inject.Singleton;
import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -62,7 +62,15 @@ ManualTester providesManualTester(AbstractOperatorInterface operatorInterface, S

@Provides
@Singleton
public List<Subsystem> providesSubsystems(AbstractDrive drive, AbstractPicker picker, AbstractTurret turret,
@Named("subsystems")
public List<Subsystem> providesSubsystems(Drive drive, Turret turret) {
return Arrays.asList(drive, turret);
}

@Provides
@Singleton
@Named("components")
public List<Component> providesComponents(AbstractDrive drive, AbstractPicker picker, AbstractTurret turret,
AbstractOperatorInterface operatorInterface, AbstractVision vision) {
return Arrays.asList(drive, picker, turret, operatorInterface, vision);
}
Expand Down
16 changes: 9 additions & 7 deletions core/src/main/java/org/teamtators/rotator/CoreRobot.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.teamtators.rotator;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.teamtators.rotator.components.Chooser;
import org.teamtators.rotator.components.*;
import org.teamtators.rotator.config.ConfigCommandStore;
import org.teamtators.rotator.config.ConfigLoader;
import org.teamtators.rotator.config.ControllerFactory;
Expand All @@ -14,10 +14,8 @@
import org.teamtators.rotator.scheduler.Command;
import org.teamtators.rotator.scheduler.Scheduler;
import org.teamtators.rotator.scheduler.Subsystem;
import org.teamtators.rotator.subsystems.AbstractDrive;
import org.teamtators.rotator.subsystems.AbstractPicker;
import org.teamtators.rotator.subsystems.AbstractTurret;
import org.teamtators.rotator.subsystems.AbstractVision;
import org.teamtators.rotator.subsystems.Drive;
import org.teamtators.rotator.subsystems.Turret;
import org.teamtators.rotator.tester.ManualTester;

import javax.inject.Named;
Expand All @@ -28,11 +26,11 @@
public interface CoreRobot {
ObjectMapper objectMapper();

AbstractDrive drive();
Drive drive();

AbstractPicker picker();

AbstractTurret turret();
Turret turret();

AbstractVision vision();

Expand All @@ -48,6 +46,10 @@ public interface CoreRobot {

ControllerFactory controllerFactory();

@Named("components")
List<Component> components();

@Named("subsystems")
List<Subsystem> subsystems();

TriggerBinder triggerBinder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
import org.teamtators.rotator.CommandBase;
import org.teamtators.rotator.CoreRobot;
import org.teamtators.rotator.config.Configurable;
import org.teamtators.rotator.operatorInterface.DriveUtils;
import org.teamtators.rotator.operatorInterface.LogitechF310;
import org.teamtators.rotator.scheduler.RobotState;
import org.teamtators.rotator.subsystems.AbstractDrive;
import org.teamtators.rotator.subsystems.Drive;

public class DriveArcade extends CommandBase implements Configurable<DriveArcade.Config> {
private Config config;
private AbstractDrive drive;
private Drive drive;
private LogitechF310 driverJoystick;

public DriveArcade(CoreRobot robot) {
Expand All @@ -27,7 +28,7 @@ public void configure(Config config) {

@Override
protected void finish(boolean interrupted) {
drive.resetSpeeds();
drive.resetPowers();
super.finish(interrupted);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
import org.teamtators.rotator.config.Configurable;
import org.teamtators.rotator.config.ControllerFactory;
import org.teamtators.rotator.control.AbstractController;
import org.teamtators.rotator.subsystems.AbstractDrive;
import org.teamtators.rotator.operatorInterface.DriveOutput;
import org.teamtators.rotator.subsystems.Drive;

public class DriveRotate extends CommandBase implements Configurable<DriveRotate.Config> {
private Config config;
private AbstractDrive drive;
private Drive drive;
private ControllerFactory controllerFactory;
private AbstractController controller;

Expand All @@ -28,8 +29,7 @@ public void configure(Config config) {
controller.setName(getName());
controller.setInputProvider(drive::getGyroAngle);
controller.setOutputConsumer(output -> {
drive.setLeftSpeed(output);
drive.setRightSpeed(-output);
drive.setSpeeds(DriveOutput.turning(output));
});
}

Expand All @@ -51,7 +51,7 @@ protected void finish(boolean interrupted) {
logger.info("Finished" + logLine);
}
controller.disable();
drive.resetSpeeds();
drive.resetPowers();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
package org.teamtators.rotator.commands;

import com.fasterxml.jackson.databind.JsonNode;
import org.teamtators.rotator.CommandBase;
import org.teamtators.rotator.CoreRobot;
import org.teamtators.rotator.config.Configurable;
import org.teamtators.rotator.config.ControllerFactory;
import org.teamtators.rotator.control.AbstractController;
import org.teamtators.rotator.subsystems.AbstractDrive;

/**
* Drive in a straight line for a certain distance
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@
import org.teamtators.rotator.CoreRobot;
import org.teamtators.rotator.config.ControllerFactory;
import org.teamtators.rotator.control.AbstractController;
import org.teamtators.rotator.subsystems.AbstractDrive;
import org.teamtators.rotator.subsystems.Drive;

import static org.teamtators.rotator.operatorInterface.DriveOutput.straight;
import static org.teamtators.rotator.operatorInterface.DriveOutput.turning;

/**
* Created by TatorsDriverStation on 10/16/2016.
* Created by TatorsDr iverStation on 10/16/2016.
*/
public abstract class DriveStraightBase extends CommandBase {
protected ControllerFactory controllerFactory;
protected AbstractDrive drive;
protected Drive drive;
protected double startingDistance;
protected double deltaDistance;
protected Config config;
Expand All @@ -30,8 +33,7 @@ public void configure(Config config) {
controller.setName(getName());
controller.setInputProvider(drive::getGyroAngle);
controller.setOutputConsumer(output -> {
drive.setLeftSpeed(config.speed + output);
drive.setRightSpeed(config.speed - output);
drive.setSpeeds(straight(config.speed).plus(turning(output)));
});
}

Expand All @@ -51,7 +53,7 @@ public boolean step() {
@Override
protected void finish(boolean interrupted) {
controller.disable();
drive.resetSpeeds();
drive.resetPowers();
}

public static class Config {
Expand Down
Loading