Help me design my first parallel plate custom drive chassis and help me code this X-drive on a preprogrammed pedro pathed loop
According to Game Manual 0, a parallel plate drivetrain consists of drive pods made of two plates spaced 1 to 5 inches apart, housing the wheels and power transmission. To maximize space for other mechanisms like intakes, a pod width of 3 inches or less is recommended. You can connect these plates using standoffs or AndyMark churro extrusion secured with bolts through 1/4-inch holes, placing them strategically where support is needed. Additionally, dead axles can serve as standoff supports between the plates. When designing, you should mirror one completed drive pod to create the opposite side. For ground clearance, aim for 0.25 to 0.5 inches on flat foam tiles to prevent bottoming out. Motors should be mounted as low as possible, either face-mounted to the innermost plate or placed on a middle third plate to save space. Game Manual 0 advises against direct drive and spur gearboxes due to their vulnerability to shock loads, recommending planetary gearboxes and power transmission via belts, chains, or gears instead .
Game Manual 0 explains that an X-Drive uses four omni wheels mounted at 45-degree angles in the corners of the robot. This layout provides equal forward and strafe speeds, and it drives forwards, backwards, and sideways √(2) times faster than a standard wheel configuration with the same gear ratio and wheel size. However, it is slower when moving diagonally at 45 degrees. While X-Drives offer excellent agility and acceleration, they are highly susceptible to being pushed around by defense. Their offset wheel placement also makes packaging difficult, which often forces teams to use direct drive despite the risk of damaging the motor gearboxes .
The Pedro Pathing documentation notes that using this path follower requires Android Studio and an omnidirectional drivetrain, such as an X-drive. While the library natively supports mecanum setups, you must create a custom drivetrain class to run an X-drive. To do this, you extend the base drivetrain class and define all your motor and sensor hardware within it. It is highly recommended to build a separate constants class to store your configuration values and pass them to your drivetrain's constructor. You are required to implement the abstract calculation method, which processes the pathing, heading, and correction vectors to output an array of motor powers, as well as the abstract drive method that applies these calculated powers to your physical motors .
The indexed documentation does not cover the specific kinematic equations for X-drive motor power calculations, nor does it contain code for a preprogrammed path loop.