(19)
(11)EP 2 895 819 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
20.05.2020 Bulletin 2020/21

(21)Application number: 13828970.7

(22)Date of filing:  10.12.2013
(51)Int. Cl.: 
G01S 19/45  (2010.01)
G01S 19/48  (2010.01)
(86)International application number:
PCT/CN2013/088971
(87)International publication number:
WO 2015/085483 (18.06.2015 Gazette  2015/24)

(54)

SENSOR FUSION

SENSORFUSION

FUSION DE CAPTEURS


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(43)Date of publication of application:
22.07.2015 Bulletin 2015/30

(60)Divisional application:
20168697.9

(73)Proprietor: SZ DJI Technology Co., Ltd.
South District, Hi Tech Park Shenzhen Guangdong 518057 (CN)

(72)Inventors:
  • ZHOU, Gu-yue
    Shenzhen City, Guangdong 518057 (CN)
  • YANG, Shuo
    Shenzhen City, Guangdong 518057 (CN)
  • ZHAO, Yong-jian
    Shenzhen City, Guangdong 518057 (CN)
  • LIU, Ang
    Shenzhen City, Guangdong 518057 (CN)

(74)Representative: Goddar, Heinz J. et al
Boehmert & Boehmert Anwaltspartnerschaft mbB Pettenkoferstrasse 22
80336 München
80336 München (DE)


(56)References cited: : 
EP-A2- 2 592 436
WO-A1-2011/120141
CN-A- 101 867 868
CN-Y- 201 331 348
US-A1- 2008 033 645
US-A1- 2009 177 398
US-A1- 2010 250 133
US-B1- 8 275 544
WO-A1-2009/118043
CN-A- 101 403 620
CN-A- 101 950 027
US-A1- 2006 149 472
US-A1- 2008 195 316
US-A1- 2010 030 470
US-A1- 2010 265 126
  
  • SOLOVIEV A: "Tight coupling of GPS, laser scanner, and inertial measurements for navigation in urban environments", POSITION, LOCATION AND NAVIGATION SYMPOSIUM, 2008 IEEE/ION, IEEE, PISCATAWAY, NJ, USA, 5 May 2008 (2008-05-05), pages 511-525, XP031340882, ISBN: 978-1-4244-1536-6
  
Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


Description

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).

[0003] US2010/030470 describes a global positioning system and dead reckoning (GPS&DR) integrated navigation system that includes a GPS receiver coupled to a moving object for periodically generating GPS navigation information of said moving object, a DR system coupled to said moving object for periodically calculating DR navigation information of said moving object, and a filter coupled to said GPS receiver and said DR system for periodically calculating navigation information of said moving object.

[0004] US2010/265126 describes a positioning system comprising a Global Navigation Satellite System (GSNN) module, a dead reckoning module, a Geographic Information System (GIS) module and a calculating module.

[0005] US2009/177398 describes an angles only navigation system that includes an IMU coupled with a passive optical sensor. The optical sensor provides periodic updates to the IMU in order to correct for accelerometer and gyro drifts.

[0006] US8275544 describes a system and method for determining a position of a remote object comprising inertial sensors and a three axis magnetic sensor, together with a target sighting device aligned with the observation platform to determine a target line of sight and a target range finder to determine a distance to the target along the line of sight.

[0007] US2008/0195316 A1 describes a motion estimation system comprising two image sensors, each image sensor configured to obtain a first image at a first time and a second image at a second time; an inertial measurement unit (IMU) configured to obtain motion data for the time period between the first time and the second time; and a processing unit configured to estimate motion by comparing the location of one or more features in the two first images with the location of the one or more features in the respective two second images, wherein the processing unit determines the location of the one or more features in at least one of the second images based at least in part on the IMU data for the time period between the first time and the second time. A motion estimate based on the IMU data can be combined with the motion estimate based on a comparison of feature location to obtain a composite motion estimate. GPS data can be used if available.

