I want to learn how to program the drone in C without using the available libraries and platforms. I want to be able to understand how everything is set at a fundamental level(SRAM). Also, I want to learn to implement complex algorithms, such as computer vision, in combination with drones. How should I learn that?
-
$\begingroup$ at this time, are you able to program a drone in C by using libraries? $\endgroup$– jsotolaMar 23, 2019 at 17:55
-
$\begingroup$ Welcome to Robotics Асмир Абдимажитов, but I'm afraid that Life Questions are off-topic. Choosing how to spend your time (books to read, classes to take, projects to construct, career to pursue etc.) may be difficult, but it's specific to you, so unlikely to help future visitors. Questions like this are welcome in Robotics Chat when you have the privilege. We prefer practical, answerable questions based on actual problems that you face, see How to Ask & tour. $\endgroup$– Mark BoothMar 25, 2019 at 17:55
1 Answer
Programming a drone consists of two levels. The first one is to create a remote control software. This task is done with microcontrollers and embedded system programming. The idea is, that the operator has a joystick, moves the joystick forward and the drone will react to the action. The first level is easy to master, and there are lot of tutorials available which can explain the details. In most cases, the microcontroller runs a realtime operating system and the drone controller sits on top, very similar to a firmware like the LeJOS operating system.
The second level in drone programming is way more complicated. Here is the idea not only to provide a remote control system but an artificial intelligence system. This kind of programming task has nothing to do with classical embedded system programming nor C programming at all. Instead, the task of creating an AI system is located in the domain of Academia / Matlab and deeplearning projects. It has to do with reading papers about pathplanning, implementing algorithms in software and thinking about reinforcement learning. Mastering the second level of drone programming is much harder and not real tutorials are available in the Internet.