Paper: arcade input scaling


Below in the two links is a method for scaling the [-2, 2] range of (throttle command + turn command) down to [-1, 1] for use with an arcade drive.

This scaling is applied smoothly with no discontinuities anywhere in the input range. There is also no loss of information-- both outputs (power/speed commands to motor controllers on the left and right sides of the drivetrain) always depend on both inputs (the driver’s throttle and turn joystick commands).

Explainer document

Code example

This is something Triple Helix did over the summer… I was inspired to post this when @Ether’s 2012 whitepaper (tunable linear interpolation of the left and right wheelspeed commands across the input range of an arcade drive) popped up in the “latest” threads today. Looks like @Brandon_Martus uploaded the original files for it.


This was implemented and used this season by the team. Here is the code that was used.

1 Like

We’ll definitely have to check this out. Our driver would sometimes overshoot while moving the slightest amount. A sim of the normalization changes shows decreased sensitivity right in the mid-band of the turn axis. This is just what we’ve been struggling to figure out over the last few seasons.