[0008] In WO2011/120141 A1 an initial estimate of a positional trajectory is provided by processing INS and GPS sensor data to find common features in images observed at different points in time. These tie-features are then combined with the original INS and GPS sensor data to compute a best estimate of platform trajectory.

SUMMARY OF THE INVENTION



[0009] The invention relates to a method of collecting positional information for a movable object as defined in independent claim 1 and to a system for collecting positional information for a movable object as defined in independent claim 5. Preferred embodiments are described in the dependent claims.

[0010] 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.

[0011] In some embodiments, the movable object is an unmanned aerial vehicle.

[0012] 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.

[0013] In some embodiments, the weight value is a numerical value. The weight value can be a value between zero and one.

[0014] 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.

[0015] 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.

[0016] 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.

BRIEF DESCRIPTION OF THE DRAWINGS



[0017] The 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:

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; and

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



[0018] The present invention provides a system and a method for collecting positional 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.

[0019] 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.

[0020] 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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] 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.

[0025] 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 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.

[0026] 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.

[0027] 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.

[0028] 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.

[0029] 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.

[0030] 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.

[0031] 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).

[0032] 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.

[0033] 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.

[0034] 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).

[0035] 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.

[0036] 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.

[0037] 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).

[0038] 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.

[0039] 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).

[0040] 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).

[0041] 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.

[0042] 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).

[0043] 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.

[0044] 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.

Sensing system



[0045] 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.

[0046] 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.

[0047] 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.

[0048] 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.

[0049] 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).

[0050] 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.

[0051] 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.

[0052] 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.

[0053] 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.

[0054] 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).

[0055] 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.

[0056] 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).

[0057] 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.

[0058] 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.

[0059] 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.

Motion and/or position estimation using sensor fusion



[0060] 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.

[0061] 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.

[0062] 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.

[0063] 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.

[0064] 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 (e.g. 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).

[0065] 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).

[0066] 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.

[0067] 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.

[0068] 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.

[0069] 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 (R̃I, T̃I). 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). 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 (R̃I, T̃I) 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̃, T̃).

[0070] The initial estimation (R̃, T̃) can be used to search for a feature point in a current frame,

(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

of the feature point

can be rotated according to (R̃, T̃) to obtain

The estimated 3D coordinate

can be projected to obtain the position of the feature point after the rotation

where K is the internal parameter matrix for the camera and Π0 is the projection matrix. The current frame can then then searched and matched for the feature point within a

area, with a point

having the minimal planar distance from

considered to be the corresponding point. Accordingly, the frame-to-frame relationship between the feature points

and

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.

[0071] 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 l, 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

corresponds to a pair of matched feature points

and

in the images captured by the left and right cameras, respectively. The pixel distances

and

can be multiplied by the size of a single pixel to become spatial distances

and

Thus, using the formula



[0072] the distance between the 3D coordinate

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

can thus be derived for the point



[0073] Following frame-to-frame matching and stereo matching of feature points, a feature point-3D coordinate pair

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 c1, c2, ..., cn obtained at a time t, the matrix R̃ can be expressed as three row vectors R̃ = [r̃1, r̃23]T, and the internal parameter matrix of the camera can be expressed as



[0074] Consequently, an estimated positional movement or change between each feature point in time, T̃v, can be obtained by solving



[0075] 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 ρ can be assigned to T̃v, as described herein. The weight value ρ can be based on the size of n. For example, the weight value can range from 0 to 1, and be proportional to n.

[0076] A three-way sensor fusion can be performed based on the estimated positional movement from the vision sensing system (ρ, T̃v), IMU data (R̃I, T̃I), 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. 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 ωt and νt represent potential errors in the system having respective variances Qt and Rt.

[0077] To obtain (Rt, Tt), an estimated value for the variable (R̂t|t, T̂t|t) and a covariance matrix for estimating the accuracy of the estimate Pt|t ° R̂t|t, T̂t|t) and Pt|t can be determined by updating the estimate value from the last point in time (R̂t-1|t-1, T̂t-1|t-1) and Pt-1|t-1. For example, the update can be performed using a EKF, such that the update equation can be expressed as













