IP Library › Granted Patent US 11,620,913
Granted Patent B2
US 11,620,913 · App. 16/669,350 · Granted Apr 4, 2023

Movable object application framework

Inventors: Arnaud Thiercelin (San Francisco, CA); Rohit Sant (Palo Alto, CA)
Assignee: DJI Technology, Inc.
G08G5/0069B64C39/024G05D1/0022G05D1/0088G05D1/101B64C2201/141
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 11,620,913
App. No.
16/669,350
Filed
Oct 30, 2019
Granted
Apr 4, 2023
Kind
B2
Examiner
RHEE, ROY B
Art Unit
3661
USPC
701/3
Abstract

Techniques are disclosed for communicating between a client device and an onboard data manager in a movable object environment. A data manager on a user device can identify an onboard data manager on a movable object. A feature list can be received from the onboard data manager, the feature list identifying at least one feature installed to the movable object. At least one input can be received by the user device, and a user device feature corresponding to the at least one input can be determined. It may be further determined that the user device feature is supported by the onboard data manager based on the feature list. In response to determining that the user device feature is supported, a first instruction corresponding to the at least one input can be sent to the movable object including the onboard data manager.

Claims (70)

1. A system for communicating instructions in a movable object environment, comprising:

at least one movable object including

a first processor,

a flight controller,

at least one sensor, and

an onboard data manager configured to implement a plurality of movable object features;

a user device including

a second processor, and

a device data manager configured to implement a plurality of user device features,

each user device feature corresponding to one of the plurality of movable object features, the device data manager including instructions that upon execution by the second processor cause the device data manager to:

identify the onboard data manager on the movable object, the movable object communicatively coupled to the user device;

receive a feature list from the onboard data manager, the feature list identifying at least one feature installed in the movable object;

receive at least one input by the user device to add a sensor to the movable object;

determine a user device feature corresponding to the at least one input to support the sensor;

determine that the user device feature is supported by the onboard data manager based on the feature list; and

in response to determining that the user device feature is supported, send a first instruction corresponding to the at least one input to the movable object including the onboard data manager, wherein the first instruction is to subscribe to data from the sensor, wherein one or more sensor packets that include the data embedded in the body of the one or more sensor packets are obtained from the movable object to the user device in response to the subscription of the data from the sensor, and wherein the data extracted from the body of the one or more sensor packets is used by the user device to control movement of the movable object.

2. The system of claim 1 , wherein a plurality of instructions are stored in a queue by the device data manager to be sent to the movable object.

3. The system of claim 2 , wherein the device data manager is further configured to determine to process the first instruction from the queue and send a plurality of flight control instructions to the flight controller.

4. The system of claim 3 , wherein the device data manager is further configured to determine that a second instruction from the queue is to be processed by the onboard data manager, and send the second instruction to the onboard data manager.

5. The system of claim 1 , wherein the plurality of movable object features include an onboard sensor interface configured to interface with the at least one sensor and the plurality of user device features include a corresponding user device sensor driver configured to interface with an onboard sensor driver.

6. The system of claim 1 , wherein the at least one input is to add a new feature to the at least one movable object, wherein the at least one input to add the new feature to the at least one movable object comprises uploading a movable object feature corresponding to the new feature to the movable object.

7. A method for communicating instructions in a movable object environment, comprising:

identifying, by a data manager on a user device, an onboard data manager on a movable object, the movable object communicatively coupled to the user device;

receiving a feature list from the onboard data manager by the data manager on the user device, the feature list identifying at least one feature installed in the movable object;

receiving, by the data manager on the user device, at least one input by the user device to add a sensor to the movable object;

determining, by the data manager on the user device, a user device feature corresponding to the at least one input;

determining, by the data manager on the user device, that the user device feature is supported by the onboard data manager based on the feature list; and

in response to determining that the user device feature is supported, sending, by the data manager on the user device, a first instruction corresponding to the at least one input to the movable object including the onboard data manager, wherein the first instruction is to subscribe, by the data manager, to data from the sensor, wherein one or more sensor packets that include the data embedded in the body of the one or more sensor packets are obtained from the movable object to the user device in response to the subscription of the data from the sensor, and wherein the data extracted from the body of the one or more sensor packets is used by the user device to control movement of the movable object.

8. The method of claim 7 , further comprising:

