There’s no question that the brains inside Skydio drones are rather impressive. These things are masters of AI and autonomy, capable of carrying out tasks that can prove challenging for other drones. The team, naturally, knows everything there’s to know about building autonomous robots at scale. And now, it’s ready to share its learnings with the wider robotics community by making public SymForce – the library that powers the motion planner and computer vision systems used by Skydio drones.
SymForce is the result of five years of development by Skydio’s autonomy team in an environment where performance and code maintainability are crucial.
Written in C++, with Python bindings for experimentation, SymForce makes it possible to code a problem once, experiment with it symbolically, generate optimized code, and then run optimization problems based on the original problem definition.
The code generation library is also capable of adding components like 3D geometry types, camera models, noise models, and novel singularity handling techniques that make it possible to model complex robotics problems as symbolic expressions.
Hayk Martiros, Skydio’s VP of Autonomy, describes SymForce as an “incredible tool” that allows his team to quickly progress from rapid prototyping to the type of highly-optimized runtime code that powers Skydio drones. Here’s Martiros, explaining the impetus behind making SymForce open-source on GitHub:
This general-purpose workflow is effective for solving a wide variety of tasks in robotics and related domains, and can speed up common tasks by an order of magnitude while requiring less handwritten code and reducing the surface area for bugs.
We think its core components can be useful in any domain that requires algorithmic code and can benefit a wide range of audiences from high-school students to tech companies.
While SymForce already powers tens of thousands of robots at Skydio, the public library is new and is being released in beta stage. You can pip install it, play around with a formulation in a notebook, and deploy production code in a couple of hours. You can also head over to the Skydio blog to geek out on what makes SymForce so fast and how it can improve the computation of derivatives.