The Y axis value for a standard joystick is indeed “inverted” from what most non-pilots would expect. Forward is negative.
the colors mean nothing. it basically means the flow of electricity.
you shouldn’t judge the movement of the robot by the colors.
i would change the power to the motors that way when u run autonomous, you have code like…
myRobot.Drive(1.0,1.0);//for forward
instead of
myRobot.Drive(1.0,-1.0);// for forward
this makes it easier from a coding standpoint
you are using Drive, not TankDrive, that example is doing donuts at full speed! I think you meant
myRobot.TankDrive(1.0,1.0);//for forward
instead of
myRobot.TankDrive(-1.0,-1.0);// for forward
Actually, I am a pilot (instrument rated, too). Now as soon as we get our robot flying, the controls would make sense. 
But obivously, we want our drivers to push the stick (yoke) forward to drive the robot forward. So, full forward on the stick is -1.0 on the Y-axis? OK, then robotDrive.SetLeftRightMotorSpeeds(-1.0, -1.0) is supposed to drive the robot forward?
It just seems counter intuitive to me, but I’ve recently rejoined the team after a two year absence - so my thinking may be a bit “old school”.
If memory serves me correctly, on the spikes and victors, the LEDs glowed green for normal polarity and red for reversed polarity. As such, we’ve always wired our motors and control logic to match. It just made things simpler to troubleshoot, code, etc.
So, please correct me if I’m wrong… If we used the RobotDrive class, we have to think of “forward” as the “negative” direction? Sounds just like the economony? 
I think I’m going to try something like this later today:
myRobot.SetInvertedMotor(myRobot.kFrontLeftMotor, true);
myRobot.SetInvertedMotor(myRobot.kRearLeftMotor, true);
myRobot.SetInvertedMotor(myRobot.kFrontRightMotor, true);
myRobot.SetInvertedMotor(myRobot.kRearRightMotor, true);
The invert is the answer. Forget about the colors. If you add 1 gear the direction is reversed. Add 2 reversed again.
The Joystick is -1 for full forward. It does not make sense except at a binary level reverse has (-1) more bits on than forward.
here is exactly what i did.
Joystick leftstick;
Joystick rightstick;
Victor *left;
Victor *right;
left = new Victor(4,1);
right = new Victor(4,2);
float leftdrive = leftstick.Get();//do the same with the right and you can change the joystick values to make say halfspeed by dividing by 2
left->Set(leftdrive);
You can do it either by telling RobotDrive to “invert” the motors, or using whatabouteve’s example. I personally prefer the latter because it allows your program to very easily hook into your drive code(i.e.you don’t have to re-do your ramping system for when the robot is running on camera tracking)
Couldn’t you also do the following:
drive = new RobotDrive(1, 2);
float leftSpeed = -leftStick.Get();
float rightSpeed = -rightStick.Get();
drive->TankDrive(leftSpeed, rightSpeed);
That’s similar to what I’ve done at the moment. It’s not as “proper” as SetInvertedMotor, but it appears to work.
I would just go with taking the joysticks and flipping them backwards
You could always reverse the wiring on your bot so that it matches up with the joysticks. That would probably be the easiest solution and the best if you’re really short on time. But if you have time before your next competition and can edit your code, multiply the values of the y-axis of the joysticks by -1 whenever you input them. That should fix your problem without adding too much extra code.
I believe that the Jaguars’ LED doesn’t turn green… but anyone feel free to correct me
Yup. Just reversing the wires on your bot will solve this problem quickly. Just remember that in case you need to change a motor or speed controller out.
The Jag’s LED should turn green for full forward and red for full reverse. If they’re just staying at the blinking orange state, it means you have to set their identities.
I wasn’t too involved with my teams electrical group this year, so I may be mistaken, but I don’t remember seeing the LED ever turn green. I believe it was blinking orange when the robot was disabled or lacked communication, and was solid red while running forward or reverse.
idk… I just though it was normal
That’s strange. Definitely check it out at your next competition. The LED’s should (and do, on our robot) turn solid green for full forward.
sure will… I’ll be at Virginia next week so I’ll check it out then
A simpler thing to do instead of rewiring would just to implement the following:
m_robotdrivethinger->TankDrive(**-**leftstick->get(),-rightstick->get());
Just treat the function as a normal value.