determining, by the data manager, that a second instruction is not supported by the onboard data manager based on the feature list; and

in response to determining that the second instruction is not supported by the onboard data manager, sending the second instruction to a flight controller at the movable object.

9. The method of claim 7 , wherein determining that the user device feature is supported by the onboard data manager comprises:

identifying, on the feature list, a feature corresponding to the user device feature;

comparing version data associated with the corresponding feature and the user device feature; and

determining that the version data matches.

10. The method of claim 7 , further comprising:

identifying a second feature corresponding to the at least one input;

identifying a second corresponding feature on the feature list;

comparing version data associated with the corresponding feature and the user device feature;

determining that the version data does not match;

requesting an updated second feature from a server; and

uploading the updated second feature to the onboard data manager.

11. The method of claim 7 , wherein the at least one feature includes an onboard sensor interface configured to interface with the sensor and the user device feature includes a corresponding user device sensor driver configured to interface with an onboard sensor driver.

12. The method of claim 7 , wherein the at least one input is to add a new feature to the movable object.

13. The method of claim 12 , wherein the at least one input to add the new feature to the movable object comprises uploading a movable object feature corresponding to the new feature to the movable object.

14. A non-transitory computer readable storage medium including instructions stored thereon which, when executed by one or more processors, cause the one or more processors to:

identify, by a data manager on a user device, an onboard data manager on a movable object, the movable object communicatively coupled to the user device;

receive a feature list from the onboard data manager, by the data manager on the user device, the feature list identifying at least one feature installed in the movable object;

receive, by the data manager on the user device, at least one input by the user device to add a sensor to the movable object;

determine, by the data manager on the user device, a user device feature corresponding to the at least one input;

determine, by the data manager on the user device, that the user device feature is supported by the onboard data manager based on the feature list; and

in response to determining that the user device feature is supported, send, by the data manager on the user device, a first instruction corresponding to the at least one input to the movable object including the onboard data manager, wherein the first instruction is to subscribe to data from the sensor, wherein one or more sensor packets that include the data embedded in the body of the one or more sensor packets are obtained from the movable object to the user device in response to the subscription of the data from the sensor, and wherein the data extracted from the body of the one or more sensor packets is used by the user device to control movement of the movable object.

15. The non-transitory computer readable storage medium of claim 14 , wherein the instructions, when executed, further cause the one or more processors to:

determine, by the data manager, that a second instruction is not supported by the onboard data manager based on the feature list; and

in response to determining that the second instruction is not supported by the onboard data manager, send the second instruction to a flight controller at the movable object.

16. The non-transitory computer readable storage medium of claim 14 , wherein the instructions to determine that the user device feature is supported by the onboard data manager, when executed, further cause the one or more processors to:

identify, on the feature list, a feature corresponding to the user device feature;

compare version data associated with the corresponding feature and the user device feature; and

determine that the version data matches.

17. The non-transitory computer readable storage medium of claim 14 , wherein the instructions, when executed, further cause the one or more processors to:

identify a second feature corresponding to the at least one input;

identify a second corresponding feature on the feature list;

comparing version data associated with the corresponding feature and the user device feature;

determine that the version data does not match;

request an updated second feature from a server; and

upload the updated second feature to the onboard data manager.

18. The non-transitory computer readable storage medium of claim 14 , wherein at least one feature includes an onboard sensor interface configured to interface with the sensor and the user device feature includes a corresponding user device sensor driver configured to interface with an onboard sensor driver.

19. The non-transitory computer readable storage medium of claim 14 , wherein the at least one input is to add a new feature to the movable object, and wherein the at least one input to add the new feature to the movable object comprises uploading a movable object feature corresponding to the new feature to the movable object.

20. The system of claim 1 , wherein the feature list is identified by an identifier associated with the onboard data manager or the movable object.

21. The system of claim 1 , wherein where a sensor packet includes a command identifier and a sequence number.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 050920 FRAME 0911. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 20, 2022
From: THIERCELIN, ARNAUD; SANT, ROHIT
To: DJI TECHNOLOGY, INC.
Reel/Frame 062541/0667 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2019
From: THIERCELIN, ARNAUD; SANT, ROHIT
To: DJI RESEARCH LLC
Reel/Frame 050920/0911 →
Continuity (2)
Continuation PCTUS2017050338 · Sep 6, 2017
Related Publication 20200066168A1 · Feb 27, 2020