c9cb4b8c9ec0a9cf48a237b59072cc0e9788ee59
Pure functions, no state and no hardware, because this is the part that has to be right and the cheapest to check. Analog and blended: how fast the arm moves depends on how far the stick is pushed, and several axes move at once. That is the whole reason a pad beats the web console's four-sector dial pad, which can only ask for one axis at a time at one fixed speed. The deadzone rescales what is left of the travel rather than just clipping it, so the arm starts from zero just outside the band instead of jumping to a fraction of full speed the instant the stick leaves it. Expo bends the response because fine positioning happens near centre, where a linear stick gives almost no resolution. Up on the stick sends the arm along +X, matching the console's dial, so the two agree about which way is which.
dora-teleop
Languages
Python
89.5%
HTML
10.5%