Hi all-
Our robot drive-train is consisting of a total of 6 motors, meaning 3 motors per side, meaning 3 jaguars per side.
After looking through the RobotDrive class, I noticed there is not consturctor for a 6 wheel drive-train. So I made a constructor for 6 wheels, which I think should work...
Code:
RobotDrive::RobotDrive(SpeedController *rearLeftMotor, SpeedController *middleLeftMotor,
SpeedController *frontLeftMotor, SpeedController *rearRightMotor,
SpeedController *middleRightMotor,
SpeedController *frontRightMotor,
float sensitivity)
{
if (frontLeftMotor == NULL || middleLeftMotor == NULL || rearLeftMotor == NULL || frontRightMotor == NULL || frontMiddleMotor == NULL|| rearRightMotor == NULL)
{
wpi_fatal(NullParameter);
m_frontLeftMotor = m_rearLeftMotor = m_frontRightMotor = m_rearRightMotor = NULL;
return;
}
m_rearLeftMotor = rearLeftMotor;
m_middleLeftMotor = middleLeftMotor;
m_frontLeftMotor = frontLeftMotor;
m_rearRightMotor = rearRightMotor;
m_middleRightMotor = middleLeftMotor;
m_frontRightMotor = frontRightMotor;
m_sensitivity = sensitivity;
for (INT32 i=0; i < kMaxNumberOfMotors; i++)
{
m_invertedMotors[i] = 1;
}
m_deleteSpeedControllers = false;
}
Anyway, I looked into the TankDrive function I am using, because I want to ensure that when I move my joysticks, it moves all the motors, not just the first 2. So after looking through the TankDrive, it calls another function called SetLeftRightMotorSpeeds. After reading that, it makes me THINK that it will only set the first 2 Jaguars (on each side) to drive, not the third.
Here is that function
Code:
void RobotDrive::SetLeftRightMotorSpeeds(float leftSpeed, float rightSpeed)
{
wpi_assert(m_rearLeftMotor != NULL && m_rearRightMotor != NULL);
leftSpeed = Limit(leftSpeed);
rightSpeed = Limit(rightSpeed);
if (m_frontLeftMotor != NULL)
m_frontLeftMotor->Set(Limit(leftSpeed) * m_invertedMotors[kFrontLeftMotor]);
m_rearLeftMotor->Set(Limit(leftSpeed) * m_invertedMotors[kRearLeftMotor]);
if (m_frontRightMotor != NULL)
m_frontRightMotor->Set(-Limit(rightSpeed) * m_invertedMotors[kFrontRightMotor]);
m_rearRightMotor->Set(-Limit(rightSpeed) * m_invertedMotors[kRearRightMotor]);
}
Any help on how to edit that so all 3 will go, not just 2?
Edit: Im thinking i can just say m_middleRight/LeftMotor -> Set...., but Im not sure.
Thanks- 1771