where Ft-1 is the linear matrix of the function f at point

and Gt is the linear matrix of the function g at point

The weight values ρ and δ indicate the 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) = (R̂t|t, T̂t|t) to obtain an accurate measurement of the positional information of the movable object.

[0078] 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).

[0079] 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.

[0080] 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.

[0081] 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.

Applications



[0082] 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.

[0083] 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.

[0084] 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.

[0085] 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.

[0086] 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.

[0087] 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).

[0088] 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.

[0089] 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), (R1, T1), (R2, T2),...,, (Rn, Tn)} is stored in the path storage module 814.

[0090] 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.

[0091] 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 (R̈t, T̈t) 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.

[0092] 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 (



) instead of (Rt+1, Tt+1) at time t+1, the feedback correction module 824 can be configured to compensate for the difference between

and (Rt+1, Tt+1) when navigating to the next key point at (Rt+2, Tt+2) at time t+2.

[0093] 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.

[0094] 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.

[0095] 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.

[0096] 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.

[0097] 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.

[0098] 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.

[0099] 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.

[0100] 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.

[0101] 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).

[0102] 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.

[0103] 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.

[0104] 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.

[0105] 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

[0106] 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. The following claims define the scope of the invention, wherein methods and structures within the scope of these claims are covered thereby.


Claims

1. A method of collecting positional information for a movable object (300), said method comprising:

receiving, at a memory, data from a first sensing system (502) coupled to the movable object, said first sensing system comprising a first sensor (506) that receives a signal (510) useful for determining the positional information of the movable object (300), wherein the first sensor is an inertial measurement unit IMU (606);

receiving, at the memory, data from a second sensing system (504) coupled to the movable object (300), said second sensing system comprising a second sensor (508) that receives a signal (512) useful for determining the positional information of the movable object (300), wherein receiving data from the second sensing system comprises receiving data from a global positioning system, GPS, sensor (608) used by the second sensing system;

receiving, at the memory, image data from a third sensing system (514) coupled to the movable object (300), said third sensing system comprising a pair of vision sensors (602, 604) that simultaneously capture a pair of images as an image frame to produce a time series of image frames,

processing, with aid of a processor (520), the image data obtained by the vision sensors (602, 604) to correct the image data;

identifying, with aid of one or more processors (520), one or more feature points within the corrected image data;

generating, with aid of the processors (520), a digital representation of the feature points;

determining, with aid of the processors (520), 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, wherein the strength of the signal received by the sensor of the second system depends on a number of GPS signals received or a magnitude of a GPS signal received;

generating, with aid of the processors (502), an initial estimation of a positional change 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;

characterized in that the method further comprises:

performing, with aid of the processors (520), frame-to-frame matching of the feature points using the initial estimation of the positional change, wherein the initial estimation is used to search for a feature point in a current frame corresponding to the same feature point in a previous frame of the time series of image frames, to determine a frame-to-frame relationship between the feature point in the previous frame and the feature point in the current frame; and

calculating, with aid of the processors (520), the positional information of the movable object by (a) stereo matching of a common feature point in each pair of images representing a respective image frame obtained by the vision sensors (602, 604) that is performed such that a three-dimensional coordinate of the common feature point is estimated based on a spatial relationship between the vision sensors (602, 604), (b) obtaining an estimated positional movement based on the frame-to-frame matching, from feature point-3D coordinate pairs formed by the respective feature points and estimated three-dimensional coordinates of step (a) matched between two consecutive frames

and (c) performing a three-way sensor fusion based on the estimated positional movement, IMU data, and GPS sensor data to determine a single positional measurement.


 
2. The method of claim 1, wherein the movable object (300) is an unmanned aerial vehicle.
 
3. The method of claim 1, further comprising determining, with aid of the processors (502), a weight value for the data from the third sensing system based on a parameter indicative of the accuracy of a machine vision algorithm used to analyze the image data from the one or more vision sensors.
 
