Upgrades

Mecanum Drive

Upgrading to a Mecanum Drivetrain (REV-45-2470) allows for new kinds of movement giving the robot the ability to strafe side-to-side across the field.

For Mecanum Drive each wheel has an individual motor!

The FTC Starter Kit V3 can be upgraded to the Mecanum Drivetrain V1 following this guide.

Upgrading from the FTC Starter Kit V3 to Mecanum Drivetrain V2:

The following additional parts are needed:

Full build instructions can be found here!

Example Mecanum Drive Program

How a Mecanum Drivetrain is programmed largely depends on the driver's preference for how the controller is configured. If your team is new to Mecanum, we have a demo code and breakdown available for Blocks.

This example code uses a different configuration than the Starter Bot's provided code! Please make sure to update both your program and the configuration file through the Driver Station.

Adding Independent Wrist Movement

Using the provided program the wrist only moves when one of the preset arm/wrist buttons on the controller is pressed. Your team may decide to add independent wrist movement for more refined control.

Below are a couple examples for adding wrist movement using the existing variables:

These examples are meant to replace the use of presets in favor of manual control of the arm and wrist.

Blocks:

Example 1:

This option functions similar to the gripper using the two preset positions. If "Up" on the Dpad is held down then the wrist will move and stay in the up position. When released, it will return down.

Example 2:

This option breaks the movement apart to move up or down when the matching button is pressed once on the Dpad. The button does not need to be held for it to remain in the set position.

OnBot Java:

Example 1:

        //Indepedent Wrist 
         if (gamepad1.dpad_up) {
          wrist.setPosition(wristUpPosition);
        } else {
          wrist.setPosition(wristDownPosition);
        }

Example 2:

        //Indepedent Wrist 
         if (gamepad1.dpad_up) {
          wrist.setPosition(wristUpPosition);
        } 
         if (gamepad1.dpad_down) {
          wrist.setPosition(wristDownPosition);
        }

Last updated