Our last challenge for the Human Drone Project was to replace the radio control with a joystick. After two months of trying, we finally got the great, real-time, lag-free control!
For this proof-of-concept, we used a video game joystick and a microcontroller to interface with the flight controller. We couldn't escape, the programming had to be done in C++ (we tried with Python and it wasn't possible to get zero-lag).
In our flight test, we couldn't use the dummy as he refused to learn how to manipulate a joystick... So I did it myself. But I'm not that crazy, we've developed three safety measures:
Our system overrides the radio control, but we programmed one of the joystick buttons to, if necessary, send the control back to the radio, which was on standby with Alvaro on the ground. We also made a failsafe: In case of any failure that interrupts the communication between the joystick and the FC (no more heartbeat), the control is returned to the radio automatically and immediately. On top of that, we've also programmed a button on the radio so that the control can be picked up from the ground at any time. Not to mention that we were in constant contact via a Bluetooth intercom.
I only dared to do a super short flight, but now, with the logs, we can evaluate the results.