4. The method of claim 3, wherein the positional information of the movable object (300) is calculated based on the data from the third sensing system factoring in the weight value for the data from the third sensing system.
 
5. A system for collecting positional information for a movable object (300), said system comprising:

a first sensing system (502) coupled to the movable object (300), said first sensing system comprising a first sensor (506) configured to receive a signal (510) useful for determining the positional information of the movable object, wherein the first sensor is an inertial measurement unit (606);

a second sensing system (504) coupled to the movable object, said second sensing system comprising a second sensor (508) configured to receive a signal (512) useful for determining the positional information of the movable object, wherein receiving data from the second sensing system comprises receiving data from a global positioning system, GPS, sensor (608) used by the second sensing system;

a third sensing system (514) coupled to the movable object, said third sensing system comprising a pair of vision sensors (602, 604) that simultaneously capture a pair of images as an image frame and produce a time series of image frames; and a processor (520) that is configured to:

process the image data obtained by the vision sensors (602, 604) to correct the image data;

identify one or more feature points within the corrected image data;

generates a digital representation of the feature points;

determine 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,

wherein the strength of the signal received by the sensor of the second system depends on a number of GPS signals received or a magnitude of a GPS signal received;

generate an initial estimation of a positional change of the movable object (300) based on (i) the data from the first sensing system and (ii) the data from the second sensing system factoring in the weight value; and

characterized in that the processor is further configured to:

perform frame-to-frame matching of the feature points using the initial estimation of the positional change, wherein the initial estimation is used to search for a feature point in a current frame corresponding to the same feature point in a previous frame of the time series of image frames, to determine a frame-to-frame relationship between the feature point in the previous frame and the feature point in the current frame; and

calculate the positional information of the movable object (300) by (a) stereo matching of a common feature point in each pair of images representing a respective image frame obtained by the vision sensors (602, 604) that is performed such that a three-dimensional coordinate of the common feature point is estimated based on a spatial relationship between the vision sensors (602, 604), and (b) obtaining an estimated positional movement, based on the frame-to-frame matching, from feature point-3D coordinate pairs formed by the respective feature points and estimated three-dimensional coordinates of step (a) matched between two consecutive frames,

and (c) performing a three-way sensor fusion based on the estimated positional movement, IMU data, and GPS sensor data to determine a single positional measurement.


 


Ansprüche

1. Verfahren zum Sammeln von Positionsinformationen für ein bewegbares Objekt (300), wobei das Verfahren Folgendes umfasst:

Empfangen von Daten von einem ersten Abtastsystem (502), das an das bewegbare Objekt gekoppelt ist, in einem Speicher,

wobei das erste Abtastsystem einen ersten Sensor (506) umfasst, der ein Signal (510) empfängt, das zum Bestimmen der Positionsinformationen des bewegbaren Objekts (300) nützlich ist, wobei der erste Sensor eine Trägheitsmesseinheit IMU (606) ist;

Empfangen von Daten von einem zweiten Abtastsystem (504), das an das bewegbare Objekt (300) gekoppelt ist, im Speicher, wobei das zweite Abtastsystem einen zweiten Sensor (508) umfasst, der ein Signal (512) empfängt, das zum Bestimmen der Positionsinformationen des bewegbaren Objekts (300) nützlich ist, wobei das Empfangen von Daten vom zweiten Abtastsystem das Empfangen von Daten von einem globalen Positionsbestimmungssystem(GPS)-Sensor (608), der vom zweiten Abtastsystem verwendet wird, umfasst;

Empfangen von Bilddaten von einem dritten Abtastsystem (514), das an das bewegbare Objekt (300) gekoppelt ist, im Speicher, wobei das dritte Abtastsystem ein Paar von Sichtsensoren (602, 604) umfasst, die gleichzeitig ein Paar von Bildern als einen Bildrahmen erfassen, um eine Zeitserie von Bildrahmen zu produzieren,

Verarbeiten der Bilddaten, die von den Sichtsensoren (602, 604) erhalten wurden, mithilfe eines Prozessors (520), um die Bilddaten zu korrigieren;

