The disclosed embodiments relate generally to operating a movable platform and more particularly, but not exclusively, to planning a route for the movable platform using ray-casting mapping.
Movable platforms such as unmanned aerial vehicles (UAVs) can be used for performing surveillance, reconnaissance, and exploration tasks for military and civilian applications. A movable platform usually is associated with a plurality of sensors configured to detect objects adjacent the movable platform. For example, the plurality of sensors may include one or more imaging sensors for capturing image data of the surrounding environment for avoiding obstacles and/or tracking targets in the surrounding environment. It is important to efficiently and accurately process and manage the sensor data obtained from the plurality of sensors to plan routes for the movable platform.
There is a need for systems and methods of processing sensor data obtained from a plurality of sensors associated with a movable platform. The sensor data can be efficiently processed to plan routes used for target tracking, obstacle avoidance, image/video capturing, and/or other suitable functionalities of the movable platform. Such systems and methods optionally complement or replace conventional methods for processing sensor data and for route planning for movable platforms. Additionally, the sensor data processing techniques as disclosed herein can be performed in real time as the movable platform moves along a path and captures sensor data.
In accordance with some embodiments, a method of planning a route for a movable platform comprises: obtaining sensor data representing location information of one or more objects adjacent the movable platform at a first time point. The method further comprises generating a new grid map of the first time point by updating an existing grid map at a second time point prior to the first time point based on the sensor data at the first time point. Each grid map includes a plurality of grid cells each having a value representing a clearance status of ray casting through the grid cell at a corresponding time point. The method also comprises updating the route for the movable platform based on the respective values of the plurality of grid cells of the new grid map.
In accordance with some embodiments, a system may comprise one or more processors coupled to the imaging device; memory; and one or more programs. The one or more programs are stored in the memory and configured to be executed by the one or more processors. The one or more programs including instructions for performing the operations of the above method. In accordance with some embodiments, a non-transitory computer-readable storage medium has stored therein instructions that, when executed by the electronic device, cause the electronic device to perform the operations of the above method.
Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to one of ordinary skill in the art that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
The following description uses an unmanned aerial vehicle (UAV) (e.g., a copter) as an example of a movable platform. UAVs include, e.g., fixed-wing aircrafts and rotary-wing aircrafts such as helicopters, quadcopters, and aircraft having other numbers and/or configurations of rotors. In some embodiments, the movable platform also includes, but is not limited to, a handheld gimbal with a camera and image processing capabilities, a self-driving car (i.e., an autonomous car, a driverless car), a virtual reality (VR) headset, and an augmented reality (AR) headset. It will be apparent to those skilled in the art that other types of movable platforms may be substituted for UAVs as described below, such as a mobile phone, a tablet, or a remote control.
The present disclosure provides techniques related to processing and managing sensor data captured by a plurality of sensors associated with a movable platform, and operating the movable platform based on the sensor data, such as planning routes to avoid obstacles or track targets for the movable platform. In some embodiments, a grid map is generated and updated based on sensor data captured by the plurality of sensors associated with the movable platform in real-time as the movable platform moves along a path. For example, updating the grid map at a certain time point includes updating values of respective grid cells of the grid map based on sensor data captured at the corresponding time point, where the values of the respective grid cells represent status of ray casting through the respective grid cells at the corresponding time point. Furthermore, in order to efficiently process the sensor data while operating the movable platform in real-time, the grid map is divided into a plurality of subsets of grid cells. Based on operation parameters of the movable platform, one or more subsets of grid cells in the grid map, instead of the whole grid map, can be selected and updated. As such, the processing of the sensor data and the planning of the routes for the movable platform can be more efficient and accurate during a real-time operation of the movable platform.
In some embodiments, the carrier 104 is used to couple the payload 106 to the movable platform 102. In some embodiments, the carrier 104 includes an element (e.g., a gimbal and/or damping element) to isolate the payload 106 from movement of the movable platform 102 and/or the movement mechanism 114. In some embodiments, the carrier 104 includes an element for controlling movement of the payload 106 relative to the movable platform 102.
In some embodiments, the payload 106 is coupled (e.g., rigidly coupled) to the movable platform 102 (e.g., coupled via carrier 104) such that the payload 106 remains substantially stationary relative to movable platform 102. For example, the carrier 104 is coupled to the payload 106 such that the payload is not movable relative to the movable platform 102. In some embodiments, the payload 106 is mounted directly to the movable platform 102 without requiring the carrier 104. In some embodiments, the payload 106 is located partially or fully within the movable platform 102.
In some embodiments, a remote control 108 (e.g., as further discussed in
In some embodiments, the movable platform environment 100 includes a computing device 110 (e.g., as further discussed in
In some embodiments, the movable platform 102 communicates with a remote control 108 and/or a computing device 110, e.g., via wireless communications 112. In some embodiments, the movable platform 102 receives information from the remote control 108 and/or the computing device 110. For example, information received by the movable platform 102 includes, e.g., control instructions for controlling movable platform 102. In some embodiments, the movable platform 102 transmits information to the remote control 108 and/or the computing device 110. For example, information transmitted by the movable platform 102 includes, e.g., images and/or video captured by the movable platform 102.
In some embodiments, communications between the computing device 110, the remote control 108 and/or the movable platform 102 are transmitted via a network (e.g., Internet 116) and/or a wireless signal transmitter (e.g., a long range wireless signal transmitter) such as a cellular tower 118. In some embodiments, a satellite (not shown) is a component of Internet 116 and/or is used in addition to or in lieu of the cellular tower 118.
In some embodiments, information communicated between the computing device 110, the remote control 108 and/or the movable platform 102 include control instructions. In some embodiments, control instructions include, e.g., navigation instructions for controlling navigational parameters of the movable platform 102 such as position, orientation, orientation, and/or one or more movement characteristics of the movable platform 102, the carrier 104, and/or the payload 106. In some embodiments, control instructions include instructions directing movement of one or more of the movement mechanisms 114. For example, control instructions are used to control flight of a UAV. In some embodiments, control instructions include information for controlling operations (e.g., movement) of the carrier 104. In some embodiments, control instructions are used to adjust one or more operational parameters for the payload 106. In some embodiments, when control instructions are received by movable platform 102, the control instructions change parameters of and/or are stored by memory 204 (
In some embodiments, the movable platform 102 is a UAV and includes components to enable flight and/or flight control. In some embodiments, the movable platform 102 includes communication system 206 with one or more network or other communications interfaces (e.g., via which flight control instructions are received), one or more movement mechanisms 114, and/or one or more movable platform actuators 212 (e.g., to cause movement of movement mechanisms 114 in response to received control instructions). Although the movable platform 102 is depicted as an aircraft, this depiction is not intended to be limiting, and any suitable type of movable platform can be used. Actuator 212 is, e.g., a motor, such as a hydraulic, pneumatic, electric, thermal, magnetic, and/or mechanical motor.
In some embodiments, the movable platform 102 includes movement mechanisms 114 (e.g., propulsion mechanisms). Although the plural term “movement mechanisms” is used herein for convenience of reference, “movement mechanisms 114” refers to a single movement mechanism (e.g., a single propeller) or multiple movement mechanisms (e.g., multiple rotors). The movement mechanisms 114 include one or more movement mechanism types such as rotors, propellers, blades, engines, motors, wheels, axles, magnets, nozzles, and so on. The movement mechanisms 114 are coupled to the movable platform 102 at, e.g., the top, bottom, front, back, and/or sides. In some embodiments, the movement mechanisms 114 of a single movable platform 102 include multiple movement mechanisms of the same type. In some embodiments, the movement mechanisms 114 of a single movable platform 102 include multiple movement mechanisms with different movement mechanism types. The movement mechanisms 114 are coupled to the movable platform 102 using any suitable means, such as support elements (e.g., drive shafts) and/or other actuating elements (e.g., the movable platform actuators 212). For example, a movable platform actuator 212 receives control signals from the processor(s) 202 (e.g., via the control bus 208) that activates the movable platform actuator 212 to cause movement of a movement mechanism 114. For example, the processor(s) 202 include an electronic speed controller that provides control signals to a movable platform actuator 212.
In some embodiments, the movement mechanisms 114 enable the movable platform 102 to take off vertically from a surface or land vertically on a surface without requiring any horizontal movement of the movable platform 102 (e.g., without traveling down a runway). In some embodiments, the movement mechanisms 114 are operable to permit the movable platform 102 to hover in the air at a specified position and/or orientation. In some embodiments, one or more of the movement mechanisms 114 are controllable independently of one or more of the other movement mechanisms 114. For example, when the movable platform 102 is a quadcopter, each rotor of the quadcopter is controllable independently of the other rotors of the quadcopter. In some embodiments, multiple movement mechanisms 114 are configured for simultaneous movement.
In some embodiments, the memory 204 stores one or more instructions, programs (e.g., sets of instructions), modules, controlling systems and/or data structures, collectively referred to as “elements” herein. One or more elements described with regard to the memory 204 are optionally stored by the remote control 108, the computing device 110, and/or another device. In some embodiments, imaging device 216 includes memory that stores one or more parameters described with regard to the memory 204.
In some embodiments, the memory 204 stores a controlling system configuration that includes one or more system settings (e.g., as configured by a manufacturer, administrator, and/or user). For example, identifying information for the movable platform 102 is stored as a system setting of the system configuration. In some embodiments, the controlling system configuration includes a configuration for the imaging device 216. The configuration for the imaging device 216 stores parameters such as position, zoom level and/or focus parameters (e.g., amount of focus, selecting autofocus or manual focus, and/or adjusting an autofocus target in an image). Imaging property parameters stored by the imaging device configuration include, e.g., image resolution, image size (e.g., image width and/or height), aspect ratio, pixel count, quality, focus distance, depth of field, exposure time, shutter speed, and/or white balance. In some embodiments, parameters stored by the imaging device configuration are updated in response to control instructions (e.g., generated by processor(s) 202 and/or received by the movable platform 102 from remote control 108 and/or the computing device 110). In some embodiments, parameters stored by the imaging device configuration are updated in response to information received from the movable platform sensing system 210 and/or the imaging device 216.
In some embodiments, a controlling system performs imaging device adjustment. The imaging device adjustment module stores, e.g., instructions for adjusting a distance between an image sensor and an optical device of an imaging device 216, e.g., instructions for controlling an imaging device actuator. In some embodiments, the controlling system performs an autofocus operation. In some embodiments, the controlling system performs image distance determination, e.g., to determine an object distance and/or an image distance in accordance with the operations described herein. In some embodiments, one or more instructions for performing the above mentioned operations are stored in the memory 204.
The above identified controlling system, modules, and/or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various embodiments, and stored in the memory 204. In some embodiments, the controlling system includes a subset of the modules and data structures identified above. Furthermore, the memory 204 may store additional modules and data structures not described above. In some embodiments, the programs, modules, and data structures stored in the memory 204, or a non-transitory computer readable storage medium of memory 204, provide instructions for implementing respective operations in the methods described below. In some embodiments, some or all of these modules may be implemented with specialized hardware circuits that subsume part or all of the module functionality. One or more of the above identified elements may be executed by one or more processors 202 of the movable platform 102. In some embodiments, one or more of the above identified modules are stored on one or more storage devices of a device remote from the movable platform (such as memory of the remote control 108, the computing device 110, and/or the imaging device 216) and/or executed by one or more processors of a device remote from the movable platform 102 (such as processor(s) of the remote control 108, the computing device 110, and/or the imaging device 216).
The communication system 206 enables communication with the remote control 108 and/or the computing device 110, e.g., via wireless signals 112. The communication system 206 includes, e.g., transmitters, receivers, and/or transceivers for wireless communication. In some embodiments, the communication is one-way communication, such that data is only received by the movable platform 102 from the remote control 108 and/or the computing device 110, or vice-versa. In some embodiments, communication is two-way communication, such that data is transmitted in both directions between the movable platform 102 and the remote control 108 and/or the computing device 110. In some embodiments, the movable platform 102, the remote control 108, and/or the computing device 110 are connected to the Internet 116 or other telecommunications network, e.g., such that data generated by the movable platform 102, the remote control 108, and/or the computing device 110 is transmitted to a server for data storage and/or data retrieval (e.g., for display by a website).
In some embodiments, the sensing system 210 of the movable platform 102 includes one or more sensors, as described further with reference to
In some embodiments, movable platform sensing system 210 includes one or more image sensors 262. In some embodiments, the one or more image sensors 262 include a plurality of stereoscopic cameras, such as a pair of stereoscopic cameras including a left stereographic image sensor 264 and a right stereographic image sensor 266. The image sensors 262 capture images, image streams (e.g., videos), stereographic images (e.g., stereoscopic images), and/or stereographic image streams (e.g., stereographic videos). In some embodiments, the image sensors 262 include multiple pairs of stereoscopic cameras located at different parts (e.g., sides, areas, etc.) of the movable platform 102, such as one or more parts of the top part, bottom part, front part, back part, left part, and right part of the movable platform 102. For example, movable platform sensing system 210 includes a pair of stereoscopic cameras located at the front of the movable platform 102, another pair of stereoscopic cameras at the back of the movable platform 102, and yet another pair of stereoscopic cameras at the bottom of the movable platform 102. Image sensors 262 detect light, such as visible light, infrared light, and/or ultraviolet light. In some embodiments, movable platform sensing system 210 includes one or more optical devices (e.g., lenses) to focus or otherwise alter the light onto one or more image sensors 262. In some embodiments, image sensors 262 include, e.g., semiconductor charge-coupled devices (CCD), active pixel sensors using complementary metal-oxide-semiconductor (CMOS) or N-type metal-oxide-semiconductor (NMOS, Live MOS) technologies, or any other types of sensors.
In some embodiments, movable platform sensing system 210 includes one or more audio transducers 268. For example, an audio detection system includes audio output transducer 270 (e.g., a speaker), and audio input transducer 272 (e.g. a microphone, such as a parabolic microphone). In some embodiments, a microphone and a speaker are used as components of a sonar system. In some embodiments, a sonar system is used to detect location information of an object (e.g., an obstacle and/or a target) in the environment.
In some embodiments, movable platform sensing system 210 includes one or more infrared sensors 274. In some embodiments, a distance measurement system includes a pair of infrared sensors, e.g., infrared sensor 276 (such as a left infrared sensor) and infrared sensor 278 (such as a right infrared sensor) or another sensor or sensor pair. The distance measurement system can be used to measure a distance to an object in the environment (e.g., a target and/or an obstacle).
In some embodiments, a system to produce ray-casting map includes one or more sensors or sensor pairs of movable platform sensing system 210 (such as left stereographic image sensor 264 and right stereographic image sensor 266; audio output transducer 270 and audio input transducer 272; and/or left infrared sensor 276 and right infrared sensor 278). In some embodiments, a pair of sensors in a stereo data system (e.g., a stereographic imaging system) simultaneously captures data from different positions. In some embodiments, a depth map is generated by a stereo data system using the simultaneously captured data. In some embodiments, a depth map is used for positioning and/or detection operations, such as detecting an obstacle, detecting current location information of an obstacle, detecting a target, and/or detecting current location information for a target. In some embodiments, movable platform sensing system 210 includes one or more depth sensors, such as time-of-flight (TOF) cameras. For example, movable platform sensing system 210 includes TOF cameras located at left and right sides of the movable platform 102. One or more TOF cameras may also locate other parts of the movable platform 102. A TOF camera calculates a distance of each point/pixel in an image frame based on the speed of light. For example, the time-of-flight of a light signal between the imaging system and the subject for a pixel in the image frame is measured to determine the distance (e.g., depth) of the corresponding pixel.
In some embodiments, movable platform sensing system 210 further includes, but is not limited to, one or more global positioning system (GPS) sensors 280, motion sensors (e.g., accelerometers) 282, rotation sensors (e.g., gyroscopes), inertial sensors 284, proximity sensors (e.g., infrared sensors) and/or weather sensors 286 (e.g., pressure sensor, temperature sensor, moisture sensor, and/or wind sensor), visual odometry (VO) system 288, Lidar system 290, and ultrasonic sensor 292. In some embodiments, the movable platform sensing system 210 includes an inertial measurement unit (IMU) that may include the motion sensors 282, the rotation sensors, and optionally magnetometers.
In some embodiments, sensing data generated by one or more sensors of movable platform sensing system 210 and/or information determined using sensing data from one or more sensors of movable platform sensing system 210 are transmitted to remote control 108 (e.g., via communication system 206). In some embodiments, data generated by the one or more sensors of movable platform sensing system 210 and/or information determined using sensing data from one or more sensors of movable platform sensing system 122 can be stored by memory 204.
In some embodiments, remote control 108 includes one or more processors 302, a communication system 310 (e.g., including one or more network or other communications interfaces), memory 304, one or more input/output (I/O) interfaces (e.g., display 308 and/or input device 306) and one or more communication buses 312 for interconnecting these components.
In some embodiments, a touchscreen display includes display 308 and input device 306. A touchscreen display and processor(s) 302 optionally detect contact and movement using any suitable touch sensing technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touchscreen display.
In some embodiments, input device 306 includes, e.g., one or more joysticks, switches, knobs, slide switches, buttons, dials, keypads, keyboard, mouse, audio transducers (e.g., microphone for voice control system), motion sensor, and/or gesture controls. In some embodiments, an I/O interface of remote control 108 includes sensors (e.g., GPS sensors, and/or accelerometers), audio output transducers (e.g., speaker), and/or one or more tactile output generators for generating tactile outputs. In some embodiments, input device 306 receives user input to control aspects of movable platform 102, carrier 104, payload 106, or a component thereof. Such aspects include, e.g., attitude, position, orientation, velocity, acceleration, navigation, tracking, and/or flight mode. In some embodiments, input device 306 is used to adjust an operational parameter of the payload, such as a parameter of a payload sensing system 212 (e.g., to adjust a zoom parameter of imaging device 216) and/or a position of payload 106 relative to carrier 104 and/or movable platform 102.
In some embodiments, the display device 308 displays information about movable platform 102, carrier 104, and/or payload 106, such as position, attitude, orientation, movement characteristics of movable platform 102, and/or distance between movable platform 102 and another object (e.g., target and/or an obstacle). In some embodiments, information displayed by display device 308 includes images captured by imaging device 216, tracking data (e.g., a graphical tracking indicator applied to a representation of target), and/or indications of control data transmitted to movable platform 102.
The communication system 310 enables communication with communication system 206 of movable platform 102, communication system 330 of computing device 110, and/or a base station (e.g., computing device 110) via a wired or wireless communication connection. In some embodiments, the communication system 310 transmits control instructions (e.g., navigation control instructions, target information, and/or tracking instructions). In some embodiments, the communication system 310 receives data (e.g., tracking data from payload imaging device 216, and/or data from movable object sensing system 210).
In some embodiments, memory 304 stores instructions for generating control instructions automatically and/or based on input received via input device 306. The control instructions include, e.g., control instructions for operating movement mechanisms 114 of movable platform 102, adjusting carrier 104, adjusting payload 106, and/or adjusting the operations of one or more sensors of movable object sensing system 210.
In some embodiments, computing device 110 provides data storage, data retrieval, and/or data processing operations, e.g., to reduce the processing power and/or data storage requirements of movable platform 102 and/or remote control 108. For example, computing device 110 is communicatively connected to a database 338 (e.g., via communication system 330) and/or computing device 110 includes database 338 (e.g., database 338 is connected to communication bus 332).
Communication system 330 includes one or more network or other communications interfaces. In some embodiments, computing device 110 receives data from movable platform 102 (e.g., from one or more sensors of movable object sensing system 210) and/or remote control 108. In some embodiments, computing device 110 transmits data to movable platform 102 and/or remote control 108. For example, computing device 110 provides control instructions to movable platform 102.
In some embodiments, the electronic device generates a grid map at a certain time point. In some embodiments, the grid map includes information related to existence and respective locations of one or more objects adjacent the movable platform 102 in a coordinate system. For example as shown in
In some embodiments, the respective locations of the one or more objects are detected by one or more sensors of the movable platform sensing system 210 at time point t1. In one example, one or more image sensors 262 (
In some embodiments, one or more sensors of the movable platform sensing system 210 detect existence and respective locations of one or more objects at time point t2, which is a time point that occurs after time point t1. In some embodiments as shown in
In some embodiments, the electronic device generates a grid map 420 at time point t2, and the grid map 420 includes one or more points. Each point in the grid map 420 represents existence of an object at the corresponding location (e.g., with coordinates [x, y, z]) in the coordinate system (x2, y2, z2) at time point t2. The one or more points in a grid map represent respective objects that can be detected within detectable ranges of the one or more sensors associated with the movable platform 102. In some embodiments, the grid map 420 is generated by (1) transforming the grid map 400 from the coordinate system (x1, y1, z1) to the coordinate system (x2, y2, z2); and (2) incorporating the point cloud 410 into the grid map 420. In some embodiments, the transformation of coordinate system (x1, y1, z1) to the coordinate system (x2, y2, z2) is performed based on motion data, such as a speed and a moving direction of the movable platform 102 from time point t1 to time point t2. For example, if the movable platform 102 travels along the x1 direction from time point t1 to time point t2 at an even speed of v, then the transformation between the two coordinate systems is: x2=x1+v(t2−t1), y2=y1, and z2=z1. In some embodiments, the one or more points in the point cloud 410 are incorporated into the grid map 420, both of which use the same coordinate system. In some embodiments, when the point cloud 410 uses a different coordinate system from the grid map 420, a transformation is performed between the two different coordinate systems to incorporate the point cloud 410 into the grid map 420. Note that the transformation includes one or more of translational and rotational movements.
In some embodiments, the grid map is updated at a rate associated with a sampling rate of the one or more sensors. In some embodiments, the grid map is adaptively updated based on a moving speed of the movable platform 102 and/or a density of objects distributed along a moving direction of the movable platform 102. For example, the updating rate may be higher when the movable platform 102 is travelling at a faster speed. In another example, the updating rate may be higher when there are more objects distributed along a moving direction of the movable platform 102. In some embodiments, the updating rate of the grid map is 10 Hz, 50 Hz, 100 Hz, 200 Hz, 500 Hz, or 1000 Hz.
For example as shown in
In some embodiments, the division ABCD-EFOG is divided into three subsets of grid cells, and each subset of grid cells corresponds to a respective polyhedron in a 3-dimensional space, such as polyhedron O-ABCD, polyhedron O-EGCA, or polyhedron O-ABFE. In some embodiments, each polyhedron has a vertex at the center of the 3-dimensional space (i.e., the center point O) and a base opposite to the vertex in the 3-dimensional space (e.g., ABCD, EGCA, or ABFE). In some embodiments, the movable platform 102 is located at the center of the 3-dimensional space, i.e., the center point O of the 3-dimensional cube AHIJ-KLMN. In some embodiments, the movable platform 102 is located at a corner, i.e., corner O, of the division ABCD-EFOG. In some embodiments, the movable platform 102 is located at the vertex of each polyhedron within the division ABCD-EFOG. In some embodiments, each polyhedron includes a plurality of grid cells, e.g., grid cell 500. In some embodiments, each polyhedron represents a moving range of the movable platform 102 corresponding to a polyhedron in the 3-dimensional space. In some embodiments, each grid cell 500 is associated with a value which indicates a clearing status of ray casting through the corresponding grid cell at the current time point. In some embodiments, the ray (e.g., ray OP) casting corresponds to a virtual ray that starts from the movable platform 102 (e.g., the point O) and ends at an object, e.g., point P, detected within the division ABCD-EFOG. In some embodiments, the clearing status of the ray OP is determined and the respective values of one or more grid cells, including grid cell 500, are updated in accordance with an exemplary process discussed below in
In some embodiments as discussed with reference to
In some embodiments, there are multiple types for updating the grid cells based on the ray casting status associated with the respective grid cells within the grid map. In some embodiments, the grid map includes one or more grid cells (referred to as “Type A” cells) that are passed through by a single ray at time point ti. In one example, a “Type A” cell 602 is passed through by a single ray, i.e., ray OP. In some embodiments, the cell value of a “Type A” cell is updated by increasing the cell value by a positive number (assuming that positive numbers are used for representing the presence of an object). For example, the cell value of the “Type A” cell 602 is increased by +1, which corresponds to a single ray passing through this cell at time point ti.
In some embodiments, the grid map includes one or more grid cells (referred to as “Type B” cells) that are not passed by any ray at time point ti. In one example, a “Type B” cell 604 is not passed by any ray at time point ti. In some embodiments, the cell value of a “Type B” cell is not updated, or is increased by a number smaller than the increased number for a “Type A” cell. For example, the cell value of the “Type B” cell 604 is increased by +0.5 or is unchanged (e.g., corresponding to a time-out state) at time point ti.
In some embodiments, the grid map includes one or more grid cells (referred to as “Type C” cells) that contains a detected object (e.g., corresponding to point P) at time point ti. In one example, a “Type C” cell 606 contains a detected object (e.g., corresponding to point P at which the ray is intercepted). In some embodiments, the cell value of a “Type C” cell is updated by decreasing the cell value. For example, the cell value of the “Type C” cell 606 is decreased by 2 (or changed by −2) at time point ti.
In some embodiments, the grid map includes one or more grid cells (referred to as “Type D” cells) that is located on an extension of a ray (e.g., ray OP) at time point ti. In one example, a “Type D” cell 608 is located on an extension of ray OP, and is not passed through by ray OP because the cell 608 is blocked by the cell containing the point P (i.e., cell 606). In some embodiments, the cell value of a “Type D” cell is updated in a similar way as a “Type B” cell. For example, the cell value of the “Type D” cell 608 is increased by +0.5 or is unchanged (e.g., corresponding to a time-out state) at time point ti.
In some embodiments, the grid map includes one or more grid cells (referred to as “Type E” cells) that are passed through by multiple rays at time point ti. In one example, a “Type E” cell 610 is passed through by two rays, i.e., ray OQ and ray OW. In some embodiments, the cell value of a “Type E” cell is updated by increasing the cell value by a positive number corresponding to a number of the rays that pass through such “Type E” cell. For example, the cell value of the “Type E” cell 610 is increased by +2, which corresponds to two rays passing through this cell at time point ti.
In some embodiments, compared to a “Type A” cell at time point ti, more rays passing through a “Type E” cell, indicating that a path towards a “Type E” cell is clearer (e.g., preferable, with a lower possibility of hitting an obstacle on the path) than a path towards a “Type A” cell. In some embodiments, a path towards one or more cells having greater cell values is considered to be clearer, thus is preferred to be recommended to or planned for the movable platform 102 to move along to reduce the possibility of hitting an obstacle on the way.
In some embodiments, the values of the grid cell within the same division (e.g., one of the eight divisions shown in
In some embodiments, the storing operations examine the values of grid cells located near the center point O of the polyhedron O-ABCD and skip those grid cells whose values is no greater than a predefined threshold until it locates the first grid cell or the first layer of grid cells whose values are greater than the predefined threshold for storing them in the physically contiguous memory region of the storage device. By doing so, it is possible to store more grid values within one physically contiguous memory region of the storage device when the grid values are used for quickly determining whether there is any object near the moveable platform 102 and, if so, what is the shortest distance between the moveable platform 102 and the potential object. Based on such determination, the moveable platform 102 maneuvers accordingly to avoid the potential object. In some embodiments, the storing operations only store the indexes of grid cells whose values are greater than a predefined threshold within a physically contiguous memory region of the storage device and use the indexes for determining the location of a possible object in a particular location because the index value of a grid cell corresponds to a particular location of the grid cell in the surrounding space of the moveable platform 102.
In some embodiments, the electronic device further generates a lookup table 704 for the values of grid cells distributed along ray OP, such as value v1 for grid cell f1, and value v2 for grid cell f2,. For easy access of the values of the grid cells when determining or updating the route of the movable platform 102. In some embodiments, the lookup table 704 includes a plurality of entries, and each entry stores information related to a grid cell. For example, a respective entry identifies a subset of grid cells to which the grid cells belong, a ray along which the grid cells are located, a location of a respective grid cell in the 3-dimensional space, a value of the respective grid cell, and a memory location for storing the corresponding entry. The lookup table 704 can be used for efficiently retrieving information associated with one or more grid cells distributed along a ray casting from the center O to a point corresponding to an object in the 3-dimensional space, such that the values of grid cells distributed along a casting ray can be analyzed within a short time for efficient route planning for the movable platform 102.
In one example, as shown in
In another example, an entry for storing information of grid cell f2 identifies a subset O-ABCD to which grid cell f2 belongs, a ray OP along which grid cell f2 is located, a location of the grid cell f2 (e.g., (r2, θ2), where r2 is a distance between grid cell f2 and point O, and θ2 is an angle between ray OP and a boundary of the subset O-ABCD), a value v2 for grid cell f2, and a memory location L2 for storing this entry associated with grid cell f2.
In some embodiments as discussed with reference to
The electronic device obtains (902), sensor data representing location information of one or more objects adjacent the movable platform 102 at a first time point. In some embodiments, the sensor data is obtained by one or more sensors of the movable platform sensing system 210 (
The electronic device generates (904) a new grid map of the first time point (e.g., the grid 420 of time point t2,
The electronic device updates (906) the route for the movable platform 102 based on the respective values of the plurality of grid cells of the new grid map. In some embodiments, the electronic device identifies (910), based on the sensor data, one or more points in the new grid map that represent existence of one or more objects at the first time point at corresponding locations within a 3-dimensional space adjacent the movable platform 102. In some embodiments, each grid map includes one or more indicators, such as points, and each point represents existence of an object at a corresponding location in the 3-dimensional space. In some embodiments, updating an existing grid map to generate a new grid map includes (1) transforming the existing map from a coordinate system at the second time point to a coordinate system at the first time point, and (2) incorporating the point cloud obtained at the first time into the grid map of the first time. For example as discussed with reference to
In some embodiments, the electronic device updates (912) the value of a respective grid cell in the existing grid map based on a determination that whether one or more rays casting from a point corresponding to a location of the movable platform 102 (e.g., the center point O,
In some embodiments, in accordance with a determination that one or more rays pass through a first grid cell at the first time point, the electronic device increases (914) the value of the first grid cell in the existing grid map by a number of the one or more rays that pass through the first grid cell. For example as shown in
In some embodiments, in accordance with a determination that no new ray passes through a second grid cell in the existing grid map at the first time point (e.g., there is no ray in the second grid cell at all or the rays are intercepted from reaching the second grid cell), the electronic device updates (916) the value of the second grid cell by a constant number. For example as shown in
In some embodiments, in accordance with a determination that a third grid cell in the existing grid map contains a point representing existence of an object at the corresponding location within the 3-dimensional space at the first time point, the electronic device decreases (918) the value of the third grid cell. For example as shown in
In some embodiments, the electronic device updates (920) the route of the movable platform 102 based on locations of one or more grid cells having values above a predetermined threshold on the grid map. For example, the electronic device identifies a route towards a grid cell having the greatest value. In another example, the electronic device identifies a route towards a grid cell having a value greater than a predetermined threshold. In some embodiments, the electronic device updates the grid map at a certain rate (e.g., 10 Hz, 50 Hz, 100 Hz, 200 Hz, 500 Hz, or 1000 Hz). Each time after updating the grid map, the electronic device determines one or more routes towards one or more grid cells having respective values greater than a predetermine threshold.
In some embodiments, the electronic device adjusts (908) one or more parameters of the movable platform 102 to move along the updated route. In some embodiments, the one or more parameters of the movable platform 102 include a speed, an acceleration, orientation angles (or attitude), an angular velocity, and/or the like.
In some embodiments, the electronic device divides (930) the new grid map into a plurality of subsets of grid cells. For example, as shown in
In some embodiments, in accordance with a determination that a speed of the movable platform 102 is above a predetermined threshold, the electronic device selects (932) based on one or more parameters of the movable platform, a subset of grid cells from the plurality of subsets of grid cells that are located along a current route of the movable platform in the 3-dimensional space. For example, when the movable platform 102 is travelling at a speed above 15 m/s, the electronic device determines a travelling direction of the movable platform 102. If the travelling direction is contained within a certain polyhedron, such as polyhedron O-ABCD, only the grid cells within the polyhedron O-ABCD are updated. In some embodiments, the electronic device generates (934) the new grid map by updating (934) (1) one or more points representing existence of one or more objects at corresponding locations within the 3-dimensional space (e.g., the polyhedron O-ABCD) and (2) values representing clearance status of ray casting of the first subset of grid cells based on the sensor data within only the first subset of grid cells (e.g., the polyhedron O-ABCD). In some embodiments, the electronic device updates (936) the route for the movable platform 102 based on locations of one or more grid cells within the first subset of the grid cells (e.g., the polyhedron O-ABCD) that have values above a predetermined threshold.
In some embodiments, in accordance with a determination that a density of objects in the 3-dimensional space is above a predetermined threshold, the electronic device selects (938) based on one or more parameters of the movable platform, a subset of grid cells from the plurality of subsets of grid cells that are located along a current route of the movable platform in the 3-dimensional space. For example, when there are the objects are distributed densely adjacent the movable platform 102, the electronic device determines a travelling direction of the movable platform 102 based on the current parameters of the movable platform 102. If the travelling direction is contained within a certain polyhedron, such as polyhedron O-ABEF, only the grid cells within the polyhedron O-ABEF are updated. In some embodiments, the electronic device generates (940) the new grid map by updating (940) (1) one or more points representing existence of one or more objects at corresponding locations within the 3-dimensional space (e.g., the polyhedron O-ABEF) and (2) values representing clearance status of ray casting of the second subset of grid cells based on the sensor data within only the second subset of grid cells (e.g., the polyhedron O-ABEF). In some embodiments, the electronic device updates (942) the route for the movable platform 102 based on locations of one or more grid cells within the second subset of the grid cells (e.g., the polyhedron O-ABCD) that have values above a predetermined threshold.
In some embodiments, the electronic device stores (944) values of the plurality of subsets of grid cells in a plurality of contiguous memory regions respectively. For example, as discussed in
In some embodiments, the electronic device receives (948) a user input (e.g., the user input 804,
In some embodiments, the electronic device stores (956) values of grid cells along a ray casting from the vertex to a point representing existence of an object within the 3-dimensional space in contiguous memory regions. For example as shown in
Many features of the present disclosure can be performed in, using, or with the assistance of hardware, software, firmware, or combinations thereof. Consequently, features of the present disclosure may be implemented using a processing system. Exemplary processing systems (e.g., processor(s) 202, processors 302 of the remote control 108, and/or processors 322 of the computing device 110) include, without limitation, one or more general purpose microprocessors (for example, single or multi-core processors), application-specific integrated circuits, application-specific instruction-set processors, field-programmable gate arrays, graphics processors, physics processors, digital signal processors, coprocessors, network processors, audio processors, encryption processors, and the like.
Features of the present disclosure can be implemented in, using, or with the assistance of a computer program product, such as a storage medium (media) or computer readable storage medium (media) having instructions stored thereon/in which can be used to program a processing system to perform any of the features presented herein. The storage medium (e.g., the memory 204) can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, DDR RAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
Stored on any one of the machine readable medium (media), features of the present disclosure can be incorporated in software and/or firmware for controlling the hardware of a processing system, and for enabling a processing system to interact with other mechanism utilizing the results of the present disclosure. Such software or firmware may include, but is not limited to, application code, device drivers, operating systems, and execution environments/containers.
Communication systems as referred to herein (e.g., the communication system 206) optionally communicate via wired and/or wireless communication connections. For example, communication systems optionally receive and send RF signals, also called electromagnetic signals. RF circuitry of the communication systems convert electrical signals to/from electromagnetic signals and communicate with communications networks and other communications devices via the electromagnetic signals. RF circuitry optionally includes well-known circuitry for performing these functions, including but not limited to an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and so forth. Communication systems optionally communicate with networks, such as the Internet, also referred to as the World Wide Web (WWW), an intranet and/or a wireless network, such as a cellular telephone network, a wireless local area network (LAN) and/or a metropolitan area network (MAN), and other devices by wireless communication. Wireless communication connections optionally use any of a plurality of communications standards, protocols and technologies, including but not limited to Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSDPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (e.g., IEEE 102.11a, IEEE 102.11ac, IEEE 102.11ax, IEEE 102.11b, IEEE 102.11g and/or IEEE 102.11n), voice over Internet Protocol (VoIP), Wi-MAX, a protocol for e-mail (e.g., Internet message access protocol (IMAP) and/or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS)), and/or Short Message Service (SMS), spread spectrum technology such as FASST or DESST, or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.
While various embodiments of the present disclosure have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the disclosure.
The present disclosure has been described above with the aid of functional building blocks illustrating the performance of specified functions and relationships thereof. The boundaries of these functional building blocks have often been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Any such alternate boundaries are thus within the scope and spirit of the disclosure.
The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting,” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.
The foregoing description of the present disclosure has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments. Many modifications and variations will be apparent to the practitioner skilled in the art. The modifications and variations include any relevant combination of the disclosed features. The embodiments were chosen and described in order to best explain the principles of the disclosure and its practical application, thereby enabling others skilled in the art to understand the disclosure for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.
This application is a continuation of International Application No. PCT/CN2017/086608, filed May 31, 2017, the entire content of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2017/086608 | May 2017 | US |
Child | 16692763 | US |