An autonomous-driving vehicle (called an ego vehicle) may use information about a current location of the ego vehicle as the ego vehicle moves along streets or other terrain. To obtain location information, the ego vehicle may receive and use Satellite Positioning System (SPS) signals (e.g., Global Positioning System (GPS) signals, Global Navigation Satellite System (GNSS) signals, etc.) to determine a current position of the ego vehicle, and in turn use that current position information as input for navigation applications. In an SPS, the position of a receiver of SPS signals may be determined by precisely measuring the arrival times of signals received from multiple satellites, determining ranges between the satellites and the receiver, and using the ranges to determine the location of the receiver by trilateration. SPS signals are not, however, always reliably received by a receiver, e.g., of an ego vehicle. For example, SPS accuracy may degrade significantly under weak signal conditions such as when the line-of-sight (LOS) between the receiver and the satellite(s) is obstructed, e.g., by natural and/or artificial (human-made) objects, such as tall buildings, mountains, or canyon walls. Depending on the environment, the ego vehicle may not receive an SPS signal, or the accuracy of the SPS may be poor, resulting in positional errors on the order of tens of meters (e.g., 50 meters).
Another navigational system that may be employed by a vehicle is known as dead reckoning. With dead reckoning, an initial position of a vehicle may be determined (e.g., using SPS signals), and distance(s) traveled and corresponding heading(s) of the vehicle may be determined using various sensors of the vehicle. The distance(s) at the corresponding heading(s) may be added to the initial position to calculate an updated position of the vehicle. The accuracy of dead reckoning positions depend on the accuracy of the sensors used to determine distance(s) and heading(s) traveled. Error induced by lack of accuracy of one or more sensors may, especially over long stretches of time, result in significant error in the determined distance(s) travelled and/or bias(es) in the heading(s) of the vehicle, resulting in inaccurate updated vehicle positions.
An example method of determining location of a vehicle includes: obtaining first map data including first identifiers of first objects and first locations corresponding to the first objects, the first locations having first uncertainties each of at least a first threshold distance, and the first locations having a first density of the first locations per unit of area; obtaining second map data including second identifiers of second objects and second locations corresponding to the second objects, the second locations having second uncertainties each of less than a second threshold distance, wherein the first threshold distance is at least twice the second threshold distance, wherein the second locations have a second density of the second locations per the unit of area, and wherein the first density is higher than the second density; and determining a location estimate, of the vehicle, based on at least a particular one of the second locations, corresponding to a particular one of the second objects, and at least one of an angle from the vehicle to the particular one of the second objects or a distance between the vehicle and the particular one of the second objects.
An example apparatus, of an ego vehicle, includes: at least one memory; at least one receiver; and at least one processor, communicatively coupled to the at least one memory and the at least one receiver, configured to: obtain first map data including first identifiers of first objects and first locations corresponding to the first objects, the first locations having first uncertainties each of at least a first threshold distance, and the first locations having a first density of the first locations per unit of area; obtain second map data including second identifiers of second objects and second locations corresponding to the second objects, the second locations having second uncertainties each of less than a second threshold distance, wherein the first threshold distance is at least twice the second threshold distance, wherein the second locations have a second density of the second locations per the unit of area, and wherein the first density is higher than the second density; and determine a location estimate, of the ego vehicle, based on at least a particular one of the second locations, corresponding to a particular one of the second objects, and at least one of an angle from the apparatus to the particular one of the second objects or a distance between the apparatus and the particular one of the second objects.
Another example apparatus, of an ego vehicle, includes: means for obtaining first map data including first identifiers of first objects and first locations corresponding to the first objects, the first locations having first uncertainties each of at least a first threshold distance, and the first locations having a first density of the first locations per unit of area; means for obtaining second map data including second identifiers of second objects and second locations corresponding to the second objects, the second locations having second uncertainties each of less than a second threshold distance, wherein the first threshold distance is at least twice the second threshold distance, wherein the second locations have a second density of the second locations per the unit of area, and wherein the first density is higher than the second density; and means for determining a location estimate, of the ego vehicle, based on at least a particular one of the second locations, corresponding to a particular one of the second objects, and at least one of an angle from the ego vehicle to the particular one of the second objects or a distance between the ego vehicle and the particular one of the second objects.
An example non-transitory, processor-readable storage medium includes processor-readable instructions to cause at least one processor of an apparatus, of an ego vehicle, to: obtain first map data including first identifiers of first objects and first locations corresponding to the first objects, the first locations having first uncertainties each of at least a first threshold distance, and the first locations having a first density of the first locations per unit of area; obtain second map data including second identifiers of second objects and second locations corresponding to the second objects, the second locations having second uncertainties each of less than a second threshold distance, wherein the first threshold distance is at least twice the second threshold distance, wherein the second locations have a second density of the second locations per the unit of area, and wherein the first density is higher than the second density; and determine a location estimate, of the ego vehicle, based on at least a particular one of the second locations, corresponding to a particular one of the second objects, and at least one of an angle from the ego vehicle to the particular one of the second objects or a distance between the ego vehicle and the particular one of the second objects. An apparatus, of an ego vehicle, includes: at least one memory; at least one receiver; and at least one processor, communicatively coupled to the at least one memory and the at least one receiver, configured to: obtain first map data including first identifiers of first objects and first locations corresponding to the first objects, the first locations having first uncertainties each of at least a first threshold distance, and the first locations having a first density of the first locations per unit of area; obtain second map data including second identifiers of second objects and second locations corresponding to the second objects, the second locations having second uncertainties each of less than a second threshold distance, wherein the first threshold distance is at least twice the second threshold distance, wherein the second locations have a second density of the second locations per the unit of area, and wherein the first density is higher than the second density; and determine a location estimate, of the ego vehicle, based on at least a particular one of the second locations, corresponding to a particular one of the second objects, and at least one of an angle from the apparatus to the particular one of the second objects or a distance between the apparatus and the particular one of the second objects.
Techniques and apparatus configurations are discussed herein for enhancing standard-definition maps for use in locating a device, e.g., for egomotion (e.g., determining locations over time of an ego vehicle). For example, objects with locations known to a fine resolution (e.g., within 2 cm) may be sparsely distributed throughout an otherwise standard-definition map (e.g., with objects of locations known to a coarse resolution (e.g., within 25 m such as within a region of a two-dimensional map grid of regions with each region comprising a 25 m×25 m square). An ego vehicle reference location may be determined based on one or more ranges to known locations of objects within sight of the ego vehicle. These techniques and apparatus configurations are examples, and other techniques and/or apparatus configurations may be used.
Items and/or techniques described herein may provide one or more of the following capabilities, as well as other capabilities not mentioned. By using at least one fine-resolution-location object to determine the ego vehicle location, the location of the ego vehicle may be determined more accurately than by using standard-definition map objects alone. Enough fine-resolution-location objects may be used to determine the ego vehicle location such that an error in the determined location of the ego vehicle may be dominated by sensor detection error rather than object location uncertainty (which may be called object location error). Dead reckoning may be used to determine one or more locations of the ego vehicle relative to an ego vehicle reference location. Error in the dead reckoning location may be corrected by using location measurements of objects of known location that are identifiable in the area surrounding the ego vehicle. Using objects with known fine-resolution locations may essentially remove object location error (e.g., relative to the object location error of the standard definition map alone). Other capabilities may be provided and not every implementation according to the disclosure must provide any, let alone all, of the capabilities discussed.
Referring to
The camera 135 may be configured to capture still photos and/or video to provide information regarding motion of the vehicle 100 and/or presence of one or more objects within sight of the vehicle 100. The camera 135 may comprise a camera sensor and mounting assembly. Different mounting assemblies may be used for different cameras on the vehicle 100. For example, front facing cameras may be mounted in a front bumper of the vehicle 100, in a stem of a rear-view mirror assembly of the vehicle 100, or in other front-facing areas of the vehicle 100. The camera 135 may comprise one or more rear-facing cameras mounted in a rear bumper/fender, on a rear windshield, and/or on a trunk or other rear-facing area of the vehicle 100. Side-facing mirrors may be mounted on one or more sides of the vehicle 100 such as being integrated into one or more mirror assembling and/or one or more door assemblies. The camera 135 may provide object detection and distance estimation, particularly for objects of known size and/or shape (e.g., stop signs and license plates have respective standardized sizes and shapes) and may provide information regarding rotational motion relative to an axis of the vehicle 100 such as during a turn. The camera 135 may be calibrated through the use of one or more other systems such as through the use of the lidar 150, a wheel tick/distance sensor, and/or a GNSS receiver to verify distance traveled and possibly angular orientation. The camera 135 may be used to verify and calibrate one or more other systems, e.g., to verify that distance measurements are correct. For example, the camera 135 may be used to determine that the vehicle 100 has moved between objects (e.g., landmarks, roadside markers, road mile markers, etc.) that have known separations and comparing these distances with distances determined by the other sensor(s). As another example, the camera 135 may be used to verify that object detection is performed accurately such that objects are mapped to the correct locations relative to the vehicle 100 by the lidar 150 and/or one or more other sensors. Information from the camera 135 may be combined with, for example, information from one or more accelerometers to determine an impact time with a road hazard (e.g., an estimated time before hitting a pot hole) which may be verified against actual time of impact and/or verified against stopping models and/or maneuvering models. Verification against a stopping model may compare the impact time determined from camera data against an estimated stopping distance if attempting to stop before hitting an object. Verification against a maneuvering model may verifying whether current estimates for turning radius at current speed and/or a measure of maneuverability at current speed are accurate in the current conditions and modifying accordingly to update estimated parameters based on camera and/or other sensor measurements.
The motion/orientation sensor 140 may include one or more accelerometers, one or more gyroscopes, and/or one or more magnetometers 140 and may be utilized to provide and/or verify motion and directional information. Accelerometers and gyros may be utilized to monitor wheel and drive train performance. Accelerometers, may also be utilized to verify actual time of impact with road hazards such as potholes relative to predicted times based on existing stopping and acceleration models as well as steering models. Gyros and magnetometers may be utilized to measure rotational status of the vehicle 100 and/or orientation relative to magnetic north. Gyros and magnetometers may be utilized to measure and calibrate estimates and/or models for turning radius at current speed and/or a measure of maneuverability at current speed, particularly when used in concert with measurements from one or more other external and/or internal sensors such as the other sensors 145 (e.g., speed sensors, wheel tick sensors, and/or odometer measurements).
The lidar 150 may use pulsed laser light to measure ranges to objects. While cameras may be used for object detection, the lidar 150 may be able to detect relative distances, relative orientations, and/or relative motion of the objects (relative to the vehicle 100) with more certainty, especially in regard to objects of unknown size and shape. Measurements from the lidar 150 may be used to estimate relative rate of travel, relative motion directions, relative position, and/or stopping distance (to avoid a collision between the vehicle 100 and an object) by providing accurate distance measurements and delta distance measurements.
The memory 160 may be utilized with the processor 110 and/or the DSP 120. The memory 160 may be a non-transitory storage medium that may include random access memory (RAM), flash memory, disc memory, and/or read-only memory (ROM), etc. The memory 160 may contain instructions to implement various methods described throughout this description including, for example, processes to implement the use of relative positioning between vehicles and between vehicles and external reference objects such as roadside units. The memory 160 may contain instructions for operating and calibrating sensors, and for receiving map, weather, vehicular data (of the vehicle 100 and/or of surrounding vehicles), and/or other data, and for utilizing various internal and/or external sensor measurements and/or received data and/or received measurements to determine driving parameters such as relative position, absolute position, stopping distance, acceleration, and/or turning radius at current speed and/or maneuverability at current speed, inter-car distance, turn initiation/timing and performance, and/or initiation/timing of driving operations. The memory 160 may store software which may be processor-readable, processor-executable software code containing instructions that may be configured to, when executed, cause one or more processors (e.g., the processor 110 and/or the DSP 120) to perform various functions described herein. Alternatively, the software may not be directly executable by the processor but may be configured to cause the processor, e.g., when compiled and executed, to perform the functions. The description herein may refer to the processor 110 performing a function, but this includes other implementations such as where the processor 110 executes software and/or firmware. The description herein may refer to the processor 110 performing a function as shorthand for one or more of the processors 110, 120 performing the function. The description herein may refer to the vehicle 100 performing a function as shorthand for one or more appropriate components of the vehicle 100 performing the function. The processor 110 may include a memory with stored instructions in addition to and/or instead of the memory 160. Functionality of the processor 110 is discussed more fully below.
Power and drive systems (generator, battery, transmission, engine) and related systems 175 and systems (brake, actuator, throttle control, steering, and electrical) 155 may be controlled by the processor(s) and/or hardware or software or by an operator of the vehicle or by some combination thereof. The systems (brake, actuator, throttle control, steering, electrical, etc.) 155 and power and drive or other systems 175 may be utilized in conjunction with performance parameters and operational parameters, to enable autonomously (and manually, relative to alerts and emergency overrides/braking/stopping) driving and operating a vehicle 100 safely and accurately, such as to safely, effectively and efficiently merge into traffic, stop, accelerate and otherwise operate the vehicle 100. Input from the various sensor systems such as camera 135, accelerometers, gyros and magnetometers 140, LIDAR 150, GNSS receiver 170, RADAR 153, input, messaging and/or measurements from wireless transceiver(s) 130 and/or other sensors 145 or various combinations thereof, may be utilized by processor 110 and/or DSP 120 or other processing systems to control power and drive systems 175 and systems (brake actuator, throttle control, steering, electrical, etc.) 155.
A global navigation satellite system (GNSS) receiver may be utilized to determine position relative to the earth (absolute position) and, when used with other information such as measurements from other objects and/or mapping data, to determine position relative to other objects such as relative to other cars and/or relative to the road surface.
GNSS receiver 170 may support one or more GNSS constellations as well as other satellite-based navigation systems. For example, GNSS receiver 170 may support global navigation satellite systems such as the Global Positioning System (GPS), the Global'naya Navigatsionnaya Sputnikovaya Sistema (GLONASS), Galileo, and/or BeiDou, or any combination thereof. In an embodiment, GNSS receiver 170 may support regional navigation satellite systems such as NAVIC or QZSS or combination thereof as well as various augmentation systems (e.g., satellite based augmentation systems (SBAS) or ground based augmentation systems (GBAS)) such as Doppler orbitography and radio-positioning integrated by satellite (DORIS) or wide area augmentation system (WAAS) or the European geostationary navigation overlay service (EGNOS) or the multi-functional satellite augmentation system (MSAS) or the local area augmentation system (LAAS). In an embodiment, GNSS receiver(s) 130 and antenna(s) 132 may support multiple bands and sub-bands such as GPS L1, L2 and L5 bands, Galileo E1, E5, and E6 bands, Compass (BeiDou) B1, B3 and B2 bands, GLONASS G1, G2 and G3 bands, and QZSS LIC, L2C and L5-Q bands.
The GNSS receiver 170 may be used to determine location and relative location which may be utilized for location, navigation, and to calibrate other sensors, when appropriate, such as for determining distance between two time points in clear sky conditions and using the distance data to calibrate other sensors such as the odometer and/or LIDAR. In an embodiment, GNSS-based relative locations, based on, for example shared doppler and/or pseudorange measurements between vehicles, may be used to determine highly accurate distances between two vehicles, and when combined with vehicle information such as shape and model information and GNSS antenna location, may be used to calibrate, validate and/or affect the confidence level associated with information from LIDAR, camera, RADAR, SONAR and other distance estimation techniques. GNSS doppler measurements may also be utilized to determine linear motion and rotational motion of the vehicle or of the vehicle relative to another vehicle, which may be utilized in conjunction with gyro and/or magnetometer and other sensor systems to maintain calibration of those systems based upon measured location data. Relative GNSS positional data may also be combined with high confidence absolute locations from roadside devices, also known as roadside units or RSU, to determine high confidence absolute locations of the vehicle. Furthermore, relative GNSS positional data may be used during inclement weather that may obscure LIDAR and/or camera-based data sources to avoid other vehicles and to stay in the lane or other allocated road area. For example, using an RSU equipped with GNSS receiver and V2X capability, GNSS measurement data may be provided to the vehicle, which, if provided with an absolute location of the RSU, may be used to navigate the vehicle relative to a map, keeping the vehicle in lane and/or on the road, in spite of lack of visibility.
Radio detection and ranging-radar 153, uses transmitted radio waves that are reflected off of objects. The reflected radio waves are analyzed, based on the time taken for reflections to arrive and other signal characteristics of the reflected waves to determine the location of nearby objects. Radar 153 may be utilized to detect the location of nearby cars, roadside objects (signs, other vehicles, pedestrians, etc.) and will generally enable detection of objects even if there is obscuring weather such as snow, rail or hail. Thus, radar 153 may be used to complement LIDAR 150 systems and camera 135 systems in providing ranging information to other objects by providing ranging and distance measurements and information when visual-based systems typically fail. Furthermore, radar 153 may be utilized to calibrate and/or sanity check other systems such as LIDAR 150 and camera 135. Ranging measurements from radar 153 may be utilized to determine/measure stopping distance at current speed, acceleration, maneuverability at current speed and/or turning radius at current speed and/or a measure of maneuverability at current speed. In some systems, ground penetrating radar may also be used to track road surfaces via, for example, RADAR-reflective markers on the road surface or terrain features such as ditches.
The vehicle 100 may further contain multiple wireless transceivers including WAN, WLAN and/or PAN transceivers. In an embodiment, radio technologies that may support wireless communication link or links further comprise Wireless local area network (e.g., WLAN, e.g., IEEE 802.11), Bluetooth (BT) and/or ZigBee.
Referring also to
Referring to
Vehicle external sensors 302 may include, without limitation, cameras 206, LIDAR system 204, radar system 208, proximity sensors, rain sensors, weather sensors, GNSS receivers 170 and received data used with the sensors such as map data, environmental data, location, route and/or other vehicle or external feature information (see also
Both vehicle internal sensors 304 and vehicle external sensors 302 may have shared or dedicated processing capability. For example, a sensor system or subsystem may have a sensor processing core or cores that determines, based on measurements and other inputs from accelerometers, gyros, magnetometers and/or other sensing systems, car status values such as yaw, pitch, roll, heading, speed, acceleration capability and/or distance, and/or stopping distance. The different sensing systems may communicate with each other to determine measurement values. The car status values derived from measurements from internal and external sensors may be further combined with car status values and/or measurements from other sensor systems using a general or applications processor. In an embodiment, the sensors may be segregated into related systems, for example, LIDAR, radar, motion, wheel systems, etc., operated by dedicated core processing for raw results to output car status values from each core that are combined and interpreted to derive combined car status values, including capability data elements and status data elements, that may be used to control or otherwise affect car operation.
Referring to
At stage 402, the method includes obtaining a first location of the vehicle at a first time. The GNSS receiver 170 and the processor 110 are a means for obtaining the first location. In an example, the processor 110 and the accelerometers, gyros, and magnetometers 140 may be a means for obtaining the first location. For example, the first location may be, without limitation, provided by utilizing GPS/GNSS, or may be a previously determined dead reckoning location.
At stage 404, the method includes determining a dead reckoning location of the vehicle at a second time. The Dead Reckoning Location Module 306 is a means for determining the dead reckoning location. In an example, the Dead Reckoning Location Module 306 may be configured to receive various measurements from the Vehicle Internal Sensors 304 and Vehicle External Sensors 302 to determine a dead reckoning location at a second time. Dead Reckoning or DR as it is usually referred, is the process by which a current position is calculated based on a previously obtained position. Generally, the dead reckoning location of the vehicle at the second time may be determined by advancing the first location based on sensor information providing, without limitation, heading, speed, and time, as known in the art. For example, the vehicle 100 may be equipped with sensors 145 and corresponding vehicle dimensions, such as wheel circumference measurements, and may be configured to record wheel rotations and steering direction. Other sensors such as one or more inertial sensors (e.g., accelerometer, gyroscope, solid state compass) may also be used.
Error may accumulate based on sensor instability or other non-linearities associated with the sensor input. In an example, referring to
Referring back to
At stage 408, the method includes obtaining location measurements for one or more features that are identified based on the feature information. The External Feature Identification and Location Measurements Module 308 is a means for obtaining the location measurements. Stage 408 may include obtaining sensor information from the one or more sensors 302 and 304 (described above). The sensor information obtained is provided to the External Feature Identification and Location Measurements Module 308, whereupon various recognition techniques known in the art may be utilized to identify one or more features in the surrounding area. For example, a vision/optical sensor(s) (e.g., a camera 135) may be configured to obtain images proximate to the vehicle 100. A recognition process(es) may be performed on the obtained images using, in part, the feature information obtained in stage 406, whereby one or more feature(s) is identified. Once a feature(s) is identified, a radar or LIDAR system (or other sensor) may obtain a range and/or a bearing to the identified feature relative to the vehicle 100. Other sensors may be configured to provide other information. The sensor information may be obtained on demand or periodically, such as based on a sensor duty cycle. The one or more location measurements may include, without limitation, temporal separation measurements, in addition to spatial separation measurements. Range sensors, such as included in the vehicle external sensors 302, may be used in conjunction with inertial measurement devices (e.g., gyroscopes, accelerometers 140) to determine a bearing and elevation to an object based on the coordinate system and the orientation of the range sensor.
At stage 410, the method includes correcting the dead reckoning location of the vehicle based on the location measurements, as illustratively shown in path 508, depicted in
Referring to
Referring back to
Obtaining location measurements for one or more features may include sensor fusion. By using sensor fusion, inputs from a plurality of sources/sensors, such as, a GPS/map, a LIDAR sensor(s), a radar sensor(s) and/or a camera(s) can be combined using software algorithms, as known in the art, to determine location measurements. The resulting measurement is more accurate because it balances the strengths of the different sensors. Each type of sensor has various strengths and/or weaknesses. Radars accurately determine distance and speed-even in challenging weather conditions but can't read street signs or “see” the color of a stoplight. Cameras can read signs for classifying objects, however, they can easily be blinded by weather conditions, dirt etc. LIDAR may accurately detect objects, but they generally don't have the range or affordability of cameras or radar. A vehicle may also use sensor fusion to fuse information from multiple sensors of the same type as well, to take, for example, advantage of partially overlapping fields of view.
Referring to
In an example, the measured location 702b of the vehicle may be based on machine learning methods or algorithms. For example, training data including detection of known features may be associated with known locations. Range measurements and other signal analysis (e.g., reflected signal strengths, the channel response at a location, etc.) may be also be used as training data that is associated with known locations of the vehicle. In an example, correcting the error in the dead reckoning may also be realized by compiling correction data pertaining to the location of the vehicle over time. Other machine learning, artificial intelligence and/or neural network methods and algorithms may be used with the compiled correction data to predict errors in dead reckoning position estimates and determine a current location of the vehicle.
Referring also to
The memory 830 may be a non-transitory storage medium that may include random access memory (RAM), flash memory, disc memory, and/or read-only memory (ROM), etc. The memory 830 may store software which may be processor-readable, processor-executable software code containing instructions that may be configured to, when executed, cause the processor 810 to perform various functions described herein. Alternatively, the software may not be directly executable by the processor 810 but may be configured to cause the processor 810, e.g., when compiled and executed, to perform the functions. The processor 810 may include a memory with stored instructions in addition to and/or instead of the memory 830. Functionality of the processor 810 is discussed more fully below.
The description herein may refer to the processor 810 performing a function, but this includes other implementations such as where the processor 810 executes software (stored in the memory 830) and/or firmware. The description herein may refer to the apparatus 800 performing a function as shorthand for one or more appropriate components (e.g., the processor 810 and the memory 830) of the apparatus 800 performing the function. The processor 810 (possibly in conjunction with the memory 830 and, as appropriate, the receiver 820 (or the transceiver 832)) may include a positioning unit 860. The positioning unit 860 may be configured to perform positioning operations (e.g., determine position information (e.g., measurements, pseudoranges, position estimates, etc.). The positioning unit 860 is discussed further below, and the description may refer to the processor 810 generally, or the apparatus 800 generally, as performing any of the functions of the positioning unit 860, with the apparatus 800 being configured to perform the function(s).
The processor 810 may include one or more hardware devices, e.g., a central processing unit (CPU), a microcontroller, an application specific integrated circuit (ASIC), etc. The processor 810 may comprise multiple processors including a general-purpose/application processor, a Digital Signal Processor (DSP), a modem processor, a video processor, and/or a sensor processor. For example, the sensor processor may comprise, e.g., processors for RF (radio frequency) sensing (with one or more (cellular) wireless signals transmitted and reflection(s) used to identify, map, and/or track an object), and/or ultrasound, etc.
The sensor(s) 850 may include, for example, a camera 851, an Inertial Measurement Unit (IMU) 870, a magnetometer 852, an environment sensor 853, and/or an SPS receiver 854. Even if referred to in the singular, any of these devices may comprise multiple devices (e.g., the camera 851 may comprise multiple cameras). The IMU 870 may comprise, for example, an accelerometer 871 and/or a gyroscope 872. Even if referred to in the singular, any of these devices may comprise multiple devices (e.g., the accelerometer 871 may comprise multiple accelerometers, e.g., that may collectively respond to acceleration of the apparatus 800 in three dimensions) and/or the gyroscope 872 may comprise multiple gyroscopes 872 (e.g., three-dimensional gyroscope(s)). The sensor(s) 850 may include the magnetometers 852 (e.g., three-dimensional magnetometer(s)) to determine orientation (e.g., relative to magnetic north and/or true north) that may be used for any of a variety of purposes, e.g., to support one or more compass applications, etc. The environment sensor 853 may comprise, for example, one or more temperature sensors, one or more barometric pressure sensors, one or more ambient light sensors, one or more camera imagers, and/or one or more microphones, etc. The sensor(s) 850 may generate analog and/or digital signals indications of which may be stored in the memory 830 and processed by the processor 810 in support of one or more applications such as, for example, applications directed to positioning and/or navigation operations. The sensor(s) 850 may comprise one or more of other various types of sensors such as one or more optical sensors, one or more weight sensors, and/or one or more radio frequency (RF) sensors, etc.
The sensor(s) 850 may be used in relative location measurements, relative location determination, motion determination, etc. Information detected by the sensor(s) 850 may be used for motion detection, relative displacement, dead reckoning, sensor-based location determination, and/or sensor-assisted location determination. The sensor(s) 850 may be useful to determine whether the apparatus 800 is fixed (stationary) or mobile and/or whether to report certain useful information to a network entity (e.g., a server, a Location Management Function (LMF)) regarding the mobility of the apparatus 800. For example, based on the information obtained/measured by the sensor(s) 850, the apparatus 800 may notify/report to the LMF that the apparatus 800 has detected movements or that the apparatus 800 has moved, and may report the relative displacement/distance (e.g., via dead reckoning, or sensor-based location determination, or sensor-assisted location determination enabled by the sensor(s) 850). In another example, for relative positioning information, the sensors 850/IMU 870 may be used to determine the angle and/or orientation of the other device with respect to the apparatus 800, etc.
The IMU 870 may be configured to provide measurements about a direction of motion and/or a speed of motion of the apparatus 800, which may be used in relative location determination. For example, the accelerometer 871 and/or the gyroscope 872 of the IMU 870 may detect, respectively, a linear acceleration and a speed of rotation of the apparatus 800. The linear acceleration and speed of rotation measurements of the apparatus 800 may be integrated over time to determine an instantaneous direction of motion as well as a displacement of the apparatus 800. The instantaneous direction of motion and the displacement may be integrated to track a location of the apparatus 800. For example, a reference location of the apparatus 800 may be determined, e.g., using the SPS receiver 854 (and/or by some other means) for a moment in time and measurements from the accelerometer 871 and the gyroscope 872 taken after this moment in time may be used in dead reckoning to determine present location of the apparatus 800 based on movement (direction and distance) of the apparatus 800 relative to the reference location.
The magnetometer 852 may determine magnetic field strengths in different directions which may be used to determine orientation of the apparatus 800. For example, the orientation may be used to provide a digital compass for the apparatus 800. The magnetometer 852 may include a two-dimensional magnetometer configured to detect and provide indications of magnetic field strength in two orthogonal dimensions. The magnetometer 852 may include a three-dimensional magnetometer configured to detect and provide indications of magnetic field strength in three orthogonal dimensions. The magnetometer 852 may provide means for sensing a magnetic field and providing indications of the magnetic field, e.g., to the processor 810.
The transceiver 832 may include a wireless transceiver and a wired transceiver configured to communicate with other devices through wireless connections and wired connections, respectively. For example, the wireless transceiver may include a wireless transmitter and a wireless receiver coupled to an antenna for transmitting (e.g., on one or more uplink channels and/or one or more sidelink channels) and/or receiving (e.g., on one or more downlink channels and/or one or more sidelink channels) wireless signals and transducing signals from the wireless signals to guided (e.g., electrical, electromagnetic, and/or optical) signals and from guided (e.g., electrical, electromagnetic, and/or optical) signals to the wireless signals. The transceiver 832 may be configured to communicate signals (e.g., with a network entity such as a Transmission/Reception Point (TRP)) according to a variety of radio access technologies (RATs) such as 5G New Radio (NR), GSM (Global System for Mobiles), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE 802.11 (including IEEE 802.11p), WiFi®, WiFi® Direct (WiFi®-D), Bluetooth®, Zigbee®, etc. New Radio may use mm-wave frequencies and/or sub-6 GHZ frequencies.
The SPS receiver 854 (e.g., a Global Positioning System (GPS) receiver) may be capable of receiving and acquiring SPS signals via an SPS antenna. The SPS antenna is configured to transduce the SPS signals from wireless signals to guided signals, e.g., electrical, electromagnetic, and/or optical signals, and may be integrated with an antenna of the transceiver 832. The SPS receiver 854 may be configured to process, in whole or in part, the acquired SPS signals for estimating a location of the apparatus 800. For example, the SPS receiver 854 may be configured to determine location of the apparatus 800 by trilateration using the SPS signals. The processor 810 and the memory 830 may be utilized to process acquired SPS signals, in whole or in part, and/or to calculate an estimated location of the apparatus 800, in conjunction with the SPS receiver 854. The memory 830 may store indications (e.g., measurements) of the SPS signals and/or other signals (e.g., signals acquired from the transceiver 832) for use in performing positioning operations.
The apparatus 800 may include the camera 851 for capturing still or moving imagery. The camera 851 may comprise, for example, an imaging sensor (e.g., a charge coupled device or a CMOS (Complementary Metal-Oxide Semiconductor) imager), a lens, analog-to-digital circuitry, frame buffers, etc. Additional processing, conditioning, encoding, and/or compression of signals representing captured images may be performed by the processor 810. Also or alternatively, a video processor portion of the processor 810 may perform conditioning, encoding, compression, and/or manipulation of signals representing captured images. The video processor may decode/decompress stored image data for presentation on a display device (not shown).
The positioning unit 860 may be configured to determine a position of the apparatus 800, motion of the apparatus 800, and/or relative position of the apparatus 800, and/or time. For example, the positioning unit 860 may communicate with, and/or include some of, the SPS receiver 854. The positioning unit 860 may also or alternatively be configured to determine location of the apparatus 800 using terrestrial-based signals for trilateration and/or triangulation, and/or for assistance with obtaining and using the SPS signals 260. The positioning unit 860 may be configured to determine location of the apparatus 800 based on a cell of a serving base station (e.g., a cell center) and/or another technique such as E-CID. The positioning unit 860 may be configured to use one or more images from the camera 851 and image recognition combined with known locations of landmarks (e.g., natural landmarks such as mountains and/or artificial landmarks such as buildings, bridges, streets, street signs, crosswalks, etc.) to determine location of the apparatus 800. The positioning unit 860 may be configured to use one or more other techniques (e.g., relying on a self-reported location of the apparatus 800 (e.g., part of a position beacon of the apparatus 800)) for determining the location of the apparatus 800, and may use a combination of techniques (e.g., SPS and terrestrial positioning signals) to determine the location of the apparatus 800. The positioning unit 860 may use information from one or more of the sensors 850 (e.g., the gyroscope 872, the accelerometer 871, the magnetometer 852, etc.) that may sense orientation and/or motion of the apparatus 800 and provide indications thereof that the processor 810 may be configured to use to determine motion (e.g., a velocity vector and/or an acceleration vector) of the apparatus 800. The positioning unit 860 may be configured to provide indications of uncertainty and/or error in the determined position and/or motion. Functionality of the positioning unit 860 may be provided in a variety of manners and/or configurations, and may be provided by hardware, software, firmware, or various combinations thereof.
Referring also to
Referring also to
Referring also to
At stage 920, the ego vehicle 901 may obtain (e.g., receives and/or determines) a location estimate for the ego vehicle 901. For example, the receiver 820 may receive one or more positioning signals 921 from one or more of the network entity (ies) 905 (e.g., multiple base stations) and/or one or more positioning signals 922 from one or more of the signal source(s) 904 (e.g., one or more TRPs) and the processor 810 (e.g., the positioning unit 860) may perform an appropriate positioning method (e.g., Observed Time Difference of Arrival (OTDOA) and trilateration, triangulation, AOA and range) to determine the position estimate. As another example, the SPS receiver 854 may receive SPS signals as the positioning signals 922 and determine a location estimate for the ego vehicle 901. As another example, the receiver 820 may receive one or more ranging signals 923 (e.g., reflected radar signals transmitted by the ego vehicle 901) from one or more of the high-location-uncertainty objects 902 and use this (these) signal(s) to determine the location estimate. For example, the processor 810 may use multiple ranges to the objects 902, known locations of the objects 902, and trilateration to determine the location estimate. As another example, the processor 810 may use multiple directions to the objects 902 from the ego vehicle 901, known locations of the objects 902, and triangulation to determine the location estimate. As another example, the processor 810 may use the range and direction to one of the objects 902 and a known location of the object 902 to determine the location estimate. As another example, the processor 810 may use the ranges and directions to multiple ones of the objects 902 and known locations of the objects 902 to determine the location estimate. As another example, the receiver 820 may receive one or more ranging signals 924 (e.g., reflected radar signals transmitted by the ego vehicle 901) from one or more of the low-location-uncertainty objects 903 and use this (these) signal(s) to determine the location estimate. A combination of two or more of these techniques may be used to determine the location estimate (e.g., trilateration based on ranges to, and locations of, at least one of the objects 902 and at least one of the objects 903).
At stage 930, the ego vehicle 901 may determine one or more dead reckoning location estimates. For example, the processor 810 may use measurements from one or more of the sensors 850 to determine one or more location estimates using dead reckoning based on the location estimate obtained at stage 920. The determined location estimates may be determined for various times after determining the location estimate at stage 920.
At stage 940, the ego vehicle 901 may determine a location estimate for the ego vehicle 901 using one or more ranging signals reflected from at least one of the low-location-uncertainty objects 903. For example, the processor 810 (e.g., the positioning unit 860) may transmit one or more ranging signals 941 and receive one or more of the ranging signals 941 as reflected by one or more of the low-location-uncertainty objects 903. The processor 810 may identify one or more of the low-location-uncertainty objects 903, e.g., by analyzing one or more measurements from one or more of the sensors 850, e.g., an image taken by the camera 851, and retrieve the location(s) of the one or more low-location-uncertainty objects 903 from the memory 830. For example, the processor 810 may compare the measurement(s) with the object characteristic field 1120 of each of the entries 1101-1105 of the map data message 1100, identify any of the low-location-uncertainty objects 903 whose characteristic(s) match the indicated characteristic(s) and, for each matched object characteristic(s), use the location indicated in the location field 1130 corresponding to the matched object characteristic(s) in the object characteristic field 1120. The processor 810 may similarly identify one or more of the high-location-uncertainty objects 902, transmit one or more ranging signals 942, and receive one or more of the ranging signals 942 as reflected by one or more of the high-location-uncertainty objects 902. The processor 810, e.g., the positioning unit 860, may use the reflected signal(s) to determine a new location estimate of the ego vehicle 901. The processor 810 uses at least one ranging signal reflected by at least one of the low-location-uncertainty objects 903 such that the location estimate determined at stage 940 will be more accurate (e.g., of lower uncertainty) than a corresponding location estimate determined at stage 930 by dead reckoning. The corresponding location estimate determined at stage 930 by dead reckoning corresponds in time with the location estimate determined at stage 940. For example, a corresponding dead reckoning location estimate is determined from sensor measurement(s) most closely corresponding in time to the ranging signal measurements (e.g., time(s) of arrival of the measured ranging signal(s)) yielding the location estimate determined at stage 940.
At stage 950, an adjusted location estimate may be determined for the ego vehicle 901. For example, the processor 810 may combine (e.g., average) the location estimate determined at stage 940 and the corresponding dead reckoning location estimate determined at stage 930 to determine an adjusted location estimate for the ego vehicle 901.
At stage 960, one or more sensors used for dead reckoning may be calibrated. For example, the processor 810 may use a difference between the location estimate determined at stage 940 (or the adjusted location determined at stage 950) and a corresponding dead reckoning location estimate determined at stage 930 to adjust one or more of the sensors 850 used to determine the dead reckoning location estimate determined at stage 930.
At stage 970, the ego vehicle 901 may perform autonomous driving. For example, the processor 810 may use the location estimate determined at stage 940 to determine and execute one or more autonomous driving operations (e.g., turning the ego vehicle 901, changing a speed of the ego vehicle 901, etc.). Alternatively, the processor 810 may transmit the location estimate determined at stage 940 to another component of the ego vehicle 901, e.g., an ADAS (Advanced Driver Assistance System), such that the other component may determine and execute one or more autonomous driving operations. Alternatively, the processor 810 may use or transmit the adjusted location determined at stage 950 to implement autonomous driving.
Referring to
At stage 1210, the method 1200 includes obtaining first map data including first identifiers of first objects and first locations corresponding to the first objects, the first locations having first uncertainties each of at least a first threshold distance, and the first locations having a first density of the first locations per unit of area. For example, the ego vehicle 901 (e.g., the apparatus 800) may receive the map data message 912 from the network entity and/or may retrieve map data from the memory 830 at sub-stage 914. The map data may include, e.g., as with the map data message 1100, data identifying the high-location-uncertainty objects 902 (e.g., in the example of the message 1100, the high-location-uncertainty objects 1011-1013). The processor 810, possibly in combination with the memory 830, possibly in combination with the receiver 820, may comprise means for obtaining the first map data.
At stage 1220, the method 1200 includes obtaining second map data including second identifiers of second objects and second locations corresponding to the second objects, the second locations having second uncertainties each of less than a second threshold distance, wherein the first threshold distance is at least twice the second threshold distance, wherein the second locations have a second density of the second locations per the unit of area, and wherein the first density is higher than the second density. For example, the ego vehicle 901 (e.g., the apparatus 800) may receive the map data message 912 from the network entity 905 and/or may retrieve map data from the memory 830 at sub-stage 914. The map data may include, e.g., as with the map data message 1100, data identifying the low-location-uncertainty objects 903 (e.g., in the example of the message 1100, the low-location-uncertainty objects 1021, 1022). The processor 810, possibly in combination with the memory 830, possibly in combination with the receiver 820, may comprise means for obtaining the second map data.
At stage 1230, the method 1200 includes determining a location estimate, of the vehicle, based on at least a particular one of the second locations, corresponding to a particular one of the second objects, and at least one of an angle from the vehicle to the particular one of the second objects or a distance between the vehicle and the particular one of the second objects. For example, the processor 810, e.g., the positioning unit 860, may determine a location estimate of the ego vehicle 901 at stage 920 or stage 940. The processor 810, possibly in combination with the memory 830, may comprise means for determining the location estimate.
Implementations of the method 1200 may include one or more of the following features. In an example implementation, the location estimate is a third location estimate, and wherein the method further includes: obtaining a first location estimate, of the vehicle, corresponding to a first time; determining a second location estimate, of the vehicle and relative to the first location estimate, corresponding to a second time using dead reckoning; and determining an adjusted location estimate corresponding to the second time based at least in part on the second location estimate and the third location estimate. For example, the processor 810 may obtain a location estimate of the ego vehicle 901 at stage 920, determine a dead reckoning location estimate at stage 930 based on the location estimate determined at stage 920, and determine an adjusted location estimate at stage 950 based on the dead reckoning location estimate determined at stage 930 and the location estimate determined at stage 940 (based at least in part on a ranging signal reflected by a low-location-uncertainty object 903). The processor 810, possibly in combination with the memory 830, possibly in combination with the receiver 820, may comprise means for obtaining the first location estimate. The processor 810, possibly in combination with the memory 830, in combination with one or more of the sensors 850 may comprise means for determining the second location estimate. The processor 810, possibly in combination with the memory 830, may comprise means for determining the adjusted location estimate. In a further example implementation, the method 1200 includes calibrating at least one motion sensor of the vehicle, at least one measurement from which was used to determine the second location estimate using dead reckoning, based on the second location estimate and at least one of the third location estimate or the adjusted location estimate. For example, the processor 810 may calibrate (e.g., adjust one or more settings of and/or one or more compensation factors of) one or more of the sensors 850 at stage 960. The processor 810, possibly in combination with the memory 830, in combination with one or more of the sensors 850 may comprise means for calibrating at least one motion sensor. In another further example implementation, determining the third location estimate further includes: determining a separation between a first pair member, of a pair of the first objects, and a second pair member, of the pair of the first objects; determining a first adjusted location of the first pair member based on the separation between the first pair member and the second pair member; and determining the third location estimate based on the first adjusted location of the first pair member. For example, at stage 940, a separation between a pair of objects (e.g., at least one of the objects 902 and/or at least one of the objects 903) may be determined (e.g., by analyzing one or more images from the camera 851, or by analyzing map data such as the entry 1102 of the map data message 1100). This separation may be used to determine a more accurate location information for one or both of the objects in the pair. The processor 810, e.g., the positioning unit 860, may use the adjusted location information to determine a location estimate of the ego vehicle 901 (e.g., using trilateration and/or triangulation). The processor 810, possibly in combination with the memory 830, possibly in combination with one or more of the sensors 850 (e.g., the camera 851), may comprise means for determining the separation between the first pair member and the second pair member. The processor 810, possibly in combination with the memory 830, may comprise means for determining the first adjusted location and means for determining the third location estimate. In another further example implementation, obtaining the first location estimate comprises receiving the first location estimate from a satellite position system receiver of the vehicle. For example, the SPS receiver 854 may provide a location estimate for the ego vehicle 901 to the processor 810. The processor 810, possibly in combination with the memory 830, may comprise means for obtaining the first location estimate.
Implementation examples are described in the following numbered clauses:
Other examples and implementations are within the scope of the disclosure and appended claims. For example, due to the nature of software and computers, functions described above can be implemented using software executed by a processor, hardware, firmware, hardwiring, or a combination of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations.
As used herein, the singular forms “a,” “an,” and “the” include the plural forms as well, unless the context clearly indicates otherwise. The terms “comprises,” “comprising,” “includes,” and/or “including,” as used herein, 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.
Also, as used herein, “or” as used in a list of items (possibly prefaced by “at least one of” or prefaced by “one or more of”) indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C,” or a list of “one or more of A, B, or C” or a list of “A or B or C” means A, or B, or C, or AB (A and B), or AC (A and C), or BC (B and C), or ABC (i.e., A and B and C), or combinations with more than one feature (e.g., AA, AAB, ABBC, etc.). Thus, a recitation that an item, e.g., a processor, is configured to perform a function regarding at least one of A or B, or a recitation that an item is configured to perform a function A or a function B, means that the item may be configured to perform the function regarding A, or may be configured to perform the function regarding B, or may be configured to perform the function regarding A and B. For example, a phrase of “a processor configured to measure at least one of A or B” or “a processor configured to measure A or measure B” means that the processor may be configured to measure A (and may or may not be configured to measure B), or may be configured to measure B (and may or may not be configured to measure A), or may be configured to measure A and measure B (and may be configured to select which, or both, of A and B to measure). Similarly, a recitation of a means for measuring at least one of A or B includes means for measuring A (which may or may not be able to measure B), or means for measuring B (and may or may not be configured to measure A), or means for measuring A and B (which may be able to select which, or both, of A and B to measure). As another example, a recitation that an item, e.g., a processor, is configured to at least one of perform function X or perform function Y means that the item may be configured to perform the function X, or may be configured to perform the function Y, or may be configured to perform the function X and to perform the function Y. For example, a phrase of “a processor configured to at least one of measure X or measure Y” means that the processor may be configured to measure X (and may or may not be configured to measure Y), or may be configured to measure Y (and may or may not be configured to measure X), or may be configured to measure X and to measure Y (and may be configured to select which, or both, of X and Y to measure).
As used herein, unless otherwise stated, a statement that a function or operation is “based on” an item or condition means that the function or operation is based on the stated item or condition and may be based on one or more items and/or conditions in addition to the stated item or condition.
Substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.) executed by a processor, or both. Further, connection to other computing devices such as network input/output devices may be employed. Components, functional or otherwise, shown in the figures and/or discussed herein as being connected or communicating with each other are communicatively coupled unless otherwise noted. That is, they may be directly or indirectly connected to enable communication between them.
The systems and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.
Specific details are given in the description herein to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. The description herein provides example configurations, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations provides a description for implementing described techniques. Various changes may be made in the function and arrangement of elements.
The terms “processor-readable medium,” “machine-readable medium,” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. Using a computing platform, various processor-readable media might be involved in providing instructions/code to processor(s) for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals). In many implementations, a processor-readable medium is a physical and/or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media include, for example, optical and/or magnetic disks. Volatile media include, without limitation, dynamic memory.
Having described several example configurations, various modifications, alternative constructions, and equivalents may be used. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the disclosure. Also, a number of operations may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bound the scope of the claims.