Identifizieren von einem oder mehreren Merkmalspunkten in den korrigierten Bilddaten mithilfe von einem oder mehreren Prozessoren (520);

Erzeugen einer digitalen Repräsentation der Merkmalspunkte mithilfe der Prozessoren (520);

Bestimmen eines Gewichtungswerts für die Daten vom zweiten Abtastsystem mithilfe der Prozessoren (520) auf Basis einer Stärke des Signals, das vom Sensor des zweiten Abtastsystems empfangen wurde, wobei die Stärke des Signals, das vom Sensor des zweiten Systems empfangen wurde, auf einer Reihe von empfangenen GPS-Signalen oder einer Größe eines empfangenen GPS-Signals abhängig ist;

Erzeugen einer anfänglichen Schätzung einer Positionsänderung des bewegbaren Objekts mithilfe der Prozessoren (502) auf Basis (i) der Daten vom ersten Abtastsystem und (ii) der Daten vom zweiten Abtastsystem unter Berücksichtigung des Gewichtungswerts;

dadurch gekennzeichnet, dass das Verfahren ferner Folgendes umfasst:

Durchführen eines Rahmen-zu-Rahmen-Abgleichs der Merkmalspunkte mithilfe der Prozessoren (520) unter Verwendung der anfänglichen Schätzung der Positionsänderung,

wobei die anfängliche Schätzung verwendet wird, um in einem aktuellen Rahmen nach einem Merkmalspunkt zu suchen, der demselben Merkmalspunkt in einem vorherigen Rahmen der Zeitserie von Bildrahmen entspricht, um eine Rahmen-zu-Rahmen-Beziehung zwischen dem Merkmalspunkt im vorherigen Rahmen und dem Merkmalspunkt im aktuellen Rahmen zu bestimmen; und

Berechnen der Positionsinformationen des bewegbaren Objekts mithilfe der Prozessoren (520) durch Folgendes

(a) Stereoabgleichen eines gemeinsamen Merkmalspunktes in jedem Paar von Bildern, das einen jeweiligen Bildrahmen repräsentiert, der durch die Sichtsensoren (602, 604) erhalten wurde, das derart durchgeführt wird, dass eine dreidimensionale Koordinate des gemeinsamen Merkmalspunktes auf Basis einer räumlichen Beziehung zwischen den Sichtsensoren (602, 604) geschätzt wird,

(b) Erhalten einer geschätzten Positionsbewegung, auf Basis des Rahmen-zu-Rahmen-Abgleichs, aus Merkmalspunkt-SD-Koordinatenpaaren, die gebildet werden von den jeweiligen Merkmalspunkten und geschätzten dreidimensionalen Koordinaten des Schritts (a), die zwischen zwei aufeinanderfolgenden Rahmen abgeglichen sind,

und (c) Durchführen einer Dreiwegesensorfusion auf Basis der geschätzten Positionsbewegung, von IMU-Daten und GPS-Sensordaten, um eine einzelne Positionsmessung zu bestimmen.


 
2. Verfahren nach Anspruch 1, wobei das bewegbare Objekt (300) ein unbemanntes Luftfahrzeug ist.
 
3. Verfahren nach Anspruch 1, das ferner das Bestimmen eines Gewichtungswerts für die Daten vom dritten Abtastsystem mithilfe der Prozessoren (502) auf Basis eines Parameters, der die Genauigkeit eines Maschinensichtalgorithmus anzeigt, der zum Analysieren der Bilddaten von dem einen oder den mehreren Sichtsensoren verwendet wird, umfasst.
 
4. Verfahren nach Anspruch 3, wobei die Positionsinformationen des bewegbaren Objekts (300) auf Basis der Daten vom dritten Abtastsystem unter Berücksichtigung des Gewichtungswerts für die Daten vom dritten Abtastsystem berechnet werden.
 
5. System zum Sammeln von Positionsinformationen für ein bewegbares Objekt (300), wobei das System Folgendes umfasst:

