c authored by Jeffrey Fisher's avatar Jeffrey Fisher
# Explanation: Theory of Joystick Control
By: Jeffrey Fisher
<br/>For: [Joystick Control](/training/joystick-control)
[[_TOC_]]
# Introduction
The purpose of this document is to describe the ideas behind implementing joystick control so that you can do so yourself.
Goals:
- Smooth, easy-to-use remote control of the catamaran.
# Control schemes
## Tank control
## Arcade control
# Scaling
## Linear scaling
The simplest method of scaling is linear. You take the input range and stretch or squish it (if necessary) to fit the needed output range. For example you could convert a number in $`[0, 255]`$ (joystick) to a number in $`[0, 1]`$ (percentage of thrust).
This is fine, but can be a bit "jumpy". It can be difficult to make small movements on a joystick, especially one on a relatively cheap controller (I'm sure airplane controls are a lot nicer mechanically). The linear scaling method leaves making precise movements up to the physical ability of the user and the controller.
## A better method: Cubic scaling