Arcade Drive Troubles in Autonomous

Tested autonomous with just the drivetrain movement (i.e. - drivetrain->ArcadeDrive(autonomousForwardPower, 0.0);, and it still turns.

Didn’t have time to test anything else (I was on my lunch break), but I will this afternoon. We’re doing nothing at work today so I should be able to get off early.

-Tanner

Well it wasn’t time wasted - you’ve eliminated an entire realm of possibilities and narrowed down the problem.

Try putting
drivetrain->ArcadeDrive(0.5, 0.0);
in TeleOp and see if it still turns there.

If so, maybe “0.0” doesn’t mean “straight ahead”.

Do a printf of the value you are feeding in when the 'bot is going straight ahead in TeleOp, and see if it is “0.0” or some other number.

~

I think the arguments for RobotDrive::ArcadeDrive are backwards somehow. Cause when I do drivetrain->ArcadeDrive(0.0, autonomousForwardPower); the robot goes forward, but when I do drivetrain->ArcadeDrive(autonomousForwardPower, 0.0); the robot turns left.

So, I checked the joystick numbers and the inversion of the drivetrain motors - they were totally wacky. The joysticks for the ArcadeDrive function were backwards and the inversion was programmed in that format, hence the robot worked, but everything was backward. Heh.

Autonomous drives in the right direction now (or rather it turns in the right direction…). All is well.

What did we learn? Never program the drivetrain with joysticks first and then do the inversions. Figure out what those values are, determine what they should be (positive or negative) or use magic numbers (like 1 and 0), then figure out the inversions.

Glad that is figured out. Now to see if it still crashes…

Thanks all!

-Tanner

Edit: And it doesn’t crash with the updates, yay!