ein erstes Abtastsystem (502), das an das bewegbare Objekt (300) gekoppelt ist, wobei das erste Abtastsystem einen ersten Sensor (506) umfasst, der dazu ausgelegt ist, ein Signal (510) zu empfangen, das zum Bestimmen der Positionsinformationen des bewegbaren Objekts nützlich ist, wobei der erste Sensor eine Trägheitsmesseinheit IMU (606) ist;

ein zweites Abtastsystem (504), das an das bewegbare Objekt gekoppelt ist, wobei das zweite Abtastsystem einen zweiten Sensor (508) umfasst, der dazu ausgelegt ist, ein Signal (512) zu empfangen, das zum Bestimmen der Positionsinformationen des bewegbaren Objekts nützlich ist,

wobei das Empfangen von Daten vom zweiten Abtastsystem das Empfangen von Daten von einem globalen Positionsbestimmungssystem(GPS)-Sensor (608), der vom zweiten Abtastsystem verwendet wird, umfasst;

ein drittes Abtastsystem (514), das an das bewegbare Objekt gekoppelt ist, wobei das dritte Abtastsystem ein Paar von Sichtsensoren (602, 604) umfasst, die gleichzeitig ein Paar von Bildern als einen Bildrahmen erfassen und eine Zeitserie von Bildrahmen produzieren; und einen Prozessor (520), der zu Folgendem ausgelegt ist:

Verarbeiten der Bilddaten, die von den Sichtsensoren (602, 604) erhalten wurden, um die Bilddaten zu korrigieren;

Identifizieren von einem oder mehreren Merkmalspunkten in den korrigierten Bilddaten;

Erzeugen einer digitalen Repräsentation der Merkmalspunkte;

Bestimmen eines Gewichtungswerts für das Signal vom zweiten Abtastsystem auf Basis einer Stärke des Signals, das vom Sensor des zweiten Abtastsystems empfangen wurde, wobei die Stärke des Signals, das vom Sensor des zweiten Abtastsystems empfangen wurde, auf einer Reihe von empfangenen GPS-Signalen oder einer Größe eines empfangenen GPS-Signals abhängig ist;

Erzeugen einer anfänglichen Schätzung einer Positionsänderung des bewegbaren Objekts (300) auf Basis (i) der Daten vom ersten Abtastsystem und (ii) der Daten vom zweiten Abtastsystem unter Berücksichtigung des Gewichtungswerts und

dadurch gekennzeichnet, dass der Prozessor ferner zu Folgendem ausgelegt ist:

Durchführen eines Rahmen-zu-Rahmen-Abgleichs der Merkmalspunkte unter Verwendung der anfänglichen Schätzung der Positionsänderung, wobei die anfängliche Schätzung verwendet wird, um in einem aktuellen Rahmen nach einem Merkmalspunkt zu suchen, der demselben Merkmalspunkt in einem vorherigen Rahmen der Zeitserie von Bildrahmen entspricht, um eine Rahmen-zu-Rahmen-Beziehung zwischen dem Merkmalspunkt im vorherigen Rahmen und dem Merkmalspunkt im aktuellen Rahmen zu bestimmen; und

Berechnen der Positionsinformationen des bewegbaren Objekts (300) durch Folgendes

(a) Stereoabgleichen eines gemeinsamen Merkmalspunktes in jedem Paar von Bildern, das einen jeweiligen Bildrahmen repräsentiert, der durch die Sichtsensoren (602, 604) erhalten wurde, das derart durchgeführt wird, dass eine dreidimensionale Koordinate des gemeinsamen Merkmalspunktes auf Basis einer räumlichen Beziehung zwischen den Sichtsensoren (602, 604) geschätzt wird, und

(b) Erhalten einer geschätzten Positionsbewegung, auf Basis des Rahmen-zu-Rahmen-Abgleichs, aus Merkmalspunkt-SD-Koordinatenpaaren, die gebildet werden von den jeweiligen Merkmalspunkten und geschätzten dreidimensionalen Koordinaten des Schritts (a), die zwischen zwei aufeinanderfolgenden Rahmen abgeglichen sind,

