Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Targeting researchers and other professionals
It has been pointed out that researchers and other professionals have much to offer to the project, but may find the layout and embedded aspect daunting. We plan to make a concerted effort to reduce the barrier to entry for experts who may not feel comfortable programming so close to the bare metal.
Several ideas have been passed around to facilitate this, from GUIs that aid in the setup of a development environment; to extensive documentation and worked examples detailing how to interface with the UAVOS; to a Matlab or Python API that functions in a walled garden.
In conversations with researchers around the world, it has been noted that the while many are comfortable programming algorithms, few are comfortable with C and even fewer are familiar with embedded concepts and limitations. It is likely that experts and professionals in other domains who are likely to want to use UAVs as a means to an end and not the end itself will also have similar feelings toward embedded programming.
With this realization, it becomes helpful to think about setting up a walled garden, where some power and flexibility is exchanged for ease of use.
The following is a rough outline of what might characterize a typical new developer from a controls background:
- Familiarity with programming concepts, but little to no familiarity with C
- No experience with the limitations of embedded environments
- No experience with pointers, concepts of stack and heap, or memory allocation
- Substantial degree of analytic thought
- Willingness to follow directions and work through tutorials
- Little to no experience with practical testing concepts
- Deep understanding of the mathematics and theoretical underpinnings of reactive and predictive control systems.
A walled garden for these experts would take some cues from Wiring, where tasks that are complex to set up, such as motor control or fetching state and sensor information, can be hidden behind a simple API.