US 12,353,504 B2
Computer-implemented symbolic differentiation using first-order retraction
Hayk Martirosyan, San Francisco, CA (US); Aaron Christopher Miller, San Francisco, CA (US); Nathan Leo Bucki, San Mateo, CA (US); Bradley Matthew Solliday, San Francisco, CA (US); Ryan David Kennedy, San Francisco, CA (US); Jack Louis Zhu, San Mateo, CA (US); Teodor Tomic, Redwood City, CA (US); Yixiao Sun, Stanford, CA (US); Josiah Timothy VanderMey, Redwood City, CA (US); Gareth Benoit Cross, San Carlos, CA (US); Peter Benjamin Henry, San Francisco, CA (US); Dominic William Pattison, Cupertino, CA (US); Samuel Shenghung Wang, Mountain View, CA (US); Kristen Marie Holtz, Menlo Park, CA (US); and Harrison Zheng, Palo Alto, CA (US)
Assigned to Skydio, Inc., San Mateo, CA (US)
Filed by Skydio, Inc., San Mateo, CA (US)
Filed on Jan. 27, 2023, as Appl. No. 18/161,026.
Claims priority of provisional application 63/344,755, filed on May 23, 2022.
Claims priority of provisional application 63/304,537, filed on Jan. 28, 2022.
Prior Publication US 2023/0280765 A1, Sep. 7, 2023
Int. Cl. G06F 17/16 (2006.01); B64C 39/02 (2023.01); B64U 10/00 (2023.01); G05D 1/00 (2024.01); G06F 9/52 (2006.01); G06F 17/18 (2006.01); G06V 10/75 (2022.01); B64U 101/30 (2023.01)
CPC G06F 17/16 (2013.01) [B64C 39/024 (2013.01); B64U 10/00 (2023.01); G05D 1/0022 (2013.01); G05D 1/0038 (2013.01); G05D 1/0088 (2013.01); G05D 1/0825 (2013.01); G05D 1/101 (2013.01); G06F 9/526 (2013.01); G06F 17/18 (2013.01); G06V 10/751 (2022.01); B64U 2101/30 (2023.01); B64U 2201/00 (2023.01); B64U 2201/10 (2023.01); B64U 2201/20 (2023.01)] 15 Claims
OG exemplary drawing
 
1. A method comprising:
accessing, at a computing device comprising processing circuitry and memory, an input element storage;
accessing, from the memory, a symbolic perturbation vector in an input tangent space;
retracting, using a symbolic computation engine of the computing device, the input element storage by the symbolic perturbation vector to generate a perturbed input element storage;
accessing, from the memory, a symbolic expression for an output element storage as a function of the input element storage;
substituting, in the symbolic expression using the symbolic computation engine, the perturbed input element storage for the input element storage;
computing, using the symbolic computation engine, local coordinates for a perturbed output relative to an unperturbed output;
generating, using the symbolic computation engine, a symbolic expression for a perturbed output element tangent vector as a function of input element storage and input tangent space perturbation;
computing, using the symbolic computation engine, a Jacobian of output tangent vector elements with respect to an input perturbation;
generating, using the symbolic computation engine, a symbolic expression for a tangent space Jacobian of the output element storage with respect to the input tangent space as a function of the input element storage and the input tangent space perturbation;
setting, using the symbolic computation engine, the symbolic perturbation vector to zero to generate a symbolic expression for the tangent space Jacobian of the output element storage with respect to the input tangent space as a function of the input element storage; and
controlling operation of an unmanned aerial vehicle based on the symbolic expression for the output element storage as the function of the input element storage, wherein the symbolic expression for the output element storage as the function of the input element storage represents a cost function for operating the unmanned aerial vehicle, wherein controlling the operation of the unmanned aerial vehicle comprises controlling the operation of the unmanned aerial vehicle to implement an optimization based on the cost function.