IP Library › Granted Patent US 12,606,303
Granted Patent B2
US 12,606,303 · App. 18/914,890 · Granted Apr 21, 2026

Synchronized pipeline flight controller

Inventor: Joseph Anthony Enke (Campbell, CA)
Assignee: Skydio, Inc.
B64C39/02B64C39/024G05D1/0088G05D1/227B64U10/13B64U10/14B64U20/87B64U30/21B64U50/19B64U50/39B64U70/90B64U2101/30B64U2201/20H04L67/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,606,303
App. No.
18/914,890
Granted
Apr 21, 2026
Kind
B2
Abstract

A pipeline in a controller may be configured to interface between sensors and actuators. The pipeline may elements such as drivers, filters, a combine, estimators, controllers, a mixer, and actuator controllers. The drivers may receive sensor data and pre-process the received sensor data. The filters may filter the pre-processed sensor data to generate filtered sensor data. The combine may package the filtered sensor data to generate packaged sensor data. The estimators may determine estimates of a position of a vehicle based on the packaged sensor data. The controllers may generate control signals based on the determined estimates. The mixer may modify the generated control signals based on limitations of the vehicle. The actuator controllers may generate actuator control signals based on the modified control signals to drive the actuators.

Claims (57)

1 . A controller system comprising:

one or more modules organized into a pipeline comprising:

drivers configured to receive sensor data from sensors and to pre-process the received sensor data;

controllers in communication with the sensors configured to interrupt the sensors and to request the sensors to transmit new sensor data that is pre-processed by the drivers;

a combine configured to package the new sensor data to generate packaged sensor data;

estimators configured to determine estimates of a position of a vehicle in communication with the controller system based on the packaged sensor data;

signal controllers configured to generate control signals based on the determined estimates;

actuator controllers configured to generate actuator control signals based on the generated control signals to drive actuators of the vehicle; and

a scheduler configured to schedule an execution of each of the one or more modules of the pipeline to provide a constant pipeline execution time, wherein the scheduler maintains the schedule of the execution of each of the one or more modules when the sensors are interrupted.

2 . The controller system of claim 1 , wherein each driver of the drivers is configured to receive sensor data from a sensor of the sensors periodically.

3 . The controller system of claim 1 , further comprising:

a plurality of filters configured to filter the sensor data to generate filtered sensor data, wherein packaging the filtered sensor data comprises combining the filtered sensor data for a period of time.

4 . The controller system of claim 1 , wherein determining the estimates includes estimating at least one of attitude information, altitude information, heading information, and absolute position of the vehicle relative to earth.

5 . The controller system of claim 1 ,

wherein the estimators comprises:

a first estimator configured to determine a first estimate, and

a second estimator configured to determine a second estimate, and

wherein the controllers comprises:

a low order controller configured to generate first control signals based on the first estimate, and

a high order controller configured to generate second control signals based on the second estimate and the first control signals.

6 . The controller system of claim 1 , wherein each of the actuator controllers are further configured to output an actuator control signal of the actuator control signals at a same instance.

7 . The controller system of claim 1 , further comprising:

a state machine configured to maintain a state of the pipeline.

8 . The controller system of claim 1 , wherein a time of the execution of each of the one or more modules of the pipeline is a constant.

9 . A method comprising:

pre-processing sensor data received from a plurality of sensors and generating pre-processed sensor data;

interrupting the plurality of sensors and providing new sensor data;

combining the new sensor data to generate new packaged sensor data;

determining estimates of a position of a vehicle based on the new packaged sensor data;

generating control signals based on the determined estimates;

generating actuator control signals based on the determined estimates to drive a plurality of actuators of the vehicle; and

scheduling an execution time of the plurality of actuators based upon the determined estimates, wherein the execution time is constant when the sensors are interrupted and new sensor data is provided.

10 . The method of claim 9 , further comprising receiving sensor data from the plurality of sensors periodically.

11 . The method of claim 9 , further comprising:

interrupting a calculation of an actuator control signal several times before generating the actuator control signals to drive the plurality of actuators of the vehicle.

12 . The method of claim 9 , wherein scheduling is performed based on a preemption and priority based scheduling.