und (c) Durchführen einer Dreiwegesensorfusion auf Basis der geschätzten Positionsbewegung, von IMU-Daten und GPS-Sensordaten, um eine einzelne Positionsmessung zu bestimmen.


 


Revendications

1. Procédé de collecte d'informations de position pour un objet mobile (300), ledit procédé comprenant :

la réception, au niveau d'une mémoire, de données provenant d'un premier système de détection (502) relié à l'objet mobile, ledit premier système de détection comprenant un premier capteur (506) qui reçoit un signal (510) utile pour déterminer les informations de position de l'objet mobile (300), dans lequel le premier capteur est une unité de mesure inertielle (IMU) (606) ;

la réception, au niveau de la mémoire, de données provenant d'un second système de détection (504) relié à l'objet mobile (300), ledit second système de détection comprenant un second capteur (508) qui reçoit un signal (512) utile pour déterminer les informations de position de l'objet mobile (300), dans lequel la réception de données de la part du second système de détection comprend la réception de données de la part d'un capteur de système de positionnement global, GPS, (608) utilisé par le second système de détection ;

la réception, au niveau de la mémoire, de données d'image de la part d'un troisième système de détection (514) relié à l'objet mobile (300), ledit troisième système de détection comprenant une paire de capteurs de vision (602, 604) qui capturent simultanément une paire d'images sous forme de cadre d'image afin de produire une série temporelle de cadres d'images,

le traitement, à l'aide d'un processeur (520), des données d'image obtenues par les capteurs de vision (602, 604) afin de corriger les données d'image ;

l'identification, à l'aide d'un ou plusieurs processeur(s) (520), d'un ou plusieurs point(s) caractéristique(s) sur les données d'image corrigées ;

la génération, à l'aide des processeurs (520), d'une représentation numérique des points caractéristiques ;

la détermination, à l'aide des processeurs (520), d'une valeur de pondération pour les données provenant du second système de détection sur la base d'une intensité du signal reçu par le capteur du second système de détection, dans lequel l'intensité du signal reçu par le capteur du second système de détection dépend d'un nombre de signaux GPS reçus ou d'une magnitude d'un signal GPS reçu ;

la génération, à l'aide des processeurs (502), d'une estimation initiale d'un changement de position de l'objet mobile sur la base (i) des données provenant du premier système de détection et (ii) des données provenant du second système de détection en factorisant la valeur de pondération ;

caractérisé en ce que le procédé comprend en outre :

l'exécution, à l'aide des processeurs (520), d'une comparaison cadre-à-cadre des points caractéristiques à l'aide de l'estimation initiale du changement de position, dans lequel l'estimation initiale est utilisée pour rechercher un point caractéristique au sein d'un cadre actuel qui correspond au même point caractéristique dans un cadre précédent de la série temporelle de cadres d'images, afin de déterminer une relation cadre-à-cadre entre le point caractéristique du cadre précédent et le point caractéristique du cadre actuel ; et

le calcul, à l'aide des processeurs (520), des informations de position de l'objet mobile

(a) en effectuant une stéréo-correspondance d'un point caractéristique commun au sein de chaque paire d'images représentant un cadre d'image respectif obtenu par les capteurs de vision (602, 604) de sorte qu'une coordonnée en trois dimensions du point caractéristique commun soit estimée sur la base d'une relation spatiale entre les capteurs de vision (602, 604),

(b) en obtenant un mouvement de position estimé, sur la base de la comparaison cadre-à-cadre, à partir de paires de coordonnées 3D de points caractéristiques formées par les points caractéristiques respectifs, et des coordonnées en trois dimensions estimées de l'étape (a) comparées entre deux cadres consécutifs, et

