Xdrive Code

Im trying to make Left stick strafing and right stick turning I just wanna make sure if this is the right code for it

F_Right.set_velocity((controller_1.axis1.position() - (controller_1.axis4.position() + controller_1.axis3.position())), PERCENT)
F_Right.spin(FORWARD)
B_Right.set_velocity((controller_1.axis1.position() - (controller_1.axis4.position() + controller_1.axis3.position())), PERCENT)
B_Right.spin(FORWARD)
F_Left.set_velocity((controller_1.axis1.position() - (controller_1.axis4.position() + controller_1.axis3.position())), PERCENT)
F_Left.spin(FORWARD)
B_Left.set_velocity((controller_1.axis1.position() - (controller_1.axis4.position() + controller_1.axis3.position())), PERCENT)
B_Left.spin(FORWARD)

For an x-drive, you don’t need to minus out the axis-4 position from all the motors.
The diagram in this video should help.

3 Likes

try this

  //Drivetrain Control
    Rfront.setVelocity((Controller1.Axis2.position() - Controller1.Axis1.position() - Controller1.Axis4.position()), percent);
    Lfront.setVelocity((Controller1.Axis2.position() + Controller1.Axis1.position() + Controller1.Axis4.position()), percent);
    Rback.setVelocity((Controller1.Axis2.position() + Controller1.Axis1.position() - Controller1.Axis4.position()), percent);
    Lback.setVelocity((Controller1.Axis2.position() - Controller1.Axis1.position() + Controller1.Axis4.position()), percent);
    Rfront.spin(forward);
    Lfront.spin(forward);
    Rback.spin(forward);
    Lback.spin(forward);  

it works very well

This is what we have and it works perfectly.

    back_left.spin(forward, Controller1.Axis4.value() - Controller1.Axis1.value() - Controller1.Axis3.value(), percent);
    front_left.spin(forward, Controller1.Axis4.value() + Controller1.Axis1.value() + Controller1.Axis3.value(), percent);
    back_right.spin(forward, Controller1.Axis4.value() - Controller1.Axis1.value() + Controller1.Axis3.value(), percent);
    front_right.spin(forward, Controller1.Axis4.value() + Controller1.Axis1.value() - Controller1.Axis3.value(), percent);
1 Like