13 . The method of claim 9 , wherein determining the estimates includes estimating at least one of attitude information, altitude information, heading information, and absolute position of the vehicle relative to earth.

14 . The method of claim 9 ,

wherein determining the estimates comprises determining a first estimate and determining a second estimate;

wherein generating the control signals comprises:

generating a first control signal based on the first estimate, and

generating a second control signal based on the second estimate and the first control signal.

15 . The method of claim 9 , further comprising:

triggering each of the plurality of actuator synchronously.

16 . A non-transitory computer-readable storage medium, comprising processor executable instructions comprising:

pre-process sensor data received from a plurality of sensors and generate pre-processed sensor data;

interrupt the plurality of sensors and provide new sensor data;

combine the new sensor data to generate new packaged sensor data;

determine estimates of a position of a vehicle based on the new packaged sensor data;

generate control signals based on the determined estimates;

generate actuator control signals based on the determined estimates to drive a plurality of actuators of the vehicle; and

schedule an execution time of the plurality of actuators based upon the determined estimates, wherein the execution time is constant when the sensors are interrupted and new sensor data is provided.

17 . The non-transitory computer-readable storage medium of claim 16 , further comprising receiving sensor data from the plurality of sensors periodically.

18 . The non-transitory computer-readable storage medium of claim 16 , further comprising:

interrupt a calculation of an actuator control signal several times before generating the actuator control signals to drive the plurality of actuators of the vehicle.

19 . The non-transitory computer-readable storage medium of claim 16 , wherein scheduling is performed based on a preemption and priority based scheduling.

20 . The non-transitory computer-readable storage medium of claim 16 , wherein determining the estimates includes estimating at least one of attitude information, altitude information, heading information, and absolute position of the vehicle relative to earth.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2024
From: ENKE, JOSEPH ANTHONY
To: GOPRO, INC.
Reel/Frame 069146/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2024
From: GOPRO, INC.
To: SKYDIO, INC.
Reel/Frame 069146/0805 →
Continuity (4)
Continuation 17183212 · Feb 23, 2021
Continuation 16382286 · Apr 12, 2019
Continuation 15268447 · Sep 16, 2016
Related Publication 20250108916A1 · Apr 3, 2025
References Cited (18)
US 9938008B2 · Stabler · 2018 [cited by examiner]
US 10268210B2 · Enke · 2019 [cited by applicant]
US 10417917B2 · Blomberg et al. · 2019 [cited by applicant]
US 10953983B2 · Enke · 2021 [cited by applicant]
US 11183072B2 · Blomberg et al. · 2021 [cited by applicant]
US 20020120663A1 · Binns · 2002 [cited by applicant]
US 20130173088A1 · Callou et al. · 2013 [cited by applicant]
US 20150280919A1 · Cullen et al. · 2015 [cited by applicant]
US 20160070264A1 · Hu et al. · 2016 [cited by applicant]
US 20170068252A1 · Yu · 2017 [cited by applicant]
US 20170222594A1 · Tao · 2017 [cited by applicant]
US 20180081353A1 · Enke · 2018 [cited by applicant]
US 20190235530A1 · Enke · 2019 [cited by applicant]
WO 2016061726A1 · 2016 [cited by applicant]
Chan et al., Sensor Data Fusion for Attitude Stabilization in a Low Cost Quad rotor System, Jun. 2011, 2011 IEEE 15th International Symposium on Consumer Electronics (Year: 2011). [cited by applicant]
Wikipedia, Kalman Filter, Sep. 15, 2015, Wikipedia Online Encyclopedia (Year: 2015). [cited by applicant]
Comer, ‘Computer Organization’, 2006, Computer Science Department, Purdue University [online] <URL: https://www.eecs.wsu.edu/-hauser/teaching/Arch-F07 /handouts/Chapter18.pdf> (Year: 2006). [cited by applicant]
FOLDOC (Free On-Line Dictionary of Computing), ‘Pipeline’, 1996, Free On-Line Dictionary of Computing [online] <URL: http://foldoc.org/pipeline> (Year: 1996). [cited by applicant]