(c) en effectuant une fusion de capteurs tridimensionnelle sur la base du mouvement de position estimé, des données de l'IMU, et des données du capteur GPS afin de déterminer une seule mesure de position.


 
2. Procédé selon la revendication 1, dans lequel l'objet mobile (300) est un véhicule aérien sans pilote.
 
3. Procédé selon la revendication 1, comprenant en outre la détermination, à l'aide des processeurs (502), d'une valeur de pondération pour les données provenant du troisième système de détection sur la base d'un paramètre qui indique la précision d'un algorithme de vision artificielle utilisé pour analyser les données d'image provenant du ou des capteurs de vision.
 
4. Procédé selon la revendication 3, dans lequel les informations de position de l'objet mobile (300) sont calculées sur la base des données provenant du troisième système de détection en factorisant la valeur de pondération pour les données provenant du troisième système de détection.
 
5. Système de collecte d'informations de position pour un objet mobile (300), ledit système comprenant :

un premier système de détection (502) relié à l'objet mobile (300), ledit premier système de détection comprenant un premier capteur (506) configuré pour recevoir un signal (510) utile pour déterminer les informations de position de l'objet mobile, dans lequel le premier capteur est une unité de mesure inertielle (606) ;

un second système de détection (504) relié à l'objet mobile, ledit second système de détection comprenant un second capteur (508) configuré pour recevoir un signal (512) utile pour déterminer les informations de position de l'objet mobile, dans lequel la réception de données de la part du second système de détection comprend la réception de données de la part d'un capteur de système de positionnement global, GPS, (608) utilisé par le second système de détection ;

un troisième système de détection (514) relié à l'objet mobile, ledit troisième système de détection comprenant une paire de capteurs de vision (602, 604) qui capturent simultanément une paire d'images sous forme de cadre d'image afin de produire une série temporelle de cadres d'images ; et un processeur (520) qui est configuré pour :

traiter les données d'image obtenues par les capteurs de vision (602, 604) afin de corriger les données d'image ;

identifier un ou plusieurs points caractéristiques au sein des données d'image corrigées ;

générer une représentation numérique des points caractéristiques ;

déterminer une valeur de pondération pour le signal provenant du second système de détection sur la base d'une intensité du signal reçu par le capteur du second système de détection, dans lequel l'intensité du signal reçu par le capteur du second système dépend d'un nombre de signaux GPS reçus ou d'une magnitude d'un signal GPS reçu ;

générer une estimation initiale d'un changement de position de l'objet mobile (300) sur la base (i) des données provenant du premier système de détection et (ii) des données provenant du second système de détection en factorisant la valeur de pondération ; et

caractérisé en ce que le processeur est en outre configuré pour :

effectuer une comparaison cadre-à-cadre des points caractéristiques à l'aide de l'estimation initiale du changement de position, dans lequel l'estimation initiale est utilisée pour rechercher un point caractéristique au sein d'un cadre actuel correspondant au même point caractéristique d'un cadre précédent de la série temporelle de cadres d'images, afin de déterminer une relation cadre-à-cadre entre le point caractéristique du cadre précédent et le point caractéristique du cadre actuel ; et

calculer les informations de position de l'objet mobile (300) (a) en effectuant une stéréo-correspondance d'un point caractéristique commun au sein de chaque paire d'images représentant un cadre d'image respectif obtenu par les capteurs de vision (602, 604) de sorte qu'une coordonnée en trois dimensions du point caractéristique commun soit estimée sur la base d'une relation spatiale entre les capteurs de vision (602, 604), et (b) en obtenant un mouvement de position estimé, sur la base de la comparaison cadre-à-cadre, à partir de paires de coordonnées en trois dimensions de points caractéristiques formées par les points caractéristiques respectifs, et des coordonnées en trois dimensions estimées de l'étape (a) comparées entre deux cadres consécutifs, et (c) en effectuant une fusion de capteurs tridimensionnelle sur la base du mouvement de position estimé, des données de l'IMU, et des données du capteur GPS afin de déterminer une seule mesure de position.


 




Drawing

































REFERENCES CITED IN THE DESCRIPTION



This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description