Actually sane now. Really, I mean it. ...although the turning circle is somewhat ... elephantine ...
This commit is contained in:
parent
d0dad2237c
commit
91831a1326
@ -44,7 +44,6 @@ private:
|
|||||||
// instance variables
|
// instance variables
|
||||||
bool pickupRunning; // don't want to spam the Talon with set messages. Toggle the pickup when a button is pressed or released.
|
bool pickupRunning; // don't want to spam the Talon with set messages. Toggle the pickup when a button is pressed or released.
|
||||||
bool inverting;
|
bool inverting;
|
||||||
float oldXY;
|
|
||||||
bool ramping;
|
bool ramping;
|
||||||
bool shooting;
|
bool shooting;
|
||||||
bool unjamming;
|
bool unjamming;
|
||||||
@ -117,8 +116,10 @@ private:
|
|||||||
{
|
{
|
||||||
if (driver_stick.GetRawButton(THUMB))
|
if (driver_stick.GetRawButton(THUMB))
|
||||||
{
|
{
|
||||||
left_drive.Set(driver_stick.GetThrottle() * driver_stick.GetTwist());
|
float left = driver_stick.GetTwist();
|
||||||
right_drive.Set(-1 * driver_stick.GetThrottle() * driver_stick.GetTwist());
|
float right = -driver_stick.GetTwist();
|
||||||
|
|
||||||
|
drive.TankDrive(left, right);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -187,25 +188,25 @@ private:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The 'inverting' variable is used to make sure that the drive train isn't getting
|
* The 'inverting' variable is used to make sure that the drive train isn't getting
|
||||||
* inverted every itteration of the TeleopPeriodic method while the button is held down.
|
* inverted every iteration of the TeleopPeriodic method while the button is held down.
|
||||||
* This is important because the TeleopPeriodic method executes something like once every 10ms.
|
* This is important because the TeleopPeriodic method executes something like once every 10ms.
|
||||||
* Thus, this if-else if pair make the button a toggle.
|
* Thus, this if-else if pair make the button a toggle.
|
||||||
*/
|
*/
|
||||||
if(driver_stick.GetRawButton(THUMB) && !inverting)
|
if(driver_stick.GetRawButton(TRIGGER) && !inverting)
|
||||||
{
|
{
|
||||||
std::cout << "Inverting Drive Train.";
|
std::cout << "Inverting Drive Train.";
|
||||||
left_drive.SetInverted(!left_drive.GetInverted());
|
left_drive.SetInverted(!left_drive.GetInverted());
|
||||||
right_drive.SetInverted(!right_drive.GetInverted());
|
right_drive.SetInverted(!right_drive.GetInverted());
|
||||||
inverting = true;
|
inverting = true;
|
||||||
}
|
}
|
||||||
else if(!driver_stick.GetRawButton(THUMB))
|
else if(!driver_stick.GetRawButton(TRIGGER))
|
||||||
{
|
{
|
||||||
inverting = false;
|
inverting = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unlike the previous actions, this method does need to be called every itteration of
|
* Unlike the previous actions, this method does need to be called every iteration of
|
||||||
* TeleopPeriodic. This is because the logic running this operation needs to be checked
|
* TeleopPeriodic. This is because the logic running this operation needs to be checked
|
||||||
* Every time the method is called. This cannot be a loop in the Shoot method because
|
* Every time the method is called. This cannot be a loop in the Shoot method because
|
||||||
* that would lock the robot every time the trigger is hit.
|
* that would lock the robot every time the trigger is hit.
|
||||||
@ -247,25 +248,21 @@ private:
|
|||||||
|
|
||||||
void UpdateDrive()
|
void UpdateDrive()
|
||||||
{
|
{
|
||||||
float x = driver_stick.GetX();
|
float x = -driver_stick.GetX();
|
||||||
float y = driver_stick.GetY();
|
float y = -driver_stick.GetY();
|
||||||
if ((x + y) != oldXY)
|
|
||||||
{
|
|
||||||
oldXY = x + y;
|
|
||||||
if (x > 0)
|
if (x > 0)
|
||||||
{
|
{
|
||||||
float left = y * driver_stick.GetThrottle();
|
float right = y * SaneThrottle(driver_stick.GetThrottle());
|
||||||
float right = (1-x)*y * driver_stick.GetThrottle();
|
float left = (1-x)*y * SaneThrottle(driver_stick.GetThrottle());
|
||||||
drive.TankDrive(left, right);
|
drive.TankDrive(left, right);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
float left = y * driver_stick.GetThrottle();
|
float left = y * SaneThrottle(driver_stick.GetThrottle());
|
||||||
float right = (1+x)*y * driver_stick.GetThrottle();
|
float right = (1+x)*y * SaneThrottle(driver_stick.GetThrottle());
|
||||||
drive.TankDrive(left, right);
|
drive.TankDrive(left, right);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
START_ROBOT_CLASS(Robot)
|
START_ROBOT_CLASS(Robot)
|
||||||
|
Reference in New Issue
Block a user