Something I forgot to mention, FIRST verify that your motors are all plugged into the correct PWM channels according to your code. From your description 1 and 3 are left motors and 2 and 4 are right motors. Verify this is correct in code. If left and right are swapped in code, you'll be able to drive fwd and reverse fine, but turning will be backwards.
Also, my first post assumes that you're using tank drive for your controls (skid steer - one joystick controls left wheels, another controls right wheels). But it's possible that your team is using arcade drive (a single joystick - point it where you want the robot to go).
If the latter is the case, then you won't be able to individually test each side of the chassis. You can however test everything without messing with your wiring. Test each side of the chassis individually to confirm everything is working as expected.
- push the stick fwd
- verify the right wheels move forward
- push the stick backwards
- verify the right wheel moves backwards
If fwd/reverse are backwards, invert the output (multiply by negative 1).
Then do the same procedure the left wheels
After that's working, verify turning works correctly
- Push the stick to the right
- Verify the left wheels move fwd
- Push the stick to the left
- Verify the right wheels move fwd
if the above doesn't work, you've likely got the left and right motors backwards in code or wiring. If this is the case, fix the problem, then start over from the beginning, verifying left and right motors move fwd/rev when the stick is moved fwd/rev.
If you happen to be using the
RobotDrive class to handle controlling your motors, and you need to invert a motor, you can multiply your input to the respective motors by negative 1 as I described, or you can use the
setInvertedMotor() method.