WO2015085483A1 - Sensor fusion - Google Patents
Sensor fusion Download PDFInfo
- Publication number
- WO2015085483A1 WO2015085483A1 PCT/CN2013/088971 CN2013088971W WO2015085483A1 WO 2015085483 A1 WO2015085483 A1 WO 2015085483A1 CN 2013088971 W CN2013088971 W CN 2013088971W WO 2015085483 A1 WO2015085483 A1 WO 2015085483A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- movable object
- sensing system
- program instructions
- positional information
- signal
- Prior art date
Links
- 230000004927 fusion Effects 0.000 title description 36
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000001133 acceleration Effects 0.000 claims description 43
- 238000005259 measurement Methods 0.000 claims description 14
- 230000003287 optical effect Effects 0.000 claims description 11
- 230000033001 locomotion Effects 0.000 description 119
- 238000004422 calculation algorithm Methods 0.000 description 32
- 238000012545 processing Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 15
- 230000000007 visual effect Effects 0.000 description 14
- 238000013519 translation Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 230000002441 reversible effect Effects 0.000 description 6
- 238000007500 overflow downdraw method Methods 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010191 image analysis Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241000283690 Bos taurus Species 0.000 description 1
- 241000282465 Canis Species 0.000 description 1
- 241000283073 Equus caballus Species 0.000 description 1
- 241000282324 Felis Species 0.000 description 1
- 241000238631 Hexapoda Species 0.000 description 1
- 241000283984 Rodentia Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003331 infrared imaging Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
- G01S19/45—Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
- G01S19/45—Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement
- G01S19/47—Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement the supplementary measurement being an inertial measurement, e.g. tightly coupled inertial
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/10—Simultaneous control of position or course in three dimensions
- G05D1/101—Simultaneous control of position or course in three dimensions specially adapted for aircraft
Definitions
- Unmanned vehicles such as ground vehicles, air vehicles, surface vehicles, underwater vehicles, and spacecraft, have been developed for a wide range of applications including surveillance, search and rescue operations, exploration, and other fields. Such unmanned vehicles can often be controlled and navigated by a remote controller. In some instances, unmanned vehicles can be autonomous vehicles capable of sensing and navigating through an environment without guidance from a human controller.
- Various types of sensors can be used to generate positional information enabling control and navigation of an unmanned vehicle.
- current sensing systems for unmanned vehicles can be less than ideal.
- most sensing systems are accurate only under certain environmental conditions (e.g., indoors or outdoors, high altitude or low altitude) or with respect to certain types of movement (e.g., fast or slow, rotational or translational).
- the present invention provides systems, methods, and devices for collecting positional information and controlling a movable object.
- the systems, methods, and devices disclosed herein receive positional data for a movable object from a plurality of sensing systems and determine the positional information of the movable object through sensor fusion.
- the present invention enhances flexibility and accuracy of navigation systems for movable objects such as unmanned aerial vehicles.
- a method for collecting positional information for a movable object includes: receiving, at a memory, data from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; receiving, at the memory, data from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; determining, with aid of a processor, a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and calculating, with aid of the processor, the positional information of the movable object based on (i) the data from the first sensing system and (ii) data from the second system factoring in the weight value.
- the movable object is an unmanned aerial vehicle.
- calculating the positional information includes calculating location information and orientation information of the movable object.
- Calculating the location information can include calculating altitude, latitude, and longitude of the movable object.
- Calculating the orientation information can include calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
- receiving data from the second sensing system includes receiving data from a global positioning system (GPS) sensor used by the second sensing system.
- GPS global positioning system
- the strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
- receiving data from the first sensing system includes receiving data from one or more vision sensors used by the first sensing system.
- Receiving data from the one or more vision sensors can include receiving data from a plurality of vision sensors that are laterally spaced apart.
- the method can further include receiving data from third sensing system coupled to the movable object, said third sensing system using an inertial measurement unit (IMU).
- IMU inertial measurement unit
- receiving data from the first sensing system comprises receiving data from an IMU used by the first sensing system.
- the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
- the weight value is a numerical value.
- the weight value can be a value between zero and one.
- the method includes receiving an instruction for the movable object to return to a preset location.
- the method can further include calculating, with aid of the processor, a route for the movable object to travel to return to the present location, based on the positional information of the movable object.
- a non-transitory computer readable medium containing program instructions for collecting positional information for a movable object includes: program instructions for analyzing data received from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; program instructions for analyzing data received from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; program instructions for determining a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and program instructions for calculating the positional information of the movable object based on (i) the data from the first sensing system and (ii) data from the second system factoring in the weight value.
- the movable object is an unmanned aerial vehicle.
- the program instructions for calculating the positional information include program instructions for calculating location information and orientation information of the movable object.
- the program instructions for calculating location information can include program instructions for calculating altitude, latitude, and longitude of the movable object.
- the program instructions for calculating orientation information can include program instructions for calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
- the program instructions for analyzing data received from the second sensing system include program instructions for analyzing data received from a GPS sensor used by the second sensing system.
- the strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
- the program instructions for analyzing data received from the first sensing system includes program instructions for analyzing data received from one or more vision sensors used by the first sensing system.
- the program instructions for analyzing data received from the one or more vision sensors can include program instructions for analyzing data received from a plurality of vision sensors that are laterally spaced apart.
- the computer readable medium can further include program instructions for analyzing data received from a third sensing system coupled to the movable object, the third sensing system using an IMU.
- the program instructions for analyzing data received from the first sensing system include program instructions for analyzing data received from an IMU used by the first sensing system.
- the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
- the weight value is a numerical value. The weight value can be a value between zero and one.
- the computer readable medium further includes program instructions for receiving an instruction for the movable object to return to a preset location.
- the computer readable medium can further include program instructions for calculating, with aid of the processor, a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
- a system for collecting positional information for a movable object includes: a first sensing system coupled to the movable object, the first sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; a second sensing system coupled to the movable object, the second sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; and a processor that: (a) determines a weight value for the signal from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and (b) calculates the positional information of the movable object based on (i) the data from the first sensing system and (ii) the data from the second sensing system factoring in the weight value.
- the movable object is an unmanned aerial vehicle.
- the positional information includes location information and orientation information of the movable object.
- the location information can include altitude, latitude, and longitude of the movable object.
- the orientation information can include an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
- the second sensing system uses a GPS sensor.
- the strength of the signal can depend on a number of GPS signals received or a magnitude of a GPS signal received.
- the first sensing system uses one or more vision sensors.
- the first sensing system can use a plurality of vision sensors that are laterally spaced apart.
- Data can further be received from a third sensing system coupled to the movable object, said third sensing system using an IMU.
- the first sensing system uses an IMU.
- the signal useful for determining the positional information includes an optical signal.
- the signal useful for determining the positional information includes a signal from a satellite.
- the signal useful for determining the positional information includes a signal indicative of velocity or acceleration.
- the weight value is a numerical value.
- the weight value can be a value between zero and one.
- the system further includes a receiver for receiving an instruction for the movable object to return to a preset location.
- the processor can be configured to calculate a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
- a method for collecting positional information for a movable object includes: (a) receiving, at a memory, data from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (b) receiving, at the memory, data from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (c) determining, with aid of a processor, whether the signal received by the sensor of the second sensing system has a strength that exceeds a predetermined threshold; and (d) calculating, with aid of the processor, the positional information of the movable object based on (i) the data from the first sensing system without the data from the second sensing system when the strength of the signal of step (b) does not exceed the predetermined threshold, and (ii) data
- the movable object is an unmanned aerial vehicle.
- calculating the positional information includes calculating location information and orientation information of the movable object.
- Calculating the location information can include calculating altitude, latitude, and longitude of the movable object.
- Calculating the orientation information can include calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
- receiving data from the first sensing system includes receiving data from a non-GPS sensing system used by the first sensing system.
- Receiving data from the non-GPS sensing system can include receiving data from one or more vision sensors used by the non-GPS sensing system.
- Receiving data from the one or more vision sensors can include receiving data from a plurality of vision sensors laterally spaced apart.
- the method can further include receiving data from third sensing system coupled to the movable object, said third sensing system using an IMU.
- Receiving data from the non-GPS sensing system can include receiving data from an IMU used by the non-GPS sensing system.
- receiving data from the second sensing system includes receiving data from a GPS sensor used by the second sensing system.
- the strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
- the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
- the predetermined threshold is greater than a minimum strength of a signal that permits the second sensing system to operate.
- the predetermined threshold is inputted by a user.
- a non-transitory computer readable medium containing program instructions for collecting positional information for a movable object includes: (a) program instructions for analyzing data received from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (b) program instructions for analyzing data received from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (c) program instructions for determining whether the signal received by the sensor of the second sensing system has a strength that exceeds a predetermined threshold; and program instructions for calculating the positional information of the movable object based on (i) the analyzed data from the first sensing system without the analyzed data from the second sensing system when the strength of the signal of (b) does not exceed the predetermined threshold, and
- the movable object is an unmanned aerial vehicle.
- the program instructions for calculating the positional information include program instructions for calculating location information and orientation information of the movable object.
- the program instructions for calculating the location information can include program instructions for calculating altitude, latitude, and longitude of the movable object.
- the program instructions for calculating the orientation information can include program instructions for calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
- the program instructions for analyzing data received from the first sensing system include program instructions for analyzing data received from a non-GPS sensing system used by the first sensing system.
- the program instructions for analyzing data received from the non-GPS sensing system can include program instructions for analyzing data received from one or more vision sensors used by the non-GPS sensing system.
- the program instructions for analyzing data received from the one or more vision sensors can include program instructions for analyzing data received from a plurality of vision sensors laterally spaced apart.
- the computer readable medium can further include program instructions for analyzing data received from third sensing system coupled to the movable object, said third sensing system using an IMU.
- the program instructions for analyzing data received from the non-GPS sensing system can include program instructions for analyzing data received from an IMU used by the non-GPS sensing system.
- the program instructions for analyzing data received from the second sensing system include program instructions for analyzing data received from a GPS sensor used by the second sensing system.
- the strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
- the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
- the predetermined threshold is greater than a minimum strength of a signal that permits the second sensing system to operate.
- the predetermined threshold is inputted by a user.
- a system for collecting positional information for a movable object includes: (a) a first sensing system coupled to the movable object, the first sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; (b) a second sensing system coupled to the movable object, the second sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; and (c) a processor that: (1) determines whether the signal received by the sensor of the second sensing system has a strength that exceeds a predetermined threshold; and (2) calculate the positional information of the movable object based on (i) the data from the first sensing system without the data from the second sensing system when the strength of the signal of step (b) does not exceed the predetermined threshold, and (ii) data from the first sensing system with the data from the second sensing system when the strength of the signal of step (b) exceeds
- the movable object is an unmanned aerial vehicle.
- the positional information includes location information and orientation information of the movable object.
- the location information can include altitude, latitude, and longitude of the movable object.
- the orientation information can include angle of the movable object with respect to a yaw axis, angle with respect to a roll axis, and angle with respect to a pitch axis.
- the first sensing system is a non-GPS sensing system.
- the non-GPS sensing system can use one or more vision sensors.
- the non-GPS sensing system can use a plurality of vision sensors laterally spaced apart.
- Data can further be received from a third sensing system coupled to the movable object, said third sensing system using an IMU.
- the non-GPS sensing system can use an IMU.
- the second system is a GPS system.
- the strength of the signal can depend on a number of GPS signals received or a magnitude of a GPS signal received.
- the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
- the predetermined threshold is greater than a minimum strength of a signal that permits the second sensing system to operate.
- the predetermined threshold is inputted by a user.
- a method for collecting positional information for a movable object includes: receiving, at a memory, an instruction guiding the movable object to follow a pre-stored path that includes positional information for the movable object, the said positional information including location information and orientation information of the movable object; receiving, at a receiver, a velocity profile for the movable object to follow while the movable object is following the pre-stored path; receiving, from one or more sensing systems of the movable object, at least one signal indicative of a position of the movable object relative to the pre-stored path; and causing, with aid of one or more actuators of the movable object, the movable object to follow the pre-stored path in accordance with the velocity profile in response to the at least one signal indicative of the position of the movable object.
- receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a path that the movable object has previously traveled and recorded.
- Receiving the velocity profile can include receiving a velocity value that is different from a velocity of the movable object along the pre-stored path when the movable object previously traveled the pre-stored path.
- receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a reverse of a path that the movable object has previously traveled and recorded.
- receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a path template including one or more path parameters.
- receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a path inputted by a user.
- receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a loop that the movable object is capable of following repeatedly.
- receiving the velocity profile includes receiving a variable velocity over the pre-stored path.
- receiving the velocity profile includes receiving a velocity profile inputted by a user.
- causing the movable object to follow the pre-stored path includes altering the velocity profile while the movable object is following the pre-stored path.
- the movable object has a plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
- the movable object is an unmanned aerial vehicle.
- the one or more actuators are motors of the movable object.
- a non-transitory computer readable medium containing program instructions for controlling a movable object includes: program instructions for receiving a pre-stored path that includes positional information for the movable object to follow, the said positional information including location information and orientation information of the movable object; program instructions for receiving a velocity profile for the movable object to follow while the movable object is following the pre-stored path; program instructions for analyzing at least one signal indicative of a position of the movable object relative to the pre-stored path from one or more sensing systems of the movable object; and program instructions for providing instructions to one or more actuators of the movable object to cause the movable object to follow the pre-stored path in accordance with the velocity profile in response to the at least one signal indicative of the position of the movable object.
- the program instructions for receiving the pre-stored path include program instructions for receiving a path that the movable object has previously traveled and recorded.
- the program instructions for receiving the velocity profile can include program instructions for receiving a velocity value that is different from a velocity of the movable object along the pre-stored path when the movable object previously traveled the pre-stored path.
- the program instructions for receiving the pre-stored path include program instructions for receiving a reverse of a path that the movable object has previously traveled and recorded.
- the program instructions for receiving the pre-stored path include program instructions for receiving a path template including one or more path parameters.
- the program instructions for receiving the pre-stored path include program instructions for receiving a path inputted by a user.
- the program instructions for receiving the pre-stored path include program instructions for receiving a loop that the movable object is capable of following repeatedly.
- the program instructions for receiving the velocity profile include program instructions for receiving a variable velocity over the pre-stored path.
- the program instructions for receiving the velocity profile include program instructions for receiving a velocity profile inputted by a user.
- the program instructions for providing instructions to cause the movable object to follow the pre-stored path include program instructions for altering the velocity profile while the movable object is following the pre-stored path.
- the movable object has a plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
- the movable object is an unmanned aerial vehicle.
- the one or more actuators are motors of the movable object.
- a system for controlling a movable object includes: a memory comprising a pre-stored path that includes positional information for the movable object to follow, the said positional information including location information and orientation information of the movable object; a receiver for receiving a velocity profile for the movable object to follow while the movable object is following the pre-stored path; one or more sensing systems coupled to the movable object, said one or more sensing systems providing at least one signal indicative of a position of the movable object relative to the pre-stored path; and one or more actuators of the movable object, said one or more actuators configured to cause the movable object to follow the pre-stored path in accordance with the velocity profile in response to the at least one signal indicative of the position of the movable object.
- the pre-stored path is a path that the movable object has previously traveled and recorded.
- the velocity profile can include a velocity value that is different from a velocity of the movable object along the pre-stored path when the movable object previously traveled the pre-stored path.
- the pre-stored path is a reverse of a path that the movable object has previously traveled and recorded.
- the pre-stored path is a path template including one or more path parameters.
- the pre-stored path is a path inputted by a user.
- the pre-stored path is a loop that the movable object is capable of following repeatedly.
- the velocity profile includes a variable velocity over the pre-stored path.
- the velocity profile is inputted by a user.
- the velocity profile is altered while the movable object is following the pre-stored path.
- the movable object has a plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
- the movable object is an unmanned aerial vehicle.
- the one or more actuators are motors of the movable object.
- a method of controlling a velocity of a movable object includes: receiving, at a receiver, an instruction for movement of the movable object, said movement including translational movement and angular movement of the movable object;
- receiving the instruction for movement of the movable object includes receiving an instruction provided from a remote control.
- Receiving the instruction provided from the remote control can include receiving a user inputted instruction for movement of the movable object into the remote control.
- receiving the instruction for movement of the movable object includes receiving an instruction provided from a memory comprising a pre-stored path for the movable object.
- providing the velocity rules includes providing a maximum velocity at which the movable object is permitted to move.
- Providing the maximum velocity can include providing a constant fixed velocity rate.
- Providing the maximum velocity can include calculating the maximum velocity based on the at least one signal indicative of the position of the movable object.
- providing the velocity rules includes providing a constant velocity at which the movable object is permitted to move.
- Providing the constant velocity can include providing a linear velocity or an angular velocity.
- the movable object has a plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
- the movable object is an unmanned aerial vehicle.
- the one or more actuators are motors of the movable object.
- a non- transitory computer readable medium containing program instructions for controlling a velocity of a movable object includes: program instructions for receiving an instruction for movement of the movable object, said movement including translational movement and angular movement of the movable object; program instructions for providing one or more velocity rules for the movable object to follow while the movable object is moving in response to the instruction for movement; program instructions for analyzing at least one signal indicative of a position of the movable object; and program instructions for providing instructions to one or more actuators of the movable object to cause the movable object to move in response to the instruction for movement in accordance with the velocity rules, based on the at least one signal indicative of the position of the movable object.
- the program instructions for receiving the instruction for movement of the movable object include program instructions for receiving an instruction provided from a remote control.
- the program instructions for receiving the instruction provided from the remote control can include program instructions for receiving a user inputted instruction for movement of the movable object into the remote control.
- the program instructions for receiving the instruction for movement of the movable object include program instructions for receiving an instruction provided from a memory comprising a pre-stored path for the movable object.
- the program instructions for providing the velocity rules include program instructions for providing a maximum velocity at which the movable object is permitted to move.
- the program instructions for providing the maximum velocity can include program instructions for providing a constant fixed velocity rate.
- the program instructions for providing the maximum velocity can include program instructions for calculating the maximum velocity based on the at least one signal indicative of the position of the movable object.
- the program instructions for providing the velocity rules include program instructions for providing a constant velocity at which the movable object is permitted to move.
- the program instructions for providing the constant velocity can include program instructions for providing a linear velocity or an angular velocity.
- the movable object has a plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
- the movable object is an unmanned aerial vehicle.
- the one or more actuators are motors of the movable object.
- a system for controlling a velocity of a movable object includes: a receiver for receiving an instruction for movement of the movable object, said movement including translational movement and angular movement of the movable object; a memory storing one or more velocity rules for the movable object to follow while the movable object is moving in response to the instruction for movement; one or more sensing systems coupled to the movable object, said one or more sensing systems providing at least one signal indicative of a apposition of the movable object; and one or more actuators of the movable object, said one or more actuators configured to cause the movable object to move in response to the instruction for movement in accordance with the velocity rules, based on the at least one signal indicative of the position of the movable object.
- the instruction for movement of the movable object is provided from a remote control.
- the instructions for movement of the movable object can be input by a user into the remote control.
- the instruction for movement of the movable object is provided from a memory comprising a pre-stored path for the movable object.
- the velocity rules include a maximum velocity at which the movable object is permitted to move.
- the maximum velocity can be a constant fixed velocity rate.
- the maximum velocity can be calculated based on the at least one signal indicative of the position of the movable object.
- the velocity rules include a constant velocity at which the movable object is permitted to move.
- the constant velocity can be a linear velocity.
- the constant velocity can be an angular velocity.
- the movable object has as plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
- the movable object is an unmanned aerial vehicle.
- the one or more actuators are motors of the movable object.
- a method of displaying a flight trajectory of an unmanned aerial vehicle includes: receiving, from one or more sensing systems of the unmanned aerial vehicle, at least one signal indicative of a position of the unmanned aerial vehicle, the position of the unmanned aerial vehicle including an unmanned aerial vehicle location and an unmanned aerial vehicle orientation; and displaying in real-time, on a user interface of a terminal remote to the unmanned aerial vehicle, the unmanned aerial vehicle location in a three-dimensional coordinate system and the unmanned aerial vehicle orientation via a visual indicator in response to the at least one signal.
- receiving the at least one signal includes receiving at least one signal from a plurality of sensing systems using different types of sensors.
- Receiving the at least one signal can include receiving at least one signal from two or more of the following: stereo vision sensing system, IMU, GPS system.
- receiving the at least one signal includes receiving at least one signal from one or more sensing systems rigidly coupled to the unmanned aerial vehicle.
- the method further includes receiving, at the terminal, an input from a user to control movement of the unmanned aerial vehicle.
- the terminal is a handheld object.
- the method includes displaying the position of the unmanned aerial vehicle on a touchscreen of the terminal.
- displaying the visual indicator includes displaying an arrow indicative of a direction that a payload of the unmanned aerial vehicle is facing.
- displaying the unmanned aerial vehicle orientation includes displaying an arrow indicative of a direction in which the unmanned aerial vehicle is positioned to move.
- the distance between shafts of opposite rotors of the unmanned aerial vehicle has dimensions ranging from 5 cm to 5 m.
- the unmanned aerial vehicle is a rotorcraft.
- the method further includes receiving an input from a user to adjust the orientation of the three-dimensional coordinate system, and adjusting the visual indicator indicative of the unmanned aerial vehicle orientation correspondingly.
- a non- transitory computer readable medium containing program instructions for displaying a flight trajectory of an unmanned aerial vehicle is provided.
- the computer readable medium includes: program instructions for analyzing at least one signal indicative of a position of the unmanned aerial vehicle from one or more sensing systems of the unmanned aerial vehicle, the position of the unmanned aerial vehicle including an unmanned aerial vehicle location and an unmanned aerial vehicle orientation; and program instructions for displaying in real-time, on a user interface of a terminal remote to the unmanned aerial vehicle, the unmanned aerial vehicle location in a three-dimensional coordinate system and the unmanned aerial orientation via a visual indicator in response to the at least one signal.
- the program instructions for analyzing the at least one signal include program instructions for analyzing at least one signal from a plurality of sensing systems using different types of sensors.
- the program instructions for analyzing the at least one signal can include program instructions for analyzing at least one signal from two or more of the following: stereo vision sensing system, IMU, GPS system.
- the program instructions for analyzing the at least one signal include program instructions for analyzing at least one signal from one or more sensing systems rigidly coupled to the unmanned aerial vehicle.
- the computer readable medium further includes program instructions for receiving, at the terminal, an input from a user to control movement of the unmanned aerial vehicle.
- the terminal is a handheld object.
- the computer readable medium includes program instructions for displaying the position of the unmanned aerial vehicle on a touchscreen of the terminal.
- the program instructions for displaying the visual indicator include program instructions for displaying an arrow indicative of a direction that a payload of the unmanned aerial vehicle is facing.
- the program instructions for displaying the unmanned aerial vehicle orientation includes program instructions for displaying an arrow indicative of a direction in which the unmanned aerial vehicle is positioned to move.
- the distance between shafts of opposite rotors of the unmanned aerial vehicle has dimensions ranging from 5 cm to 5 m.
- the unmanned aerial vehicle is a rotorcraft.
- the computer readable medium further includes program instructions for receiving an input from a user to adjust the orientation of the three-dimensional coordinate system, and program instructions for adjusting the visual indicator indicative of the unmanned aerial vehicle orientation correspondingly.
- a system for displaying a flight trajectory of an unmanned aerial vehicle includes: one or more sensing systems coupled to the unmanned aerial vehicle, providing at least one signal indicative of a position of the unmanned aerial vehicle, the position of the unmanned aerial vehicle including an unmanned aerial vehicle location and an unmanned aerial vehicle orientation; and a terminal remote to the UAV including a user interface showing the unmanned aerial vehicle location in a three-dimensional coordinate system and the unmanned aerial vehicle orientation via a visual indicator in response to the at least one signal.
- the unmanned aerial vehicle has as plurality of sensing systems using different types of sensors.
- the sensing system can include two or more of the following: stereo vision sensing system, IMU, GPS system.
- the one or more sensing systems are rigidly coupled to the unmanned aerial vehicle.
- input from a user to control movement of the unmanned aerial vehicle can further be received at the terminal.
- the terminal is a handheld object.
- the position of the unmanned aerial vehicle is displayed on a touchscreen of the terminal.
- the visual indicator of the unmanned aerial vehicle orientation is an arrow indicative of a direction that a payload of the unmanned aerial vehicle is facing.
- the visual indicator of the unmanned aerial vehicle orientation is an arrow indicative of a direction in which the unmanned aerial vehicle is positioned to move.
- the distance between shafts of opposite rotors of the unmanned aerial vehicle has dimensions ranging from 5 cm to 5 m.
- the unmanned aerial vehicle is a rotorcraft.
- an input from a user can further be received to adjust the orientation of the three-dimensional coordinate system, and adjust the visual indicator indicative of the unmanned aerial vehicle orientation correspondingly.
- FIG. 1 illustrates an unmanned aerial vehicle, in accordance with embodiments of the present invention
- FIG. 2 illustrates a movable object including a carrier and a payload, in accordance with embodiments of the present invention
- FIG. 3 illustrates a movable object with a plurality of sensing systems, in accordance with embodiments of the present invention
- FIG. 4 is a schematic illustration by way of block diagram of a system for collecting positional information for a movable object, in accordance with embodiments of the present invention.
- FIG. 5 is a schematic illustration by way of block diagram of a sensor fusion system for determining positional and/or motion information for a movable object, in accordance with embodiments of the present invention
- FIG. 6 is a flow chart illustrating a sensor fusion algorithm for state estimation of positional and/or motion information for a movable object, in accordance with embodiments of the present invention
- FIG. 7 illustrates a system for stereo vision, in accordance with embodiments of the present invention.
- FIG. 8 is a schematic illustration by way of block diagram of a system for navigation of a movable object along a predetermined flight path, in accordance with embodiments of the present invention.
- FIG. 9 is a schematic illustration by way of block diagram of a system for velocity control of a movable object, in accordance with embodiments of the present invention.
- FIG. 10 illustrates a user interface for control and navigation of a movable object, in accordance with embodiments of the present invention.
- the present invention provides systems, methods, and devices for collecting positional and/or motion information for a movable object.
- the systems, methods, and devices described herein can be used to control a movable object (e.g., with respect to position, velocity, and/or acceleration). Additionally, the systems, methods, and devices described herein can be used to display information relating to the movable object (e.g., a flight trajectory of the movable object).
- a flight trajectory of the movable object e.g., a flight trajectory of the movable object.
- the systems, methods, and devices disclosed herein can be applied to any suitable movable object.
- the movable object can be configured to move within any suitable environment, such as in air (e.g., a fixed-wing aircraft, a rotary-wing aircraft, or an aircraft having neither fixed wings nor rotary wings), in water (e.g., a ship or a submarine), on ground (e.g., a motor vehicle or a train), in space (e.g., a spaceplane, a satellite, or a probe), or any combination of these environments.
- the movable object can be a vehicle, such as a vehicle described elsewhere herein.
- the movable object can be a living subject, such as a human or an animal.
- Suitable animals can include avines, canines, felines, equines, bovines, ovines, porcines, delphines, rodents, or insects.
- the movable object may be capable of moving freely within the environment with respect to six degrees of freedom (e.g., three degrees of freedom in translation and three degrees of freedom in rotation). Alternatively, the movement of the movable object can be constrained with respect to one or more degrees of freedom, such as by a predetermined path, track, or orientation.
- the movement can be actuated by any suitable actuation mechanism, such as an engine or a motor.
- the actuation mechanism of the movable object can be powered by any suitable energy source, such as electrical energy, magnetic energy, solar energy, wind energy, gravitational energy, chemical energy, nuclear energy, or any suitable combination thereof.
- the movable object can be a vehicle.
- Suitable vehicles may include water vehicles, aerial vehicles, space vehicles, or ground vehicles.
- aerial vehicles may be fixed-wing aircraft (e.g., airplane, gliders), rotary-wing aircraft (e.g., helicopters, rotorcraft), aircraft having both fixed wings and rotary wings, or aircraft having neither (e.g., blimps, hot air balloons).
- a vehicle such as an aerial vehicle can be self-propelled, such as self-propelled through the air, on or in water, in space, or on the ground.
- a self-propelled vehicle can utilize a propulsion system, such as a propulsion system including one or more engines, motors, wheels, axles, magnets, rotors, propellers, blades, nozzles, or any suitable combination thereof.
- the propulsion system can be used to enable the movable object to take off from a surface, land on a surface, maintain its current position and/or orientation (e.g., hover), change orientation, and/or change position.
- the propulsion system can include one or more rotors.
- a rotor can include one or more blades (e.g., one, two, three, four, or more blades) affixed to a central shaft.
- the blades can be disposed symmetrically or asymmetrically about the central shaft.
- the blades can be turned by rotation of the central shaft, which can be driven by a suitable motor or engine.
- the blades can be configured to spin in a clockwise rotation and/or a counterclockwise rotation.
- the rotor can be a horizontal rotor (which may refer to a rotor having a horizontal plane of rotation), a vertically oriented rotor (which may refer to a rotor having a vertical plane of rotation), or a rotor tilted at an intermediate angle between the horizontal and vertical positions.
- horizontally oriented rotors may spin and provide lift to the movable object.
- Vertically oriented rotors may spin and provide thrust to the movable object.
- Rotors oriented an intermediate angle between the horizontal and vertical positions may spin and provide both lift and thrust to the movable object.
- One or more rotors may be used to provide a torque counteracting a torque produced by the spinning of another rotor.
- the movable object can be controlled remotely by a user or controlled locally by an occupant within or on the movable object.
- the movable object is an unmanned movable object, such as an unmanned aerial vehicle (UAV).
- UAV unmanned aerial vehicle
- the movable object can be controlled by a human or an autonomous control system (e.g., a computer control system), or any suitable combination thereof.
- the movable object can be an autonomous or semi-autonomous robot, such as a robot configured with an artificial intelligence.
- the movable object can have any suitable size and/or dimensions.
- the movable object may be of a size and/or dimensions to have a human occupant within or on the vehicle.
- the movable object may be of size and/or dimensions smaller than that capable of having a human occupant within or on the vehicle.
- the movable object may be of a size and/or dimensions suitable for being lifted or carried by a human.
- the movable object may be larger than a size and/or dimensions suitable for being lifted or carried by a human.
- the movable object may have a maximum dimension (e.g., length, width, height, diameter, diagonal) of less than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.
- the maximum dimension may be greater than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.
- the distance between shafts of opposite rotors of the movable object may be less than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.
- the distance between shafts of opposite rotors may be greater than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.
- the movable object may have a volume of less than 100 cm x
- the total volume of the movable object may be less than or equal to about: 1 cm 3 , 2 cm 3 , 5 cm 3 , 10 cm 3 , 20 cm 3 , 30 cm 3 , 40 cm 3 , 50 cm 3 , 60 cm 3 , 70 cm 3 , 80 cm 3 , 90 cm 3 , 100 cm 3 , 150 cm 3 , 200 cm 3 , 300 cm 3 , 500 cm 3 , 750 cm 3 , 1000 cm 3 , 5000 cm 3 , 10,000 cm 3 , 100,000 cm 3 , 1 m 3 , or 10 m 3 .
- the total volume of the movable object may be greater than or equal to about: 1 cm 3 , 2 cm 3 , 5 cm 3 , 10 cm 3 , 20 cm 3 , 30 cm 3 , 40 cm 3 , 50 cm 3 , 60 cm 3 , 70 cm 3 , 80 cm 3 , 90 cm 3 , 100 cm 3 , 150 cm 3 , 200 cm 3 , 300 cm 3 , 500 cm 3 , 750 cm 3 , 1000 cm 3 , 5000 cm 3 , 10,000 cm 3 , 100,000 cm 3 , 1 m 3 , or 10 m 3 .
- the movable object may have a footprint (which may refer to the lateral cross-sectional area encompassed by the movable object) less than or equal to about: 32,000 cm 2 , 20,000 cm 2 , 10,000 cm 2 , 1,000 cm 2 , 500 cm 2 , 100 cm 2 , 50 cm 2 , 10 cm 2 , or 5 cm 2 .
- the footprint may be greater than or equal to about: 32,000 cm 2 , 20,000 cm 2 , 10,000 cm 2 , 1,000 cm 2 , 500 cm 2 , 100 cm 2 , 50 cm 2 , 10 cm 2 , or 5 cm 2 .
- the movable object may weigh no more than 1000 kg.
- the weight of the movable object may be less than or equal to about: 1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60 kg, 50 kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10 kg, 9 kg, 8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1 kg, 0.05 kg, or 0.01 kg.
- the weight may be greater than or equal to about: 1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60 kg, 50 kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10 kg, 9 kg, 8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1 kg, 0.05 kg, or 0.01 kg.
- a movable object may be small relative to a load carried by the movable object.
- the load may include a payload and/or a carrier, as described in further detail below.
- a ratio of a movable object weight to a load weight may be greater than, less than, or equal to about 1:1.
- a ratio of a movable object weight to a load weight may be greater than, less than, or equal to about 1 : 1.
- a ratio of a carrier weight to a load weight may be greater than, less than, or equal to about 1 : 1.
- the ratio of an movable object weight to a load weight may be less than or equal to: 1 :2, 1:3, 1:4, 1 :5, 1 :10, or even less. Conversely, the ratio of a movable object weight to a load weight can also be greater than or equal to: 2:1, 3:1, 4:1, 5: 1, 10: 1, or even greater.
- the movable object may have low energy consumption.
- the movable object may use less than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less.
- a carrier of the movable object may have low energy consumption.
- the carrier may use less than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less.
- a payload of the movable object may have low energy consumption, such as less than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less.
- FIG. 1 illustrates an example of a movable object which may be an unmanned aerial vehicle (UAV) 100, in accordance with embodiments of the present invention.
- the UAV 100 can include a propulsion system having four rotors 102, 104, 106, and 108. Any number of rotors may be provided (e.g., one, two, three, four, five, six, or more).
- the rotors or other propulsion systems of the unmanned aerial vehicle may enable the unmanned aerial vehicle to hover/maintain position, change orientation, and/or change location.
- the distance between shafts of opposite rotors can be any suitable length 110.
- the length 110 can be less than or equal to 2 m, or less than equal to 5 m.
- the length 110 can be within a range from 40 cm to 1 m, from 10 cm to 2 m, or from 5 cm to 5 m.
- any description pertaining to an aerial vehicle such as a UAV may apply to any other type of movable object, and vice-versa.
- the movable object can be configured to carry a load.
- the load can include one or more of passengers, cargo, equipment, instruments, and the like.
- the load can be provided within a housing.
- the housing may be separate from a housing of the movable object, or be part of a housing for an movable object.
- the load can be provided with a housing while the movable object does not have a housing.
- portions of the load or the entire load can be provided without a housing.
- the load can be rigidly fixed relative to the movable object.
- the load can be movable relative to the movable object (e.g., translatable or rotatable relative to the movable object).
- the load includes a payload.
- the payload can be configured not to perform any operation or function.
- the payload can be a payload configured to perform an operation or function, also known as a functional payload.
- the payload can include one or more sensors for surveying one or more targets. Any suitable sensor can be incorporated into the payload, such as an image capture device (e.g., a camera), an audio capture device (e.g., a parabolic microphone), an infrared imaging device, or an ultraviolet imaging device.
- the sensor can provide static sensing data (e.g., a photograph) or dynamic sensing data (e.g., a video). In some embodiments, the sensor provides sensing data for the target of the payload.
- the payload can include one or more emitters for providing signals to one or more targets. Any suitable emitter can be used, such as an illumination source or a sound source.
- the payload includes one or more transceivers, such as for
- the payload can be configured to interact with the environment or a target.
- the payload can include a tool, instrument, or mechanism capable of manipulating objects, such as a robotic arm.
- the load may include a carrier.
- the carrier can be provided for the payload and the payload can be coupled to the movable object via the carrier, either directly (e.g., directly contacting the movable object) or indirectly (e.g., not contacting the movable object).
- the payload can be mounted on the movable object without requiring a carrier.
- the payload can be integrally formed with the carrier.
- the payload can be releasably coupled to the carrier.
- the payload can include one or more payload elements, and one or more of the payload elements can be movable relative to the movable object and/or the carrier, as described above.
- the carrier can be integrally formed with the movable object.
- the carrier can be releasably coupled to the movable object.
- the carrier can be coupled to the movable object directly or indirectly.
- the carrier can provide support to the payload (e.g., carry at least part of the weight of the payload).
- the carrier can include a suitable mounting structure (e.g., a gimbal platform) capable of stabilizing and/or directing the movement of the payload.
- a suitable mounting structure e.g., a gimbal platform
- the carrier can be adapted to control the state of the payload (e.g., position and/or orientation) relative to the movable object.
- the carrier can be configured to move relative to the movable object (e.g., with respect to one, two , or three degrees of translation and/or one, two, or three degrees of rotation) such that the payload maintains its position and/or orientation relative to a suitable reference frame regardless of the movement of the movable object.
- the reference frame can be a fixed reference frame (e.g., the surrounding environment).
- the reference frame can be a moving reference frame (e.g., the movable object, a payload target).
- the carrier can be configured to permit movement of the payload relative to the carrier and/or movable object.
- the movement can be a translation with respect to up to three degrees of freedom (e.g., along one, two, or three axes) or a rotation with respect to up to three degrees of freedom (e.g., about one, two, or three axes), or any suitable combination thereof.
- the carrier can include a carrier frame assembly and a carrier actuation assembly.
- the carrier frame assembly can provide structural support to the payload.
- the carrier frame assembly can include individual carrier frame components, some of which can be movable relative to one another.
- the carrier actuation assembly can include one or more actuators (e.g., motors) that actuate movement of the individual carrier frame components.
- the actuators can permit the movement of multiple carrier frame components simultaneously, or may be configured to permit the movement of a single carrier frame component at a time. The movement of the carrier frame components can produce a corresponding movement of the payload.
- the carrier actuation assembly can actuate a rotation of one or more carrier frame components about one or more axes of rotation (e.g., roll axis, pitch axis, or yaw axis).
- the rotation of the one or more carrier frame components can cause a payload to rotate about one or more axes of rotation relative to the movable object.
- the carrier actuation assembly can actuate a translation of one or more carrier frame components along one or more axes of translation, and thereby produce a translation of the payload along one or more corresponding axes relative to the movable object.
- the movement of the movable object, carrier, and payload relative to a fixed reference frame (e.g., the surrounding environment) and/or to each other, can be controlled by a terminal.
- the terminal can be a remote control device at a location distant from the movable object, carrier, and/or payload.
- the terminal can be disposed on or affixed to a support platform.
- the terminal can be a handheld or wearable device.
- the terminal can include a smartphone, tablet, laptop, computer, glasses, gloves, helmet, microphone, or suitable combinations thereof.
- the terminal can include a user interface, such as a keyboard, mouse, joystick, touchscreen, or display. Any suitable user input can be used to interact with the terminal, such as manually entered commands, voice control, gesture control, or position control (e.g., via a movement, location or tilt of the terminal).
- the terminal can be used to control any suitable state of the movable object, carrier, and/or payload.
- the terminal can be used to control the position and/or orientation of the movable object, carrier, and/or payload relative to a fixed reference from and/or to each other.
- the terminal can be used to control individual elements of the movable object, carrier, and/or payload, such as the actuation assembly of the carrier, a sensor of the payload, or an emitter of the payload.
- the terminal can include a wireless communication device adapted to communicate with one or more of the movable object, carrier, or payload.
- the terminal can include a suitable display unit for viewing information of the movable object, carrier, and/or payload.
- the terminal can be configured to display information of the movable object, carrier, and/or payload with respect to position, translational velocity, translational acceleration, orientation, angular velocity, angular acceleration, or any suitable combinations thereof.
- the terminal can display information provided by the payload, such as data provided by a functional payload (e.g., images recorded by a camera or other image capturing device).
- FIG. 2 illustrates a movable object 200 including a carrier 202 and a payload
- movable object 200 is depicted as an aircraft, this depiction is not intended to be limiting, and any suitable type of movable object can be used, as previously described herein.
- any suitable movable object e.g., a UAV.
- the payload 204 may be provided on the movable object 200 without requiring the carrier 202.
- the movable object 200 may include propulsion mechanisms 206, a sensing system 208, and a transceiver 210.
- the propulsion mechanisms 206 can include one or more of rotors, propellers, blades, engines, motors, wheels, axles, magnets, or nozzles, as previously described herein.
- the movable object may have one or more, two or more, three or more, or four or more propulsion mechanisms.
- the propulsion mechanisms may all be of the same type.
- one or more propulsion mechanisms can be different types of propulsion mechanisms.
- the propulsion mechanisms 206 can enable the movable object 200 to take off vertically from a surface or land vertically on a surface without requiring any horizontal movement of the movable object 200 (e.g., without traveling down a runway).
- the propulsion mechanisms 206 can be operable to permit the movable object 200 to hover in the air at a specified position and/or orientation.
- the movable object 200 can have multiple horizontally oriented rotors that can provide lift and/or thrust to the movable object.
- the multiple horizontally oriented rotors can be actuated to provide vertical takeoff, vertical landing, and hovering capabilities to the movable object 200.
- one or more of the horizontally oriented rotors may spin in a clockwise direction, while one or more of the horizontally rotors may spin in a counterclockwise direction.
- the number of clockwise rotors may be equal to the number of
- each of the horizontally oriented rotors can be varied independently in order to control the lift and/or thrust produced by each rotor, and thereby adjust the spatial disposition, velocity, and/or acceleration of the movable object 200 (e.g., with respect to up to three degrees of translation and up to three degrees of rotation).
- the sensing system 208 can include one or more sensors that may sense the spatial disposition, velocity, and/or acceleration of the movable object 200 (e.g., with respect to up to three degrees of translation and up to three degrees of rotation).
- the one or more sensors can include global positioning system (GPS) sensors, motion sensors, inertial sensors, proximity sensors, or image sensors.
- GPS global positioning system
- the sensing data provided by the sensing system 208 can be used to control the spatial disposition, velocity, and/or orientation of the movable object 200 (e.g., using a suitable processing unit and/or control module, as described below).
- the sensing system 208 can be used to provide data regarding the environment surrounding the movable object, such as weather conditions, proximity to potential obstacles, location of geographical features, location of manmade structures, and the like.
- the transceiver 210 enables communication with terminal 212 having a transceiver 214 via wireless signals 216.
- the communication can include two-way communication, with the terminal 212 providing control commands to one or more of the movable object 200, carrier 202, and payload 204, and receiving information from one or more of the movable object 200, carrier 202, and payload 204 (e.g., position and/or motion information of the movable object, carrier or payload; data sensed by the payload such as image data captured by a payload camera).
- control commands from the terminal may include instructions for relative positions, movements, actuations, or controls of the movable object, carrier and/or payload.
- control command may result in a modification of the location and/or orientation of the movable object (e.g., via control of the propulsion mechanisms 206), or a movement of the payload with respect to the movable object (e.g., via control of the carrier 202).
- the control command from the terminal may result in control of the payload, such as control of the operation of a camera or other image capturing device (e.g., taking still or moving pictures, zooming in or out, turning on or off, switching imaging modes, change image resolution, changing focus, changing depth of field, changing exposure time, changing viewing angle or field of view).
- the communications from the movable object, carrier and/or payload may include information from one or more sensors (e.g., of the sensing system 208 or of the payload 204).
- the communications may include sensed information from one or more different types of sensors (e.g., GPS sensors, motion sensors, inertial sensor, proximity sensors, or image sensors).
- sensors e.g., GPS sensors, motion sensors, inertial sensor, proximity sensors, or image sensors.
- information may pertain to the position (e.g., location, orientation), movement, or acceleration of the movable object, carrier and/or payload.
- Such information from a payload may include data captured by the payload or a sensed state of the payload.
- the control commands provided transmitted by the terminal 212 can be configured to control a state of one or more of the movable object 200, carrier 202, or payload 204.
- the carrier 202 and payload 204 can also each include a transceiver configured to communicate with terminal 212, such that the terminal can communicate with and control each of the movable object 200, carrier 202, and payload 204 independently.
- a movable object can include a sensing system configured to provide information regarding a state of the movable object (e.g., position, velocity, and/or acceleration with respect to one to six degrees of freedom; propulsion state of the movable object; whether a payload of the movable object is turned on or off; a mode of operation of the payload; whether the payload is zoomed in or out) or any other object (e.g., carrier, payload).
- the information can be transmitted to a terminal to be displayed to a user. Additionally, the information can be transmitted to a processing unit of the terminal to enable control of the movable object.
- the information can include positional information for the movable object indicating a three-dimensional (3D) spatial disposition of the object relative to a fixed reference frame or a moving reference frame.
- the positional information can include location information (e.g., altitude, latitude, and longitude) and orientation information (e.g., roll angle, pitch angle, and yaw angle).
- the information can include motion information regarding the velocity and/or acceleration of the movable object with respect to one or more of the six degrees of freedom.
- the sensing systems each include a sensor adapted to receive a sensing signal that can be analyzed to provide positional and/or motion information of the movable object.
- the sensing signal can be indicative of one or more of a position, orientation, velocity, or acceleration of the movable object.
- FIG. 3 illustrates a movable object 300 with a plurality of sensing systems, in accordance with embodiments of the present invention.
- the sensing systems of movable object 300 can include a GPS sensor 302, an inertial measurement unit (IMU) 304, and/or first and second vision sensors 306, 308.
- the sensing data produced by the sensing systems can be used to provide positional information that can be used to control and/or navigate the movable object 300.
- the GPS sensor 302 can communicate with one or more GPS satellites 310 to obtain one or more GPS data signals 312.
- the GPS sensor 302 can be rigidly coupled to the movable object 300 such that the position of the GPS sensor 302 corresponds to the position of the movable object 300. Alternatively the GPS sensor 302 can be permitted to move relative to the movable object 300 with respect to up to six degrees of freedom.
- the GPS sensor 302 can be directly mounted onto the movable object 300, or coupled to a support structure mounted onto the movable object 300. In some instances, the support structure may include a load, such as a carrier or payload.
- the GPS sensor 302 may be provided exterior to or within a housing of the movable object.
- the GPS sensor 302 may be permanently or removably attached to the movable object. In some embodiments, the GPS sensor 302 can be an element of a payload of the movable object 300.
- the GPS signals received by the GPS sensor 302 can be processed to determine the position of the movable object 300 relative to a global reference frame (e.g., latitude, longitude, and altitude), and thereby determine the translational velocity and/or acceleration of the movable object.
- the GPS sensor 302 can utilize any suitable GPS technology, such as differential GPS (DGPS) or real time kinematic (RTK) GPS.
- DGPS differential GPS
- RTK real time kinematic
- the GPS sensor 302 can be configured to determine the position of the movable object 300 to any suitable level of accuracy, such as meter-level accuracy (e.g., within 10 m, 5 m, 2 m, or 1 m of accuracy) or centimeter-level accuracy (within 500 cm, 200 cm, 100 cm, 50 cm, 20 cm, 10 cm, or 5 cm of accuracy).
- meter-level accuracy e.g., within 10 m, 5 m, 2 m, or 1 m of accuracy
- centimeter-level accuracy with within 500 cm, 200 cm, 100 cm, 50 cm, 20 cm, 10 cm, or 5 cm of accuracy.
- the IMU 304 can include one or more accelerometers, one or more gyroscopes, one or more magnetometers, or suitable combinations thereof.
- the IMU 304 can include up to three orthogonal accelerometers to measure linear acceleration of the movable object along up to three axes of translation, and up to three orthogonal gyroscopes to measure the angular acceleration about up to three axes of rotation.
- the IMU 304 can be rigidly coupled to the movable object 300 such that the motion of the movable object 300 corresponds to motion of the IMU 304.
- the IMU 304 can be permitted to move relative to the movable object 300 with respect to up to six degrees of freedom.
- the IMU 304 can be directly mounted onto the movable object 300, or coupled to a support structure mounted onto the movable object 300.
- the IMU 304 may be provided exterior to or within a housing of the movable object.
- the IMU may be permanently or removably attached to the movable object.
- the IMU 304 can be an element of a payload of the movable object 300.
- the IMU 304 can provide a signal indicative of the motion of the movable object 300, such as a position, orientation, velocity, and/or acceleration of the movable object 300 (e.g., with respect to one, two, or three axes of translation, and/or one, two, or three axes of rotation).
- the IMU 304 can sense a signal representative of the acceleration of the movable object, and the signal can be integrated once to provide velocity information, and twice to provide location and/or orientation information.
- the vision sensors 306, 308 of the movable object 300 can be any suitable device for receiving optical signals 314, 316 from a target 318 within the surrounding environment (e.g., the ground 320) that can be processed to generate image data of the target 318.
- the vision sensors 306, 308 can be rigidly coupled to the movable object 300, such that the positional information obtained by the vision sensors 306, 308 corresponds to the positional information of the movable object 300.
- the vision sensors 306, 308 can be permitted to move relative to the movable object 300 with respect to up to six degrees of freedom.
- the vision sensors 306, 308 can be directly mounted onto the movable object 300, or coupled to a support structure mounted onto the movable object 300.
- the vision sensors 306, 308 can be an element of a payload of the movable object 300. Any suitable number of vision sensors can be used, such as a single vision sensor, a pair of vision sensors, three vision sensors, four vision sensors, or any other number of vision sensors.
- the vision sensors 306, 308 can be a pair of cameras (e.g., binocular cameras). Alternatively, a single camera (e.g., a monocular camera) can be used.
- the vision sensors are laterally spaced apart on the movable object 300 such that each vision sensor provides an image from a different camera viewpoint, thereby enabling stereo vision imaging.
- the vision sensors can be separated laterally by up to 1 m, 500 cm, 250 cm, 100 cm, 50 cm, 25 cm, 10 cm, 5 cm, 2 cm, or 1 cm.
- the vision sensors can be disposed on the same side of the movable object or opposite sides of the movable object.
- One or more vision sensors can be disposed on the front, rear, top, bottom, or lateral sides of the movable object, or suitable combinations thereof.
- the vision sensors 306, 308 can be used to simultaneously capture images at a specified frequency to produce a time series of image data.
- the time series of image data obtained from the vision sensors 306, 308 can be processed to determine the position, orientation, and/or velocity of the movable object 300 using any suitable method, such as a machine vision algorithm.
- a machine vision algorithm can be used to identify one or more feature points within each image (e.g., an edge of an object, a corner of an object, or a boundary between objects of two different colors).
- Any suitable method or combination of methods can be used to identify and provide a digital representation of the feature points, such as the features from accelerated segment test (FAST) algorithm or the binary robust independent elementary features (BRIEF) algorithm.
- FAST accelerated segment test
- BRIEF binary robust independent elementary features
- the image data can then be matched to each other to identify a set of common feature points appearing in images obtained by both vision sensors.
- the motion of the movable object 300 can be determined based on the common feature points and the spatial disposition of the vision sensors 306, 308 relative to the movable object 300 and to each other.
- the movable object 300 can also include a proximity sensing system configured to provide positional information for the movable object 300.
- a proximity sensing system configured to provide positional information for the movable object 300.
- Any proximity sensor capable of measuring the distance between the movable object 300 and one or more surrounding objects can be used.
- the proximity sensing system can include an ultrasonic sensor and/or a lidar sensor.
- the proximity sensor can be rotated (e.g., rotated 360°) to obtain distance and position information for a plurality of objects surrounding the movable object 300. The distance and position information for the surrounding objects can be analyzed to determine the spatial disposition and/or motion of the movable object 300.
- FIG. 4 is a schematic illustration by way of block diagram of a system 400 for collecting positional and/or motion information for a movable object using a plurality of sensing systems, in accordance with embodiments of the present invention.
- the system 400 can be used in combination with any suitable embodiment of the systems, methods, or devices disclosed herein.
- the system 400 can include a plurality of sensing systems or modules as described herein.
- the sensing systems can be different types of sensing systems that collect information relating to the movable object in different ways. Different types of sensing systems may sense different types of signals or signals from different sources.
- the sensing systems can include an IMU 402, GPS sensor module 404, a plurality of cameras 406, and a proximity sensing module 408 (e.g., a lidar module).
- the IMU 402 and the GPS sensor module 404 can be operatively coupled to a processing unit 410 having a plurality of processors (e.g., ARM processors), such as through a controller area network (CAN) connection 412.
- the proximity sensing module 408 can be operatively coupled to the processor unit 410.
- the cameras 406 can be operatively coupled to the processing unit 410. In some embodiments, the cameras 406 can be operatively coupled to a field programmable gate array (FPGA) 414.
- the FPGA 414 can be operatively coupled to the processing unit 410 (e.g., via a general purpose memory controller (GPMC) connection 416).
- GPMC general purpose memory controller
- An image transmission module 418 (e.g., a Wi-Fi image transmission module) can be operatively coupled to the cameras 406, such as through FPGA 414.
- the image transmission module 418 can be used to transmit images captured by the cameras 406 to any suitable external device or system, such as a terminal as described herein.
- the processing unit 410 can be a programmable processor (e.g., a central processing unit (CPU)).
- the processing unit 410 can be operatively coupled to a non-transitory computer readable medium 420.
- the non-transitory computer readable medium can include one or more memory units (e.g., removable media or external storage such as an SD card 422, random access memory (RAM) 424).
- data from the cameras 406 can be directly conveyed to and stored within the memory units of the non-transitory computer readable medium 420 (e.g., through a direct memory access (DMA) controller 426).
- DMA direct memory access
- the memory units of the non- transitory computer readable medium 420 can include code and/or program instructions executable by the processing unit 410 to perform any suitable embodiment of the methods described herein.
- the processing unit 410 can be configured to execute instructions causing one or more processors of the processing unit 410 to analyze data produced by one or more sensing systems (e.g., IMU 402, GPS sensor module 404, cameras 406, proximity sensing module 408) to determine positional and/or motion information for the movable object, as described herein.
- the memory units can store sensing data from the one or more sensing systems to be processed by the processing unit 410.
- the memory units of the non-transitory computer readable medium 420 can store the positional and/or motion information of the movable object determined by processing the sensing data.
- the memory units of the non-transitory computer readable medium 420 can store predetermined or pre- stored data for controlling the movable object (e.g., a predetermined flight path, velocity profile, or velocity rule).
- the processing unit 410 can be operatively coupled to a control module 428 configured to control a state of the movable object.
- the control module 428 is depicted in FIG. 4 as an actuation mechanism control module operable to the control the actuators or motors 430 of the movable object to adjust the spatial disposition of the movable object with respect to six degrees of freedom.
- the control module 428 can adjust the velocity or acceleration of the movable object with respect to six degrees of freedom.
- the control module 428 can control the movable object based on predetermined control data or positional and/or motion information for the movable object obtained by processing data from one or more sensing systems, as described herein.
- the processing unit can be operatively coupled to one or more other modules 432, such as a module configured to control one or more of a state of a carrier, payload, or sensing system.
- the processing unit 408 can be operatively coupled to a communication module
- the communication module 434 configured to transmit and/or receive data from one or more external devices (e.g., a terminal, display device, or other remote controller). Any suitable means of communication can be used, such as wired communication or wireless communication.
- the communication module 434 can utilize one or more of local area networks (LAN), wide area networks (WAN), infrared, radio, WiFi, point-to-point (P2P) networks, telecommunication networks, cloud communication, and the like.
- relay stations such as towers, satellites, or mobile stations, can be used.
- Wireless communications can be proximity dependent or proximity independent. In some embodiments, line- of-sight may or may not be required for communications.
- the communication module 434 can transmit and/or receive one or more of sensing data from the sensing systems, positional and/or motion information determined by processing the sensing data, predetermined control data, user commands from a terminal or remote controller, and the like.
- the components of the system 400 can be arranged in any suitable configuration.
- one or more of the components of the system 400 can be located on the movable object, carrier, payload, terminal, sensing system, or an additional external device in communication with one or more of the above.
- FIG. 4 depicts a single processing unit 410 and a single non-transitory computer readable medium 422, one of skill in the art would appreciate that this is not intended to be limiting, and that the system 400 can include a plurality of processing units and/or non-transitory computer readable media.
- one or more of the plurality of processing units and/or non-transitory computer readable media can be situated at different locations, such as on the movable object, carrier, payload, terminal, sensing system, additional external device in communication with one or more of the above, or suitable combinations thereof, such that any suitable aspect of the processing and/or memory functions performed by the system 400 can occur at one or more of the aforementioned locations.
- the performance of conventional individual sensing system can be less than ideal.
- GPS sensing systems require line of sight to a plurality of GPS satellites, and can therefore be limited when used in poor weather conditions, indoor environments, or near buildings.
- DGPS and RTK GPS demonstrate improved accuracy compared to conventional GPS, these technologies can be associated with various restrictions that limit their applicability in some instances.
- IMU sensing systems can be less accurate for sensing complex movements (e.g., simultaneous fast translation and rotation). Additionally, IMU sensing systems can accumulate integration errors over time. Vision sensing systems, for example, can require significant amounts of computation.
- the accuracy of vision sensing systems can be influenced by image quality, such that low image resolution, image blurring (e.g., due to rapid movement), and image distortion can reduce the performance of such systems.
- Proximity sensing systems for example, can be limited by sensor accuracy and usage range, as long range sensors can be too large for use in some applications. Additionally, lidar sensors can exhibit reduced performance under strong sunlight conditions.
- the spatial disposition and/or motion of the movable object can be determined based on data received from a plurality of sensing systems, such as sensing systems of different types.
- the sensor fusion described herein makes use of the advantages of each sensor type while compensating for measurement inaccuracies from any single sensing system. Consequently, improved estimates of the motion and/or position of the movable object can be achieved in a wide variety of environments.
- Any suitable number and type of sensing systems can be used for the sensor fusion methods described herein. For example, a three-way sensor fusion of a GPS sensing system, an IMU sensing system, and a machine vision sensing system, can be performed. Alternatively, a two-way sensor fusion can be performed (e.g., GPS and IMU, GPS and vision, GPS and proximity, IMU and vision, IMU and proximity, or vision and proximity).
- data received from a plurality of sensing systems can be sequentially fused over multiple sensor fusion steps in any suitable order (e.g., GPS is fused with IMU, then vision is fused with GPS and IMU).
- the methods for sensor fusion described herein can be applied to determine positional and/or motion information for any suitable movable object, such as embodiments of the systems and devices described herein.
- FIG. 5 is a schematic illustration of by way of block diagram of a sensor fusion system 500 for determining positional and/or motion information for a movable object, in accordance with embodiments of the present invention.
- the system 500 can be combined with any suitable embodiment of the systems, methods, and devices described herein.
- the system 500 includes first and second sensing systems 502 and 504, with respective sensors 506 and 508 configured to receive respective sensing signals 510 and 512.
- Any suitable number of optional sensing systems can also be provided, such as a third sensing system 514 including a sensor 516 for receiving a signal 518.
- the sensing data from the sensing systems can be transmitted to a sensor fusion module 520.
- the sensor fusion module 520 can include portions disposed on one or more of the movable object, payload, carrier, terminal sensing system, or additional external device. In some embodiments, the sensor fusion module 520 can be local to the sensing systems, or remote from the sensing systems.
- the sensor fusion module 520 can include one or more processors configured to determine the 3D spatial disposition and/or motion of the movable object based on the sensing data received from the sensing system.
- the sensor fusion module 520 can use any suitable sensor fusion method to determine the spatial disposition and/or motion.
- the sensor fusion method can include an algorithm based on a Kalman filter, an extended Kalman filter (EKF), an unscented Kalman filter (UKF), a particle filter (PF), or suitable combinations thereof.
- the sensor fusion algorithm can exclude sensing data from one or more of the sensing systems from the sensor fusion analysis. Any suitable parameter can be used to determine whether to exclude sensing data from a sensing system.
- the parameter can include sensor signal strength, sensor type, a state of the movable object, or the surrounding environment.
- the sensor signal strength can be dependent on one or more of sensor signal magnitude, number of sensing signals received by a sensing system.
- the sensor can be a GPS sensor, and the GPS signal strength can be dependent on one or more of the number of GPS sensing signals received (e.g., from different GPS satellites) or the magnitude of a GPS signal (e.g., as determined by the power of the signal).
- the sensor fusion module 520 can compare the sensor signal strength to a threshold value to determine whether the sensor signal strength exceeds the threshold value. If the sensor signal strength exceeds the threshold value, the corresponding sensing data can be used in the sensor fusion analysis. If the sensor signal strength does not exceed the threshold value, the corresponding sensing data can be excluded from the sensor fusion analysis.
- the threshold value can be a predetermined value (e.g., input by a user).
- the threshold value can be dynamically determined (e.g., based on one or more dynamically changing parameters, such as a state of the movable object).
- the threshold value can be set to be greater than a minimum signal strength of a sensor that enables the corresponding sensing system to operate.
- one or more weight values can be determined for one or more sensing systems such that the sensor fusion algorithm factors in the one or more weight values when determining the spatial disposition and/or motion based on the corresponding sensing data.
- the weight value can be determined by the sensor fusion module 520 based on any suitable parameter, such as one or more of sensor signal strength or magnitude, number of sensing signals received by a sensing system, sensor type, or a state of the movable object.
- the weight value can be determined based on GPS signal strength (e.g., signal strength depending on the number and/or magnitude of the GPS signals as described above), with a higher weight value when the signal strength is high and a lower weight value when the signal strength is low.
- a weight value can be determined for a vision sensing system, such that the weight value is based on a parameter indicative of the accuracy of a machine vision algorithm used to analyze vision sensing data, as described in detail below.
- the weight value can be lower when the movable object is in an environment in which machine vision-based navigation is less reliable (e.g., at high altitudes or above water).
- the weight value can be a numerical value (e.g., ranging from 0 to 1).
- the weight value can encompass a continuous range of values or a discrete set of values.
- the weight value can be mathematically related to one or more suitable parameters, such as through a linear, nonlinear, polynomial, exponential, or logarithmic correlation.
- one or more weight values can be predetermined or selected from a pre-set value, based on user input. Any suitable number of sensing systems can be weighted, such as a single sensing system or multiple sensing systems. One or more sensing systems can share the same weight value, or each sensing system can have a different respective weight value. Optionally, some sensing systems can be unweighted.
- the sensor fusion module 520 can calculate the positional and/or motion information of the movable object based on sensing data from a suitable combination of weighted and unweighted sensing systems, such that the weight value is factored in for the sensing data from the weighted sensing systems.
- a suitable combination of weighted and unweighted sensing systems such that the weight value is factored in for the sensing data from the weighted sensing systems.
- a first sensing system and a second sensing system may be provided. The data from the first sensing system may be combined with a weight value factored in with the data from the second sensing system.
- data from the first sensing system may be weighted and combined with a weighted value from the second sensing system.
- One or more additional sensing systems can be provided whose data may or may not be weighted.
- weighting for a sensing system may be considered if sensor data can be compromised based on detectable conditions (e.g., signal strength).
- FIG. 6 is a flow chart illustrating a sensor fusion algorithm 600 for state estimation of positional and/or motion information for a movable object, in accordance with embodiments of the present invention.
- Any suitable system or device can be used to apply the algorithm 600, such as the embodiments described herein.
- the algorithm can be used to fuse sensing data from a pair of binocular cameras 602, 604, an IMU 606, and a GPS 608.
- a pair of images can be recorded simultaneously by the cameras 602, 604 (hereinafter an "image frame").
- the algorithm 600 can be repeated each time an image frame is obtained in order to obtain the speed and position of the cameras 602, 604 relative to the starting position when the image frame was taken.
- the algorithm 600 can determine the relative positional change since the previous measurement time point, denoted as (R, T) , where R is a rotation matrix representing the change in orientation of the movable object relative to the previous time point, T is a motion vector representing the change in position of the movable object in 3D space relative to the previous time point.
- Raw image data obtained by the cameras 602, 604 can be processed by image analysis to correct the image data, for example, by implementing an algorithm to correct optical distortion and/or noise in the image data.
- the image analysis can extract suitable feature points from the corrected image data and generate a digital representation of the feature points, as previously described herein.
- frame-to-frame matching of the feature points produced by the image analysis can be performed using an initial estimation of the positional change, thereby reducing the complexity of the search and improving matching efficiency and accuracy.
- the initial estimation can be generated based on two-way sensor fusion of the IMU 606 and the GPS sensor 608.
- the IMU 606 can provide velocity data with respect to six degrees of freedom that can be compared with positional information from the previous frame to provide a measurement of positional change (Rj, Tj).
- the GPS sensor 608 can provide measurement data of the positional change of the movable object, T G (e.g., with respect to three degrees of translation).
- the GPS measurement data can be assigned a weight value ⁇ , as described herein.
- the weight value ⁇ can range from 0 to 1 based on the strength of the GPS signal. For example, in an environment where the GPS signal is weak, ⁇ can be close to 0. In an environment where the GPS signal is strong, ⁇ can be close to 1. Examples of an environment where the GPS signal can be weak can include an indoor environment, obstructions by structures or naturally occurring features, inclement weather conditions, lack of satellites overhead, or malfunction with a GPS receiver.
- Examples of environments where the GPS signal can be strong can include an outdoor environment, high altitude, lack of obstructions, or clear weather conditions.
- a movable object may be flying at low altitude surrounded by a number of tall buildings. This may result in blocking or weakening satellite signals, which may correspondingly cause the data from the GPS system to be accorded lower weight. This may result in data from the GPS system being discounted relative to other sensing systems that have no indication of being compromised.
- the IMU data (Rj, Tj) and the GPS sensor data ( ⁇ , T G ) can be fused using any suitable sensor fusion method as described herein (e.g., a Kalman filter) to generate an initial estimation of the positional change of the movable object (R, ⁇ ).
- the initial estimation (R, ⁇ ) can be used to search for a feature point in a current frame, m[, (in which i represents the i th feature point and t represents the current time) corresponding to the same feature point in a previous frame, For example, the estimated 3D coordinate
- FIG. 7 illustrates a system 700 for stereo vision, in accordance with
- the system 700 can include a left camera and a right camera (not shown) centered at positions 702 and 704, respectively.
- the parameters focal length f, photosensor size I, and the distance between the cameras b are known for each camera.
- the distance between the cameras b are known for each camera.
- the pixel distances u ⁇ and u ⁇ -' can be multiplied by the size of a single pixel to become spatial distances u ⁇ and ⁇ -'.
- the distance between the 3D coordinate p ⁇ and the cameras, denoted D can be determined. Based on the internal parameter matrix of the camera K and calculated value of D, the estimated 3D coordinate p ⁇ - can thus be derived for the point (u ⁇ -, vj) .
- the velocity of the cameras can thus be determined by analyzing the motion of the feature points within the images using any suitable algorithm. For example, given a set of n coordinate pairs
- the internal parameter matrix of the camera can be expressed as
- a weight value p can be assigned to T v , as described herein.
- the weight value p can be based on the size of n.
- the weight value can range from 0 to 1 , and be proportional to n.
- a three-way sensor fusion can be performed based on the estimated positional movement from the vision sensing system (p, T v ) , IMU data (R j , TJ), and GPS sensor data ( ⁇ , T G ). Any suitable method can be used to fuse the three sets of sensing data to determine a single positional measurement (R, T) as described herein.
- an EKF can be used. Accordingly, at a time t, the positional measurement value can be expressed as (R t , T t ), such that
- t can be determined by updating the estimate value from the last point in time (R,-..- ⁇ ..- ! ⁇ T t ⁇ 1 1 ⁇ ) and ⁇ ⁇ 1 1 ⁇ .
- the update can be performed using a EKF, such that the update equation can be expressed as
- the algorithm 600 can be periodically "reset” to account for this situation.
- the algorithm can periodically specify a new "key frame," such that the feature points within the new key frame become the new feature points used as candidates for the feature matching algorithm.
- Any suitable method can be used to determine when a reset occurs.
- a reset threshold value can be specified, such that when the number n of coordinate pairs is lower than the reset threshold value, the algorithm 600 is reset.
- the reset threshold value can be determined based on any suitable parameter, such as the amount of allowable error in the motion estimation, image quality, the feature extraction algorithm, or suitable combinations thereof.
- the reset threshold value can be set by a user (e.g., after calibration of the vision sensing system).
- the positional and/or motion information determined by the algorithm 600 can be fed back into one or more sensing systems so as to improve the accuracy of the sensing system.
- a velocity or acceleration estimation with respect to six degrees of freedom can be determined based on derivation of the positional information, and provided to one or more sensing systems.
- the positional and/or motion information can periodically be used to calibrate the reference value of the IMU 606 in order to correct for any accumulation of integration errors over time.
- the algorithm 600 can be implemented at any suitable computing speed.
- the cameras 602, 604 can be configured to receive image data at 20 Hz
- the IMU 606 can be configured to receive inertial sensing data at 200 Hz
- the GPS sensor 608 can be configured to receive GPS data at 200 Hz.
- the image analysis, frame-to-frame matching, stereo matching, key frame reset, and motion and position estimation can be computed at 20 Hz to obtain 20 fused estimate values per second.
- the two-way fusion of the IMU and GPS sensor data and the three-way fusion between the IMU, GPS, and vision sensor data can be computed at 200 Hz. Any other frequency or rates of data gathering or fusion may occur.
- cameras may be capable of capturing images at rates of greater than or equal to about 10 Hz, 15 Hz, 20 Hz, 25 Hz, 30 Hz, 35 Hz, 40 Hz, 50 Hz, 60 Hz, 70 Hz, 80 Hz, 90 Hz, 100 Hz, 120 Hz, 150 Hz, 200 Hz, or 300 Hz. Images may be captured at video sampling rates.
- Any suitable hardware platform can be used to execute any portion of the algorithm 600, such as embodiments of the systems and devices described herein.
- the FPGA 414 can be used to perform the image correction and frame- to-frame matching, as described herein.
- the data 414 can be transmitted to the processing unit 410 in order to execute the remaining steps of the algorithm 600.
- the positional and/or motion information determined by the processing unit 410 can be stored in the non-transitory computer readable medium 420.
- one or more steps of the algorithm 600 can be executed by one or more hardware platforms, such as one or more components of the system 400 which can optionally be located on different devices as described herein..
- the data can be transmitted to one or more remote systems having greater computational power than the system 400.
- the system 400 can be located on the movable object, and raw image data can be transmitted to one or more systems remote from the movable object (e.g., a terminal) via the image transmission module 418.
- the algorithm 600 can be executed as described herein and the results sent back to the movable object via the communication module 434. This approach advantageously reduces the computational requirements for the hardware onboard the movable object.
- Embodiments of the systems, methods, and devices described herein can be used in any suitable application involving collection of positional and/or motion information for a movable object.
- the disclosed systems, methods, and devices can be applied to control and/or navigate an aircraft, such as a UAV.
- an aircraft such as a UAV.
- the use of language referring to flight, flight path, flight trajectory, and the like in the following examples is not intended to limit the present invention to flying movable objects, as one of skill in the art will appreciate that the embodiments described herein can be applied to movable objects that are not flying.
- positional and/or motion information of the movable object can be used in order to control the position of the movable object with respect to six degrees of freedom (e.g., three degrees of location and three degrees of orientation).
- the movable object can respond to control instructions directly provided by a user and transmitted to the movable object (e.g., using a terminal) to free control a location and/or orientation of the movable object (e.g., with respect of altitude, latitude, longitude, roll angle, pitch angle, or yaw angle).
- the movable object can respond to control instructions to control a movement of the movable object.
- the translational velocity and/or the translational acceleration of the movable object may be controlled, up to three degrees of translation movement, such as altitude, latitude and longitude.
- the angular velocity and/or angular acceleration of the movable object may be controlled, up to three degrees of angular movement, such as rotation about the yaw axis, roll axis, and pitch axis.
- the position control scheme can calculate a path for the movable object to a location specified by the user.
- the path for the movable object may occur on land, in the water, in the air, or in space.
- the path for the movable object may be restricted to a surface or may encompass substantially free motion in three degrees of freedom.
- the path may be a flight path, and the position control scheme can provide flight trajectory generation. Any description herein of a flight path may apply to any other type of path that may be traversed by a movable object, and vice versa.
- the user can specify a set of spatial coordinates defining a "home position" to which the movable object automatically returns when a "return command" is received.
- the return command can cause the movable object to calculate a flight path to the home position based on positional information for the movable object determined as described herein, and then navigate to the home position using the calculated flight path.
- the user can specify a landmark or other environmental feature to be the home position via an interface (e.g., a terminal, display, or other remote controller), and the coordinates of the landmark can be determined by the interface and transmitted to the movable object.
- the "home position" can be recorded by the movable object based on positional information obtained during a flight without requiring the input of specific spatial coordinates by the user. For example, the location where the movable object started its flight can be automatically recorded as the home position.
- any suitable location along the flight path of the movable object can be designated as the home position.
- a user can designate the movable object's location as the home location, to which the movable object can return to later.
- multiple preset locations can be specified, either by the user or automatically as described herein, and the movable object can be commanded to navigate to each of the locations in any suitable sequence.
- a position control scheme for the movable object can involve autonomous navigation of the movable object along a predetermined flight path, also known as a pre-stored flight path.
- a suitable user input can be used to command the movable object to navigate to the starting point of a predetermined flight path stored in memory.
- the predetermined flight path can include information regarding the spatial disposition of the movable object with respect to six degrees of freedom (e.g., three degrees of location and three degrees of orientation) at each point of the flight path.
- the movable object can be commanded to navigate along the predetermined flight path along all six degrees until instructed otherwise by the user. For example, the movable object can follow the path location as well as the preset orientations along the path.
- the predetermined flight path can be a closed loop, such that the movable object can follow the flight path repeatedly (e.g., autolooping).
- the closed loop path may be created by recording a previously flown path of the movable object.
- the closed loop path may be generated or calculated according to one or more parameters and/or one or more pre-selected points.
- the flight path can have different starting and end points.
- the predetermined flight path can include one or more portions defined by user input.
- the user can provide coordinates defining a flight path for the movable object with respect to six degrees of freedom.
- the user-defined flight path can include a path template having one or more suitable path parameters input by the user, such that the user does not need to specify coordinates for the entire flight path.
- the path template can be a geometric shape
- the path parameters can be one or more dimensions defining the geometric shape. The dimensions can include one or more of the length of an edge, length of an axis, radius of a curve, diameter of a curve, degrees of an arc, curvature of a path, and the like.
- the path template can be a closed shape, such as a circle with a path parameter being the diameter of the circle, an ellipse with the path parameters being the lengths of the major and minor axes, or a polygon (e.g., square, rectangle, triangle) with path parameters being the length of one or more edges of the polygon.
- the path template can be an open shape (e.g., a linear, curved, or curvilinear shape), such as a zigzag shape, with a path parameter being a spacing of the zigzag.
- the parameters of the path template can also include parameters with respect to movable object orientation (e.g., fixed orientation, varying orientation).
- the predetermined flight path can include one or more portions that were traveled and recorded by the movable object during a previous flight (e.g., using spatial coordinates with respect to six degrees of freedom based on the positional and/or motion information determined as described herein).
- the user can specify a start time and a stop time for recording a flight path during a flight of the movable object.
- an on/off command can be used, such that the recording begins when the on command is provided by the user and ends when the off command is provided by the user.
- the recording can be configured to store spatial coordinates of the movable object at specified time intervals or distance intervals, either automatically determined or input by the user.
- predetermined flight path can have the same directionality as the recorded flight path, or be the reverse of the recorded flight path.
- the spatial disposition of the movable object with respect to six degrees of freedom can be the same at one or more points of the predetermined flight path as the recorded flight path. Alternatively, the spatial disposition can be different at one or more points, such as the reverse of the recorded flight path.
- the predetermined path may be the recorded path exactly, along the six degrees of freedom, including location and orientation. In some instances, the predetermined path may be the reverse of the recorded path exactly, along the six degrees of freedom, including location and orientation.
- FIG. 8 is a schematic illustration by way of block diagram of a system 800 for navigation of a movable object along a predetermined flight path, in accordance with embodiments of the present invention.
- the system 800 can be used in combination with any suitable embodiment of the systems, methods, and devices described herein.
- the system 800 includes a path calculation module 802 and a flight control module 804.
- the path calculation module 802 includes a vision sensing system 806 (e.g., a pair of binocular cameras), an IMU sensing system 808, and a GPS sensing system 810.
- the sensing data received from these sensing systems is fused by a motion and/or position estimation module 812 using suitable sensor fusion algorithms, as described herein.
- the positional and/or motion information generated by the motion and/or position estimation module 812 can be stored in one or more memory units of a path storage module 814.
- the movable object can set a starting point (0,0), and then determine the positional information (R, T) using the motion and/or position estimation module 812 for a series of key points along the flight path.
- the key points can be determined based, for example, on a time interval, distance interval, or a suitable combination thereof.
- a suitable user input can be used to command the movable object to navigate autonomously along the predetermined flight path stored in the path storage module 814.
- a user input 816 can be provided in order to define velocity and/or acceleration parameters of the movable object along the predetermined flight path. Suitable velocity and/or acceleration parameters are described in greater detail below.
- a path parameterization module 818 can be used to reparameterize the predetermined flight path based on the user input. For example, the number of key points in the flight path curve can vary based on a user-specified velocity to be maintained by the movable object along the flight path, such that the new number of key points can be solved based on the geometry of the flight path curve.
- the reparameterized flight path can be transmitted to the flight control module
- the flight control module 804 includes a flight control information generation module 820 configured to determine position, velocity, and/or acceleration information of the flight path with respect to six degrees of freedom. For example, the flight control information generation module 820 can determine the difference between consecutive key points and take a partial derivative of the difference to determine the linear acceleration and angular acceleration (R t , T t ) required to reach the next key point.
- the number of key points can be varied based on the velocity of the movable object, as described herein. In some embodiments, an increased velocity may result in an increased number of key points. Alternatively, an increased velocity may result in a fewer number of key points. A sufficient number of key points may be selected to permit the movable object to follow the path.
- the acceleration information can be input into a flight control module 822 to maneuver the movable object (e.g., via a suitable actuation mechanism, such as one or more motors) to follow the flight path by navigating to the next key point.
- the motion and/or position estimation module 812 can calculate the current spatial disposition and/or motion of the movable object as described herein. This information can be input into a feedback correction module 824 of the flight control module 804 to determine the current spatial disposition of the movable object relative to the predetermined flight path in order to correct any errors that occur during navigation of the predetermined flight path.
- the feedback correction module 824 can be configured to compensate for the difference between (R t +i, T t ' +1 ) and (R t +i, T t+1 ) when navigating to the next key point at (R t+2 , T t+2 ) at time t+2.
- the position of the movable object may be controlled freely by a user using a terminal or any other remote control system.
- the user may provide commands to control the movable object in real-time.
- the user may instruct the movable object to maintain position, change location and/or change orientation.
- a default may be provided. The default may be for the movable object to maintain position. For example, if no input is provided from the user, the movable object may hover. In other embodiments, the default may be to continue with the previous instructions. For example, if the user instructed the movable object to move forward, the movable object may continue to move forward at the same rate unless instructed otherwise.
- the commands from the user may be provided via a user interface of the terminal, position/movement of the terminal, or any other input as discussed elsewhere herein.
- a control of the movable object position and movement can be a combination of any of the types of control described elsewhere herein.
- the movable object path can be a combination of a pre-stored path, calculated path, and/or free control by the user.
- a movable object may follow a pre-recorded path location.
- the user may control the movable object in real-time to adjust the orientation of the movable object, so that the movable object need not follow the pre-recorded orientation of the movable object.
- the sensor fusion-based motion and/or position estimation methods described herein can be used to control the velocity of the movable object with respect to six degrees of freedom as described herein.
- Such velocity controls can be used independently or in combination with any suitable embodiment of the position control schemes described herein.
- one or more velocity controls disclosed herein can be applied to free control, flight trajectory generation, or a predetermined flight path, as previously described.
- the user can define a velocity profile and/or rules for the movable object.
- the velocity profile and/or rules can include a maximum allowable velocity, a minimum allowable velocity, a velocity range, a constant velocity, or a variable velocity, or suitable combinations thereof, to be maintained by the movable object during a flight.
- the velocity profile and/or rules can be applied to a translational velocity or an angular velocity of the movable object.
- a velocity profile and/or rules applied to a translational velocity may govern an angular velocity, or vice versa.
- a maximum velocity can be specified for the movable object, such that the movable object is not allowed to exceed the maximum velocity.
- a maximum translational velocity e.g., linear speed
- the maximum angular velocity e.g., rotational speed
- the movable object may move at a velocity so that neither the maximum translational velocity nor the maximum angular velocity is exceeded.
- following a predetermined path including predetermined location and orientation
- the movable object may not meet the maximum velocity of the other type of velocity (e.g., angular velocity).
- a maximum translational velocity and a maximum angular velocity can be specified, such that neither can be exceeded by the movable object.
- the velocity profile and/or rules can be maintained during free control of the movable object, such that user commands that would result in a violation of the velocity profile and/or rules are modified or overridden.
- a movable object may traverse a path in accordance with one or more velocity profiles or rules.
- the path of the movable object may be predetermined, may be freely controlled in real time by a user, and/or may be calculated in real-time with aid of a processor.
- the velocity profile may indicate the speed (linear and/or rotational speed) at which the movable object traverses the path. Any description herein of the movable object traversing a predetermined flight path in relation to the velocity rules may be applied also to other types of path including freely human controlled paths, or computer-calculated paths.
- a predetermined flight path traversed by the movable object can be associated with a velocity profile and/or rules (e.g., provided via user input 816) to be followed while the movable object traverses the flight path.
- the predetermined flight path can be divided into one or more segments, with each segment having its own velocity profile and/or rules to be followed by the movable object while traversing the segment. For example, the movable object can be commanded to travel a first path segment at a constant velocity and then a second path segment at a different constant velocity.
- the velocity profile may specify that the movable object travel with a translational velocity of 3 m/s along the first 100 meters, and then travel with a translational velocity of 5 m/s along the second 200 meters, before returning to a velocity of 3 m/s along the rest of the path.
- the movable object may follow this velocity profile along the path (which can define both the translational and angular position of the movable object along the path), which may result in governing both the translational velocity and the corresponding angular velocity.
- the movable object can be commanded to travel a first path segment at a variable velocity and then a second path segment at a constant velocity.
- the entirety of the predetermined flight path can be associated with the same velocity profile and/or rules.
- the velocity profile and/or rules can be altered (e.g., based on user input) while the movable object is following the predetermined flight path.
- the predetermined flight path can be a recorded flight path as described herein, and the velocity profile can be the same as the velocity profile of the movable object during a previous traversal of the recorded flight path (e.g., during the recording process).
- one or more velocity values of the velocity profile can be different from a velocity of the movable object during a previous traversal of the recorded flight path.
- the velocity profile and/or rules can be determined by any suitable means.
- the velocity profile and/or rules can be provided via user input (e.g., via a remote control such as a terminal) and stored in memory.
- Such velocity profiles and/or rules determined by the user can be established prior to flight of the movable object or in real-time while the movable object is flying.
- the velocity profile and/or rules can be pre-stored into a memory of the movable object prior to the flight.
- the velocity profile and/or rules can be pre-stored off -board and sent to the movable object prior to or during flight.
- the velocity profile and/or rules can be determined dynamically in real-time by a suitable processor and/or algorithm based on a state of the movable object during flight (e.g., an altitude, latitude, longitude, roll angle, pitch angle, or yaw angle of the movable object).
- the velocity profile and/or rules can be based on positional and/or motion information of the movable object provided by one or more sensing systems (e.g., determined using sensor fusion of one or more sensing systems including GPS, IMU, vision, or proximity, as described herein).
- a maximum velocity can be specified for the movable object based on the measured altitude of movable object, with a higher maximum velocity at higher altitudes, and a lower maximum velocity at lower altitudes. This can be advantageous, for example, in reducing the possibility of collisions with structures near the ground.
- FIG. 9 is schematic illustration by way of block diagram of a system 900 for velocity control of a movable object such as a UAV, in accordance with embodiments of the present invention.
- the system 900 can be used in combination with any suitable embodiment of the systems, methods, and devices described herein.
- the system 900 includes a position and/or motion estimation module 902 and a flight control module 904.
- the position and/or motion estimation module 902 determines the current velocity of the movable object using suitable embodiments of the sensor fusion methods described herein.
- the current velocity value can be compared against a specified velocity profile and/or rule.
- the flight control module 904 controls a suitable actuation mechanism (e.g., one or more motors) to adjust the velocity of the movable object to be in accordance with the velocity profile and/or rule.
- a suitable actuation mechanism e.g., one or more motors
- the velocity profile and/or rule is depicted as a pre-set speed limit of the movable object, and the speed information generated by module 902 is fed back to prevent the movable object from exceeding the pre-set speed limit.
- embodiments of the velocity controls described herein can also be applied to control of the acceleration of the movable object with respect to six degrees of freedom.
- an acceleration profile and/or rules can be specified for the movable object similar to the velocity profile and/or rules as previously described.
- a maximum translational acceleration and/or maximum angular acceleration may be provided. Any suitable combination of position controls, velocity controls, and acceleration controls can be applied to any of the applications described herein (e.g., for free control, flight trajectory generation, or a predetermined flight path).
- position controls may be established separately from movement controls, such as velocity and acceleration controls. Movement controls may be applied to position controls, such as a predetermined path (generated by user or with aid of a processor), or real-time generated path (generated by user or with aid of processor). Position controls and movement controls may be created separately using different mechanisms, or using the same mechanisms. Position controls and different velocity/acceleration profiles can be mixed and matched as desired by the user. Position controls and movement controls can be stored and/or accessed separately from movement controls.
- the positional and/or motion information for the movable object can be displayed on a user interface.
- the user interface can be any interface adapted for navigation and control of the movable object from a remote control center, such as a display (e.g., a touchscreen display) or terminal as previously described herein.
- a separate display device may be provided from a control terminal.
- both control and display functionality may be provided within a single device.
- the user interface can receive user input, such as input from a keyboard, mouse, joystick, touch screen, voice recognition system, gesture recognition system, or suitable combinations thereof.
- Any suitable information can be displayed on the user interface, such as positional information for the movable object (e.g., latitude, longitude, altitude, roll angle, pitch angle, yaw angle, origin, destination, previously traveled flight path, future flight trajectory, predetermined flight path, home position, or preset location) or motion information with respect to six degrees of freedom (e.g., velocity or acceleration).
- positional information for the movable object e.g., latitude, longitude, altitude, roll angle, pitch angle, yaw angle, origin, destination, previously traveled flight path, future flight trajectory, predetermined flight path, home position, or preset location
- motion information with respect to six degrees of freedom e.g., velocity or acceleration
- the positional and/or motion information can be displayed as one or more of an alphanumeric value, symbol or shape, size of a symbol or shape, color or color gradient, and the like.
- the user interface can display information relating to a payload of the movable object, such as size, weight, payload type, location and/or orientation of the payload with respect to six degrees of freedom, state (e.g., whether a functional element is on or off) or data transmitted by the payload (e.g., data collected by a payload sensor such as a camera image or video feed).
- the user interface can display information relating to the environment surrounding the movable object, such as a map (e.g., a topographical map) of the environment.
- Additional information can be overlaid on the map, such as information relating to elevation, latitude, longitude, orientation, weather conditions, geographical features, manmade features (e.g., buildings, roads, political boundaries), and the like.
- the map may or may not show underlying topological features.
- the map may be viewed from above, or may be angled to show one or more feature from different angles.
- the user interface can also be used to control the how the information is displayed.
- the displayed information can be zoomed in, zoomed out, rotated, translated, segmented into multiple viewing angles, combined into a single viewing angle, and the like.
- the user interface can include one or more user controls configured to control one or more of the movable object, carrier or payload with respect to position, velocity, and/or acceleration as described herein.
- the user interface can include separate controls for each of the movable object, carrier, and payload, such that each can be controlled simultaneously and/or independently.
- the user controls can be used to control the state of one or more of an element of the movable object, carrier, or payload, such as a sensing system, actuation mechanism, communication device, processing unit, or any other functional device.
- the user controls can be used to provide commands to the movable object relating to one or more of free control, flight trajectory generation, a predetermined flight path, velocity profile and/or rules, or acceleration profile and/or rules, as previously described.
- the user controls can control a state of the payload by controlling the movable object and/or carrier, as described herein.
- the user interface can include controls for a payload camera, such as on, off, location, orientation, zoom, or focus.
- FIG. 10 illustrates a user interface 1000 for control and navigation of a movable object, in accordance with embodiments of the present invention.
- the user interface 1000 can be used in combination with any suitable embodiment of the systems, methods, and devices described herein.
- the user interface 1000 includes a visual indicator 1002 for a movable object relative to a three-dimensional (3D) coordinate system 1004.
- the position and/or orientation of the 3D coordinate system 1004 can be adjusted, with the visual indicator 1002 being adjusted accordingly.
- a user may view the movable object from different angles.
- Information pertaining to the relative location of the movable object e.g., coordinate system, environment/map
- the user may control the view of the movable object by swiping or touching a touchscreen.
- the visual indicator includes a first indicator 1006 indicating the spatial disposition of the movable object in real-time with respect to six degrees of freedom, and a second indicator 1008.
- the first indicator 1006 can indicate the orientation of the movable object, for example, by using an arrow indicating the direction in which the movable object is positioned to move.
- the second indicator 1008 can be used to depict a direction of motion of the movable object.
- the second indicator 1008 can be an arrow indicating the 3D direction of motion, with the length of the arrow corresponding to the magnitude of the motion.
- the second indicator 1008 can be an arrow used to depict a facing direction of a payload of the movable object (e.g., a payload camera).
- only a single indicator need be provided.
- the single indicator may be indicative of the orientation of the movable object.
- the orientation of the movable object may refer to the trajectory of travel for the movable object and/or the direction of a payload.
- the visual indicator 1002 can include alphanumerical values representing the positional and/or motion information of the movable object, as described herein
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Aviation & Aerospace Engineering (AREA)
- Multimedia (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
- Navigation (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Systems, methods, and devices are provided for collecting positional information for and controlling a movable object. In one aspect of the present disclosure, a method for collecting positional information for a movable object includes: receiving data from a first sensing system coupled to the movable object; receiving data from a second sensing system coupled to the movable object; determining a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and calculating the positional information of the movable object based on (i) the data from the first sensing system and (ii) data from the second system factoring in the weight value.
Description
SENSOR FUSION
BACKGROUND OF THE INVENTION
[0001] Unmanned vehicles, such as ground vehicles, air vehicles, surface vehicles, underwater vehicles, and spacecraft, have been developed for a wide range of applications including surveillance, search and rescue operations, exploration, and other fields. Such unmanned vehicles can often be controlled and navigated by a remote controller. In some instances, unmanned vehicles can be autonomous vehicles capable of sensing and navigating through an environment without guidance from a human controller.
[0002] Various types of sensors can be used to generate positional information enabling control and navigation of an unmanned vehicle. However, current sensing systems for unmanned vehicles can be less than ideal. For example, most sensing systems are accurate only under certain environmental conditions (e.g., indoors or outdoors, high altitude or low altitude) or with respect to certain types of movement (e.g., fast or slow, rotational or translational).
SUMMARY OF THE INVENTION
[0003] A need exists for improved systems, methods, and devices for collecting positional information for movable objects such as unmanned vehicles. The present invention provides systems, methods, and devices for collecting positional information and controlling a movable object. In many embodiments, the systems, methods, and devices disclosed herein receive positional data for a movable object from a plurality of sensing systems and determine the positional information of the movable object through sensor fusion. The present invention enhances flexibility and accuracy of navigation systems for movable objects such as unmanned aerial vehicles.
[0004] In one aspect of the present disclosure, a method for collecting positional information for a movable object is described. The method includes: receiving, at a memory, data from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; receiving, at the memory, data from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; determining, with aid of a processor, a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and calculating, with aid of the processor, the positional information of the movable object based on
(i) the data from the first sensing system and (ii) data from the second system factoring in the weight value.
[0005] In some embodiments, the movable object is an unmanned aerial vehicle.
[0006] In some embodiments, calculating the positional information includes calculating location information and orientation information of the movable object. Calculating the location information can include calculating altitude, latitude, and longitude of the movable object. Calculating the orientation information can include calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
[0007] In some embodiments, receiving data from the second sensing system includes receiving data from a global positioning system (GPS) sensor used by the second sensing system. The strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
[0008] In some embodiments, receiving data from the first sensing system includes receiving data from one or more vision sensors used by the first sensing system. Receiving data from the one or more vision sensors can include receiving data from a plurality of vision sensors that are laterally spaced apart. The method can further include receiving data from third sensing system coupled to the movable object, said third sensing system using an inertial measurement unit (IMU).
[0009] In some embodiments, receiving data from the first sensing system comprises receiving data from an IMU used by the first sensing system.
[0010] In some embodiments, the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
[0011] In some embodiments, the weight value is a numerical value. The weight value can be a value between zero and one.
[0012] In some embodiments, the method includes receiving an instruction for the movable object to return to a preset location. The method can further include calculating, with aid of the processor, a route for the movable object to travel to return to the present location, based on the positional information of the movable object.
[0013] In another aspect of the present disclosure, a non-transitory computer readable medium containing program instructions for collecting positional information for a movable object is provided. The computer readable medium includes: program instructions for analyzing data received from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the
movable object; program instructions for analyzing data received from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; program instructions for determining a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and program instructions for calculating the positional information of the movable object based on (i) the data from the first sensing system and (ii) data from the second system factoring in the weight value.
[0014] In some embodiments, the movable object is an unmanned aerial vehicle.
[0015] In some embodiments, the program instructions for calculating the positional information include program instructions for calculating location information and orientation information of the movable object. The program instructions for calculating location information can include program instructions for calculating altitude, latitude, and longitude of the movable object. The program instructions for calculating orientation information can include program instructions for calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
[0016] In some embodiments, the program instructions for analyzing data received from the second sensing system include program instructions for analyzing data received from a GPS sensor used by the second sensing system. The strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
[0017] In some embodiments, the program instructions for analyzing data received from the first sensing system includes program instructions for analyzing data received from one or more vision sensors used by the first sensing system. The program instructions for analyzing data received from the one or more vision sensors can include program instructions for analyzing data received from a plurality of vision sensors that are laterally spaced apart. The computer readable medium can further include program instructions for analyzing data received from a third sensing system coupled to the movable object, the third sensing system using an IMU.
[0018] In some embodiments, the program instructions for analyzing data received from the first sensing system include program instructions for analyzing data received from an IMU used by the first sensing system.
[0019] In some embodiments, the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
[0020] In some embodiments, the weight value is a numerical value. The weight value can be a value between zero and one.
[0021] In some embodiments, the computer readable medium further includes program instructions for receiving an instruction for the movable object to return to a preset location. The computer readable medium can further include program instructions for calculating, with aid of the processor, a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
[0022] In another aspect of the present disclosure, a system for collecting positional information for a movable object is provided. The system includes: a first sensing system coupled to the movable object, the first sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; a second sensing system coupled to the movable object, the second sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; and a processor that: (a) determines a weight value for the signal from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and (b) calculates the positional information of the movable object based on (i) the data from the first sensing system and (ii) the data from the second sensing system factoring in the weight value.
[0023] In some embodiments, the movable object is an unmanned aerial vehicle.
[0024] In some embodiments, the positional information includes location information and orientation information of the movable object. The location information can include altitude, latitude, and longitude of the movable object. The orientation information can include an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
[0025] In some embodiments, the second sensing system uses a GPS sensor. The strength of the signal can depend on a number of GPS signals received or a magnitude of a GPS signal received.
[0026] In some embodiments, the first sensing system uses one or more vision sensors. The first sensing system can use a plurality of vision sensors that are laterally spaced apart. Data can further be received from a third sensing system coupled to the movable object, said third sensing system using an IMU.
[0027] In some embodiments, the first sensing system uses an IMU.
[0028] In some embodiments, the signal useful for determining the positional information includes an optical signal.
[0029] In some embodiments, the signal useful for determining the positional information includes a signal from a satellite.
[0030] In some embodiments, the signal useful for determining the positional information includes a signal indicative of velocity or acceleration.
[0031] In some embodiments, the weight value is a numerical value. The weight value can be a value between zero and one.
[0032] In some embodiments, the system further includes a receiver for receiving an instruction for the movable object to return to a preset location. The processor can be configured to calculate a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
[0033] In another aspect of the present disclosure, a method for collecting positional information for a movable object is described. The method includes: (a) receiving, at a memory, data from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (b) receiving, at the memory, data from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (c) determining, with aid of a processor, whether the signal received by the sensor of the second sensing system has a strength that exceeds a predetermined threshold; and (d) calculating, with aid of the processor, the positional information of the movable object based on (i) the data from the first sensing system without the data from the second sensing system when the strength of the signal of step (b) does not exceed the predetermined threshold, and (ii) data from the first sensing system with the data from the second sensing system when the strength of the signal of step (b) exceeds the predetermined threshold.
[0034] In some embodiments, the movable object is an unmanned aerial vehicle.
[0035] In some embodiments, calculating the positional information includes calculating location information and orientation information of the movable object. Calculating the location information can include calculating altitude, latitude, and longitude of the movable object. Calculating the orientation information can include calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
[0036] In some embodiments, receiving data from the first sensing system includes receiving data from a non-GPS sensing system used by the first sensing system. Receiving data from the non-GPS sensing system can include receiving data from one or more vision sensors used by the non-GPS
sensing system. Receiving data from the one or more vision sensors can include receiving data from a plurality of vision sensors laterally spaced apart. The method can further include receiving data from third sensing system coupled to the movable object, said third sensing system using an IMU. Receiving data from the non-GPS sensing system can include receiving data from an IMU used by the non-GPS sensing system.
[0037] In some embodiments, receiving data from the second sensing system includes receiving data from a GPS sensor used by the second sensing system. The strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
[0038] In some embodiments, the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
[0039] In some embodiments, the predetermined threshold is greater than a minimum strength of a signal that permits the second sensing system to operate.
[0040] In some embodiments, the predetermined threshold is inputted by a user.
[0041] In another aspect of the present disclosure, a non-transitory computer readable medium containing program instructions for collecting positional information for a movable object is provided. The computer readable medium includes: (a) program instructions for analyzing data received from a first sensing system coupled to the movable object, the first sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (b) program instructions for analyzing data received from a second sensing system coupled to the movable object, the second sensing system including a sensor that receives a signal useful for determining the positional information of the movable object; (c) program instructions for determining whether the signal received by the sensor of the second sensing system has a strength that exceeds a predetermined threshold; and program instructions for calculating the positional information of the movable object based on (i) the analyzed data from the first sensing system without the analyzed data from the second sensing system when the strength of the signal of (b) does not exceed the predetermined threshold, and (ii) the analyzed data from the first sensing system with the analyzed data from the second sensing system when the strength of the signal of (b) exceeds the predetermined threshold.
[0042] In some embodiments, the movable object is an unmanned aerial vehicle.
[0043] In some embodiments, the program instructions for calculating the positional information include program instructions for calculating location information and orientation information of the
movable object. The program instructions for calculating the location information can include program instructions for calculating altitude, latitude, and longitude of the movable object. The program instructions for calculating the orientation information can include program instructions for calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
[0044] In some embodiments, the program instructions for analyzing data received from the first sensing system include program instructions for analyzing data received from a non-GPS sensing system used by the first sensing system. The program instructions for analyzing data received from the non-GPS sensing system can include program instructions for analyzing data received from one or more vision sensors used by the non-GPS sensing system. The program instructions for analyzing data received from the one or more vision sensors can include program instructions for analyzing data received from a plurality of vision sensors laterally spaced apart. The computer readable medium can further include program instructions for analyzing data received from third sensing system coupled to the movable object, said third sensing system using an IMU. The program instructions for analyzing data received from the non-GPS sensing system can include program instructions for analyzing data received from an IMU used by the non-GPS sensing system.
[0045] In some embodiments, the program instructions for analyzing data received from the second sensing system include program instructions for analyzing data received from a GPS sensor used by the second sensing system. The strength of the signal received by the GPS sensor of the second sensing system can depend on a number of GPS signals received or a magnitude of a GPS signal received.
[0046] In some embodiments, the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
[0047] In some embodiments, the predetermined threshold is greater than a minimum strength of a signal that permits the second sensing system to operate.
[0048] In some embodiments, the predetermined threshold is inputted by a user.
[0049] In another aspect of the present disclosure, a system for collecting positional information for a movable object is provided. The system includes: (a) a first sensing system coupled to the movable object, the first sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; (b) a second sensing system coupled to the movable object, the second sensing system including a sensor configured to receive a signal useful for determining the positional information of the movable object; and (c) a processor that: (1)
determines whether the signal received by the sensor of the second sensing system has a strength that exceeds a predetermined threshold; and (2) calculate the positional information of the movable object based on (i) the data from the first sensing system without the data from the second sensing system when the strength of the signal of step (b) does not exceed the predetermined threshold, and (ii) data from the first sensing system with the data from the second sensing system when the strength of the signal of step (b) exceeds the predetermined threshold.
[0050] In some embodiments, the movable object is an unmanned aerial vehicle.
[0051] In some embodiments, the positional information includes location information and orientation information of the movable object. The location information can include altitude, latitude, and longitude of the movable object. The orientation information can include angle of the movable object with respect to a yaw axis, angle with respect to a roll axis, and angle with respect to a pitch axis.
[0052] In some embodiments, the first sensing system is a non-GPS sensing system. The non-GPS sensing system can use one or more vision sensors. The non-GPS sensing system can use a plurality of vision sensors laterally spaced apart. Data can further be received from a third sensing system coupled to the movable object, said third sensing system using an IMU. The non-GPS sensing system can use an IMU.
[0053] In some embodiments, the second system is a GPS system. The strength of the signal can depend on a number of GPS signals received or a magnitude of a GPS signal received.
[0054] In some embodiments, the signal useful for determining the positional information includes an optical signal, a signal from a satellite, or a signal indicative of velocity or acceleration.
[0055] In some embodiments, the predetermined threshold is greater than a minimum strength of a signal that permits the second sensing system to operate.
[0056] In some embodiments, the predetermined threshold is inputted by a user.
[0057] In another aspect of the present disclosure, a method for collecting positional information for a movable object is described. The method includes: receiving, at a memory, an instruction guiding the movable object to follow a pre-stored path that includes positional information for the movable object, the said positional information including location information and orientation information of the movable object; receiving, at a receiver, a velocity profile for the movable object to follow while the movable object is following the pre-stored path; receiving, from one or more sensing systems of the movable object, at least one signal indicative of a position of the movable object relative to the pre-stored path; and causing, with aid of one or more actuators of the movable object, the movable
object to follow the pre-stored path in accordance with the velocity profile in response to the at least one signal indicative of the position of the movable object.
[0058] In some embodiments, receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a path that the movable object has previously traveled and recorded. Receiving the velocity profile can include receiving a velocity value that is different from a velocity of the movable object along the pre-stored path when the movable object previously traveled the pre-stored path.
[0059] In some embodiments, receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a reverse of a path that the movable object has previously traveled and recorded.
[0060] In some embodiments, receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a path template including one or more path parameters.
[0061] In some embodiments, receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a path inputted by a user.
[0062] In some embodiments, receiving the instruction guiding the movable object to follow the pre- stored path includes receiving an instruction guiding the movable object to follow a loop that the movable object is capable of following repeatedly.
[0063] In some embodiments, receiving the velocity profile includes receiving a variable velocity over the pre-stored path.
[0064] In some embodiments, receiving the velocity profile includes receiving a velocity profile inputted by a user.
[0065] In some embodiments, causing the movable object to follow the pre-stored path includes altering the velocity profile while the movable object is following the pre-stored path.
[0066] In some embodiments, the movable object has a plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
[0067] In some embodiments, the movable object is an unmanned aerial vehicle.
[0068] In some embodiments, the one or more actuators are motors of the movable object.
[0069] In another aspect of the present disclosure, a non-transitory computer readable medium containing program instructions for controlling a movable object is provided. The computer
readable medium includes: program instructions for receiving a pre-stored path that includes positional information for the movable object to follow, the said positional information including location information and orientation information of the movable object; program instructions for receiving a velocity profile for the movable object to follow while the movable object is following the pre-stored path; program instructions for analyzing at least one signal indicative of a position of the movable object relative to the pre-stored path from one or more sensing systems of the movable object; and program instructions for providing instructions to one or more actuators of the movable object to cause the movable object to follow the pre-stored path in accordance with the velocity profile in response to the at least one signal indicative of the position of the movable object.
[0070] In some embodiments, the program instructions for receiving the pre-stored path include program instructions for receiving a path that the movable object has previously traveled and recorded. The program instructions for receiving the velocity profile can include program instructions for receiving a velocity value that is different from a velocity of the movable object along the pre-stored path when the movable object previously traveled the pre-stored path.
[0071] In some embodiments, the program instructions for receiving the pre-stored path include program instructions for receiving a reverse of a path that the movable object has previously traveled and recorded.
[0072] In some embodiments, the program instructions for receiving the pre-stored path include program instructions for receiving a path template including one or more path parameters.
[0073] In some embodiments, the program instructions for receiving the pre-stored path include program instructions for receiving a path inputted by a user.
[0074] In some embodiments, the program instructions for receiving the pre-stored path include program instructions for receiving a loop that the movable object is capable of following repeatedly.
[0075] In some embodiments, the program instructions for receiving the velocity profile include program instructions for receiving a variable velocity over the pre-stored path.
[0076] In some embodiments, the program instructions for receiving the velocity profile include program instructions for receiving a velocity profile inputted by a user.
[0077] In some embodiments, the program instructions for providing instructions to cause the movable object to follow the pre-stored path include program instructions for altering the velocity profile while the movable object is following the pre-stored path.
[0078] In some embodiments, the movable object has a plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
[0079] In some embodiments, the movable object is an unmanned aerial vehicle.
[0080] In some embodiments, the one or more actuators are motors of the movable object.
[0081] In another aspect of the present disclosure, a system for controlling a movable object is provided. The system includes: a memory comprising a pre-stored path that includes positional information for the movable object to follow, the said positional information including location information and orientation information of the movable object; a receiver for receiving a velocity profile for the movable object to follow while the movable object is following the pre-stored path; one or more sensing systems coupled to the movable object, said one or more sensing systems providing at least one signal indicative of a position of the movable object relative to the pre-stored path; and one or more actuators of the movable object, said one or more actuators configured to cause the movable object to follow the pre-stored path in accordance with the velocity profile in response to the at least one signal indicative of the position of the movable object.
[0082] In some embodiments, the pre-stored path is a path that the movable object has previously traveled and recorded. The velocity profile can include a velocity value that is different from a velocity of the movable object along the pre-stored path when the movable object previously traveled the pre-stored path.
[0083] In some embodiments, the pre-stored path is a reverse of a path that the movable object has previously traveled and recorded.
[0084] In some embodiments, the pre-stored path is a path template including one or more path parameters.
[0085] In some embodiments, the pre-stored path is a path inputted by a user.
[0086] In some embodiments, the pre-stored path is a loop that the movable object is capable of following repeatedly.
[0087] In some embodiments, the velocity profile includes a variable velocity over the pre-stored path.
[0088] In some embodiments, the velocity profile is inputted by a user.
[0089] In some embodiments, the velocity profile is altered while the movable object is following the pre-stored path.
[0090] In some embodiments, the movable object has a plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
[0091] In some embodiments, the movable object is an unmanned aerial vehicle.
[0092] In some embodiments, the one or more actuators are motors of the movable object.
[0093] In another aspect, a method of controlling a velocity of a movable object is provided. The method includes: receiving, at a receiver, an instruction for movement of the movable object, said movement including translational movement and angular movement of the movable object;
providing, in a memory, one or more velocity rules for the movable object to follow while the movable object is moving in response to the instruction for movement; receiving, from one or more sensing systems of the movable object, at least one signal indicative of a position of the movable object; and causing, with aid of one or more actuators of the movable object, the movable object to move in response to the instruction for movement in accordance with the velocity rules, based on the at least one signal indicative of the position of the movable object.
[0094] In some embodiments, receiving the instruction for movement of the movable object includes receiving an instruction provided from a remote control. Receiving the instruction provided from the remote control can include receiving a user inputted instruction for movement of the movable object into the remote control.
[0095] In some embodiments, receiving the instruction for movement of the movable object includes receiving an instruction provided from a memory comprising a pre-stored path for the movable object.
[0096] In some embodiments, providing the velocity rules includes providing a maximum velocity at which the movable object is permitted to move. Providing the maximum velocity can include providing a constant fixed velocity rate. Providing the maximum velocity can include calculating the maximum velocity based on the at least one signal indicative of the position of the movable object.
[0097] In some embodiments, providing the velocity rules includes providing a constant velocity at which the movable object is permitted to move. Providing the constant velocity can include providing a linear velocity or an angular velocity.
[0098] In some embodiments, the movable object has a plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
[0099] In some embodiments, the movable object is an unmanned aerial vehicle.
[00100] In some embodiments, the one or more actuators are motors of the movable object.
[00101] In another aspect, a non- transitory computer readable medium containing program instructions for controlling a velocity of a movable object is provided. The computer readable medium includes: program instructions for receiving an instruction for movement of the movable object, said movement including translational movement and angular movement of the movable object; program instructions for providing one or more velocity rules for the movable object to follow while the movable object is moving in response to the instruction for movement; program instructions for analyzing at least one signal indicative of a position of the movable object; and program instructions for providing instructions to one or more actuators of the movable object to cause the movable object to move in response to the instruction for movement in accordance with the velocity rules, based on the at least one signal indicative of the position of the movable object.
[00102] In some embodiments, the program instructions for receiving the instruction for movement of the movable object include program instructions for receiving an instruction provided from a remote control. The program instructions for receiving the instruction provided from the remote control can include program instructions for receiving a user inputted instruction for movement of the movable object into the remote control.
[00103] In some embodiments, the program instructions for receiving the instruction for movement of the movable object include program instructions for receiving an instruction provided from a memory comprising a pre-stored path for the movable object.
[00104] In some embodiments, the program instructions for providing the velocity rules include program instructions for providing a maximum velocity at which the movable object is permitted to move. The program instructions for providing the maximum velocity can include program instructions for providing a constant fixed velocity rate. The program instructions for providing the maximum velocity can include program instructions for calculating the maximum velocity based on the at least one signal indicative of the position of the movable object.
[00105] In some embodiments, the program instructions for providing the velocity rules include program instructions for providing a constant velocity at which the movable object is permitted to move. The program instructions for providing the constant velocity can include program instructions for providing a linear velocity or an angular velocity.
[00106] In some embodiments, the movable object has a plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
[00107] In some embodiments, the movable object is an unmanned aerial vehicle.
[00108] In some embodiments, the one or more actuators are motors of the movable object.
[00109] In another aspect, a system for controlling a velocity of a movable object is provided. The system includes: a receiver for receiving an instruction for movement of the movable object, said movement including translational movement and angular movement of the movable object; a memory storing one or more velocity rules for the movable object to follow while the movable object is moving in response to the instruction for movement; one or more sensing systems coupled to the movable object, said one or more sensing systems providing at least one signal indicative of a apposition of the movable object; and one or more actuators of the movable object, said one or more actuators configured to cause the movable object to move in response to the instruction for movement in accordance with the velocity rules, based on the at least one signal indicative of the position of the movable object.
[00110] In some embodiments, the instruction for movement of the movable object is provided from a remote control. The instructions for movement of the movable object can be input by a user into the remote control.
[00111] In some embodiments, the instruction for movement of the movable object is provided from a memory comprising a pre-stored path for the movable object.
[00112] In some embodiments, the velocity rules include a maximum velocity at which the movable object is permitted to move. The maximum velocity can be a constant fixed velocity rate. The maximum velocity can be calculated based on the at least one signal indicative of the position of the movable object.
[00113] In some embodiments, the velocity rules include a constant velocity at which the movable object is permitted to move. The constant velocity can be a linear velocity. The constant velocity can be an angular velocity.
[00114] In some embodiments, the movable object has as plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: vision sensing system, IMU, GPS system.
[00115] In some embodiments, the movable object is an unmanned aerial vehicle.
[00116] In some embodiments, the one or more actuators are motors of the movable object.
[00117] In another aspect, a method of displaying a flight trajectory of an unmanned aerial vehicle is provided. The method includes: receiving, from one or more sensing systems of the unmanned aerial vehicle, at least one signal indicative of a position of the unmanned aerial vehicle, the position of the unmanned aerial vehicle including an unmanned aerial vehicle location and an unmanned aerial vehicle orientation; and displaying in real-time, on a user interface of a terminal remote to the unmanned aerial vehicle, the unmanned aerial vehicle location in a three-dimensional coordinate system and the unmanned aerial vehicle orientation via a visual indicator in response to the at least one signal.
[00118] In some embodiments, receiving the at least one signal includes receiving at least one signal from a plurality of sensing systems using different types of sensors. Receiving the at least one signal can include receiving at least one signal from two or more of the following: stereo vision sensing system, IMU, GPS system.
[00119] In some embodiments, receiving the at least one signal includes receiving at least one signal from one or more sensing systems rigidly coupled to the unmanned aerial vehicle.
[00120] In some embodiments, the method further includes receiving, at the terminal, an input from a user to control movement of the unmanned aerial vehicle.
[00121] In some embodiments, the terminal is a handheld object.
[00122] In some embodiments, the method includes displaying the position of the unmanned aerial vehicle on a touchscreen of the terminal.
[00123] In some embodiments, displaying the visual indicator includes displaying an arrow indicative of a direction that a payload of the unmanned aerial vehicle is facing.
[00124] In some embodiments, displaying the unmanned aerial vehicle orientation includes displaying an arrow indicative of a direction in which the unmanned aerial vehicle is positioned to move.
[00125] In some embodiments, the distance between shafts of opposite rotors of the unmanned aerial vehicle has dimensions ranging from 5 cm to 5 m.
[00126] In some embodiments, the unmanned aerial vehicle is a rotorcraft.
[00127] In some embodiments, the method further includes receiving an input from a user to adjust the orientation of the three-dimensional coordinate system, and adjusting the visual indicator indicative of the unmanned aerial vehicle orientation correspondingly.
[00128] In another aspect, a non- transitory computer readable medium containing program instructions for displaying a flight trajectory of an unmanned aerial vehicle is provided. The computer readable medium includes: program instructions for analyzing at least one signal indicative of a position of the unmanned aerial vehicle from one or more sensing systems of the unmanned aerial vehicle, the position of the unmanned aerial vehicle including an unmanned aerial vehicle location and an unmanned aerial vehicle orientation; and program instructions for displaying in real-time, on a user interface of a terminal remote to the unmanned aerial vehicle, the unmanned aerial vehicle location in a three-dimensional coordinate system and the unmanned aerial orientation via a visual indicator in response to the at least one signal.
[00129] In some embodiments, the program instructions for analyzing the at least one signal include program instructions for analyzing at least one signal from a plurality of sensing systems using different types of sensors. The program instructions for analyzing the at least one signal can include program instructions for analyzing at least one signal from two or more of the following: stereo vision sensing system, IMU, GPS system.
[00130] In some embodiments, the program instructions for analyzing the at least one signal include program instructions for analyzing at least one signal from one or more sensing systems rigidly coupled to the unmanned aerial vehicle.
[00131] In some embodiments, the computer readable medium further includes program instructions for receiving, at the terminal, an input from a user to control movement of the unmanned aerial vehicle.
[00132] In some embodiments, the terminal is a handheld object.
[00133] In some embodiments, the computer readable medium includes program instructions for displaying the position of the unmanned aerial vehicle on a touchscreen of the terminal.
[00134] In some embodiments, the program instructions for displaying the visual indicator include program instructions for displaying an arrow indicative of a direction that a payload of the unmanned aerial vehicle is facing.
[00135] In some embodiments, the program instructions for displaying the unmanned aerial vehicle orientation includes program instructions for displaying an arrow indicative of a direction in which the unmanned aerial vehicle is positioned to move.
[00136] In some embodiments, the distance between shafts of opposite rotors of the unmanned aerial vehicle has dimensions ranging from 5 cm to 5 m.
[00137] In some embodiments, the unmanned aerial vehicle is a rotorcraft.
[00138] In some embodiments, the computer readable medium further includes program instructions for receiving an input from a user to adjust the orientation of the three-dimensional coordinate system, and program instructions for adjusting the visual indicator indicative of the unmanned aerial vehicle orientation correspondingly.
[00139] In another aspect, a system for displaying a flight trajectory of an unmanned aerial vehicle is provided. The system includes: one or more sensing systems coupled to the unmanned aerial vehicle, providing at least one signal indicative of a position of the unmanned aerial vehicle, the position of the unmanned aerial vehicle including an unmanned aerial vehicle location and an unmanned aerial vehicle orientation; and a terminal remote to the UAV including a user interface showing the unmanned aerial vehicle location in a three-dimensional coordinate system and the unmanned aerial vehicle orientation via a visual indicator in response to the at least one signal.
[00140] In some embodiments, the unmanned aerial vehicle has as plurality of sensing systems using different types of sensors. The sensing system can include two or more of the following: stereo vision sensing system, IMU, GPS system.
[00141] In some embodiments, the one or more sensing systems are rigidly coupled to the unmanned aerial vehicle.
[00142] In some embodiments, input from a user to control movement of the unmanned aerial vehicle can further be received at the terminal.
[00143] In some embodiments, the terminal is a handheld object.
[00144] In some embodiments, the position of the unmanned aerial vehicle is displayed on a touchscreen of the terminal.
[00145] In some embodiments, the visual indicator of the unmanned aerial vehicle orientation is an arrow indicative of a direction that a payload of the unmanned aerial vehicle is facing.
[00146] In some embodiments, the visual indicator of the unmanned aerial vehicle orientation is an arrow indicative of a direction in which the unmanned aerial vehicle is positioned to move.
[00147] In some embodiments, the distance between shafts of opposite rotors of the unmanned aerial vehicle has dimensions ranging from 5 cm to 5 m.
[00148] In some embodiments, the unmanned aerial vehicle is a rotorcraft.
[00149] In some embodiments, an input from a user can further be received to adjust the orientation of the three-dimensional coordinate system, and adjust the visual indicator indicative of the unmanned aerial vehicle orientation correspondingly.
[00150] Additional aspects and advantages of the present disclosure will become readily apparent to those skilled in this art from the following detailed description, wherein only exemplary embodiments of the present disclosure are shown and described, simply by way of illustration of the best mode contemplated for carrying out the present disclosure. As will be realized, the present disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
INCORPORATION BY REFERENCE
[00151] All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.
BRIEF DESCRIPTION OF THE DRAWINGS
[00152] The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which:
[00153] FIG. 1 illustrates an unmanned aerial vehicle, in accordance with embodiments of the present invention;
[00154] FIG. 2 illustrates a movable object including a carrier and a payload, in accordance with embodiments of the present invention;
[00155] FIG. 3 illustrates a movable object with a plurality of sensing systems, in accordance with embodiments of the present invention;
[00156] FIG. 4 is a schematic illustration by way of block diagram of a system for collecting positional information for a movable object, in accordance with embodiments of the present invention;
[00157] FIG. 5 is a schematic illustration by way of block diagram of a sensor fusion system for determining positional and/or motion information for a movable object, in accordance with embodiments of the present invention;
[00158] FIG. 6 is a flow chart illustrating a sensor fusion algorithm for state estimation of positional and/or motion information for a movable object, in accordance with embodiments of the present invention;
[00159] FIG. 7 illustrates a system for stereo vision, in accordance with embodiments of the present invention;
[00160] FIG. 8 is a schematic illustration by way of block diagram of a system for navigation of a movable object along a predetermined flight path, in accordance with embodiments of the present invention;
[00161] FIG. 9 is a schematic illustration by way of block diagram of a system for velocity control of a movable object, in accordance with embodiments of the present invention; and [00162] FIG. 10 illustrates a user interface for control and navigation of a movable object, in accordance with embodiments of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[00163] The present invention provides systems, methods, and devices for collecting positional and/or motion information for a movable object. The systems, methods, and devices described herein can be used to control a movable object (e.g., with respect to position, velocity, and/or acceleration). Additionally, the systems, methods, and devices described herein can be used to display information relating to the movable object (e.g., a flight trajectory of the movable object). It shall be understood that different aspects of the invention can be appreciated individually, collectively, or in combination with each other. Various aspects of the invention described herein may be applied to any of the particular applications set forth below or for any other types of movable objects.
[00164] The systems, methods, and devices disclosed herein can be applied to any suitable movable object. The movable object can be configured to move within any suitable environment, such as in air (e.g., a fixed-wing aircraft, a rotary-wing aircraft, or an aircraft having neither fixed wings nor rotary wings), in water (e.g., a ship or a submarine), on ground (e.g., a motor vehicle or a train), in space (e.g., a spaceplane, a satellite, or a probe), or any combination of these environments. The movable object can be a vehicle, such as a vehicle described elsewhere herein. In some embodiments, the movable object can be a living subject, such as a human or an animal. Suitable animals can include avines, canines, felines, equines, bovines, ovines, porcines, delphines, rodents, or insects.
[00165] The movable object may be capable of moving freely within the environment with respect to six degrees of freedom (e.g., three degrees of freedom in translation and three degrees of freedom in rotation). Alternatively, the movement of the movable object can be constrained with respect to one or more degrees of freedom, such as by a predetermined path, track, or orientation. The movement can be actuated by any suitable actuation mechanism, such as an engine or a motor. The actuation mechanism of the movable object can be powered by any suitable energy source, such as electrical energy, magnetic energy, solar energy, wind energy, gravitational energy, chemical energy, nuclear energy, or any suitable combination thereof.
[00166] In some instances, the movable object can be a vehicle. Suitable vehicles may include water vehicles, aerial vehicles, space vehicles, or ground vehicles. For example, aerial vehicles may be fixed-wing aircraft (e.g., airplane, gliders), rotary-wing aircraft (e.g., helicopters, rotorcraft), aircraft having both fixed wings and rotary wings, or aircraft having neither (e.g., blimps, hot air balloons). A vehicle such as an aerial vehicle can be self-propelled, such as self-propelled through the air, on or in water, in space, or on the ground. A self-propelled vehicle can utilize a propulsion system, such as a propulsion system including one or more engines, motors, wheels, axles, magnets, rotors, propellers, blades, nozzles, or any suitable combination thereof. In some instances, the propulsion system can be used to enable the movable object to take off from a surface, land on a surface, maintain its current position and/or orientation (e.g., hover), change orientation, and/or change position.
[00167] For example, the propulsion system can include one or more rotors. A rotor can include one or more blades (e.g., one, two, three, four, or more blades) affixed to a central shaft. The blades can be disposed symmetrically or asymmetrically about the central shaft. The blades can be turned by rotation of the central shaft, which can be driven by a suitable motor or engine. The blades can be configured to spin in a clockwise rotation and/or a counterclockwise rotation. The rotor can be a horizontal rotor (which may refer to a rotor having a horizontal plane of rotation), a vertically oriented rotor (which may refer to a rotor having a vertical plane of rotation), or a rotor tilted at an intermediate angle between the horizontal and vertical positions. In some embodiments, horizontally oriented rotors may spin and provide lift to the movable object. Vertically oriented rotors may spin and provide thrust to the movable object. Rotors oriented an intermediate angle between the horizontal and vertical positions may spin and provide both lift and thrust to the movable object. One or more rotors may be used to provide a torque counteracting a torque produced by the spinning of another rotor.
[00168] The movable object can be controlled remotely by a user or controlled locally by an occupant within or on the movable object. In some embodiments, the movable object is an unmanned movable object, such as an unmanned aerial vehicle (UAV). An unmanned movable object, such as a UAV, may not have an occupant onboard the movable object. The movable object can be controlled by a human or an autonomous control system (e.g., a computer control system), or any suitable combination thereof. The movable object can be an autonomous or semi-autonomous robot, such as a robot configured with an artificial intelligence.
[00169] The movable object can have any suitable size and/or dimensions. In some embodiments, the movable object may be of a size and/or dimensions to have a human occupant within or on the vehicle. Alternatively, the movable object may be of size and/or dimensions smaller than that capable of having a human occupant within or on the vehicle. The movable object may be of a size and/or dimensions suitable for being lifted or carried by a human. Alternatively, the movable object may be larger than a size and/or dimensions suitable for being lifted or carried by a human. In some instances, the movable object may have a maximum dimension (e.g., length, width, height, diameter, diagonal) of less than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m. The maximum dimension may be greater than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m. For example, the distance between shafts of opposite rotors of the movable object may be less than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.
Alternatively, the distance between shafts of opposite rotors may be greater than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.
[00170] In some embodiments, the movable object may have a volume of less than 100 cm x
100 cm x 100 cm, less than 50 cm x 50 cm x 30 cm, or less than 5 cm x 5 cm x 3 cm. The total volume of the movable object may be less than or equal to about: 1 cm3, 2 cm3, 5 cm3, 10 cm3, 20 cm3, 30 cm3, 40 cm3, 50 cm3, 60 cm3, 70 cm3, 80 cm3, 90 cm3, 100 cm3, 150 cm3, 200 cm3, 300 cm3, 500 cm3, 750 cm3, 1000 cm3, 5000 cm3, 10,000 cm3, 100,000 cm3, 1 m3, or 10 m3. Conversely, the total volume of the movable object may be greater than or equal to about: 1 cm 3 , 2 cm 3 , 5 cm 3 , 10 cm3, 20 cm3, 30 cm3, 40 cm3, 50 cm3, 60 cm3, 70 cm3, 80 cm3, 90 cm3, 100 cm3, 150 cm3, 200 cm3, 300 cm3, 500 cm3, 750 cm3, 1000 cm3, 5000 cm3, 10,000 cm3, 100,000 cm3, 1 m3, or 10 m3.
[00171] In some embodiments, the movable object may have a footprint (which may refer to the lateral cross-sectional area encompassed by the movable object) less than or equal to about: 32,000 cm2, 20,000 cm2, 10,000 cm2, 1,000 cm2, 500 cm2, 100 cm2, 50 cm2, 10 cm2, or 5 cm2.
Conversely, the footprint may be greater than or equal to about: 32,000 cm2, 20,000 cm2, 10,000 cm2, 1,000 cm2, 500 cm2, 100 cm2, 50 cm2, 10 cm2, or 5 cm2.
[00172] In some instances, the movable object may weigh no more than 1000 kg. The weight of the movable object may be less than or equal to about: 1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60 kg, 50 kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10 kg, 9 kg, 8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1 kg, 0.05 kg, or 0.01 kg. Conversely, the weight may be greater than or equal to about: 1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60 kg, 50 kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10 kg, 9 kg, 8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1 kg, 0.05 kg, or 0.01 kg.
[00173] In some embodiments, a movable object may be small relative to a load carried by the movable object. The load may include a payload and/or a carrier, as described in further detail below. In some examples, a ratio of a movable object weight to a load weight may be greater than, less than, or equal to about 1:1. In some instances, a ratio of a movable object weight to a load weight may be greater than, less than, or equal to about 1 : 1. Optionally, a ratio of a carrier weight to a load weight may be greater than, less than, or equal to about 1 : 1. When desired, the ratio of an movable object weight to a load weight may be less than or equal to: 1 :2, 1:3, 1:4, 1 :5, 1 :10, or even less. Conversely, the ratio of a movable object weight to a load weight can also be greater than or equal to: 2:1, 3:1, 4:1, 5: 1, 10: 1, or even greater.
[00174] In some embodiments, the movable object may have low energy consumption. For example, the movable object may use less than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less. In some instances, a carrier of the movable object may have low energy consumption. For example, the carrier may use less than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less. Optionally, a payload of the movable object may have low energy consumption, such as less than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less.
[00175] FIG. 1 illustrates an example of a movable object which may be an unmanned aerial vehicle (UAV) 100, in accordance with embodiments of the present invention. The UAV 100 can include a propulsion system having four rotors 102, 104, 106, and 108. Any number of rotors may be provided (e.g., one, two, three, four, five, six, or more). The rotors or other propulsion systems of the unmanned aerial vehicle may enable the unmanned aerial vehicle to hover/maintain position, change orientation, and/or change location. The distance between shafts of opposite rotors can be any suitable length 110. For example, the length 110 can be less than or equal to 2 m, or less than equal to 5 m. In some embodiments, the length 110 can be within a range from 40 cm to 1 m,
from 10 cm to 2 m, or from 5 cm to 5 m. As previously mentioned, any description pertaining to an aerial vehicle such as a UAV may apply to any other type of movable object, and vice-versa.
[00176] In some embodiments, the movable object can be configured to carry a load.
The load can include one or more of passengers, cargo, equipment, instruments, and the like. The load can be provided within a housing. The housing may be separate from a housing of the movable object, or be part of a housing for an movable object. Alternatively, the load can be provided with a housing while the movable object does not have a housing. Alternatively, portions of the load or the entire load can be provided without a housing. The load can be rigidly fixed relative to the movable object. Optionally, the load can be movable relative to the movable object (e.g., translatable or rotatable relative to the movable object).
[00177] In some embodiments, the load includes a payload. The payload can be configured not to perform any operation or function. Alternatively, the payload can be a payload configured to perform an operation or function, also known as a functional payload. For example, the payload can include one or more sensors for surveying one or more targets. Any suitable sensor can be incorporated into the payload, such as an image capture device (e.g., a camera), an audio capture device (e.g., a parabolic microphone), an infrared imaging device, or an ultraviolet imaging device. The sensor can provide static sensing data (e.g., a photograph) or dynamic sensing data (e.g., a video). In some embodiments, the sensor provides sensing data for the target of the payload.
Alternatively or in combination, the payload can include one or more emitters for providing signals to one or more targets. Any suitable emitter can be used, such as an illumination source or a sound source. In some embodiments, the payload includes one or more transceivers, such as for
communication with a module remote from the movable object. Optionally, the payload can be configured to interact with the environment or a target. For example, the payload can include a tool, instrument, or mechanism capable of manipulating objects, such as a robotic arm.
[00178] Optionally, the load may include a carrier. The carrier can be provided for the payload and the payload can be coupled to the movable object via the carrier, either directly (e.g., directly contacting the movable object) or indirectly (e.g., not contacting the movable object).
Conversely, the payload can be mounted on the movable object without requiring a carrier. The payload can be integrally formed with the carrier. Alternatively, the payload can be releasably coupled to the carrier. In some embodiments, the payload can include one or more payload elements, and one or more of the payload elements can be movable relative to the movable object and/or the carrier, as described above.
[00179] The carrier can be integrally formed with the movable object. Alternatively, the carrier can be releasably coupled to the movable object. The carrier can be coupled to the movable object directly or indirectly. The carrier can provide support to the payload (e.g., carry at least part of the weight of the payload). The carrier can include a suitable mounting structure (e.g., a gimbal platform) capable of stabilizing and/or directing the movement of the payload. In some
embodiments, the carrier can be adapted to control the state of the payload (e.g., position and/or orientation) relative to the movable object. For example, the carrier can be configured to move relative to the movable object (e.g., with respect to one, two , or three degrees of translation and/or one, two, or three degrees of rotation) such that the payload maintains its position and/or orientation relative to a suitable reference frame regardless of the movement of the movable object. The reference frame can be a fixed reference frame (e.g., the surrounding environment). Alternatively, the reference frame can be a moving reference frame (e.g., the movable object, a payload target).
[00180] In some embodiments, the carrier can be configured to permit movement of the payload relative to the carrier and/or movable object. The movement can be a translation with respect to up to three degrees of freedom (e.g., along one, two, or three axes) or a rotation with respect to up to three degrees of freedom (e.g., about one, two, or three axes), or any suitable combination thereof.
[00181] In some instances, the carrier can include a carrier frame assembly and a carrier actuation assembly. The carrier frame assembly can provide structural support to the payload. The carrier frame assembly can include individual carrier frame components, some of which can be movable relative to one another. The carrier actuation assembly can include one or more actuators (e.g., motors) that actuate movement of the individual carrier frame components. The actuators can permit the movement of multiple carrier frame components simultaneously, or may be configured to permit the movement of a single carrier frame component at a time. The movement of the carrier frame components can produce a corresponding movement of the payload. For example, the carrier actuation assembly can actuate a rotation of one or more carrier frame components about one or more axes of rotation (e.g., roll axis, pitch axis, or yaw axis). The rotation of the one or more carrier frame components can cause a payload to rotate about one or more axes of rotation relative to the movable object. Alternatively or in combination, the carrier actuation assembly can actuate a translation of one or more carrier frame components along one or more axes of translation, and thereby produce a translation of the payload along one or more corresponding axes relative to the movable object.
[00182] In some embodiments, the movement of the movable object, carrier, and payload relative to a fixed reference frame (e.g., the surrounding environment) and/or to each other, can be controlled by a terminal. The terminal can be a remote control device at a location distant from the movable object, carrier, and/or payload. The terminal can be disposed on or affixed to a support platform. Alternatively, the terminal can be a handheld or wearable device. For example, the terminal can include a smartphone, tablet, laptop, computer, glasses, gloves, helmet, microphone, or suitable combinations thereof. The terminal can include a user interface, such as a keyboard, mouse, joystick, touchscreen, or display. Any suitable user input can be used to interact with the terminal, such as manually entered commands, voice control, gesture control, or position control (e.g., via a movement, location or tilt of the terminal).
[00183] The terminal can be used to control any suitable state of the movable object, carrier, and/or payload. For example, the terminal can be used to control the position and/or orientation of the movable object, carrier, and/or payload relative to a fixed reference from and/or to each other. In some embodiments, the terminal can be used to control individual elements of the movable object, carrier, and/or payload, such as the actuation assembly of the carrier, a sensor of the payload, or an emitter of the payload. The terminal can include a wireless communication device adapted to communicate with one or more of the movable object, carrier, or payload.
[00184] The terminal can include a suitable display unit for viewing information of the movable object, carrier, and/or payload. For example, the terminal can be configured to display information of the movable object, carrier, and/or payload with respect to position, translational velocity, translational acceleration, orientation, angular velocity, angular acceleration, or any suitable combinations thereof. In some embodiments, the terminal can display information provided by the payload, such as data provided by a functional payload (e.g., images recorded by a camera or other image capturing device).
[00185] FIG. 2 illustrates a movable object 200 including a carrier 202 and a payload
204, in accordance with embodiments. Although the movable object 200 is depicted as an aircraft, this depiction is not intended to be limiting, and any suitable type of movable object can be used, as previously described herein. One of skill in the art would appreciate that any of the embodiments described herein in the context of aircraft systems can be applied to any suitable movable object (e.g., a UAV).
[00186] In some instances, the payload 204 may be provided on the movable object 200 without requiring the carrier 202. The movable object 200 may include propulsion mechanisms 206,
a sensing system 208, and a transceiver 210. The propulsion mechanisms 206 can include one or more of rotors, propellers, blades, engines, motors, wheels, axles, magnets, or nozzles, as previously described herein. The movable object may have one or more, two or more, three or more, or four or more propulsion mechanisms. The propulsion mechanisms may all be of the same type.
Alternatively, one or more propulsion mechanisms can be different types of propulsion mechanisms. In some embodiments, the propulsion mechanisms 206 can enable the movable object 200 to take off vertically from a surface or land vertically on a surface without requiring any horizontal movement of the movable object 200 (e.g., without traveling down a runway). Optionally, the propulsion mechanisms 206 can be operable to permit the movable object 200 to hover in the air at a specified position and/or orientation.
[00187] For example, the movable object 200 can have multiple horizontally oriented rotors that can provide lift and/or thrust to the movable object. The multiple horizontally oriented rotors can be actuated to provide vertical takeoff, vertical landing, and hovering capabilities to the movable object 200. In some embodiments, one or more of the horizontally oriented rotors may spin in a clockwise direction, while one or more of the horizontally rotors may spin in a counterclockwise direction. For example, the number of clockwise rotors may be equal to the number of
counterclockwise rotors. The rotation rate of each of the horizontally oriented rotors can be varied independently in order to control the lift and/or thrust produced by each rotor, and thereby adjust the spatial disposition, velocity, and/or acceleration of the movable object 200 (e.g., with respect to up to three degrees of translation and up to three degrees of rotation).
[00188] The sensing system 208 can include one or more sensors that may sense the spatial disposition, velocity, and/or acceleration of the movable object 200 (e.g., with respect to up to three degrees of translation and up to three degrees of rotation). The one or more sensors can include global positioning system (GPS) sensors, motion sensors, inertial sensors, proximity sensors, or image sensors. The sensing data provided by the sensing system 208 can be used to control the spatial disposition, velocity, and/or orientation of the movable object 200 (e.g., using a suitable processing unit and/or control module, as described below). Alternatively, the sensing system 208 can be used to provide data regarding the environment surrounding the movable object, such as weather conditions, proximity to potential obstacles, location of geographical features, location of manmade structures, and the like.
[00189] The transceiver 210 enables communication with terminal 212 having a transceiver 214 via wireless signals 216. In some embodiments, the communication can include
two-way communication, with the terminal 212 providing control commands to one or more of the movable object 200, carrier 202, and payload 204, and receiving information from one or more of the movable object 200, carrier 202, and payload 204 (e.g., position and/or motion information of the movable object, carrier or payload; data sensed by the payload such as image data captured by a payload camera). In some instances, control commands from the terminal may include instructions for relative positions, movements, actuations, or controls of the movable object, carrier and/or payload. For example, the control command may result in a modification of the location and/or orientation of the movable object (e.g., via control of the propulsion mechanisms 206), or a movement of the payload with respect to the movable object (e.g., via control of the carrier 202). The control command from the terminal may result in control of the payload, such as control of the operation of a camera or other image capturing device (e.g., taking still or moving pictures, zooming in or out, turning on or off, switching imaging modes, change image resolution, changing focus, changing depth of field, changing exposure time, changing viewing angle or field of view). In some instances, the communications from the movable object, carrier and/or payload may include information from one or more sensors (e.g., of the sensing system 208 or of the payload 204). The communications may include sensed information from one or more different types of sensors (e.g., GPS sensors, motion sensors, inertial sensor, proximity sensors, or image sensors). Such
information may pertain to the position (e.g., location, orientation), movement, or acceleration of the movable object, carrier and/or payload. Such information from a payload may include data captured by the payload or a sensed state of the payload. The control commands provided transmitted by the terminal 212 can be configured to control a state of one or more of the movable object 200, carrier 202, or payload 204. Alternatively or in combination, the carrier 202 and payload 204 can also each include a transceiver configured to communicate with terminal 212, such that the terminal can communicate with and control each of the movable object 200, carrier 202, and payload 204 independently.
[00190] Sensing system
[00191] In some embodiments, a movable object can include a sensing system configured to provide information regarding a state of the movable object (e.g., position, velocity, and/or acceleration with respect to one to six degrees of freedom; propulsion state of the movable object; whether a payload of the movable object is turned on or off; a mode of operation of the payload; whether the payload is zoomed in or out) or any other object (e.g., carrier, payload). The information can be transmitted to a terminal to be displayed to a user. Additionally, the information
can be transmitted to a processing unit of the terminal to enable control of the movable object. For example, the information can include positional information for the movable object indicating a three-dimensional (3D) spatial disposition of the object relative to a fixed reference frame or a moving reference frame. The positional information can include location information (e.g., altitude, latitude, and longitude) and orientation information (e.g., roll angle, pitch angle, and yaw angle). Alternatively or in combination, the information can include motion information regarding the velocity and/or acceleration of the movable object with respect to one or more of the six degrees of freedom.
[00192] Any suitable combination of sensing systems can be used, such as combinations of the embodiments described herein. In some embodiments, the sensing systems each include a sensor adapted to receive a sensing signal that can be analyzed to provide positional and/or motion information of the movable object. The sensing signal can be indicative of one or more of a position, orientation, velocity, or acceleration of the movable object.
[00193] FIG. 3 illustrates a movable object 300 with a plurality of sensing systems, in accordance with embodiments of the present invention. The sensing systems of movable object 300 can include a GPS sensor 302, an inertial measurement unit (IMU) 304, and/or first and second vision sensors 306, 308. The sensing data produced by the sensing systems can be used to provide positional information that can be used to control and/or navigate the movable object 300.
[00194] The GPS sensor 302 can communicate with one or more GPS satellites 310 to obtain one or more GPS data signals 312. The GPS sensor 302 can be rigidly coupled to the movable object 300 such that the position of the GPS sensor 302 corresponds to the position of the movable object 300. Alternatively the GPS sensor 302 can be permitted to move relative to the movable object 300 with respect to up to six degrees of freedom. The GPS sensor 302 can be directly mounted onto the movable object 300, or coupled to a support structure mounted onto the movable object 300. In some instances, the support structure may include a load, such as a carrier or payload. The GPS sensor 302 may be provided exterior to or within a housing of the movable object. The GPS sensor 302 may be permanently or removably attached to the movable object. In some embodiments, the GPS sensor 302 can be an element of a payload of the movable object 300.
[00195] The GPS signals received by the GPS sensor 302 can be processed to determine the position of the movable object 300 relative to a global reference frame (e.g., latitude, longitude, and altitude), and thereby determine the translational velocity and/or acceleration of the movable object. The GPS sensor 302 can utilize any suitable GPS technology, such as differential GPS
(DGPS) or real time kinematic (RTK) GPS. The GPS sensor 302 can be configured to determine the position of the movable object 300 to any suitable level of accuracy, such as meter-level accuracy (e.g., within 10 m, 5 m, 2 m, or 1 m of accuracy) or centimeter-level accuracy (within 500 cm, 200 cm, 100 cm, 50 cm, 20 cm, 10 cm, or 5 cm of accuracy).
[00196] The IMU 304 can include one or more accelerometers, one or more gyroscopes, one or more magnetometers, or suitable combinations thereof. For example, the IMU 304 can include up to three orthogonal accelerometers to measure linear acceleration of the movable object along up to three axes of translation, and up to three orthogonal gyroscopes to measure the angular acceleration about up to three axes of rotation. The IMU 304 can be rigidly coupled to the movable object 300 such that the motion of the movable object 300 corresponds to motion of the IMU 304. Alternatively the IMU 304 can be permitted to move relative to the movable object 300 with respect to up to six degrees of freedom. The IMU 304 can be directly mounted onto the movable object 300, or coupled to a support structure mounted onto the movable object 300. The IMU 304 may be provided exterior to or within a housing of the movable object. The IMU may be permanently or removably attached to the movable object. In some embodiments, the IMU 304 can be an element of a payload of the movable object 300. The IMU 304 can provide a signal indicative of the motion of the movable object 300, such as a position, orientation, velocity, and/or acceleration of the movable object 300 (e.g., with respect to one, two, or three axes of translation, and/or one, two, or three axes of rotation). For example, the IMU 304 can sense a signal representative of the acceleration of the movable object, and the signal can be integrated once to provide velocity information, and twice to provide location and/or orientation information.
[00197] The vision sensors 306, 308 of the movable object 300 can be any suitable device for receiving optical signals 314, 316 from a target 318 within the surrounding environment (e.g., the ground 320) that can be processed to generate image data of the target 318. The vision sensors 306, 308 can be rigidly coupled to the movable object 300, such that the positional information obtained by the vision sensors 306, 308 corresponds to the positional information of the movable object 300. Alternatively the vision sensors 306, 308 can be permitted to move relative to the movable object 300 with respect to up to six degrees of freedom. The vision sensors 306, 308 can be directly mounted onto the movable object 300, or coupled to a support structure mounted onto the movable object 300. In some embodiments, the vision sensors 306, 308 can be an element of a payload of the movable object 300. Any suitable number of vision sensors can be used, such as a single vision sensor, a pair of vision sensors, three vision sensors, four vision sensors, or any other
number of vision sensors. For example, the vision sensors 306, 308 can be a pair of cameras (e.g., binocular cameras). Alternatively, a single camera (e.g., a monocular camera) can be used. In some embodiments, the vision sensors are laterally spaced apart on the movable object 300 such that each vision sensor provides an image from a different camera viewpoint, thereby enabling stereo vision imaging. For example, the vision sensors can be separated laterally by up to 1 m, 500 cm, 250 cm, 100 cm, 50 cm, 25 cm, 10 cm, 5 cm, 2 cm, or 1 cm. The vision sensors can be disposed on the same side of the movable object or opposite sides of the movable object. One or more vision sensors can be disposed on the front, rear, top, bottom, or lateral sides of the movable object, or suitable combinations thereof.
[00198] The vision sensors 306, 308 can be used to simultaneously capture images at a specified frequency to produce a time series of image data. The time series of image data obtained from the vision sensors 306, 308 can be processed to determine the position, orientation, and/or velocity of the movable object 300 using any suitable method, such as a machine vision algorithm. For example, a machine vision algorithm can be used to identify one or more feature points within each image (e.g., an edge of an object, a corner of an object, or a boundary between objects of two different colors). Any suitable method or combination of methods can be used to identify and provide a digital representation of the feature points, such as the features from accelerated segment test (FAST) algorithm or the binary robust independent elementary features (BRIEF) algorithm. The image data can then be matched to each other to identify a set of common feature points appearing in images obtained by both vision sensors. The motion of the movable object 300 can be determined based on the common feature points and the spatial disposition of the vision sensors 306, 308 relative to the movable object 300 and to each other.
[00199] Although not depicted in FIG. 3, the movable object 300 can also include a proximity sensing system configured to provide positional information for the movable object 300. Any proximity sensor capable of measuring the distance between the movable object 300 and one or more surrounding objects can be used. For example, the proximity sensing system can include an ultrasonic sensor and/or a lidar sensor. In some embodiments, the proximity sensor can be rotated (e.g., rotated 360°) to obtain distance and position information for a plurality of objects surrounding the movable object 300. The distance and position information for the surrounding objects can be analyzed to determine the spatial disposition and/or motion of the movable object 300.
[00200] FIG. 4 is a schematic illustration by way of block diagram of a system 400 for collecting positional and/or motion information for a movable object using a plurality of sensing
systems, in accordance with embodiments of the present invention. The system 400 can be used in combination with any suitable embodiment of the systems, methods, or devices disclosed herein. The system 400 can include a plurality of sensing systems or modules as described herein. The sensing systems can be different types of sensing systems that collect information relating to the movable object in different ways. Different types of sensing systems may sense different types of signals or signals from different sources. For example, the sensing systems can include an IMU 402, GPS sensor module 404, a plurality of cameras 406, and a proximity sensing module 408 (e.g., a lidar module).
[00201] The IMU 402 and the GPS sensor module 404 can be operatively coupled to a processing unit 410 having a plurality of processors (e.g., ARM processors), such as through a controller area network (CAN) connection 412. The proximity sensing module 408 can be operatively coupled to the processor unit 410. The cameras 406 can be operatively coupled to the processing unit 410. In some embodiments, the cameras 406 can be operatively coupled to a field programmable gate array (FPGA) 414. The FPGA 414 can be operatively coupled to the processing unit 410 (e.g., via a general purpose memory controller (GPMC) connection 416). An image transmission module 418 (e.g., a Wi-Fi image transmission module) can be operatively coupled to the cameras 406, such as through FPGA 414. The image transmission module 418 can be used to transmit images captured by the cameras 406 to any suitable external device or system, such as a terminal as described herein.
[00202] The processing unit 410 can be a programmable processor (e.g., a central processing unit (CPU)). The processing unit 410 can be operatively coupled to a non-transitory computer readable medium 420. The non-transitory computer readable medium can include one or more memory units (e.g., removable media or external storage such as an SD card 422, random access memory (RAM) 424). In some embodiments, data from the cameras 406 can be directly conveyed to and stored within the memory units of the non-transitory computer readable medium 420 (e.g., through a direct memory access (DMA) controller 426). The memory units of the non- transitory computer readable medium 420 can include code and/or program instructions executable by the processing unit 410 to perform any suitable embodiment of the methods described herein. For example, the processing unit 410 can be configured to execute instructions causing one or more processors of the processing unit 410 to analyze data produced by one or more sensing systems (e.g., IMU 402, GPS sensor module 404, cameras 406, proximity sensing module 408) to determine positional and/or motion information for the movable object, as described herein. The memory units
can store sensing data from the one or more sensing systems to be processed by the processing unit 410. In some embodiments, the memory units of the non-transitory computer readable medium 420 can store the positional and/or motion information of the movable object determined by processing the sensing data. Alternatively or in combination, the memory units of the non-transitory computer readable medium 420 can store predetermined or pre- stored data for controlling the movable object (e.g., a predetermined flight path, velocity profile, or velocity rule).
[00203] In some embodiments, the processing unit 410 can be operatively coupled to a control module 428 configured to control a state of the movable object. For example, the control module 428 is depicted in FIG. 4 as an actuation mechanism control module operable to the control the actuators or motors 430 of the movable object to adjust the spatial disposition of the movable object with respect to six degrees of freedom. Alternatively or in combination, the control module 428 can adjust the velocity or acceleration of the movable object with respect to six degrees of freedom. In some embodiments, the control module 428 can control the movable object based on predetermined control data or positional and/or motion information for the movable object obtained by processing data from one or more sensing systems, as described herein. The processing unit can be operatively coupled to one or more other modules 432, such as a module configured to control one or more of a state of a carrier, payload, or sensing system.
[00204] The processing unit 408 can be operatively coupled to a communication module
434 configured to transmit and/or receive data from one or more external devices (e.g., a terminal, display device, or other remote controller). Any suitable means of communication can be used, such as wired communication or wireless communication. For example, the communication module 434 can utilize one or more of local area networks (LAN), wide area networks (WAN), infrared, radio, WiFi, point-to-point (P2P) networks, telecommunication networks, cloud communication, and the like. Optionally, relay stations, such as towers, satellites, or mobile stations, can be used. Wireless communications can be proximity dependent or proximity independent. In some embodiments, line- of-sight may or may not be required for communications. The communication module 434 can transmit and/or receive one or more of sensing data from the sensing systems, positional and/or motion information determined by processing the sensing data, predetermined control data, user commands from a terminal or remote controller, and the like.
[00205] The components of the system 400 can be arranged in any suitable configuration.
For example, one or more of the components of the system 400 can be located on the movable object, carrier, payload, terminal, sensing system, or an additional external device in communication with
one or more of the above. Additionally, although FIG. 4 depicts a single processing unit 410 and a single non-transitory computer readable medium 422, one of skill in the art would appreciate that this is not intended to be limiting, and that the system 400 can include a plurality of processing units and/or non-transitory computer readable media. In some embodiments, one or more of the plurality of processing units and/or non-transitory computer readable media can be situated at different locations, such as on the movable object, carrier, payload, terminal, sensing system, additional external device in communication with one or more of the above, or suitable combinations thereof, such that any suitable aspect of the processing and/or memory functions performed by the system 400 can occur at one or more of the aforementioned locations.
[00206] Motion and/or position estimation using sensor fusion
[00207] In some instances, the performance of conventional individual sensing system can be less than ideal. For example, GPS sensing systems require line of sight to a plurality of GPS satellites, and can therefore be limited when used in poor weather conditions, indoor environments, or near buildings. Additionally, although DGPS and RTK GPS demonstrate improved accuracy compared to conventional GPS, these technologies can be associated with various restrictions that limit their applicability in some instances. IMU sensing systems, for example, can be less accurate for sensing complex movements (e.g., simultaneous fast translation and rotation). Additionally, IMU sensing systems can accumulate integration errors over time. Vision sensing systems, for example, can require significant amounts of computation. Furthermore, the accuracy of vision sensing systems can be influenced by image quality, such that low image resolution, image blurring (e.g., due to rapid movement), and image distortion can reduce the performance of such systems. Proximity sensing systems, for example, can be limited by sensor accuracy and usage range, as long range sensors can be too large for use in some applications. Additionally, lidar sensors can exhibit reduced performance under strong sunlight conditions.
[00208] In order to reduce measurement inaccuracies caused by any potential shortcomings of a single sensing system, the spatial disposition and/or motion of the movable object can be determined based on data received from a plurality of sensing systems, such as sensing systems of different types. The sensor fusion described herein makes use of the advantages of each sensor type while compensating for measurement inaccuracies from any single sensing system. Consequently, improved estimates of the motion and/or position of the movable object can be achieved in a wide variety of environments. Any suitable number and type of sensing systems can be used for the sensor fusion methods described herein. For example, a three-way sensor fusion of a
GPS sensing system, an IMU sensing system, and a machine vision sensing system, can be performed. Alternatively, a two-way sensor fusion can be performed (e.g., GPS and IMU, GPS and vision, GPS and proximity, IMU and vision, IMU and proximity, or vision and proximity).
Alternatively, data received from a plurality of sensing systems can be sequentially fused over multiple sensor fusion steps in any suitable order (e.g., GPS is fused with IMU, then vision is fused with GPS and IMU). The methods for sensor fusion described herein can be applied to determine positional and/or motion information for any suitable movable object, such as embodiments of the systems and devices described herein.
[00209] FIG. 5 is a schematic illustration of by way of block diagram of a sensor fusion system 500 for determining positional and/or motion information for a movable object, in accordance with embodiments of the present invention. The system 500 can be combined with any suitable embodiment of the systems, methods, and devices described herein. The system 500 includes first and second sensing systems 502 and 504, with respective sensors 506 and 508 configured to receive respective sensing signals 510 and 512. Any suitable number of optional sensing systems can also be provided, such as a third sensing system 514 including a sensor 516 for receiving a signal 518. The sensing data from the sensing systems can be transmitted to a sensor fusion module 520. The sensor fusion module 520 can include portions disposed on one or more of the movable object, payload, carrier, terminal sensing system, or additional external device. In some embodiments, the sensor fusion module 520 can be local to the sensing systems, or remote from the sensing systems. The sensor fusion module 520 can include one or more processors configured to determine the 3D spatial disposition and/or motion of the movable object based on the sensing data received from the sensing system. The sensor fusion module 520 can use any suitable sensor fusion method to determine the spatial disposition and/or motion. For example, the sensor fusion method can include an algorithm based on a Kalman filter, an extended Kalman filter (EKF), an unscented Kalman filter (UKF), a particle filter (PF), or suitable combinations thereof.
[00210] In some embodiments, the sensor fusion algorithm can exclude sensing data from one or more of the sensing systems from the sensor fusion analysis. Any suitable parameter can be used to determine whether to exclude sensing data from a sensing system. In some embodiments, the parameter can include sensor signal strength, sensor type, a state of the movable object, or the surrounding environment. The sensor signal strength can be dependent on one or more of sensor signal magnitude, number of sensing signals received by a sensing system. For example, the sensor can be a GPS sensor, and the GPS signal strength can be dependent on one or more of the number of
GPS sensing signals received (e.g., from different GPS satellites) or the magnitude of a GPS signal (e.g., as determined by the power of the signal). In some embodiments, the sensor fusion module 520 can compare the sensor signal strength to a threshold value to determine whether the sensor signal strength exceeds the threshold value. If the sensor signal strength exceeds the threshold value, the corresponding sensing data can be used in the sensor fusion analysis. If the sensor signal strength does not exceed the threshold value, the corresponding sensing data can be excluded from the sensor fusion analysis. The threshold value can be a predetermined value (e.g., input by a user).
Alternatively, the threshold value can be dynamically determined (e.g., based on one or more dynamically changing parameters, such as a state of the movable object). In some embodiments, the threshold value can be set to be greater than a minimum signal strength of a sensor that enables the corresponding sensing system to operate.
[00211] In some embodiments, one or more weight values can be determined for one or more sensing systems such that the sensor fusion algorithm factors in the one or more weight values when determining the spatial disposition and/or motion based on the corresponding sensing data. The weight value can be determined by the sensor fusion module 520 based on any suitable parameter, such as one or more of sensor signal strength or magnitude, number of sensing signals received by a sensing system, sensor type, or a state of the movable object. For example, for a GPS sensing system, the weight value can be determined based on GPS signal strength (e.g., signal strength depending on the number and/or magnitude of the GPS signals as described above), with a higher weight value when the signal strength is high and a lower weight value when the signal strength is low. In some embodiments, a weight value can be determined for a vision sensing system, such that the weight value is based on a parameter indicative of the accuracy of a machine vision algorithm used to analyze vision sensing data, as described in detail below. For example, for the vision sensing system, the weight value can be lower when the movable object is in an environment in which machine vision-based navigation is less reliable (e.g., at high altitudes or above water).
[00212] In some embodiments, the weight value can be a numerical value (e.g., ranging from 0 to 1). The weight value can encompass a continuous range of values or a discrete set of values. For example, the weight value can be mathematically related to one or more suitable parameters, such as through a linear, nonlinear, polynomial, exponential, or logarithmic correlation. Optionally, one or more weight values can be predetermined or selected from a pre-set value, based on user input. Any suitable number of sensing systems can be weighted, such as a single sensing system or multiple sensing systems. One or more sensing systems can share the same weight value,
or each sensing system can have a different respective weight value. Optionally, some sensing systems can be unweighted. In some embodiments, the sensor fusion module 520 can calculate the positional and/or motion information of the movable object based on sensing data from a suitable combination of weighted and unweighted sensing systems, such that the weight value is factored in for the sensing data from the weighted sensing systems. In one example a first sensing system and a second sensing system may be provided. The data from the first sensing system may be combined with a weight value factored in with the data from the second sensing system. In another example, data from the first sensing system may be weighted and combined with a weighted value from the second sensing system. One or more additional sensing systems (e.g., third sensing system, fourth sensing system) can be provided whose data may or may not be weighted. In some instances, weighting for a sensing system may be considered if sensor data can be compromised based on detectable conditions (e.g., signal strength).
[00213] FIG. 6 is a flow chart illustrating a sensor fusion algorithm 600 for state estimation of positional and/or motion information for a movable object, in accordance with embodiments of the present invention. Any suitable system or device can be used to apply the algorithm 600, such as the embodiments described herein. In some embodiments, the algorithm can be used to fuse sensing data from a pair of binocular cameras 602, 604, an IMU 606, and a GPS 608.
[00214] In the algorithm 600, a pair of images can be recorded simultaneously by the cameras 602, 604 (hereinafter an "image frame"). The algorithm 600 can be repeated each time an image frame is obtained in order to obtain the speed and position of the cameras 602, 604 relative to the starting position when the image frame was taken. Each time, the algorithm 600 can determine the relative positional change since the previous measurement time point, denoted as (R, T) , where R is a rotation matrix representing the change in orientation of the movable object relative to the previous time point, T is a motion vector representing the change in position of the movable object in 3D space relative to the previous time point.
[00215] Raw image data obtained by the cameras 602, 604 can be processed by image analysis to correct the image data, for example, by implementing an algorithm to correct optical distortion and/or noise in the image data. The image analysis can extract suitable feature points from the corrected image data and generate a digital representation of the feature points, as previously described herein.
[00216] In some embodiments, frame-to-frame matching of the feature points produced by the image analysis can be performed using an initial estimation of the positional change, thereby
reducing the complexity of the search and improving matching efficiency and accuracy. For example, the initial estimation can be generated based on two-way sensor fusion of the IMU 606 and the GPS sensor 608. The IMU 606 can provide velocity data with respect to six degrees of freedom that can be compared with positional information from the previous frame to provide a measurement of positional change (Rj, Tj). The GPS sensor 608 can provide measurement data of the positional change of the movable object, TG (e.g., with respect to three degrees of translation). In some embodiments, the GPS measurement data can be assigned a weight value δ, as described herein. The weight value δ can range from 0 to 1 based on the strength of the GPS signal. For example, in an environment where the GPS signal is weak, δ can be close to 0. In an environment where the GPS signal is strong, δ can be close to 1. Examples of an environment where the GPS signal can be weak can include an indoor environment, obstructions by structures or naturally occurring features, inclement weather conditions, lack of satellites overhead, or malfunction with a GPS receiver.
Examples of environments where the GPS signal can be strong can include an outdoor environment, high altitude, lack of obstructions, or clear weather conditions. In one scenario, a movable object may be flying at low altitude surrounded by a number of tall buildings. This may result in blocking or weakening satellite signals, which may correspondingly cause the data from the GPS system to be accorded lower weight. This may result in data from the GPS system being discounted relative to other sensing systems that have no indication of being compromised. Accordingly, the IMU data (Rj, Tj) and the GPS sensor data (δ, TG) can be fused using any suitable sensor fusion method as described herein (e.g., a Kalman filter) to generate an initial estimation of the positional change of the movable object (R, Τ).
[00217] The initial estimation (R, Τ) can be used to search for a feature point in a current frame, m[, (in which i represents the ith feature point and t represents the current time) corresponding to the same feature point in a previous frame, For example, the estimated 3D coordinate
= ( [-1, ft-i> ¾-i) °f the feature point mj-^can be rotated according to (R, Τ) to obtain R · Pt-x + T. The estimated 3D coordinate m\ = ΚΠ0 (R · + T)can be projected to obtain the position of the feature point after the rotation m\ = (u\, v{), where K is the internal parameter matrix for the camera and n0is the projection matrix. The current frame can then then searched and matched for the feature point within a (u[, vj) area, with a point m[ = (u[, v ) having the minimal planar distance from (ut l, vj) considered to be the corresponding point. Accordingly, the frame-to- frame relationship between the feature points \_1 and m\ can be determined. Stereo matching of
feature points between the images obtained by camera 602 and camera 604 can then be performed, such that the 3D position of a feature point can be estimated based on the spatial relationship between cameras 602 and 604.
[00218] FIG. 7 illustrates a system 700 for stereo vision, in accordance with
embodiments. The system 700 can include a left camera and a right camera (not shown) centered at positions 702 and 704, respectively. The parameters focal length f, photosensor size I, and the distance between the cameras b are known for each camera. In some embodiments, the
aforementioned parameters are the same for each camera. The 3D coordinate p\ corresponds to a pair of matched feature points m{- = (u{-, vj) and m{-' = (uj- , vj ) in the images captured by the left and right cameras, respectively. The pixel distances u\ and u{-'can be multiplied by the size of a single pixel to become spatial distances u\ and ϋ{-'. Thus, usin the formula
[00219] the distance between the 3D coordinate p\ and the cameras, denoted D, can be determined. Based on the internal parameter matrix of the camera K and calculated value of D, the estimated 3D coordinate p{- can thus be derived for the point (u{-, vj) .
[00220] Following frame-to-frame matching and stereo matching of feature points, a feature point-3D coordinate pair q = {m\, p\] can be obtained for each feature point. The velocity of the cameras can thus be determined by analyzing the motion of the feature points within the images using any suitable algorithm. For example, given a set of n coordinate pairs
c2, ... , cn obtained at a time t, the matrix R can be expressed as three row vectors R = [r1 f 2 ?3]T, and the internal parameter matrix of the camera can be expressed as
[00221] Consequently, an estimated positional movement or change between each feature point in time, Tv, can be obtained by solving
uc - ut n
[00222] As the estimated positional movement is primarily obtained based on frame matching of image data from the cameras 602, 604, the accuracy and precision of this estimate can be influenced by the size of n. In some embodiments, a weight value p can be assigned to Tv, as described herein. The weight value p can be based on the size of n. For example, the weight value can range from 0 to 1 , and be proportional to n.
[00223] A three-way sensor fusion can be performed based on the estimated positional movement from the vision sensing system (p, Tv) , IMU data (Rj, TJ), and GPS sensor data (δ, TG). Any suitable method can be used to fuse the three sets of sensing data to determine a single positional measurement (R, T) as described herein. In some embodiments, an EKF can be used. Accordingly, at a time t, the positional measurement value can be expressed as (Rt, Tt), such that
and the measurement functions can be expressed as
where oot and vt represent potential errors in the system having respective variances Qt and Rt.
[00224] To obtain (Rt, Tt), an estimated value for the variable (Rt|t> Tt|t) and a covariance matrix for estimating the accuracy of the estimate Pt|t ° (Rt|t> Tt|t) and Pt|t can be determined by updating the estimate value from the last point in time (R,-..-^..-!^ Tt χ 11 χ ) and Γ χ 11 χ . For example, the update can be performed using a EKF, such that the update equation can be expressed as
St— GtPtit-i G + Rt_1
Pt|t = (I - KtGt)Pt|t-i where ¥t_1 is the l and Gtis the linear matrix of the function g at point e degree of "trust" of the sensor
fusion algorithm on the GPS data and machine vision algorithm, respectively. Lastly, the current estimated position can be obtained by solving (Rt, Tt) = (Rt|t> Tt|t) to obtain an accurate
measurement of the positional information of the movable object.
[00225] As the movable object moves over a relatively long distance, some of the previously identified feature points may move outside the current image frames and thus become unmatchable, which can decrease the value of n and reduce the reliability of the image data.
Accordingly, in some embodiments, the algorithm 600 can be periodically "reset" to account for this situation. For example, the algorithm can periodically specify a new "key frame," such that the feature points within the new key frame become the new feature points used as candidates for the feature matching algorithm. Any suitable method can be used to determine when a reset occurs. For example, a reset threshold value can be specified, such that when the number n of coordinate pairs is lower than the reset threshold value, the algorithm 600 is reset. The reset threshold value can be determined based on any suitable parameter, such as the amount of allowable error in the motion estimation, image quality, the feature extraction algorithm, or suitable combinations thereof. In some embodiments, the reset threshold value can be set by a user (e.g., after calibration of the vision sensing system).
[00226] In some embodiments, the positional and/or motion information determined by the algorithm 600 can be fed back into one or more sensing systems so as to improve the accuracy of the sensing system. In some embodiments, a velocity or acceleration estimation with respect to six degrees of freedom can be determined based on derivation of the positional information, and provided to one or more sensing systems. For example, the positional and/or motion information can periodically be used to calibrate the reference value of the IMU 606 in order to correct for any accumulation of integration errors over time.
[00227] The algorithm 600 can be implemented at any suitable computing speed. For example, the cameras 602, 604 can be configured to receive image data at 20 Hz, the IMU 606 can be configured to receive inertial sensing data at 200 Hz, and the GPS sensor 608 can be configured to receive GPS data at 200 Hz. In some embodiments, the image analysis, frame-to-frame matching, stereo matching, key frame reset, and motion and position estimation can be computed at 20 Hz to obtain 20 fused estimate values per second. In some embodiments, the two-way fusion of the IMU and GPS sensor data and the three-way fusion between the IMU, GPS, and vision sensor data can be computed at 200 Hz. Any other frequency or rates of data gathering or fusion may occur. In some embodiments, cameras may be capable of capturing images at rates of greater than or equal to about 10 Hz, 15 Hz, 20 Hz, 25 Hz, 30 Hz, 35 Hz, 40 Hz, 50 Hz, 60 Hz, 70 Hz, 80 Hz, 90 Hz, 100 Hz, 120 Hz, 150 Hz, 200 Hz, or 300 Hz. Images may be captured at video sampling rates.
[00228] Any suitable hardware platform can be used to execute any portion of the algorithm 600, such as embodiments of the systems and devices described herein. For example, the FPGA 414 can be used to perform the image correction and frame- to-frame matching, as described herein. The data 414 can be transmitted to the processing unit 410 in order to execute the remaining steps of the algorithm 600. The positional and/or motion information determined by the processing unit 410 can be stored in the non-transitory computer readable medium 420. In some embodiments, one or more steps of the algorithm 600 can be executed by one or more hardware platforms, such as one or more components of the system 400 which can optionally be located on different devices as described herein.. In some embodiments, the data can be transmitted to one or more remote systems having greater computational power than the system 400. For example, the system 400 can be located on the movable object, and raw image data can be transmitted to one or more systems remote from the movable object (e.g., a terminal) via the image transmission module 418. The algorithm 600 can be executed as described herein and the results sent back to the movable object via the communication module 434. This approach advantageously reduces the computational requirements for the hardware onboard the movable object.
[00229] Applications
[00230] Embodiments of the systems, methods, and devices described herein can be used in any suitable application involving collection of positional and/or motion information for a movable object. In some embodiments, the disclosed systems, methods, and devices can be applied to control and/or navigate an aircraft, such as a UAV. However, the use of language referring to flight, flight path, flight trajectory, and the like in the following examples is not intended to limit the
present invention to flying movable objects, as one of skill in the art will appreciate that the embodiments described herein can be applied to movable objects that are not flying.
[00231] For example, positional and/or motion information of the movable object provided by one or more sensing systems (e.g., using sensor fusion as described herein) can be used in order to control the position of the movable object with respect to six degrees of freedom (e.g., three degrees of location and three degrees of orientation). In some embodiments, the movable object can respond to control instructions directly provided by a user and transmitted to the movable object (e.g., using a terminal) to free control a location and/or orientation of the movable object (e.g., with respect of altitude, latitude, longitude, roll angle, pitch angle, or yaw angle). Optionally, the movable object can respond to control instructions to control a movement of the movable object. For example the translational velocity and/or the translational acceleration of the movable object may be controlled, up to three degrees of translation movement, such as altitude, latitude and longitude. The angular velocity and/or angular acceleration of the movable object may be controlled, up to three degrees of angular movement, such as rotation about the yaw axis, roll axis, and pitch axis.
[00232] Alternatively or in combination, the position control scheme can calculate a path for the movable object to a location specified by the user. The path for the movable object may occur on land, in the water, in the air, or in space. The path for the movable object may be restricted to a surface or may encompass substantially free motion in three degrees of freedom. In some embodiments, the path may be a flight path, and the position control scheme can provide flight trajectory generation. Any description herein of a flight path may apply to any other type of path that may be traversed by a movable object, and vice versa. For example, the user can specify a set of spatial coordinates defining a "home position" to which the movable object automatically returns when a "return command" is received. The return command can cause the movable object to calculate a flight path to the home position based on positional information for the movable object determined as described herein, and then navigate to the home position using the calculated flight path. Optionally, the user can specify a landmark or other environmental feature to be the home position via an interface (e.g., a terminal, display, or other remote controller), and the coordinates of the landmark can be determined by the interface and transmitted to the movable object. In some embodiments, the "home position" can be recorded by the movable object based on positional information obtained during a flight without requiring the input of specific spatial coordinates by the user. For example, the location where the movable object started its flight can be automatically
recorded as the home position. Alternatively, any suitable location along the flight path of the movable object can be designated as the home position. For instance, while the movable object is flying, a user can designate the movable object's location as the home location, to which the movable object can return to later. Optionally, multiple preset locations can be specified, either by the user or automatically as described herein, and the movable object can be commanded to navigate to each of the locations in any suitable sequence.
[00233] Alternatively or in combination, a position control scheme for the movable object can involve autonomous navigation of the movable object along a predetermined flight path, also known as a pre-stored flight path. For example, a suitable user input can be used to command the movable object to navigate to the starting point of a predetermined flight path stored in memory. The predetermined flight path can include information regarding the spatial disposition of the movable object with respect to six degrees of freedom (e.g., three degrees of location and three degrees of orientation) at each point of the flight path. The movable object can be commanded to navigate along the predetermined flight path along all six degrees until instructed otherwise by the user. For example, the movable object can follow the path location as well as the preset orientations along the path.
[00234] The predetermined flight path can be a closed loop, such that the movable object can follow the flight path repeatedly (e.g., autolooping). The closed loop path may be created by recording a previously flown path of the movable object. Alternatively, the closed loop path may be generated or calculated according to one or more parameters and/or one or more pre-selected points. Alternatively, the flight path can have different starting and end points.
[00235] The predetermined flight path can include one or more portions defined by user input. For example, the user can provide coordinates defining a flight path for the movable object with respect to six degrees of freedom. The user-defined flight path can include a path template having one or more suitable path parameters input by the user, such that the user does not need to specify coordinates for the entire flight path. In some embodiments, the path template can be a geometric shape, and the path parameters can be one or more dimensions defining the geometric shape. The dimensions can include one or more of the length of an edge, length of an axis, radius of a curve, diameter of a curve, degrees of an arc, curvature of a path, and the like. For example, the path template can be a closed shape, such as a circle with a path parameter being the diameter of the circle, an ellipse with the path parameters being the lengths of the major and minor axes, or a polygon (e.g., square, rectangle, triangle) with path parameters being the length of one or more edges
of the polygon. Alternatively, the path template can be an open shape (e.g., a linear, curved, or curvilinear shape), such as a zigzag shape, with a path parameter being a spacing of the zigzag. The parameters of the path template can also include parameters with respect to movable object orientation (e.g., fixed orientation, varying orientation).
[00236] Alternatively or in combination, the predetermined flight path can include one or more portions that were traveled and recorded by the movable object during a previous flight (e.g., using spatial coordinates with respect to six degrees of freedom based on the positional and/or motion information determined as described herein). For example, the user can specify a start time and a stop time for recording a flight path during a flight of the movable object. Optionally, an on/off command can be used, such that the recording begins when the on command is provided by the user and ends when the off command is provided by the user. In some embodiments, the recording can be configured to store spatial coordinates of the movable object at specified time intervals or distance intervals, either automatically determined or input by the user. The
predetermined flight path can have the same directionality as the recorded flight path, or be the reverse of the recorded flight path. The spatial disposition of the movable object with respect to six degrees of freedom can be the same at one or more points of the predetermined flight path as the recorded flight path. Alternatively, the spatial disposition can be different at one or more points, such as the reverse of the recorded flight path. In some instances, the predetermined path may be the recorded path exactly, along the six degrees of freedom, including location and orientation. In some instances, the predetermined path may be the reverse of the recorded path exactly, along the six degrees of freedom, including location and orientation.
[00237] FIG. 8 is a schematic illustration by way of block diagram of a system 800 for navigation of a movable object along a predetermined flight path, in accordance with embodiments of the present invention. The system 800 can be used in combination with any suitable embodiment of the systems, methods, and devices described herein. The system 800 includes a path calculation module 802 and a flight control module 804. The path calculation module 802 includes a vision sensing system 806 (e.g., a pair of binocular cameras), an IMU sensing system 808, and a GPS sensing system 810. The sensing data received from these sensing systems is fused by a motion and/or position estimation module 812 using suitable sensor fusion algorithms, as described herein. As the movable object moves along a flight path (e.g., under the control of the user), the positional and/or motion information generated by the motion and/or position estimation module 812 can be stored in one or more memory units of a path storage module 814. For example, the movable object
can set a starting point (0,0), and then determine the positional information (R, T) using the motion and/or position estimation module 812 for a series of key points along the flight path. The key points can be determined based, for example, on a time interval, distance interval, or a suitable combination thereof. The flight path defined by the curve of key points
{(0,0), (Rx, Tx), (R2, T2), . . . , , (Rn, Tn)} is stored in the path storage module 814.
[00238] A suitable user input can be used to command the movable object to navigate autonomously along the predetermined flight path stored in the path storage module 814. In some embodiments, a user input 816 can be provided in order to define velocity and/or acceleration parameters of the movable object along the predetermined flight path. Suitable velocity and/or acceleration parameters are described in greater detail below. A path parameterization module 818 can be used to reparameterize the predetermined flight path based on the user input. For example, the number of key points in the flight path curve can vary based on a user-specified velocity to be maintained by the movable object along the flight path, such that the new number of key points can be solved based on the geometry of the flight path curve.
[00239] The reparameterized flight path can be transmitted to the flight control module
804. The flight control module 804 includes a flight control information generation module 820 configured to determine position, velocity, and/or acceleration information of the flight path with respect to six degrees of freedom. For example, the flight control information generation module 820 can determine the difference between consecutive key points and take a partial derivative of the difference to determine the linear acceleration and angular acceleration (Rt, Tt) required to reach the next key point. Optionally, the number of key points can be varied based on the velocity of the movable object, as described herein. In some embodiments, an increased velocity may result in an increased number of key points. Alternatively, an increased velocity may result in a fewer number of key points. A sufficient number of key points may be selected to permit the movable object to follow the path. The acceleration information can be input into a flight control module 822 to maneuver the movable object (e.g., via a suitable actuation mechanism, such as one or more motors) to follow the flight path by navigating to the next key point.
[00240] In some embodiments, during the navigation process, the motion and/or position estimation module 812 can calculate the current spatial disposition and/or motion of the movable object as described herein. This information can be input into a feedback correction module 824 of the flight control module 804 to determine the current spatial disposition of the movable object relative to the predetermined flight path in order to correct any errors that occur during navigation of
the predetermined flight path. For example, given an erroneous navigation to (Rt+i, Tt'+1) instead of (Rt+1, Tt+1) at time t+1, the feedback correction module 824 can be configured to compensate for the difference between (Rt+i, Tt'+1) and (Rt+i, Tt+1) when navigating to the next key point at (Rt+2, Tt+2) at time t+2.
[00241] In some embodiments, the position of the movable object may be controlled freely by a user using a terminal or any other remote control system. Rather than following a predetermined path, the user may provide commands to control the movable object in real-time. For example, the user may instruct the movable object to maintain position, change location and/or change orientation. In some instances, a default may be provided. The default may be for the movable object to maintain position. For example, if no input is provided from the user, the movable object may hover. In other embodiments, the default may be to continue with the previous instructions. For example, if the user instructed the movable object to move forward, the movable object may continue to move forward at the same rate unless instructed otherwise. In some embodiments, the commands from the user may be provided via a user interface of the terminal, position/movement of the terminal, or any other input as discussed elsewhere herein.
[00242] In some embodiments, a control of the movable object position and movement can be a combination of any of the types of control described elsewhere herein. For instance, the movable object path can be a combination of a pre-stored path, calculated path, and/or free control by the user. In one example, a movable object may follow a pre-recorded path location. However, the user may control the movable object in real-time to adjust the orientation of the movable object, so that the movable object need not follow the pre-recorded orientation of the movable object.
[00243] In some embodiments, the sensor fusion-based motion and/or position estimation methods described herein can be used to control the velocity of the movable object with respect to six degrees of freedom as described herein. Such velocity controls can be used independently or in combination with any suitable embodiment of the position control schemes described herein. For example, one or more velocity controls disclosed herein can be applied to free control, flight trajectory generation, or a predetermined flight path, as previously described.
[00244] For example, the user can define a velocity profile and/or rules for the movable object. The velocity profile and/or rules can include a maximum allowable velocity, a minimum allowable velocity, a velocity range, a constant velocity, or a variable velocity, or suitable combinations thereof, to be maintained by the movable object during a flight. The velocity profile and/or rules can be applied to a translational velocity or an angular velocity of the movable object.
In some instances, a velocity profile and/or rules applied to a translational velocity may govern an angular velocity, or vice versa. For example, a maximum velocity can be specified for the movable object, such that the movable object is not allowed to exceed the maximum velocity. In some instances, a maximum translational velocity (e.g., linear speed) and/or the maximum angular velocity (e.g., rotational speed) may be specified. The movable object may move at a velocity so that neither the maximum translational velocity nor the maximum angular velocity is exceeded. In some instances, following a predetermined path (including predetermined location and orientation) may result in tying in the translational and angular velocities. In some instances, to not exceed one of the types of velocities (e.g., translational velocity), the movable object may not meet the maximum velocity of the other type of velocity (e.g., angular velocity). In some instances, a maximum translational velocity and a maximum angular velocity can be specified, such that neither can be exceeded by the movable object. The velocity profile and/or rules can be maintained during free control of the movable object, such that user commands that would result in a violation of the velocity profile and/or rules are modified or overridden.
[00245] A movable object may traverse a path in accordance with one or more velocity profiles or rules. The path of the movable object may be predetermined, may be freely controlled in real time by a user, and/or may be calculated in real-time with aid of a processor. The velocity profile may indicate the speed (linear and/or rotational speed) at which the movable object traverses the path. Any description herein of the movable object traversing a predetermined flight path in relation to the velocity rules may be applied also to other types of path including freely human controlled paths, or computer-calculated paths.
[00246] In some embodiments, a predetermined flight path traversed by the movable object can be associated with a velocity profile and/or rules (e.g., provided via user input 816) to be followed while the movable object traverses the flight path. The predetermined flight path can be divided into one or more segments, with each segment having its own velocity profile and/or rules to be followed by the movable object while traversing the segment. For example, the movable object can be commanded to travel a first path segment at a constant velocity and then a second path segment at a different constant velocity. For example, the velocity profile may specify that the movable object travel with a translational velocity of 3 m/s along the first 100 meters, and then travel with a translational velocity of 5 m/s along the second 200 meters, before returning to a velocity of 3 m/s along the rest of the path. The movable object may follow this velocity profile along the path (which can define both the translational and angular position of the movable object along the path),
which may result in governing both the translational velocity and the corresponding angular velocity. In some instances, the movable object can be commanded to travel a first path segment at a variable velocity and then a second path segment at a constant velocity. Optionally, the entirety of the predetermined flight path can be associated with the same velocity profile and/or rules. In some embodiments, the velocity profile and/or rules can be altered (e.g., based on user input) while the movable object is following the predetermined flight path. In some embodiments, the predetermined flight path can be a recorded flight path as described herein, and the velocity profile can be the same as the velocity profile of the movable object during a previous traversal of the recorded flight path (e.g., during the recording process). Alternatively, one or more velocity values of the velocity profile can be different from a velocity of the movable object during a previous traversal of the recorded flight path.
[00247] The velocity profile and/or rules can be determined by any suitable means. For example, the velocity profile and/or rules can be provided via user input (e.g., via a remote control such as a terminal) and stored in memory. Such velocity profiles and/or rules determined by the user can be established prior to flight of the movable object or in real-time while the movable object is flying. Optionally, the velocity profile and/or rules can be pre-stored into a memory of the movable object prior to the flight. The velocity profile and/or rules can be pre-stored off -board and sent to the movable object prior to or during flight. Alternatively or in combination, the velocity profile and/or rules can be determined dynamically in real-time by a suitable processor and/or algorithm based on a state of the movable object during flight (e.g., an altitude, latitude, longitude, roll angle, pitch angle, or yaw angle of the movable object). In some embodiments, the velocity profile and/or rules can be based on positional and/or motion information of the movable object provided by one or more sensing systems (e.g., determined using sensor fusion of one or more sensing systems including GPS, IMU, vision, or proximity, as described herein). For example, a maximum velocity can be specified for the movable object based on the measured altitude of movable object, with a higher maximum velocity at higher altitudes, and a lower maximum velocity at lower altitudes. This can be advantageous, for example, in reducing the possibility of collisions with structures near the ground.
[00248] FIG. 9 is schematic illustration by way of block diagram of a system 900 for velocity control of a movable object such as a UAV, in accordance with embodiments of the present invention. The system 900 can be used in combination with any suitable embodiment of the systems, methods, and devices described herein. The system 900 includes a position and/or motion estimation module 902 and a flight control module 904. During the flight of the movable object, the
position and/or motion estimation module 902 determines the current velocity of the movable object using suitable embodiments of the sensor fusion methods described herein. The current velocity value can be compared against a specified velocity profile and/or rule. The flight control module 904 controls a suitable actuation mechanism (e.g., one or more motors) to adjust the velocity of the movable object to be in accordance with the velocity profile and/or rule. In the embodiment of FIG. 9, the velocity profile and/or rule is depicted as a pre-set speed limit of the movable object, and the speed information generated by module 902 is fed back to prevent the movable object from exceeding the pre-set speed limit.
[00249] Additionally, one of skill in the art would appreciate that embodiments of the velocity controls described herein can also be applied to control of the acceleration of the movable object with respect to six degrees of freedom. For example, an acceleration profile and/or rules can be specified for the movable object similar to the velocity profile and/or rules as previously described. In one example, a maximum translational acceleration and/or maximum angular acceleration may be provided. Any suitable combination of position controls, velocity controls, and acceleration controls can be applied to any of the applications described herein (e.g., for free control, flight trajectory generation, or a predetermined flight path).
[00250] In some embodiments, position controls may be established separately from movement controls, such as velocity and acceleration controls. Movement controls may be applied to position controls, such as a predetermined path (generated by user or with aid of a processor), or real-time generated path (generated by user or with aid of processor). Position controls and movement controls may be created separately using different mechanisms, or using the same mechanisms. Position controls and different velocity/acceleration profiles can be mixed and matched as desired by the user. Position controls and movement controls can be stored and/or accessed separately from movement controls.
[00251] In some embodiments, the positional and/or motion information for the movable object can be displayed on a user interface. The user interface can be any interface adapted for navigation and control of the movable object from a remote control center, such as a display (e.g., a touchscreen display) or terminal as previously described herein. In some instances, a separate display device may be provided from a control terminal. Alternatively, both control and display functionality may be provided within a single device. The user interface can receive user input, such as input from a keyboard, mouse, joystick, touch screen, voice recognition system, gesture recognition system, or suitable combinations thereof. Any suitable information can be displayed on
the user interface, such as positional information for the movable object (e.g., latitude, longitude, altitude, roll angle, pitch angle, yaw angle, origin, destination, previously traveled flight path, future flight trajectory, predetermined flight path, home position, or preset location) or motion information with respect to six degrees of freedom (e.g., velocity or acceleration). The positional and/or motion information can be displayed as one or more of an alphanumeric value, symbol or shape, size of a symbol or shape, color or color gradient, and the like. Optionally, the user interface can display information relating to a payload of the movable object, such as size, weight, payload type, location and/or orientation of the payload with respect to six degrees of freedom, state (e.g., whether a functional element is on or off) or data transmitted by the payload (e.g., data collected by a payload sensor such as a camera image or video feed). In some embodiments, the user interface can display information relating to the environment surrounding the movable object, such as a map (e.g., a topographical map) of the environment. Additional information can be overlaid on the map, such as information relating to elevation, latitude, longitude, orientation, weather conditions, geographical features, manmade features (e.g., buildings, roads, political boundaries), and the like. The map may or may not show underlying topological features. The map may be viewed from above, or may be angled to show one or more feature from different angles. The user interface can also be used to control the how the information is displayed. Optionally, the displayed information can be zoomed in, zoomed out, rotated, translated, segmented into multiple viewing angles, combined into a single viewing angle, and the like.
[00252] In some embodiments, the user interface can include one or more user controls configured to control one or more of the movable object, carrier or payload with respect to position, velocity, and/or acceleration as described herein. Optionally, the user interface can include separate controls for each of the movable object, carrier, and payload, such that each can be controlled simultaneously and/or independently. Additionally, the user controls can be used to control the state of one or more of an element of the movable object, carrier, or payload, such as a sensing system, actuation mechanism, communication device, processing unit, or any other functional device. For example, the user controls can be used to provide commands to the movable object relating to one or more of free control, flight trajectory generation, a predetermined flight path, velocity profile and/or rules, or acceleration profile and/or rules, as previously described. In some embodiments, the user controls can control a state of the payload by controlling the movable object and/or carrier, as described herein. Optionally, the user interface can include controls for a payload camera, such as on, off, location, orientation, zoom, or focus.
[00253] FIG. 10 illustrates a user interface 1000 for control and navigation of a movable object, in accordance with embodiments of the present invention. The user interface 1000 can be used in combination with any suitable embodiment of the systems, methods, and devices described herein. The user interface 1000 includes a visual indicator 1002 for a movable object relative to a three-dimensional (3D) coordinate system 1004. The position and/or orientation of the 3D coordinate system 1004 can be adjusted, with the visual indicator 1002 being adjusted accordingly. For instance, a user may view the movable object from different angles. Information pertaining to the relative location of the movable object (e.g., coordinate system, environment/map) may also move correspondingly. In some instances, the user may control the view of the movable object by swiping or touching a touchscreen. The visual indicator includes a first indicator 1006 indicating the spatial disposition of the movable object in real-time with respect to six degrees of freedom, and a second indicator 1008. The first indicator 1006 can indicate the orientation of the movable object, for example, by using an arrow indicating the direction in which the movable object is positioned to move. The second indicator 1008 can be used to depict a direction of motion of the movable object. For example, the second indicator 1008 can be an arrow indicating the 3D direction of motion, with the length of the arrow corresponding to the magnitude of the motion. Alternatively, the second indicator 1008 can be an arrow used to depict a facing direction of a payload of the movable object (e.g., a payload camera). In some instances, only a single indicator need be provided. The single indicator may be indicative of the orientation of the movable object. The orientation of the movable object may refer to the trajectory of travel for the movable object and/or the direction of a payload. In some embodiments, the visual indicator 1002 can include alphanumerical values representing the positional and/or motion information of the movable object, as described herein
[00254] While preferred embodiments of the present invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.
Claims
1. A method of collecting positional information for a movable object, said method comprising: receiving, at a memory, data from a first sensing system coupled to the movable object, said first sensing system comprising a sensor that receives a signal useful for determining the positional information of the movable object; receiving, at the memory, data from a second sensing system coupled to the movable object, said second sensing system comprising a sensor that receives a signal useful for determining the positional information of the movable object; determining, with aid of a processor, a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and calculating, with aid of the processor, the positional information of the movable object based on (i) the data from the first sensing system and (ii) the data from the second sensing system factoring in the weight value.
2. The method of claim 1, wherein the movable object is an unmanned aerial vehicle.
3. The method of claim 1, wherein calculating the positional information of the movable object comprises calculating location information and orientation information of the movable object.
4. The method of claim 2, wherein calculating location information comprises calculating altitude, latitude, and longitude of the movable object.
5. The method of claim 2, wherein calculating orientation information comprises calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
6. The method of claim 1 , wherein receiving data from the second sensing system comprises receiving data from a global positioning system (GPS) sensor used by the second sensing system.
7. The method of claim 6, wherein the strength of the signal received by the sensor of the second system depends on a number of GPS signals received.
8. The method of claim 6, wherein the strength of the signal received by the sensor of the second system depends on a magnitude of a GPS signal received.
9. The method of claim 1, wherein receiving data from the first sensing system comprises receiving data from one or more vision sensors used by the first sensing system.
10. The method of claim 9, wherein receiving data from the one or more vision sensors comprises receiving data from a plurality of vision sensors that are laterally spaced apart.
11. The method of claim 9, further comprising receiving data from a third sensing system coupled to the movable object, wherein said third sensing system uses an inertial measurement unit (IMU).
12. The method of claim 1, wherein receiving data from the first sensing system comprises receiving data from an IMU used by the first sensing system.
13. The method of claim 1, wherein the signal useful for determining the positional information includes an optical signal.
14. The method of claim 1, wherein the signal useful for determining the positional information includes a signal from a satellite.
15. The method of claim 1, wherein the signal useful for determining the positional information includes a signal indicative of velocity or acceleration.
16. The method of claim 1, wherein the weight value is a numerical value.
17. The method of claim 16, wherein the numerical value is a value between zero and one.
18. The method of claim 1, further comprising receiving an instruction for the movable object to return to a preset location.
19. The method of claim 18, further comprising calculating, with aid of the processor, a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
20. A non-transitory computer readable medium containing program instructions for collecting positional information for a movable object, said computer readable medium comprising: program instructions for analyzing data received from a first sensing system coupled to the movable object, said first sensing system comprising a sensor that receives a signal useful for determining the positional information of the movable object; program instructions for analyzing data received from a second sensing system coupled to the movable object, said second sensing system comprising a sensor that receives a signal useful for determining the positional information of the movable object; program instructions for determining a weight value for the data from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and program instructions for calculating the positional information of the movable object based on (i) the analyzed data from the first sensing system and (ii) the analyzed data from the second sensing system factoring in the weight value.
21. The computer readable medium of claim 20, wherein the movable object is an unmanned aerial vehicle.
22. The computer readable medium of claim 20, wherein the program instructions for calculating the positional information of the movable object comprise program instructions for calculating location information and orientation information of the movable object.
23. The computer readable medium of claim 22, wherein the program instructions for calculating location information comprise program instructions for calculating altitude, latitude, and longitude of the movable object.
24. The computer readable medium of claim 22, wherein the program instructions for calculating orientation information comprise program instructions for calculating an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
25. The computer readable medium of claim 20, wherein the program instructions for analyzing data received from the second sensing system comprise program instructions for analyzing data received from a GPS sensor used by the second sensing system.
26. The computer readable medium of claim 25, wherein the strength of the signal received by the sensor of the second system depends on a number of GPS signals received.
27. The computer readable medium of claim 25, wherein the strength of the signal received by the sensor of the second system depends on a magnitude of a GPS signal received.
28. The computer readable medium of claim 20, wherein the program instructions for analyzing data received from the first sensing system comprises program instructions for analyzing data received from one or more vision sensors used by the first sensing system.
29. The computer readable medium of claim 28, wherein the program instructions for analyzing data received from the one or more vision sensors comprise program instructions for analyzing data received from a plurality of vision sensors that are laterally spaced apart.
30. The computer readable medium of claim 28, further comprising program instructions for analyzing data received from a third sensing system coupled to the movable object, wherein said third sensing system uses an IMU.
31. The computer readable medium of claim 20, wherein the program instructions for analyzing data received from the first sensing system comprises program instructions for analyzing data received from an IMU used by the first sensing system.
32. The computer readable medium of claim 20, wherein the signal useful for determining the positional information includes an optical signal.
33. The computer readable medium of claim 20, wherein the signal useful for determining the positional information includes a signal from a satellite.
34. The computer readable medium of claim 20, wherein the signal useful for determining the positional information includes a signal indicative of velocity or acceleration.
35. The computer readable medium of claim 20, wherein the weight value is a numerical value.
36. The computer readable medium of claim 35, wherein the numerical value is a value between zero and one.
37. The computer readable medium of claim 20, further comprising program instructions for receiving an instruction for the movable object to return to a preset location.
38. The computer readable medium of claim 37, further comprising program instructions for calculating, with aid of the processor, a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
39. A system for collecting positional information for a movable object, said system comprising:
a first sensing system coupled to the movable object, said first sensing system comprising a sensor configured to receive a signal useful for determining the positional information of the movable object;
a second sensing system coupled to the movable object, said second sensing system comprising a sensor configured to receive a signal useful for determining the positional information of the movable object; and
a processor that (a) determines a weight value for the signal from the second sensing system based on a strength of the signal received by the sensor of the second sensing system; and (b) calculates the positional information of the movable object based on (i) the data from the first sensing system and (ii) the data from the second sensing system factoring in the weight value.
40. The system of claim 39, wherein the movable object is an unmanned aerial vehicle.
41. The system of claim 39, wherein the positional information comprises location information and orientation information of the movable object.
42. The system of claim 41, wherein the location information comprises altitude, latitude, and longitude of the movable object.
43. The system of claim 41, wherein the orientation information comprises an angle of the movable object with respect to a yaw axis, an angle with respect to a roll axis, and an angle with respect to a pitch axis.
44. The system of claim 39, wherein the second sensing system uses a GPS sensor.
45. The system of claim 44, wherein the strength of the signal received by the sensor of the second system depends on a number of GPS signals received.
46. The system of claim 44, wherein the strength of the signal received by the sensor of the second system depends on a magnitude of a GPS signal received.
47. The system of claim 39, wherein the first sensing system uses one or more vision sensors.
48. The system of claim 47, wherein the first sensing system uses a plurality of vision sensors that are laterally spaced apart.
49. The system of claim 47, further comprising a third sensing system coupled to the movable object, wherein said third sensing system uses an inertial measurement unit (IMU).
50. The system of claim 39, wherein the first sensing system comprises uses an IMU.
51. The system of claim 39, wherein the signal useful for determining the positional information includes an optical signal.
52. The system of claim 39, wherein the signal useful for determining the positional information includes a signal from a satellite.
53. The system of claim 39, wherein the signal useful for determining the positional information includes a signal indicative of velocity or acceleration.
54. The system of claim 39, wherein the weight value is a numerical value.
55. The system of claim 54, wherein the numerical value is a value between zero and one.
56. The system of claim 39, further comprising a receiver for receiving an instruction for the movable object to return to a preset location.
57. The system of claim 56, wherein the processor is configured to determine a route for the movable object to travel to return to the preset location, based on the positional information of the movable object.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/088971 WO2015085483A1 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
US14/236,315 US10240930B2 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
EP13828970.7A EP2895819B1 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
JP2016558242A JP6329642B2 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
EP20168697.9A EP3754381A1 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
CN201380052431.6A CN104854428B (en) | 2013-12-10 | 2013-12-10 | sensor fusion |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/088971 WO2015085483A1 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015085483A1 true WO2015085483A1 (en) | 2015-06-18 |
Family
ID=53370453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/088971 WO2015085483A1 (en) | 2013-12-10 | 2013-12-10 | Sensor fusion |
Country Status (5)
Country | Link |
---|---|
US (1) | US10240930B2 (en) |
EP (2) | EP3754381A1 (en) |
JP (1) | JP6329642B2 (en) |
CN (1) | CN104854428B (en) |
WO (1) | WO2015085483A1 (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106170676A (en) * | 2015-07-14 | 2016-11-30 | 深圳市大疆创新科技有限公司 | For determining the method for the movement of mobile platform, equipment and system |
WO2017004799A1 (en) * | 2015-07-08 | 2017-01-12 | SZ DJI Technology Co., Ltd. | Camera configuration on movable objects |
WO2017019849A1 (en) * | 2015-07-29 | 2017-02-02 | Microsoft Technology Licensing, Llc | Data capture system for texture and geometry acquisition |
EP3276306A1 (en) * | 2016-07-27 | 2018-01-31 | GE Aviation Systems LLC | Navigating an unmanned aerial vehicle |
WO2018067473A1 (en) * | 2016-10-03 | 2018-04-12 | Agjunction Llc | Using optical sensors to resolve vehicle heading issues |
CN108492328A (en) * | 2018-03-23 | 2018-09-04 | 云南大学 | Video interframe target matching method, device and realization device |
CN108496096A (en) * | 2016-02-02 | 2018-09-04 | 高通股份有限公司 | Visualize the alignment of inertia odometer referential and global position system referential |
WO2019049828A1 (en) * | 2017-09-05 | 2019-03-14 | Sony Corporation | Information processing apparatus, self-position estimation method, and program |
EP3470882A1 (en) * | 2017-10-16 | 2019-04-17 | Samsung Electronics Co., Ltd. | Position estimating apparatus and method |
CN109856659A (en) * | 2019-01-21 | 2019-06-07 | 同济大学 | Preventing seabed base positions time service and data record system and method |
US10447912B2 (en) | 2015-10-20 | 2019-10-15 | SZ DJI Technology Co., Ltd. | Systems, methods, and devices for setting camera parameters |
CN111505692A (en) * | 2020-04-30 | 2020-08-07 | 中北大学 | Beidou/vision-based combined positioning navigation method |
WO2023038914A1 (en) * | 2021-09-08 | 2023-03-16 | Sea Machines Robotics, Inc. | Navigation by mimic autonomy |
KR102621780B1 (en) * | 2022-12-02 | 2024-01-09 | 주식회사 라이드플럭스 | Autonomous vehicle localization method, apparatus and computer program through the fusion of multiple localization technologies |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105492985B (en) | 2014-09-05 | 2019-06-04 | 深圳市大疆创新科技有限公司 | A kind of system and method for the control loose impediment in environment |
CN105517666B (en) | 2014-09-05 | 2019-08-27 | 深圳市大疆创新科技有限公司 | Offline mode selection based on scene |
CN105980950B (en) * | 2014-09-05 | 2019-05-28 | 深圳市大疆创新科技有限公司 | The speed control of unmanned vehicle |
JP6669072B2 (en) * | 2014-10-17 | 2020-03-18 | ソニー株式会社 | Apparatus, method and program |
CN105180943B (en) * | 2015-09-17 | 2016-08-17 | 江苏中大东博信息科技有限公司 | Ship-positioning system and method |
CN105223957B (en) * | 2015-09-24 | 2018-10-02 | 北京零零无限科技有限公司 | A kind of method and apparatus of gesture manipulation unmanned plane |
DE102015122183B4 (en) * | 2015-12-18 | 2018-12-06 | Antony Pfoertzsch | Device and method for an unmanned flying object |
US9874931B1 (en) * | 2016-02-22 | 2018-01-23 | Rockwell Collins, Inc. | Head-tracking system and method |
CN105872371B (en) * | 2016-03-31 | 2019-04-02 | 纳恩博(北京)科技有限公司 | A kind of information processing method and electronic equipment |
BR112019002091B1 (en) * | 2016-08-18 | 2022-08-02 | Tevel Advanced Technologies Ltd | HARVEST, DILUTION AND FRUIT PRUNING SYSTEM AND METHOD AND DATABASE |
EP3500822A4 (en) * | 2016-08-18 | 2019-08-28 | SZ DJI Technology Co., Ltd. | Systems and methods for augmented stereoscopic display |
CN113895641A (en) * | 2016-08-31 | 2022-01-07 | 深圳市大疆创新科技有限公司 | Unmanned movable object |
CN111562796B (en) * | 2016-09-26 | 2024-06-14 | 深圳市大疆创新科技有限公司 | Control method, control device and carrying system |
US10645297B2 (en) * | 2016-09-30 | 2020-05-05 | Optim Corporation | System, method, and program for adjusting angle of camera |
WO2018086133A1 (en) * | 2016-11-14 | 2018-05-17 | SZ DJI Technology Co., Ltd. | Methods and systems for selective sensor fusion |
CN108267752B (en) * | 2016-12-15 | 2022-01-18 | 苏州宝时得电动工具有限公司 | Method and device for partitioning working area of self-moving equipment and electronic equipment |
WO2018112823A1 (en) * | 2016-12-22 | 2018-06-28 | Intel Corporation | Uav positions method and apparatus |
CN108254775A (en) * | 2016-12-29 | 2018-07-06 | 联创汽车电子有限公司 | Onboard navigation system and its implementation |
US20180186472A1 (en) * | 2016-12-30 | 2018-07-05 | Airmada Technology Inc. | Method and apparatus for an unmanned aerial vehicle with a 360-degree camera system |
US10252717B2 (en) | 2017-01-10 | 2019-04-09 | Toyota Jidosha Kabushiki Kaisha | Vehicular mitigation system based on wireless vehicle data |
CN106809382B (en) * | 2017-01-20 | 2019-01-15 | 亿航智能设备(广州)有限公司 | A kind of aircraft and its control method |
CN106941607A (en) * | 2017-02-22 | 2017-07-11 | 万物感知(深圳)科技有限公司 | Three-dimensional inertia camera system |
CN106908822B (en) * | 2017-03-14 | 2020-06-30 | 北京京东尚科信息技术有限公司 | Unmanned aerial vehicle positioning switching method and device and unmanned aerial vehicle |
CN106896391A (en) * | 2017-03-14 | 2017-06-27 | 北京京东尚科信息技术有限公司 | The localization method and device of unmanned plane |
JP6874842B2 (en) * | 2017-07-03 | 2021-05-19 | 日本電気株式会社 | Signal processing equipment, signal processing methods and programs |
DE112017007734T5 (en) * | 2017-08-07 | 2020-04-16 | Ford Global Technologies, Llc | LOCALIZING A VEHICLE USING A DRONE |
JP6984256B2 (en) * | 2017-09-11 | 2021-12-17 | ソニーグループ株式会社 | Signal processing equipment, and signal processing methods, programs, and mobiles. |
US10921825B2 (en) * | 2017-11-04 | 2021-02-16 | Automodality, Inc. | System and method for perceptive navigation of automated vehicles |
CN111295331A (en) * | 2017-11-17 | 2020-06-16 | 深圳市大疆创新科技有限公司 | System and method for synchronizing a plurality of control devices with a movable object |
WO2019150483A1 (en) * | 2018-01-31 | 2019-08-08 | パイオニア株式会社 | Speed calculation device, speed calculation method, and program |
CN108762245B (en) * | 2018-03-20 | 2022-03-25 | 华为技术有限公司 | Data fusion method and related equipment |
EP3764685A4 (en) * | 2018-04-04 | 2021-01-27 | Huawei Technologies Co., Ltd. | Method and apparatus for wireless communication |
WO2019205002A1 (en) * | 2018-04-25 | 2019-10-31 | 深圳市大疆创新科技有限公司 | Method for attitude solution of handheld camera stabilizer and camera stabilizer system |
CN110325822B (en) | 2018-04-25 | 2023-06-27 | 深圳市大疆创新科技有限公司 | Cradle head pose correction method and cradle head pose correction device |
US11372115B2 (en) * | 2018-05-24 | 2022-06-28 | Cyngn, Inc. | Vehicle localization |
CN108762306A (en) * | 2018-06-22 | 2018-11-06 | 深圳市科比特航空科技有限公司 | A kind of sensor-based system of unmanned plane and unmanned plane |
DE102018120198A1 (en) * | 2018-08-20 | 2020-02-20 | Dr. Ing. H.C. F. Porsche Aktiengesellschaft | aircraft |
CN112585427B (en) * | 2018-08-28 | 2024-01-30 | 索尼公司 | Information processing apparatus, information processing method, and program |
EP3849221A4 (en) * | 2018-09-04 | 2022-04-20 | Beijing Xiaomi Mobile Software Co., Ltd. | Information transmission method and apparatus |
US11037453B2 (en) | 2018-10-12 | 2021-06-15 | Aurora Flight Sciences Corporation | Adaptive sense and avoid system |
KR102093743B1 (en) * | 2018-11-06 | 2020-03-26 | 경북대학교 산학협력단 | System for lane level positioning location information of ground vehicle using sensor fusion |
US11288970B2 (en) | 2019-02-21 | 2022-03-29 | Aveopt, Inc. | System and methods for monitoring unmanned traffic management infrastructure |
US11343646B2 (en) | 2019-08-23 | 2022-05-24 | Samsung Electronics Co., Ltd. | Method and apparatus for localization |
CN112578779A (en) * | 2019-09-29 | 2021-03-30 | 苏州宝时得电动工具有限公司 | Map establishing method, self-moving equipment and automatic working system |
US11945439B2 (en) | 2020-02-27 | 2024-04-02 | Volvo Truck Corporation | AD or ADAS aided maneuvering of a vehicle |
CN112130136B (en) * | 2020-09-11 | 2024-04-12 | 中国重汽集团济南动力有限公司 | Comprehensive perception system and method for traffic targets |
CN114518108B (en) * | 2020-11-18 | 2023-09-08 | 宇通客车股份有限公司 | Positioning map construction method and device |
WO2022266806A1 (en) * | 2021-06-21 | 2022-12-29 | 深圳市大疆创新科技有限公司 | Moving platform |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080033645A1 (en) * | 2006-08-03 | 2008-02-07 | Jesse Sol Levinson | Pobabilistic methods for mapping and localization in arbitrary outdoor environments |
CN101403620A (en) * | 2008-09-10 | 2009-04-08 | 深圳市同洲电子股份有限公司 | Navigation device and method |
US20090177398A1 (en) | 2008-01-08 | 2009-07-09 | Trex Enterprises Corp. | Angles only navigation system |
CN201331348Y (en) * | 2009-01-06 | 2009-10-21 | 山东科沐华信息技术有限公司 | Combined GPS vehicle terminal |
US20100030470A1 (en) | 2008-07-02 | 2010-02-04 | O2Micro, Inc. | Global positioning system and dead reckoning (gps&dr) integrated navigation system |
US20100250133A1 (en) * | 2007-12-11 | 2010-09-30 | Qualcomm Incorporated | Gnss method and receiver with camera aid |
CN101867868A (en) * | 2010-03-26 | 2010-10-20 | 东南大学 | Combined navigation unit and implementing method thereof |
US20100265126A1 (en) | 2007-09-04 | 2010-10-21 | Media Tek Inc. | Positioning System and Method Thereof |
CN101950027A (en) * | 2010-08-18 | 2011-01-19 | 东莞市泰斗微电子科技有限公司 | Navigational satellite signal receiving module and information processing method applied to same |
US8275544B1 (en) | 2005-11-21 | 2012-09-25 | Miltec Missiles & Space | Magnetically stabilized forward observation platform |
Family Cites Families (200)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2574456B2 (en) | 1989-03-15 | 1997-01-22 | 松下電器産業株式会社 | Self-propelled vacuum cleaner |
US5173947A (en) | 1989-08-01 | 1992-12-22 | Martin Marietta Corporation | Conformal image processing apparatus and method |
JP3040611B2 (en) | 1992-09-17 | 2000-05-15 | 三菱重工業株式会社 | Low noise helicopter |
IL112237A (en) | 1994-01-18 | 1998-03-10 | Honeywell Inc | Threat avoidance system and method for aircraft |
US5785281A (en) | 1994-11-01 | 1998-07-28 | Honeywell Inc. | Learning autopilot |
JP3561547B2 (en) | 1995-03-02 | 2004-09-02 | 綜合警備保障株式会社 | Travel control system for autonomous mobile objects |
FR2731824B1 (en) | 1995-03-17 | 1997-05-16 | Sextant Avionique | COLLISION AVOIDANCE DEVICE FOR AIRCRAFT, PARTICULARLY WITH THE GROUND |
US5682229A (en) | 1995-04-14 | 1997-10-28 | Schwartz Electro-Optics, Inc. | Laser range camera |
IL117792A (en) | 1995-05-08 | 2003-10-31 | Rafael Armament Dev Authority | Autonomous command and control unit for mobile platform |
US6539290B1 (en) | 1995-06-07 | 2003-03-25 | Dabulamanzi Holdings, Llc | Method, apparatus and design procedure for controlling multi-input, multi-output (MIMO) parameter dependent systems using feedback LTI'zation |
US5716032A (en) | 1996-04-22 | 1998-02-10 | United States Of America As Represented By The Secretary Of The Army | Unmanned aerial vehicle automatic landing system |
US6056237A (en) | 1997-06-25 | 2000-05-02 | Woodland; Richard L. K. | Sonotube compatible unmanned aerial vehicle and system |
JPH11282530A (en) | 1998-03-27 | 1999-10-15 | Sanyo Electric Co Ltd | Vehicle operation system |
DE19849857C2 (en) | 1998-10-29 | 2003-08-21 | Eads Deutschland Gmbh | Remote control method for an unmanned aircraft |
AU1930700A (en) | 1998-12-04 | 2000-06-26 | Interval Research Corporation | Background estimation and segmentation based on range and color |
US6377889B1 (en) | 2000-10-13 | 2002-04-23 | Trimble Navigation Limited | Non-linear method of guiding to arbitrary curves with adaptive feedback |
US6804607B1 (en) | 2001-04-17 | 2004-10-12 | Derek Wood | Collision avoidance system and method utilizing variable surveillance envelope |
US6597987B1 (en) * | 2001-05-15 | 2003-07-22 | Navigation Technologies Corp. | Method for improving vehicle positioning in a navigation system |
JPWO2003004352A1 (en) | 2001-07-06 | 2004-10-21 | セイコーエプソン株式会社 | Airship system |
US20030055540A1 (en) | 2001-09-20 | 2003-03-20 | Hansen James K. | Anti-terrorism aircraft flight control system |
JP2003127994A (en) | 2001-10-24 | 2003-05-08 | Kansai Electric Power Co Inc:The | Control system for unmanned flying object |
US6875019B2 (en) | 2002-02-11 | 2005-04-05 | United Defense, Lp | Naval virtual target range system |
US6725152B2 (en) | 2002-02-21 | 2004-04-20 | Lockheed Martin Corporation | Real-time route and sensor planning system with variable mission objectives |
EP1537550A2 (en) | 2002-07-15 | 2005-06-08 | Magna B.S.P. Ltd. | Method and apparatus for implementing multipurpose monitoring system |
US7231063B2 (en) | 2002-08-09 | 2007-06-12 | Intersense, Inc. | Fiducial detection system |
JP4300010B2 (en) | 2002-10-08 | 2009-07-22 | 富士重工業株式会社 | Unmanned helicopter, unmanned helicopter takeoff method and unmanned helicopter landing method |
US7145478B2 (en) | 2002-12-17 | 2006-12-05 | Evolution Robotics, Inc. | Systems and methods for controlling a density of visual landmarks in a visual simultaneous localization and mapping system |
DE10305861A1 (en) | 2003-02-13 | 2004-08-26 | Adam Opel Ag | Motor vehicle device for spatial measurement of a scene inside or outside the vehicle, combines a LIDAR system with an image sensor system to obtain optimum 3D spatial image data |
SE0300871D0 (en) | 2003-03-27 | 2003-03-27 | Saab Ab | Waypoint navigation |
US7343232B2 (en) | 2003-06-20 | 2008-03-11 | Geneva Aerospace | Vehicle control system including related methods and components |
US7061401B2 (en) | 2003-08-07 | 2006-06-13 | BODENSEEWERK GERäTETECHNIK GMBH | Method and apparatus for detecting a flight obstacle |
US7747067B2 (en) | 2003-10-08 | 2010-06-29 | Purdue Research Foundation | System and method for three dimensional modeling |
US7231294B2 (en) | 2003-10-23 | 2007-06-12 | International Business Machines Corporation | Navigating a UAV |
US7107148B1 (en) | 2003-10-23 | 2006-09-12 | International Business Machines Corporation | Navigating a UAV with on-board navigation algorithms with flight depiction |
US7130741B2 (en) | 2003-10-23 | 2006-10-31 | International Business Machines Corporation | Navigating a UAV with a remote control device |
US7689321B2 (en) | 2004-02-13 | 2010-03-30 | Evolution Robotics, Inc. | Robust sensor fusion for mapping and localization in a simultaneous localization and mapping (SLAM) system |
US7831094B2 (en) | 2004-04-27 | 2010-11-09 | Honda Motor Co., Ltd. | Simultaneous localization and mapping using multiple view feature descriptors |
US7818127B1 (en) | 2004-06-18 | 2010-10-19 | Geneva Aerospace, Inc. | Collision avoidance for vehicle control systems |
ATE420394T1 (en) | 2004-07-03 | 2009-01-15 | Saab Ab | SYSTEM AND METHOD FOR CONTROLLING AN AIRCRAFT DURING FLIGHT |
US7228227B2 (en) | 2004-07-07 | 2007-06-05 | The Boeing Company | Bezier curve flightpath guidance using moving waypoints |
US7302316B2 (en) | 2004-09-14 | 2007-11-27 | Brigham Young University | Programmable autopilot system for autonomous flight of unmanned aerial vehicles |
US20060058931A1 (en) | 2004-09-15 | 2006-03-16 | Honeywell International Inc. | Collision avoidance involving radar feedback |
CN100551777C (en) | 2004-10-08 | 2009-10-21 | 贝尔直升机泰克斯特龙公司 | The control system that is used for flight automatically and wind shear situation |
US7307579B2 (en) | 2004-11-03 | 2007-12-11 | Flight Safety Technologies, Inc. | Collision alerting and avoidance system |
US7512462B2 (en) | 2004-11-16 | 2009-03-31 | Northrop Grumman Corporation | Automatic contingency generator |
US7610123B2 (en) | 2005-01-04 | 2009-10-27 | Deere & Company | Vision-aided system and method for guiding a vehicle |
US7242791B2 (en) * | 2005-01-04 | 2007-07-10 | Deere & Company | Method and system for guiding a vehicle with vision enhancement |
JP2008527542A (en) | 2005-01-06 | 2008-07-24 | シュルマン,アラン | Navigation and inspection system |
US20100001902A1 (en) | 2005-01-21 | 2010-01-07 | The Boeing Company | Situation awareness display |
US7228232B2 (en) | 2005-01-24 | 2007-06-05 | International Business Machines Corporation | Navigating a UAV with obstacle avoidance algorithms |
US20100004798A1 (en) | 2005-01-25 | 2010-01-07 | William Kress Bodin | Navigating a UAV to a next waypoint |
US7408627B2 (en) | 2005-02-08 | 2008-08-05 | Canesta, Inc. | Methods and system to quantify depth data accuracy in three-dimensional sensors using single frame capture |
US7248952B2 (en) | 2005-02-17 | 2007-07-24 | Northrop Grumman Corporation | Mixed integer linear programming trajectory generation for autonomous nap-of-the-earth flight in a threat environment |
US20060235610A1 (en) | 2005-04-14 | 2006-10-19 | Honeywell International Inc. | Map-based trajectory generation |
US7266477B2 (en) | 2005-06-22 | 2007-09-04 | Deere & Company | Method and system for sensor signal fusion |
US7494320B2 (en) | 2005-06-28 | 2009-02-24 | Petter Muren | Rotor for passively stable helicopter |
US7792330B1 (en) | 2005-09-30 | 2010-09-07 | Mustang Technology Group, L.P. | System and method for determining range in response to image data |
WO2007047953A2 (en) | 2005-10-20 | 2007-04-26 | Prioria, Inc. | System and method for onboard vision processing |
AU2006306522B9 (en) | 2005-10-21 | 2011-12-08 | Deere & Company | Networked multi-role robotic vehicle |
US8121399B2 (en) | 2005-12-16 | 2012-02-21 | Ihi Corporation | Self-position identifying method and device, and three-dimensional shape measuring method and device |
US8577538B2 (en) | 2006-07-14 | 2013-11-05 | Irobot Corporation | Method and system for controlling a remote vehicle |
US7539557B2 (en) | 2005-12-30 | 2009-05-26 | Irobot Corporation | Autonomous mobile robot |
US7431243B1 (en) | 2006-03-23 | 2008-10-07 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Guidance and control for an autonomous soaring UAV |
US8666661B2 (en) * | 2006-03-31 | 2014-03-04 | The Boeing Company | Video navigation |
US8108092B2 (en) | 2006-07-14 | 2012-01-31 | Irobot Corporation | Autonomous behaviors for a remote vehicle |
US7822266B2 (en) | 2006-06-02 | 2010-10-26 | Carnegie Mellon University | System and method for generating a terrain model for autonomous navigation in vegetation |
WO2007143756A2 (en) | 2006-06-09 | 2007-12-13 | Carnegie Mellon University | System and method for autonomously convoying vehicles |
US8271132B2 (en) | 2008-03-13 | 2012-09-18 | Battelle Energy Alliance, Llc | System and method for seamless task-directed autonomy for robots |
US8355818B2 (en) | 2009-09-03 | 2013-01-15 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
US7587260B2 (en) | 2006-07-05 | 2009-09-08 | Battelle Energy Alliance, Llc | Autonomous navigation system and method |
US7725257B2 (en) | 2006-09-05 | 2010-05-25 | Honeywell International Inc. | Method and system for navigation of an ummanned aerial vehicle in an urban environment |
AU2007354885B2 (en) | 2006-12-06 | 2011-10-20 | Honeywell International, Inc. | Methods, apparatus and systems for enhanced synthetic vision and multi-sensor data fusion to improve operational capabilities of unmanned aerial vehicles |
FR2910617B1 (en) | 2006-12-22 | 2009-03-06 | Thales Sa | METHOD AND DEVICE FOR CALCULATING A LATERALLY OFFSET PATH IN RELATION TO A REFERENCE PATH |
US20100250022A1 (en) | 2006-12-29 | 2010-09-30 | Air Recon, Inc. | Useful unmanned aerial vehicle |
US8072581B1 (en) | 2007-01-19 | 2011-12-06 | Rockwell Collins, Inc. | Laser range finding system using variable field of illumination flash lidar |
US20080195316A1 (en) * | 2007-02-12 | 2008-08-14 | Honeywell International Inc. | System and method for motion estimation using vision sensors |
US20080195304A1 (en) | 2007-02-12 | 2008-08-14 | Honeywell International Inc. | Sensor fusion for navigation |
EP1972893A1 (en) * | 2007-03-21 | 2008-09-24 | Universiteit Gent | System and method for position determination |
JP2008304260A (en) * | 2007-06-06 | 2008-12-18 | Mitsubishi Electric Corp | Image processing device |
DE102007032084A1 (en) | 2007-07-09 | 2009-01-22 | Eads Deutschland Gmbh | Collision and Conflict Prevention System for autonomous unmanned aerial vehicles (UAV) |
JP2009041932A (en) * | 2007-08-06 | 2009-02-26 | Toyota Motor Corp | Mobile object positioning apparatus |
DE102007043534A1 (en) | 2007-09-12 | 2009-03-19 | Robert Bosch Gmbh | Arrangement for detecting an environment |
US7979174B2 (en) | 2007-09-28 | 2011-07-12 | Honeywell International Inc. | Automatic planning and regulation of the speed of autonomous vehicles |
US7606115B1 (en) | 2007-10-16 | 2009-10-20 | Scientific Applications & Research Associates, Inc. | Acoustic airspace collision detection system |
IL191615A (en) | 2007-10-23 | 2015-05-31 | Israel Aerospace Ind Ltd | Method and system for producing tie points for use in stereo-matching of stereoscopic images and method for detecting differences in a photographed scenery between two time points |
US20100304070A1 (en) | 2007-11-27 | 2010-12-02 | Pilkington Italia S.P.A. | Glazing |
US8718838B2 (en) | 2007-12-14 | 2014-05-06 | The Boeing Company | System and methods for autonomous tracking and surveillance |
US8082102B2 (en) | 2008-01-14 | 2011-12-20 | The Boeing Company | Computing flight plans for UAVs while routing around obstacles having spatial and temporal dimensions |
US9641822B2 (en) | 2008-02-25 | 2017-05-02 | Samsung Electronics Co., Ltd. | Method and apparatus for processing three-dimensional (3D) images |
US8108139B1 (en) | 2008-02-29 | 2012-01-31 | Williams-Pyro, Inc. | System and method for route representation with waypoint storage |
WO2009118043A1 (en) * | 2008-03-26 | 2009-10-01 | Genova Robot Srl | A method and a device for determining of a vehicle for the autonomous driving of a vehicle, in particular a robotized vehicle |
US9766074B2 (en) | 2008-03-28 | 2017-09-19 | Regents Of The University Of Minnesota | Vision-aided inertial navigation |
CN101445156B (en) | 2008-05-15 | 2011-05-25 | 龚文基 | Technology for integrating intelligent aerial robotic system |
KR100955483B1 (en) | 2008-08-12 | 2010-04-30 | 삼성전자주식회사 | Method of building 3d grid map and method of controlling auto travelling apparatus using the same |
TWI408397B (en) | 2008-08-15 | 2013-09-11 | Univ Nat Chiao Tung | Automatic navigation device with ultrasonic and computer vision detection and its navigation method |
US8521339B2 (en) | 2008-09-09 | 2013-08-27 | Aeryon Labs Inc. | Method and system for directing unmanned vehicles |
US8818567B2 (en) * | 2008-09-11 | 2014-08-26 | Deere & Company | High integrity perception for machine localization and safeguarding |
JP5359680B2 (en) | 2008-09-17 | 2013-12-04 | 豊田合成株式会社 | Fuel shut-off valve |
KR101202695B1 (en) | 2008-10-01 | 2012-11-19 | 무라다기카이가부시끼가이샤 | Autonomous movement device |
US8543265B2 (en) | 2008-10-20 | 2013-09-24 | Honeywell International Inc. | Systems and methods for unmanned aerial vehicle navigation |
US8538673B2 (en) | 2008-10-31 | 2013-09-17 | Czech Technical University In Prague | System and method for planning/replanning collision free flight plans in real or accelerated time |
US8412456B2 (en) * | 2008-11-06 | 2013-04-02 | Texas Instruments Incorporated | Loosely-coupled integration of global navigation satellite system and inertial navigation system: speed scale-factor and heading bias calibration |
CN201331349Y (en) | 2008-12-01 | 2009-10-21 | 深圳职业技术学院 | Motion displacement wireless detecting system |
WO2010088290A1 (en) * | 2009-01-27 | 2010-08-05 | Arthur Thomas D | Tight optical intergation (toi) of images with gps range measurements |
CN102362141A (en) | 2009-02-02 | 2012-02-22 | 威罗门飞行公司 | Multimode unmanned aerial vehicle |
US8340852B2 (en) | 2009-04-29 | 2012-12-25 | Honeywell International Inc. | System and method for simultaneous localization and map building |
US8977407B2 (en) | 2009-05-27 | 2015-03-10 | Honeywell International Inc. | Adaptive user interface for semi-automatic operation |
US8473187B2 (en) | 2009-06-01 | 2013-06-25 | Robert Bosch Gmbh | Method and apparatus for combining three-dimensional position and two-dimensional intensity mapping for localization |
US8265818B2 (en) | 2009-06-04 | 2012-09-11 | Defense Technologies, Inc. | Open architecture command system |
US20110084162A1 (en) | 2009-10-09 | 2011-04-14 | Honeywell International Inc. | Autonomous Payload Parsing Management System and Structure for an Unmanned Aerial Vehicle |
DE102009049849B4 (en) | 2009-10-19 | 2020-09-24 | Apple Inc. | Method for determining the pose of a camera, method for recognizing an object in a real environment and method for creating a data model |
US8566071B2 (en) * | 2009-10-26 | 2013-10-22 | The United States Of America As Represented By The Secretary Of The Army | Calibration and synchronization of micro air vehicle autopilots |
US8913783B2 (en) | 2009-10-29 | 2014-12-16 | Sri International | 3-D model based method for detecting and classifying vehicles in aerial imagery |
TWI391874B (en) | 2009-11-24 | 2013-04-01 | Ind Tech Res Inst | Method and device of mapping and localization method using the same |
IL202460A (en) | 2009-12-01 | 2013-08-29 | Rafael Advanced Defense Sys | Method and system of generating a three-dimensional view of a real scene |
US9097532B2 (en) | 2010-01-20 | 2015-08-04 | Honeywell International Inc. | Systems and methods for monocular airborne object detection |
JP5498178B2 (en) | 2010-01-21 | 2014-05-21 | 株式会社Ihiエアロスペース | Method for controlling unmanned mobile body and unmanned mobile body |
GB2489179B (en) | 2010-02-05 | 2017-08-02 | Trimble Navigation Ltd | Systems and methods for processing mapping and modeling data |
US8577535B2 (en) | 2010-03-31 | 2013-11-05 | Massachusetts Institute Of Technology | System and method for providing perceived first-order control of an unmanned vehicle |
WO2011120141A1 (en) * | 2010-03-31 | 2011-10-06 | Ambercore Software Inc. | Dynamic network adjustment for rigorous integration of passive and active imaging observations into trajectory determination |
US8639426B2 (en) * | 2010-07-15 | 2014-01-28 | George C Dedes | GPS/IMU/video/radar absolute/relative positioning communication/computation sensor platform for automotive safety applications |
US8774982B2 (en) * | 2010-08-26 | 2014-07-08 | Leptron Industrial Robotic Helicopters, Inc. | Helicopter with multi-rotors and wireless capability |
AR082184A1 (en) * | 2010-09-23 | 2012-11-21 | Telefonica Sa | METHOD AND SYSTEM FOR CALCULATING THE GEOGRAPHICAL LOCATION OF A PERSONAL DEVICE |
US8676498B2 (en) * | 2010-09-24 | 2014-03-18 | Honeywell International Inc. | Camera and inertial measurement unit integration with navigation data feedback for feature tracking |
CN102023003A (en) | 2010-09-29 | 2011-04-20 | 清华大学 | Unmanned helicopter three-dimensional positioning and mapping method based on laser detection and image recognition |
US8378881B2 (en) | 2010-10-18 | 2013-02-19 | Raytheon Company | Systems and methods for collision avoidance in unmanned aerial vehicles |
US8712679B1 (en) | 2010-10-29 | 2014-04-29 | Stc.Unm | System and methods for obstacle mapping and navigation |
US9690099B2 (en) | 2010-12-17 | 2017-06-27 | Microsoft Technology Licensing, Llc | Optimized focal area for augmented reality displays |
JP5618840B2 (en) | 2011-01-04 | 2014-11-05 | 株式会社トプコン | Aircraft flight control system |
EP2482269B1 (en) | 2011-01-28 | 2017-03-22 | The Boeing Company | Providing data for predicting aircraft trajectory |
US8401225B2 (en) | 2011-01-31 | 2013-03-19 | Microsoft Corporation | Moving object segmentation using depth images |
US8711206B2 (en) | 2011-01-31 | 2014-04-29 | Microsoft Corporation | Mobile camera localization using depth maps |
DE102011010679A1 (en) | 2011-02-08 | 2012-08-09 | Eads Deutschland Gmbh | Unmanned aircraft with built-in collision warning system |
US20120213436A1 (en) | 2011-02-18 | 2012-08-23 | Hexagon Technology Center Gmbh | Fast Image Enhancement and Three-Dimensional Depth Calculation |
US9199725B2 (en) | 2011-02-28 | 2015-12-01 | Bae Systems Australia | Control computer for an unmanned vehicle |
US8868323B2 (en) | 2011-03-22 | 2014-10-21 | Honeywell International Inc. | Collaborative navigation using conditional updates |
US20120271461A1 (en) | 2011-04-20 | 2012-10-25 | Spata Gregory P | Capturing environmental information |
CA3044963C (en) | 2011-05-06 | 2022-07-12 | Hadal, Inc. | Systems and methods for synthetic aperture sonar |
CN102393747B (en) | 2011-08-17 | 2015-07-29 | 清华大学 | The collaborative interactive method of unmanned plane cluster |
CN103256931B (en) | 2011-08-17 | 2014-11-26 | 清华大学 | Visual navigation system of unmanned planes |
US8972053B2 (en) | 2011-08-30 | 2015-03-03 | 5D Robotics, Inc. | Universal payload abstraction |
US9297881B2 (en) * | 2011-11-14 | 2016-03-29 | Microsoft Technology Licensing, Llc | Device positioning via device-sensed data evaluation |
US9031782B1 (en) * | 2012-01-23 | 2015-05-12 | The United States Of America As Represented By The Secretary Of The Navy | System to use digital cameras and other sensors in navigation |
DE102012201870A1 (en) | 2012-02-08 | 2013-08-08 | RobArt GmbH | Method for automatically triggering a self-localization |
US9463574B2 (en) | 2012-03-01 | 2016-10-11 | Irobot Corporation | Mobile inspection robot |
CN103323002B (en) | 2012-03-19 | 2016-04-27 | 联想(北京)有限公司 | Instant location and map constructing method and device |
US9841761B2 (en) | 2012-05-04 | 2017-12-12 | Aeryon Labs Inc. | System and method for controlling unmanned aerial vehicles |
US9384668B2 (en) | 2012-05-09 | 2016-07-05 | Singularity University | Transportation using network of unmanned aerial vehicles |
CN102707724B (en) | 2012-06-05 | 2015-01-14 | 清华大学 | Visual localization and obstacle avoidance method and system for unmanned plane |
JP5987259B2 (en) | 2012-06-19 | 2016-09-07 | 株式会社リコー | Automated driving navigation system |
JP2014002604A (en) | 2012-06-19 | 2014-01-09 | Ricoh Co Ltd | Charging system, charging method, and device including charging system |
US8682521B2 (en) | 2012-06-25 | 2014-03-25 | The Boeing Company | Unpredictable vehicle navigation |
CN102749927A (en) | 2012-07-20 | 2012-10-24 | 常州大学 | System for pilotless plane to automatically avoid barrier and avoiding method of system |
CN103576690B (en) | 2012-07-25 | 2016-12-21 | 深圳市大疆创新科技有限公司 | A kind of no-manned machine distant control method and apparatus, unmanned plane |
US9441985B2 (en) | 2012-07-25 | 2016-09-13 | Rockwell Collins, Inc. | Future scene generating system, device, and method for a remotely-operated vehicle |
WO2014027097A2 (en) | 2012-08-17 | 2014-02-20 | Markus Waibel | Flying camera with string assembly for localization and interaction |
US20140056438A1 (en) | 2012-08-21 | 2014-02-27 | Harman International Industries, Incorporated | System for vehicle sound synthesis |
US20150350614A1 (en) | 2012-08-31 | 2015-12-03 | Brain Corporation | Apparatus and methods for tracking using aerial video |
CN102854887A (en) | 2012-09-06 | 2013-01-02 | 北京工业大学 | Unmanned plane route planning and remote synchronous control method |
CN203038112U (en) | 2012-09-19 | 2013-07-03 | 苏州工业园区职业技术学院 | Unmanned aerial vehicle (UAV) automatic control system |
US9488492B2 (en) | 2014-03-18 | 2016-11-08 | Sri International | Real-time system for multi-modal 3D geospatial mapping, object recognition, scene annotation and analytics |
CN202815124U (en) | 2012-10-16 | 2013-03-20 | 山东电力集团公司电力科学研究院 | Insulator detecting device by using multi-rotor unmanned aerial vehicle |
US8798922B2 (en) | 2012-11-16 | 2014-08-05 | The Boeing Company | Determination of flight path for unmanned aircraft in event of in-flight contingency |
US9198363B2 (en) | 2012-12-12 | 2015-12-01 | The Boeing Company | Tree metrology system |
US9527587B2 (en) | 2012-12-19 | 2016-12-27 | Elwha Llc | Unoccupied flying vehicle (UFV) coordination |
US9051043B1 (en) | 2012-12-28 | 2015-06-09 | Google Inc. | Providing emergency medical services using unmanned aerial vehicles |
US8909391B1 (en) | 2012-12-28 | 2014-12-09 | Google Inc. | Responsive navigation of an unmanned aerial vehicle to a remedial facility |
CN103921933A (en) | 2013-01-10 | 2014-07-16 | 深圳市大疆创新科技有限公司 | Deformation structure of air vehicle and micro air vehicle |
CN103116360B (en) | 2013-01-31 | 2015-06-17 | 南京航空航天大学 | Unmanned aerial vehicle obstacle avoidance controlling method |
CN103744430B (en) | 2013-02-07 | 2016-08-24 | 山东英特力光通信开发有限公司 | A kind of small-sized depopulated helicopter flight control method |
US9102406B2 (en) | 2013-02-15 | 2015-08-11 | Disney Enterprises, Inc. | Controlling unmanned aerial vehicles as a flock to synchronize flight in aerial displays |
US9367067B2 (en) | 2013-03-15 | 2016-06-14 | Ashley A Gilmore | Digital tethering for tracking with autonomous aerial robot |
US8989922B2 (en) | 2013-03-15 | 2015-03-24 | Azure Sky Group, LLC. | Modular drone and methods for use |
US9085354B1 (en) | 2013-04-23 | 2015-07-21 | Google Inc. | Systems and methods for vertical takeoff and/or landing |
US9037396B2 (en) | 2013-05-23 | 2015-05-19 | Irobot Corporation | Simultaneous localization and mapping for a mobile robot |
US8868328B1 (en) | 2013-06-04 | 2014-10-21 | The Boeing Company | System and method for routing decisions in a separation management system |
US8996207B2 (en) | 2013-06-24 | 2015-03-31 | Honeywell International Inc. | Systems and methods for autonomous landing using a three dimensional evidence grid |
CN203397214U (en) | 2013-07-09 | 2014-01-15 | 国家电网公司 | Special unmanned helicopter obstacle-avoiding system suitable for tour inspection of electrical networks in mountain area |
CN103365299B (en) | 2013-08-02 | 2015-12-23 | 中国科学院自动化研究所 | A kind of barrier-avoiding method of unmanned plane and device thereof |
CN203397215U (en) | 2013-08-05 | 2014-01-15 | 上海久能能源科技发展有限公司 | Self-locking light-condensing reflective heliostat |
CN103970143B (en) | 2013-08-27 | 2017-03-29 | 清华大学 | A kind of unmanned vehicle independent patrols an intelligent optimization method for flight |
US9234728B2 (en) | 2013-11-08 | 2016-01-12 | Lonestar Inventions, L.P. | Rocket or artillery launched smart reconnaissance pod |
US9158304B2 (en) | 2013-11-10 | 2015-10-13 | Google Inc. | Methods and systems for alerting and aiding an emergency situation |
US8825226B1 (en) | 2013-12-17 | 2014-09-02 | Amazon Technologies, Inc. | Deployment of mobile automated vehicles |
CN103901892B (en) | 2014-03-04 | 2016-12-07 | 清华大学 | The control method of unmanned plane and system |
CN103941747B (en) | 2014-03-31 | 2016-08-17 | 清华大学 | The control method of unmanned aerial vehicle group and system |
CN103914077A (en) | 2014-04-03 | 2014-07-09 | 江西洪都航空工业集团有限责任公司 | Manned/unmanned selectable dual-mode flight control system |
CN103925920B (en) | 2014-04-10 | 2016-08-17 | 西北工业大学 | A kind of MAV indoor based on perspective image autonomous navigation method |
CN103941748B (en) | 2014-04-29 | 2016-05-25 | 百度在线网络技术(北京)有限公司 | Autonomous navigation method and system and Map building method and system |
CN103941750B (en) | 2014-04-30 | 2016-08-31 | 东北大学 | Patterning apparatus based on small-sized four rotor wing unmanned aerial vehicles and method |
US9354296B2 (en) | 2014-05-20 | 2016-05-31 | Verizon Patent And Licensing Inc. | Dynamic selection of unmanned aerial vehicles |
CN105517664B (en) | 2014-05-30 | 2018-11-20 | 深圳市大疆创新科技有限公司 | Unmanned vehicle docking system and method |
CN103984357B (en) | 2014-05-30 | 2017-02-01 | 中国人民解放军理工大学 | Unmanned aerial vehicle automatic obstacle avoidance flight system based on panoramic stereo imaging device |
EP3060966B1 (en) | 2014-07-30 | 2021-05-05 | SZ DJI Technology Co., Ltd. | Systems and methods for target tracking |
CN105980950B (en) | 2014-09-05 | 2019-05-28 | 深圳市大疆创新科技有限公司 | The speed control of unmanned vehicle |
CN105517666B (en) | 2014-09-05 | 2019-08-27 | 深圳市大疆创新科技有限公司 | Offline mode selection based on scene |
CN105492985B (en) | 2014-09-05 | 2019-06-04 | 深圳市大疆创新科技有限公司 | A kind of system and method for the control loose impediment in environment |
US9552736B2 (en) | 2015-01-29 | 2017-01-24 | Qualcomm Incorporated | Systems and methods for restricting drone airspace access |
DE102015204947B4 (en) | 2015-03-19 | 2021-09-09 | Ford Global Technologies, Llc | Method and device for operating a vehicle that can optionally be controlled manually or that is capable of autonomous driving |
US9592912B1 (en) | 2016-03-08 | 2017-03-14 | Unmanned Innovation, Inc. | Ground control point assignment and determination system |
-
2013
- 2013-12-10 CN CN201380052431.6A patent/CN104854428B/en not_active Expired - Fee Related
- 2013-12-10 EP EP20168697.9A patent/EP3754381A1/en not_active Withdrawn
- 2013-12-10 EP EP13828970.7A patent/EP2895819B1/en active Active
- 2013-12-10 JP JP2016558242A patent/JP6329642B2/en not_active Expired - Fee Related
- 2013-12-10 WO PCT/CN2013/088971 patent/WO2015085483A1/en active Application Filing
- 2013-12-10 US US14/236,315 patent/US10240930B2/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8275544B1 (en) | 2005-11-21 | 2012-09-25 | Miltec Missiles & Space | Magnetically stabilized forward observation platform |
US20080033645A1 (en) * | 2006-08-03 | 2008-02-07 | Jesse Sol Levinson | Pobabilistic methods for mapping and localization in arbitrary outdoor environments |
US20100265126A1 (en) | 2007-09-04 | 2010-10-21 | Media Tek Inc. | Positioning System and Method Thereof |
US20100250133A1 (en) * | 2007-12-11 | 2010-09-30 | Qualcomm Incorporated | Gnss method and receiver with camera aid |
US20090177398A1 (en) | 2008-01-08 | 2009-07-09 | Trex Enterprises Corp. | Angles only navigation system |
US20100030470A1 (en) | 2008-07-02 | 2010-02-04 | O2Micro, Inc. | Global positioning system and dead reckoning (gps&dr) integrated navigation system |
CN101403620A (en) * | 2008-09-10 | 2009-04-08 | 深圳市同洲电子股份有限公司 | Navigation device and method |
CN201331348Y (en) * | 2009-01-06 | 2009-10-21 | 山东科沐华信息技术有限公司 | Combined GPS vehicle terminal |
CN101867868A (en) * | 2010-03-26 | 2010-10-20 | 东南大学 | Combined navigation unit and implementing method thereof |
CN101950027A (en) * | 2010-08-18 | 2011-01-19 | 东莞市泰斗微电子科技有限公司 | Navigational satellite signal receiving module and information processing method applied to same |
Non-Patent Citations (1)
Title |
---|
See also references of EP2895819A4 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017004799A1 (en) * | 2015-07-08 | 2017-01-12 | SZ DJI Technology Co., Ltd. | Camera configuration on movable objects |
US9778662B2 (en) | 2015-07-08 | 2017-10-03 | SZ DJI Technology Co., Ltd. | Camera configuration on movable objects |
US10936869B2 (en) | 2015-07-08 | 2021-03-02 | SZ DJI Technology Co., Ltd. | Camera configuration on movable objects |
US10466718B2 (en) | 2015-07-08 | 2019-11-05 | SZ DJI Technology Co., Ltd. | Camera configuration on movable objects |
US10895458B2 (en) | 2015-07-14 | 2021-01-19 | SZ DJI Technology Co., Ltd. | Method, apparatus, and system for determining a movement of a mobile platform |
CN106170676A (en) * | 2015-07-14 | 2016-11-30 | 深圳市大疆创新科技有限公司 | For determining the method for the movement of mobile platform, equipment and system |
WO2017019849A1 (en) * | 2015-07-29 | 2017-02-02 | Microsoft Technology Licensing, Llc | Data capture system for texture and geometry acquisition |
US10048058B2 (en) | 2015-07-29 | 2018-08-14 | Microsoft Technology Licensing, Llc | Data capture system for texture and geometry acquisition |
US10447912B2 (en) | 2015-10-20 | 2019-10-15 | SZ DJI Technology Co., Ltd. | Systems, methods, and devices for setting camera parameters |
CN108496096A (en) * | 2016-02-02 | 2018-09-04 | 高通股份有限公司 | Visualize the alignment of inertia odometer referential and global position system referential |
EP3276306A1 (en) * | 2016-07-27 | 2018-01-31 | GE Aviation Systems LLC | Navigating an unmanned aerial vehicle |
US10474148B2 (en) | 2016-07-27 | 2019-11-12 | General Electric Company | Navigating an unmanned aerial vehicle |
US10579068B2 (en) | 2016-10-03 | 2020-03-03 | Agjunction Llc | Using optical sensors to resolve vehicle heading issues |
WO2018067473A1 (en) * | 2016-10-03 | 2018-04-12 | Agjunction Llc | Using optical sensors to resolve vehicle heading issues |
WO2019049828A1 (en) * | 2017-09-05 | 2019-03-14 | Sony Corporation | Information processing apparatus, self-position estimation method, and program |
EP3470882A1 (en) * | 2017-10-16 | 2019-04-17 | Samsung Electronics Co., Ltd. | Position estimating apparatus and method |
US10921460B2 (en) | 2017-10-16 | 2021-02-16 | Samsung Electronics Co., Ltd. | Position estimating apparatus and method |
CN108492328A (en) * | 2018-03-23 | 2018-09-04 | 云南大学 | Video interframe target matching method, device and realization device |
CN108492328B (en) * | 2018-03-23 | 2021-02-26 | 云南大学 | Video inter-frame target matching method and device and implementation device |
CN109856659A (en) * | 2019-01-21 | 2019-06-07 | 同济大学 | Preventing seabed base positions time service and data record system and method |
CN111505692A (en) * | 2020-04-30 | 2020-08-07 | 中北大学 | Beidou/vision-based combined positioning navigation method |
WO2023038914A1 (en) * | 2021-09-08 | 2023-03-16 | Sea Machines Robotics, Inc. | Navigation by mimic autonomy |
KR102621780B1 (en) * | 2022-12-02 | 2024-01-09 | 주식회사 라이드플럭스 | Autonomous vehicle localization method, apparatus and computer program through the fusion of multiple localization technologies |
Also Published As
Publication number | Publication date |
---|---|
EP3754381A1 (en) | 2020-12-23 |
EP2895819A1 (en) | 2015-07-22 |
EP2895819A4 (en) | 2016-08-31 |
JP2017508166A (en) | 2017-03-23 |
CN104854428B (en) | 2018-12-14 |
US20160273921A1 (en) | 2016-09-22 |
JP6329642B2 (en) | 2018-05-23 |
EP2895819B1 (en) | 2020-05-20 |
CN104854428A (en) | 2015-08-19 |
US10240930B2 (en) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10240930B2 (en) | Sensor fusion | |
US11914369B2 (en) | Multi-sensor environmental mapping | |
US10914590B2 (en) | Methods and systems for determining a state of an unmanned aerial vehicle | |
US11218689B2 (en) | Methods and systems for selective sensor fusion | |
US10860040B2 (en) | Systems and methods for UAV path planning and control | |
US11015956B2 (en) | System and method for automatic sensor calibration | |
US11036241B2 (en) | Simple multi-sensor calibration | |
US10447912B2 (en) | Systems, methods, and devices for setting camera parameters | |
EP3158293B1 (en) | Sensor fusion using inertial and image sensors | |
EP3158412B1 (en) | Sensor fusion using inertial and image sensors | |
WO2016187759A1 (en) | Sensor fusion using inertial and image sensors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 14236315 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 2016558242 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013828970 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |