mirror of
https://github.com/team2059/Dent
synced 2024-12-18 20:52:29 -05:00
Documentation, formatting fixes
This commit is contained in:
parent
3de6e0023c
commit
d8f39bef0a
@ -4,10 +4,10 @@
|
||||
AutoDrive::AutoDrive(double duration, double xtmp, double ytmp, double ztmp, bool useGyro): Command("AutoDrive"){
|
||||
Requires(DentRobot::drivetrain);
|
||||
SetTimeout(duration);
|
||||
x=xtmp;
|
||||
y=ytmp;
|
||||
z=ztmp;
|
||||
gyro=useGyro;
|
||||
x = xtmp;
|
||||
y = ytmp;
|
||||
z = ztmp;
|
||||
gyro = useGyro;
|
||||
}
|
||||
void AutoDrive::Initialize(){
|
||||
DentRobot::drivetrain->ResetGyro();
|
||||
|
@ -23,9 +23,9 @@ class AutoDrive: public Command{
|
||||
*
|
||||
* @param duration Timeout in seconds
|
||||
* @param xtmp Joystick x value (default: 0.0)
|
||||
* @param ytmp Joystick y value (default: 0.75)
|
||||
* @param ytmp Joystick y value (default: -0.75)
|
||||
* @param ztmp Joystick z value (default: 0.0)
|
||||
* @param useGyro Use the gyro when driving
|
||||
* @param useGyro Use the gyro when driving (default: true)
|
||||
*/
|
||||
AutoDrive(double duration, double xtmp = 0.0, double ytmp = -0.75, double ztmp = 0.0, bool useGyro = true);
|
||||
/**
|
||||
|
@ -37,9 +37,9 @@ class Autonomous: public CommandGroup{
|
||||
/**
|
||||
* @brief Constructs Autonomous
|
||||
*
|
||||
* @param seq The sequence to run
|
||||
* @param seq The sequence to run (default: 0)
|
||||
*/
|
||||
Autonomous(int seq=0);
|
||||
Autonomous(int seq = 0);
|
||||
};
|
||||
#endif
|
||||
// vim: ts=2:sw=2:et
|
||||
|
@ -12,7 +12,6 @@
|
||||
* Turns the robot until a timeout is reached
|
||||
*/
|
||||
class Turn: public Command{
|
||||
private:
|
||||
public:
|
||||
/**
|
||||
* @brief Constructs Turn
|
||||
|
@ -14,7 +14,7 @@ class BinCloseArms: public Command{
|
||||
/**
|
||||
* @brief Constructs BinCloseArms
|
||||
*
|
||||
* @param timeout The timeout
|
||||
* @param timeout Timeout in seconds (default: 0.5)
|
||||
*/
|
||||
BinCloseArms(double timeout = 0.5);
|
||||
/**
|
||||
|
@ -12,7 +12,7 @@ class BinLower: public Command{
|
||||
/**
|
||||
* @brief Constructs BinLower
|
||||
*
|
||||
* @param timeout The timeout
|
||||
* @param timeout Timeout in seconds
|
||||
*/
|
||||
BinLower(float timeout);
|
||||
/**
|
||||
|
@ -12,7 +12,7 @@ class BinOpenArms: public Command{
|
||||
/**
|
||||
* @brief Constructs BinOpenArms
|
||||
*
|
||||
* @param timeout The timeout
|
||||
* @param timeout Timeout in seconds
|
||||
*/
|
||||
BinOpenArms(double timeout);
|
||||
/**
|
||||
|
@ -1,14 +1,14 @@
|
||||
#include "RollIn.h"
|
||||
RollIn::RollIn(double speed): Command("RollIn"){
|
||||
rawSpeed=speed;
|
||||
rawSpeed = speed;
|
||||
}
|
||||
void RollIn::Initialize(){
|
||||
printf("Initialized RollIn\n");
|
||||
SetTimeout(2.0);
|
||||
}
|
||||
void RollIn::Execute(){
|
||||
//double cvt=(rawSpeed)*DentRobot::collector->GetSonarDistance()/0.4;
|
||||
//if(cvt<=1.0){
|
||||
//double cvt = (rawSpeed)*DentRobot::collector->GetSonarDistance()/0.4;
|
||||
//if(cvt <= 1.0){
|
||||
// DentRobot::collector->MoveRollers(1.0);
|
||||
//}else{
|
||||
// DentRobot::collector->MoveRollers(cvt*1.5);
|
||||
|
@ -14,9 +14,9 @@ class RollOut: public Command{
|
||||
/**
|
||||
* @brief Constructs RollOut
|
||||
*
|
||||
* @param timeout The timeout
|
||||
* @param timeout Timeout in seconds (default: 2.0)
|
||||
*/
|
||||
RollOut(double timeout=2.0);
|
||||
RollOut(double timeout = 2.0);
|
||||
/**
|
||||
* @brief Initializes the class
|
||||
*/
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "RollVar.h"
|
||||
RollVar::RollVar(double speedVal): Command("RollVar"){
|
||||
speed=speedVal;
|
||||
speed = speedVal;
|
||||
}
|
||||
void RollVar::Initialize(){
|
||||
printf("Initialized RollVar\n");
|
||||
|
@ -12,10 +12,10 @@ void Drive::Execute(){
|
||||
z = DentRobot::oi->GetLeftStick()->GetRawAxis(2);
|
||||
// Lock the x axis when not holding button 1
|
||||
//if(DentRobot::oi->GetLeftStick()->GetRawButton(1)){
|
||||
// x=0;
|
||||
// x = 0;
|
||||
//}
|
||||
//if(DentRobot::oi->GetLeftStick()->GetRawButton(2)){
|
||||
// y=0;
|
||||
// y = 0;
|
||||
//}
|
||||
//X axis, Y axis, Z axis, sensitivity, speed threshold (usually throttle)
|
||||
if(DentRobot::oi->GetLeftStick()->GetRawButton(11)){
|
||||
|
@ -3,7 +3,6 @@
|
||||
|
||||
#include "Commands/Command.h"
|
||||
#include "../../DentRobot.h"
|
||||
#include "../../DentRobot.h"
|
||||
#include "WPILib.h"
|
||||
|
||||
/**
|
||||
|
@ -11,8 +11,10 @@ class Lower: public Command{
|
||||
public:
|
||||
/**
|
||||
* @brief Constructs Lower
|
||||
*
|
||||
* @param timeout Timeout in seconds (default: 3.0)
|
||||
*/
|
||||
Lower(double timeout=3.0);
|
||||
Lower(double timeout = 3.0);
|
||||
/**
|
||||
* @brief Initializes the class
|
||||
*/
|
||||
|
@ -11,11 +11,11 @@ void Raise::Execute(){
|
||||
}
|
||||
bool Raise::IsFinished(){
|
||||
//if(!DentRobot::elevator->GetElevatorMiddle()){
|
||||
// DentRobot::elevator->stoppedAtSensor=true;
|
||||
// DentRobot::elevator->stoppedAtSensor = true;
|
||||
//}
|
||||
//if((DentRobot::elevator->stoppedAtSensor)){
|
||||
// printf("Stopped at the middle sensor\n");
|
||||
// DentRobot::elevator->stoppedAtSensor=false;
|
||||
// DentRobot::elevator->stoppedAtSensor = false;
|
||||
// return true;
|
||||
//}else if(!DentRobot::elevator->GetElevatorTop()){
|
||||
if(!DentRobot::elevator->GetElevatorTop()||!DentRobot::elevator->GetElevatorMiddle()||IsTimedOut()){
|
||||
|
@ -11,8 +11,10 @@ class Raise: public Command{
|
||||
public:
|
||||
/**
|
||||
* @brief Constructs Raise
|
||||
*
|
||||
* @param timeout Timeout in seconds (default: 3.5)
|
||||
*/
|
||||
Raise(double timeout=3.5);
|
||||
Raise(double timeout = 3.5);
|
||||
/**
|
||||
* @brief Initializes the class
|
||||
*/
|
||||
|
@ -2,20 +2,20 @@
|
||||
#include "OI.h"
|
||||
#include "RobotMap.h"
|
||||
#include "Commands/Autonomous/Autonomous.h"
|
||||
OI* DentRobot::oi=NULL;
|
||||
Collector* DentRobot::collector=NULL;
|
||||
Drivetrain* DentRobot::drivetrain=NULL;
|
||||
Elevator* DentRobot::elevator=NULL;
|
||||
BinElevator* DentRobot::binElevator=NULL;
|
||||
CommandGroup* DentRobot::aut=NULL;
|
||||
Pneumatics* DentRobot::pneumatics=NULL;
|
||||
OI* DentRobot::oi = NULL;
|
||||
Collector* DentRobot::collector = NULL;
|
||||
Drivetrain* DentRobot::drivetrain = NULL;
|
||||
Elevator* DentRobot::elevator = NULL;
|
||||
BinElevator* DentRobot::binElevator = NULL;
|
||||
CommandGroup* DentRobot::aut = NULL;
|
||||
Pneumatics* DentRobot::pneumatics = NULL;
|
||||
DentRobot::DentRobot(){
|
||||
oi=new OI();
|
||||
collector=new Collector();
|
||||
drivetrain=new Drivetrain();
|
||||
elevator=new Elevator();
|
||||
binElevator=new BinElevator();
|
||||
pneumatics=new Pneumatics();
|
||||
oi = new OI();
|
||||
collector = new Collector();
|
||||
drivetrain = new Drivetrain();
|
||||
elevator = new Elevator();
|
||||
binElevator = new BinElevator();
|
||||
pneumatics = new Pneumatics();
|
||||
//CameraServer::GetInstance()->SetQuality(25);
|
||||
//CameraServer::GetInstance()->StartAutomaticCapture("cam0");
|
||||
printf("The robot is on\n");
|
||||
@ -55,7 +55,7 @@ void DentRobot::DisabledPeriodic(){
|
||||
Scheduler::GetInstance()->Run();
|
||||
}
|
||||
void DentRobot::AutonomousInit(){
|
||||
aut=new Autonomous(SmartDashboard::GetNumber("Auto Sequence"));
|
||||
aut = new Autonomous(SmartDashboard::GetNumber("Auto Sequence"));
|
||||
printf("Enabling Auto Sequence %f\n", SmartDashboard::GetNumber("Auto Sequence"));
|
||||
if(aut != NULL){
|
||||
aut->Start();
|
||||
@ -72,7 +72,7 @@ void DentRobot::TeleopInit(){
|
||||
}
|
||||
void DentRobot::TeleopPeriodic(){
|
||||
Scheduler::GetInstance()->Run();
|
||||
if(elevator->GetUseEncoder()&&elevator->GetHeight()<=-1.0){
|
||||
if(elevator->GetUseEncoder()&&elevator->GetHeight() <= -1.0){
|
||||
// Raise the elevator if it dips below elevatorTop
|
||||
oi->raise->Start();
|
||||
}
|
||||
|
32
OI.cpp
32
OI.cpp
@ -12,40 +12,40 @@
|
||||
#include "Commands/Autonomous/ReleaseTote.h"
|
||||
OI::OI(){
|
||||
// Joysticks
|
||||
leftStick=new Joystick(0);
|
||||
rightStick=new Joystick(1);
|
||||
leftStick = new Joystick(0);
|
||||
rightStick = new Joystick(1);
|
||||
// Collector
|
||||
JoystickButton *left1=new JoystickButton(leftStick, 1);
|
||||
JoystickButton *left2=new JoystickButton(leftStick, 2);
|
||||
JoystickButton *left7=new JoystickButton(leftStick, 7);
|
||||
JoystickButton *left1 = new JoystickButton(leftStick, 1);
|
||||
JoystickButton *left2 = new JoystickButton(leftStick, 2);
|
||||
JoystickButton *left7 = new JoystickButton(leftStick, 7);
|
||||
left1->WhileHeld(new RollIn(GetLeftThrottle()));
|
||||
left2->WhileHeld(new RollOut(2.0));
|
||||
// 0.8 is the multiplier, so they roll at 80% power
|
||||
left7->WhileHeld(new RollVar(0.8));
|
||||
// Elevator
|
||||
raise=new Raise(3.5);
|
||||
lower=new Lower(3.0);
|
||||
JoystickButton *right4=new JoystickButton(rightStick, 4);
|
||||
JoystickButton *right6=new JoystickButton(rightStick, 6);
|
||||
raise = new Raise(3.5);
|
||||
lower = new Lower(3.0);
|
||||
JoystickButton *right4 = new JoystickButton(rightStick, 4);
|
||||
JoystickButton *right6 = new JoystickButton(rightStick, 6);
|
||||
right4->WhenPressed(lower);
|
||||
right4->CancelWhenPressed(raise);
|
||||
right6->WhenPressed(raise);
|
||||
right6->CancelWhenPressed(lower);
|
||||
// BinElevator
|
||||
JoystickButton *right3=new JoystickButton(rightStick, 3);
|
||||
JoystickButton *right5=new JoystickButton(rightStick, 5);
|
||||
//JoystickButton *right7=new JoystickButton(rightStick, 7);
|
||||
//JoystickButton *right8=new JoystickButton(rightStick, 8);
|
||||
JoystickButton *right3 = new JoystickButton(rightStick, 3);
|
||||
JoystickButton *right5 = new JoystickButton(rightStick, 5);
|
||||
//JoystickButton *right7 = new JoystickButton(rightStick, 7);
|
||||
//JoystickButton *right8 = new JoystickButton(rightStick, 8);
|
||||
//right7->WhenPressed(new BinOpenArms());
|
||||
//right8->WhenPressed(new BinCloseArms());
|
||||
binRaise=new BinRaise(3.0);
|
||||
binLower=new BinLower(2.0);
|
||||
binRaise = new BinRaise(3.0);
|
||||
binLower = new BinLower(2.0);
|
||||
right3->WhileHeld(binLower);
|
||||
right3->CancelWhenPressed(binRaise);
|
||||
right5->WhileHeld(binRaise);
|
||||
right5->CancelWhenPressed(binLower);
|
||||
// Cancel
|
||||
JoystickButton *right12=new JoystickButton(rightStick, 12);
|
||||
JoystickButton *right12 = new JoystickButton(rightStick, 12);
|
||||
right12->CancelWhenPressed(raise);
|
||||
right12->CancelWhenPressed(lower);
|
||||
}
|
||||
|
11
OI.h
11
OI.h
@ -9,16 +9,17 @@
|
||||
*/
|
||||
class OI{
|
||||
private:
|
||||
Joystick *leftStick, *rightStick;
|
||||
Joystick *leftStick, //<! Left joystick
|
||||
*rightStick; //<! Right joystick
|
||||
public:
|
||||
/**
|
||||
* @brief Constructs OI
|
||||
*/
|
||||
OI();
|
||||
Command *raise, //!< Raise command
|
||||
*lower, //!< Lower command
|
||||
*binLower, //!< BinLower command
|
||||
*binRaise; //!< BinRaise command
|
||||
Command *raise, //<! Raise command
|
||||
*lower, //<! Lower command
|
||||
*binLower, //<! BinLower command
|
||||
*binRaise; //<! BinRaise command
|
||||
/**
|
||||
* @brief Returns the right joystick
|
||||
*
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "BinElevator.h"
|
||||
#include "../RobotMap.h"
|
||||
BinElevator::BinElevator(){
|
||||
motor=new CANTalon(BINELEVATOR_CAN);
|
||||
elevatorEncoder=new Encoder(BINELEVATOR_ENCODERA, BINELEVATOR_ENCODERB, false);
|
||||
elevatorBottom=new DigitalInput(BINELEVATOR_BOTTOM_DIO);
|
||||
elevatorTop=new DigitalInput(BINELEVATOR_TOP_DIO);
|
||||
motor = new CANTalon(BINELEVATOR_CAN);
|
||||
elevatorEncoder = new Encoder(BINELEVATOR_ENCODERA, BINELEVATOR_ENCODERB, false);
|
||||
elevatorBottom = new DigitalInput(BINELEVATOR_BOTTOM_DIO);
|
||||
elevatorTop = new DigitalInput(BINELEVATOR_TOP_DIO);
|
||||
}
|
||||
void BinElevator::InitDefaultCommand(){
|
||||
}
|
||||
|
@ -24,9 +24,7 @@ class BinElevator{
|
||||
/**
|
||||
* @brief Runs the bin elevator
|
||||
*
|
||||
* @param power The power to run the bin elevator
|
||||
*
|
||||
* Ranges from -1.0 to 1.0
|
||||
* @param power The power to run the bin elevator (-1.0 to 1.0)
|
||||
*/
|
||||
void Run(double power);
|
||||
/**
|
||||
|
@ -2,11 +2,11 @@
|
||||
#include "../RobotMap.h"
|
||||
|
||||
Collector::Collector(): Subsystem("Collector"){
|
||||
collectorMotorLeft=new CANTalon(COLLECTOR_LEFT_CAN);
|
||||
collectorMotorBottom=new CANTalon(COLLECTOR_BOTTOM_CAN);
|
||||
collectorMotorRamp=new CANTalon(COLLECTOR_RAMP_CAN);
|
||||
collectorMotorRight=new CANTalon(COLLECTOR_RIGHT_CAN);
|
||||
sonarAnalog=new AnalogInput(COLLECTOR_SONAR_ANALOG);
|
||||
collectorMotorLeft = new CANTalon(COLLECTOR_LEFT_CAN);
|
||||
collectorMotorBottom = new CANTalon(COLLECTOR_BOTTOM_CAN);
|
||||
collectorMotorRamp = new CANTalon(COLLECTOR_RAMP_CAN);
|
||||
collectorMotorRight = new CANTalon(COLLECTOR_RIGHT_CAN);
|
||||
sonarAnalog = new AnalogInput(COLLECTOR_SONAR_ANALOG);
|
||||
}
|
||||
void Collector::InitDefaultCommand(){
|
||||
}
|
||||
|
@ -33,25 +33,25 @@ class Collector: public Subsystem{
|
||||
/**
|
||||
* @brief Moves the collectors
|
||||
*
|
||||
* @param power The speed to run the collectors
|
||||
* @param power The power to run the collectors
|
||||
*/
|
||||
void MoveRollers(double power);
|
||||
/**
|
||||
* @brief Moves the left roller
|
||||
*
|
||||
* @param power The speed to run the left roller
|
||||
* @param power The power to run the left roller
|
||||
*/
|
||||
void MoveLeftRoller(double power);
|
||||
/**
|
||||
* @brief Moves the right roller
|
||||
*
|
||||
* @param power The speed to run the right roller
|
||||
* @param power The power to run the right roller
|
||||
*/
|
||||
void MoveRightRoller(double power);
|
||||
/**
|
||||
* @brief Moves the bottom rollers
|
||||
*
|
||||
* @param power The speed to run the bottom rollers
|
||||
* @param power The power to run the bottom rollers
|
||||
*/
|
||||
void MoveBottomRollers(double power);
|
||||
/**
|
||||
|
@ -13,7 +13,7 @@ void Drivetrain::InitDefaultCommand(){
|
||||
SetDefaultCommand(new Drive());
|
||||
}
|
||||
void Drivetrain::DriveMecanum(double x, double y, double z, double sensitivity, bool driveStraight){
|
||||
double kP=SmartDashboard::GetNumber("Gyro kP");
|
||||
double kP = SmartDashboard::GetNumber("Gyro kP");
|
||||
double correctX = -(sensitivity*(pow(x, 3))+(1-sensitivity)*x);
|
||||
double correctY = -(sensitivity*(pow(y, 3))+(1-sensitivity)*y);
|
||||
double correctZ;
|
||||
|
@ -39,9 +39,9 @@ class Drivetrain: public Subsystem{
|
||||
* @param y Joystick y value (-1.0 to 1.0)
|
||||
* @param z Joystick z value (-1.0 to 1.0)
|
||||
* @param sensitivity Sensitivity (0.0 to 1.0)
|
||||
* @param driveStraight Overrides z value to correct for motor lag
|
||||
* @param driveStraight Overrides z value to correct for motor lag (default: false)
|
||||
*/
|
||||
void DriveMecanum(double x, double y, double z, double sensitivity, bool driveStraight=false);
|
||||
void DriveMecanum(double x, double y, double z, double sensitivity, bool driveStraight = false);
|
||||
/**
|
||||
* @brief Tests one motor
|
||||
*
|
||||
|
@ -1,13 +1,13 @@
|
||||
#include "Elevator.h"
|
||||
#include "../RobotMap.h"
|
||||
Elevator::Elevator(){
|
||||
motor=new CANTalon(ELEVATOR_CAN);
|
||||
elevatorEncoder=new Encoder(ELEVATOR_ENCODERA, ELEVATOR_ENCODERB, false);
|
||||
elevatorBottom=new DigitalInput(ELEVATOR_BOTTOM_DIO);
|
||||
elevatorMiddle=new DigitalInput(ELEVATOR_MIDDLE_DIO);
|
||||
elevatorTop=new DigitalInput(ELEVATOR_TOP_DIO);
|
||||
motor = new CANTalon(ELEVATOR_CAN);
|
||||
elevatorEncoder = new Encoder(ELEVATOR_ENCODERA, ELEVATOR_ENCODERB, false);
|
||||
elevatorBottom = new DigitalInput(ELEVATOR_BOTTOM_DIO);
|
||||
elevatorMiddle = new DigitalInput(ELEVATOR_MIDDLE_DIO);
|
||||
elevatorTop = new DigitalInput(ELEVATOR_TOP_DIO);
|
||||
// Checks if the elevator is drifting
|
||||
useEncoder=false;
|
||||
useEncoder = false;
|
||||
}
|
||||
void Elevator::InitDefaultCommand(){
|
||||
}
|
||||
@ -36,7 +36,7 @@ bool Elevator::GetElevatorTop(){
|
||||
return elevatorTop->Get();
|
||||
}
|
||||
void Elevator::SetUseEncoder(bool use){
|
||||
useEncoder=use;
|
||||
useEncoder = use;
|
||||
}
|
||||
bool Elevator::GetUseEncoder(){
|
||||
return useEncoder;
|
||||
|
@ -24,8 +24,6 @@
|
||||
* -# @ref Autonomous
|
||||
* -# @ref CollectTote
|
||||
* -# @ref ReleaseTote
|
||||
* -# @ref CheckDrive
|
||||
* -# @ref CheckRobot
|
||||
*
|
||||
* Note: Recycling containers are referred to bins throughout the project
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user