Setting up the PS3 Controller
I decided to use a PS3 Controller to control Sputnik remotely. Mainly because we have a PS3 with a spare controller.
The following link is a good tutorial on setting this up.
I use evdev to read the input from the controller. The following link gives a nice bit of sample code on reading the events, although I had to write a test program to display all the event values in order to map the events to the joysticks and buttons. The diagram given on this site doesn't match up with what I saw when testing.
Use pip3 instead of pip to install the Python 3 evdev libraries.
pip3 install evdev