This project has been selected as one of the 50 finalists in the Hackaday Prize 2021! A huge thank you to everyone that has supported the project in any way, and thank you to Hackaday for this incredible honor.
Robotics Ground Control Station Promotion video for Hackaday Prize 2021 finals
You can check the project logs for more detailed information.
- Project logs (from the idea to the final product, plus tests, conclusions & next steps)
- Project files (CAD files, general views, high level schematics, BOM)
- Project Components
- Project Github Repository
- Project instructions (these are high level instructions to guide you through the process. For more detail, you can check the logs)
Before you start reading, let me tell you this was a huge overkill for the use I'd give it. The project objective wasn't only the product itself, but the process is something I enjoy and value very much.
"UAV ground control station (GCS) is a land- or sea-based control centre that provides the facilities for human control of Unmanned Aerial Vehicles." - Wikipedia
Although I like the definition given above, it is specific for UAVs and I wouldn't limit this project only to UAV control, but also unmanned ground vehicles (UGV), among others.
The idea to make something like this came up when working on a previous personal project, the Cablecam. I saw the necessity to have a customizable, portable controller with enough power to run some over-average tasks such as inference using neural networks and at the time I made the following station.
It was simple, consisted of a Nvidia Jetson Nano as the main brains, a 7" screen and two small wireless adapters (2.4GHz). When in use, I connected an Arduino to allow for inputs such as a potentiometer. It served its purpose, it allowed me to control the cablecam, receive a video feed and a bit of telemetry. It also ran inference on the video feed to detect persons in the frame and follow them. The whole thing was implemented in Python. It worked, but it was somewhat sketchy.
The main issue with this base station is it was impractical, each time I went to use it I had to bring a keyboard, an AC wall adapter, the Arduino (it wasn't installed inside due to space restrictions), and if I wanted to add more user inputs (joysticks, buttons, etc), it would become unusable. The wireless communication worked, but was a bit poor due to the WiFi adapters being low power and working in 2.4GHz (this frequency range is the one in which most WiFi networks work, Bluetooth, and microwave ovens too). It served its purpose, but I could do better.
To solve the issues with my previous attempt at a base station, I wanted to make something that had more of a finished product kind of feel, and due to my inability to make a dense integration of components, it should be bigger. It would use the same computer (Jetson Nano) and screen, but hopefully operate in a different frequency in the unlicensed or free use spectrum. It would have many integrated inputs such as joysticks, switches and buttons. To allow for easy interfacing it should have at least a couple USB ports and an RJ45 easily accessible.
For this project I never considered anything else but a rugged, hard case. I wanted something simple, but functional and good looking. I had at my disposal a 3d printer at home and a CNC cutter at school, so having those manufacturing methods in mind, I got to work. Once I gathered all the components, I measured them and started designing.
The hard case has much less space on the lid, so most components were placed on the bottom part. The lid holds a 7" screen, the two wireless adapters with respective power switches and antenna connectors, an auxiliary 0.91" OLED display, cooling fans and vents, and antenna holders.
On the bottom piece I went for a stack design, having multiple panels stacked to allow for...Read more »