Positioning method of vehicle
By using other surrounding vehicles as beacons, receiving and using their broadcast location data, the problem of degradation of positioning accuracy when external signals are lost is solved, and high accuracy positioning in the GNSS rejection area is achieved.
Patent Information
- Application Number
- CN202110750170.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-11-30
- Filing Date
- 2021-07-02
- Publication Date
- 2025-02-11
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
When calculating positioning states using motion equations, autonomous vehicles quickly lose position accuracy when losing external signals (such as GNSS, Wi-Fi, cellular tower signals), especially in tunnels or dense urban environments.
The vehicle receives broadcast positioning data of these beacons by scanning other vehicles around it as mobile or fixed beacons using its sensors, and positioning using trilateral measurements or other algorithms. A central computer can assist in identifying available beacon carriers and configure its GNSS receiver as a pseudo-satellite to send GNSS RF signals.
By identifying available mobile and fixed beacons in advance, the vehicle can maintain accurate positioning when external signals are lost, reducing dependence on inertial sensors and motion equations, reducing positioning estimation errors, and avoiding the installation of costly stationary beacons and maintain.
Smart Images

Figure CN114598988B_ABST
Abstract
Description
Technical Field
[0001] The present specification relates generally to positioning of autonomous vehicles and, more particularly, to positioning using beacons. Background Art
[0002] Autonomous vehicles use a suite of sensors and communication devices to update their positioning state while navigating their environment from one destination to the next. Fixed ground beacons, wireless networks (e.g., cell towers, Wi-Fi), and satellite-based navigation systems provide positioning data with the highest accuracy and lowest uncertainty for determining the positioning state of an autonomous vehicle. However, vehicles traveling through areas that deny line of sight (LOS) to fixed beacons, cell towers, Wi-Fi routers, or satellites (e.g., tunnels, dense urban environments) quickly lose position accuracy when calculating positioning state using equations of motion. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] Figure 1 An autonomous vehicle having autonomous capabilities is illustrated according to one or more embodiments.
[0004] Figure 2 A "cloud" computing environment is illustrated in accordance with one or more embodiments.
[0005] Figure 3 An example computer system is illustrated in accordance with one or more embodiments.
[0006] Figure 4 An architecture for an autonomous vehicle is illustrated according to one or more embodiments.
[0007] Figure 5 An example scenario is illustrated for using beacons to locate an autonomous vehicle in a tunnel in accordance with one or more embodiments.
[0008] Figure 6 A positioning system according to one or more embodiments is illustrated.
[0009] Figure 7 Beacon ranking is illustrated in accordance with one or more embodiments.
[0010] Figure 8 A positioning manager is illustrated in accordance with one or more embodiments.
[0011] Fig. 9 A queue management system that provides position estimates to queued vehicles is illustrated in accordance with one or more embodiments.
[0012] Fig.10 is a flow diagram of a process for locating an autonomous vehicle using beacons according to one or more embodiments.
[0013] Fig.11 is a flow diagram of another process for locating an autonomous vehicle using beacons in accordance with one or more embodiments. DETAILED DESCRIPTION
[0014] In the following description, for the purpose of explanation, many specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent that the present invention can be implemented without these specific details. In other examples, well-known configurations and devices are shown in block diagram form to avoid unnecessarily obscuring the present invention.
[0015] In the accompanying drawings, for ease of description, a specific arrangement or order of schematic elements (such as those representing devices, modules, instruction blocks, and data elements) is shown. However, it should be understood by those skilled in the art that the specific order or arrangement of the schematic elements in the accompanying drawings is not intended to mean that a specific processing order or sequence, or separation of processing processes is required. In addition, the inclusion of schematic elements in the accompanying drawings is not intended to mean that such elements are required in all embodiments, nor is it intended to mean that the features represented by such elements cannot be included in some embodiments or cannot be combined with other elements in some embodiments.
[0016] In addition, in the accompanying drawings, connecting elements, such as solid or dotted lines or arrows, are used to illustrate the connection, relationship or association between two or more other schematic elements, and there is no such connecting element and is not intended to mean that there can be no connection, relationship or association. In other words, the connection, relationship or association between some elements are not shown in the accompanying drawings, so as not to make the present disclosure vague. In addition, for the convenience of illustration, a single connecting element is used to represent multiple connections, relationships or associations between elements. For example, if the connecting element represents the communication of signal, data or instruction, it will be understood by those skilled in the art that this element represents one or more signal paths (for example, bus) that may be needed to affect the communication.
[0017] Reference will now be made in detail to the 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 embodiments described. However, it will be apparent to one of ordinary skill in the art that the various embodiments described may be implemented without these specific details. In other cases, well-known methods, procedures, components, circuits, and networks are not described in detail in order not to unnecessarily obscure aspects of the embodiments.
[0018] Several features described below can each be used independently of one another or in combination with other features. However, any individual feature may not solve any of the problems discussed above, or may only solve one of the problems discussed above. Some of the problems discussed above may not be fully solved by any one of the features described herein. Although a title is provided, information related to a specific title but not found in the section with that title may also be found elsewhere in this specification. This article describes an embodiment according to the following summary:
[0019] 1. General Overview
[0020] 2. System Overview
[0021] 3. Autonomous Vehicle Architecture
[0022] 4. Communicate with mobile beacons
[0023] 5. Use the received positioning data for positioning
[0024] 6. Queue Service
[0025] General Overview
[0026] Vehicles (such as autonomous vehicles, etc.) can have multiple sensors that can send and receive information about their surroundings. For example, frequency modulated continuous wave radar (RADAR) is a collection of short-range measurement sensors that can determine distance. RADAR can periodically pause the frequency sweep and use phase shift keying to encode and transmit positioning estimate data, acting as a beacon for nearby vehicles. On the receiving end, an omnidirectional receiver listening on the same frequency band as the RADAR can be used to pick up the beacon signal and use it to enhance its positioning estimate.
[0027] In embodiments, when a vehicle predicts (e.g., based on its current location and a map) that it may lose its current positioning technology (e.g., GNSS, Wi-Fi___33, cellular towers) in the near future due to its current location (e.g., entering a tunnel or dense urban environment), the vehicle may use its sensors to scan for other vehicles that may operate as fixed or mobile beacons. It may be assumed that these other vehicles will broadcast their estimated positioning data, which may be used by the vehicle for positioning using, for example, trilateration based on distance to fixed beacons or other algorithms for positioning using mobile beacons.
[0028] In an embodiment, a central computer for platoon operations may provide assistance by finding available platoon vehicles that may operate as fixed (e.g., parked vehicles) or mobile beacons. In an embodiment, the central computer may configure parked or out-of-service vehicles in a platoon to configure their GNSS receivers to act as ground pseudo-satellites that transmit, for example, GNSS RF signals that may be directly received by the vehicle's GNSS receiver.
[0029] In embodiments where more than four beacons are available or a mix of fixed and mobile beacons, the receiving vehicle determines which combination of mobile / fixed beacons to use in its positioning.
[0030] In an embodiment, estimated positioning data from mobile beacons with high position uncertainty may be completely excluded from the positioning process. In an embodiment, a Dilution of Precision (DOP) metric or other metric is calculated for all possible combinations of three and four beacons based on their locations to determine which combination of mobile beacons will provide the most accurate position estimate (e.g., more dispersed geometries provide higher accuracy).
[0031] In an embodiment, a method includes: using at least one processor of a vehicle to determine that the vehicle has lost an external signal used to estimate the position of the vehicle; using at least one processor to determine a set of mobile beacons that can be used to assist in estimating the position of the vehicle; using a communication device of the vehicle to receive a broadcast signal from the set of mobile beacons, the broadcast signal including positioning data for the set of mobile beacons; using at least one processor to select a subset of positioning data from the set of mobile beacons to assist in estimating the position of the vehicle; and using at least one processor to estimate the position of the vehicle using the subset of positioning data.
[0032] In an embodiment, the positioning data comprises an estimated location of the set of mobile beacons and an uncertainty value associated with the estimated location, and the subset of mobile beacons is selected based at least in part on the uncertainty value.
[0033] In an embodiment, selecting a positioning subset from the set of mobile beacons further comprises: calculating a dilution of precision (DOP) value for a combination of mobile beacons in the set of mobile beacons; and selecting a subset of mobile beacons from the set of mobile beacons based at least in part on the DOP value using at least one processor.
[0034] In an embodiment, the external signal comprises at least one of a satellite signal, a wireless network signal, or a cellular network signal.
[0035] In embodiments, mobile beacons include other vehicles configured to transmit broadcast signals.
[0036] In an embodiment, determining the set of mobile beacons further comprises: sending the current location of the vehicle to a network computer; and receiving the set of mobile beacons from the network computer.
[0037] In an embodiment, the positioning data comprises a timestamp, and selecting the subset of mobile beacons further comprises excluding from the subset of mobile beacons any mobile beacon having a timestamp exceeding a threshold.
[0038] In an embodiment, the mobile beacons in the set of beacons are configured to operate as pseudolites, and the broadcast signals include positioning data (eg, pseudoranges) for a subset of the mobile beacons that can be processed by, for example, a GNSS receiver (ie, GNSS-assisted navigation).
[0039] In an embodiment, the method further includes: using at least one processor to determine a set of stationary beacons that can be used to assist in estimating the position of the vehicle; using one or more processors to select a mixed subset of mobile beacons and stationary beacons; using a communication device of the vehicle to receive a broadcast signal from the mixed subset of beacons, the broadcast signal including positioning data for the mixed subset of beacons; and using at least one processor to estimate the position of the vehicle using the positioning data for the mixed subset of beacons.
[0040] In an embodiment, the method includes: determining at a first location and using at least one processor of the vehicle that a vehicle operating at the first location may have lost an external signal (or received a degraded external signal), wherein the external signal is used to estimate the position of the vehicle at the first location; using at least one processor, determining a set of mobile beacons at the second location that can be used to assist in estimating the position of the vehicle at the second location; at the second location: using a communication device of the vehicle, receiving a broadcast signal from the set of mobile beacons, the broadcast signal including positioning data of the mobile beacons; using at least one processor, selecting a subset of the positioning data from the set of mobile beacons; and using at least one processor, using the subset of the positioning data to estimate the position of the vehicle at the second location.
[0041] In an embodiment, determining that a vehicle operating at a first location may lose an external signal at a second location also includes: using at least one processor to determine based on a map and a route of the vehicle that the vehicle will arrive at the second location at a future time; and using at least one processor and based on the map and the route of the vehicle to determine that a line of sight from a transmitter of the external signal to the vehicle at the second location may be at least partially obstructed.
[0042] In an embodiment, the map includes a three-dimensional building model.
[0043] In an embodiment, the method includes: using at least one processor to determine a set of stationary beacons at a second location that can be used to assist in estimating the position of a vehicle at the second location; using at least one processor to select a mixed subset of mobile beacons and stationary beacons to assist in estimating the position of the vehicle; at the second location: using a communication device to receive a broadcast signal from the mixed subset of beacons, the broadcast signal including positioning data for the mixed subset of beacons; and using at least one processor, using the positioning data for the mixed subset of beacons to estimate the vehicle at the second location.
[0044] Some advantages of these techniques include preemptive identification of available mobile / fixed beacons when the current positioning technology (e.g., GNSS, WIFI, cellular towers) is predicted to be lost, thus allowing the vehicle to obtain an accurate position fix without resorting to inaccurate dead reckoning navigation based on inertial sensors and equations of motion. Additionally, nearby vehicles can be used as mobile "pseudo-satellite" beacons to reduce positioning estimate errors in GNSS-denied areas, and there is no delay / overhead of decoding packets from broadcasts.
[0045] Current solutions such as stationary beacons create problems such as the cost of installation, power and maintenance, which vehicle beacons will eliminate. However, the system can evaluate both stationary beacons and mobile beacons to determine the best combination for the most accurate position estimate. In addition, if the receiving vehicle is present in an established vehicle fleet connected to the same centralized reporting server, the server can assist in identifying nearby vehicles for positioning estimates. One or more fleet vehicles operating in a continuous broadcast mode will be able to act as a positioning waypoint for any nearby vehicle (whether participating in the fleet or not).
[0046] System Overview
[0047] Figure 1 An example of an autonomous vehicle 100 having autonomous capabilities is shown.
[0048] As used herein, the term "autonomous capability" refers to a function, feature, or facility that enables a vehicle to operate partially or fully without real-time human intervention, including but not limited to fully autonomous vehicles, highly autonomous vehicles, and conditionally autonomous vehicles.
[0049] As used herein, an autonomous vehicle (AV) is a vehicle with autonomous capabilities.
[0050] As used herein, "vehicle" includes a mode of transport of goods or people. For example, a car, bus, train, airplane, drone, truck, boat, ship, submersible, spacecraft, etc. An unmanned car is an example of a vehicle.
[0051] As used herein, a "track" refers to a path or route that navigates an AV from a first spatiotemporal location to a second spatiotemporal location. In embodiments, the first spatiotemporal location is referred to as an initial location or starting location, and the second spatiotemporal location is referred to as a destination, final location, target, target location, or target location. In some examples, a track consists of one or more road segments (e.g., several sections of a road), and each road segment consists of one or more blocks (e.g., a portion of a lane or intersection). In embodiments, a spatiotemporal location corresponds to a real-world location. For example, a spatiotemporal location is a pickup or drop-off location to get people or cargo on or off the vehicle.
[0052] As used herein, "sensor(s)" includes one or more hardware components for detecting information about the environment surrounding the sensor. Some hardware components may include sensing components (e.g., image sensors, biometric sensors), transmission and / or reception components (e.g., laser or radio frequency wave transmitters and receivers), electronic components (such as analog-to-digital converters), data storage devices (such as RAM and / or non-volatile memory), software or firmware components and data processing components (such as application specific integrated circuits), microprocessors and / or microcontrollers.
[0053] As used herein, a “scene description” is a data structure (e.g., a list) or data stream that includes one or more classified or labeled objects detected by one or more sensors on an AV vehicle, or one or more classified or labeled objects provided by a source external to the AV.
[0054] As used herein, a "road" is a physical area that can be traversed by a vehicle and may correspond to a named thoroughfare (e.g., a city street, an interstate highway, etc.) or may correspond to an unnamed thoroughfare (e.g., a driveway within a house or office building, a section of a parking lot, a section of a vacant parking lot, a dirt road in a rural area, etc.). Because some vehicles (e.g., four-wheel drive pickup trucks, off-road vehicles (SUVs), etc.) are able to traverse a variety of physical areas that are not particularly suitable for vehicle travel, a "road" may be any physical area that is not formally defined as a thoroughfare by a municipality or other governmental or administrative agency.
[0055] As used herein, a "lane" is a portion of a road that can be traversed by a vehicle. Lanes are sometimes identified based on lane markings. For example, a lane may correspond to most or all of the space between lane markings, or only some of the space between lane markings (e.g., less than 50%). For example, a road with lane markings that are far apart may accommodate two or more vehicles between the markings, so that one vehicle can pass another vehicle without crossing the lane markings, and thus may be interpreted as having a lane narrower than the space between the lane markings, or having two lanes between the lanes. Lanes may also be interpreted in the absence of lane markings. For example, lanes may be defined based on physical features of the environment, such as rocks and trees along a pathway in a rural area, or natural obstacles to be avoided, such as in an undeveloped area. Lanes may also be interpreted independently of lane markings or physical features. For example, a lane may be interpreted based on an arbitrary path in an area without obstacles that would otherwise lack features that would be interpreted as lane boundaries. In an example scenario, an AV may interpret a lane through an obstacle-free portion of a field or open space. In another example scenario, an AV may interpret a lane through a wide (e.g., wide enough for two or more lanes) road without lane markings. In this scenario, the AV may transmit information about the lane to other AVs so that the other AVs may use the same lane information to coordinate path planning between them.
[0056] The term “Over-the-Air (OTA) Client” includes any AV or any electronic device (e.g., computer, controller, IoT device, Electronic Control Unit (ECU)) embedded in, coupled to, or in communication with an AV.
[0057] The term "Over-the-Air (OTA) Update" means any update, change, deletion or addition to software, firmware, data or configuration settings, or any combination thereof, delivered to an OTA client using proprietary and / or standardized wireless communication technologies, including but not limited to: cellular mobile communications (e.g., 2G, 3G, 4G, 5G), radio wireless local area networks (e.g., Wi-Fi) and / or satellite networks.
[0058] The term “edge node” means one or more edge devices coupled to a network that provide a portal for communicating with AVs, and can communicate with other edge nodes and cloud-based computing platforms for scheduling and delivering OTA updates to OTA clients.
[0059] The term "edge device" means a device that implements an edge node and provides a physical wireless access point (AP) to an enterprise or service provider (e.g., VERIZON, AT&T) core network. Examples of edge devices include, but are not limited to: computers, controllers, transmitters, routers, routing switches, integrated access devices (IADs), multiplexers, metropolitan area networks (MANs), and wide area network (WAN) access devices.
[0060] “One or more” includes a function performed by one element, a function performed by multiple elements, such as in a distributed manner, several functions performed by one element, several functions performed by several elements, or any combination of the above.
[0061] It will also be understood that although in some cases, the terms "first," "second," etc. are used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various described embodiments, a first contact may be referred to as a second contact, and similarly, a second contact may be referred to as a first contact. Both the first contact and the second contact are contacts, but they are not the same contact.
[0062] The terms used in the specification of the various embodiments described herein are only used for the purpose of describing specific embodiments and are not intended to be limiting. As used in the specification of the various embodiments described and the appended claims, the singular forms "a", "an" and "the" are also intended to include plural forms, unless the context clearly indicates otherwise. It will also be understood that "and / or" as used herein refers to and includes any and all possible combinations of one or more related list items. It will also be understood that when the terms "include", "comprises", "have" and / or "have" are used in this specification, the stated features, integers, steps, operations, elements and / or components are specifically stated, but the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof are not excluded.
[0063] As used herein, the term "if" is alternatively understood to mean "when" or "at the time" or "in response to determining that" or "in response to detecting," depending on the context. Similarly, the phrases "if it has been determined" or "if [the stated condition or event] has been detected" are alternatively understood to mean "upon determination" or "in response to determining that" or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]," depending on the context.
[0064] As used herein, an AV system refers to an AV and the array of hardware, software, stored data, and real-time generated data that supports the operation of the AV. In an embodiment, the AV system is incorporated into the AV. In an embodiment, the AV system is distributed across several locations. For example, some software of the AV system is in a system similar to the following about Figure 2 The described cloud computing environment 200 is implemented in a cloud computing environment.
[0065] In general, this document describes technologies applicable to any vehicle having one or more autonomous capabilities, including fully autonomous vehicles, highly autonomous vehicles, and conditionally autonomous vehicles, such as so-called Level 5, Level 4, and Level 3 vehicles, respectively (see SAE International Standard J3016: Classification and Definitions of Terms Relating to Automated Driving Systems for On-Road Motor Vehicles, which is incorporated by reference in its entirety into this document for more details on vehicle autonomy levels). The technologies described in this document are also applicable to partially autonomous vehicles and driver-assisted vehicles, such as so-called Level 2 and Level 1 vehicles (see SAE International Standard J3016: Classification and Definitions of Terms Relating to Automated Driving Systems for On-Road Motor Vehicles). In embodiments, one or more Level 1, Level 2, Level 3, Level 4, and Level 5 vehicle systems may automatically perform certain vehicle operations (e.g., steering, braking, and use of maps) under certain operating conditions based on processing of sensor inputs. The technologies described in this document may benefit any level of vehicle ranging from fully autonomous vehicles to human-operated vehicles.
[0066] Autonomous vehicles have advantages over vehicles that require human drivers. One advantage is safety. For example, in 2016, the United States experienced 6 million automobile accidents, 2.4 million injuries, 40,000 deaths, and 13 million vehicle collisions, with an estimated social cost of more than $910 billion. From 1965 to 2015, the number of traffic fatalities in the United States has decreased from about 6 to about 1 per 100 million miles traveled, in part because of additional safety measures deployed in vehicles. For example, an additional half-second warning of an impending collision is believed to have mitigated 60% of front-to-rear collisions. However, passive safety features (e.g., seat belts, airbags) may have reached the limit of improving this number. Therefore, active safety measures such as automatic control of vehicles may be the next step to improve these statistics. Because drivers are considered responsible for critical pre-crash events in 95% of crashes, automated driving systems may achieve better safety outcomes, such as by reliably identifying and avoiding emergency situations better than humans; making better decisions, obeying traffic laws better than humans and predicting future events; and reliably controlling vehicles better than humans.
[0067] refer to Figure 1 , the AV system 120 causes the AV 100 to operate along a trajectory 198 through an environment 190 to a destination 199 (sometimes referred to as a final location) while avoiding objects (e.g., natural obstacles 191, vehicles 193, pedestrians 192, cyclists, and other obstacles) and obeying road rules (e.g., operating rules or driving preferences).
[0068] In an embodiment, the AV system 120 includes a device 101 equipped to receive and act upon operating commands from a computer processor 146. We use the term "operating command" to refer to an executable instruction (or set of instructions) that causes a vehicle to perform an action (e.g., a driving maneuver). Operating commands may include, but are not limited to, instructions for the vehicle to begin moving forward, stop moving forward, begin moving backward, stop moving backward, accelerate, decelerate, perform a left turn, and perform a right turn. In an embodiment, the computing processor 146 is coupled to the computer processor 146 as described below with reference to FIG. Figure 3 The processor 304 is similarly described. Examples of devices 101 include steering controls 102, brakes 103, gears, an accelerator pedal or other acceleration control mechanism, windshield wipers, side door locks, window controls, and turn indicators.
[0069] In an embodiment, the AV system 120 includes sensors 121 for measuring or inferring attributes of the state or condition of the AV 100, such as the position, linear and angular velocity and acceleration, and heading (e.g., the direction of the front end of the AV 100) of the AV. Examples of sensors 121 are GPS, an inertial measurement unit (IMU) that measures both linear acceleration and angular rate of the vehicle, wheel rate sensors for measuring or estimating wheel slip, wheel brake pressure or brake torque sensors, engine torque or wheel torque sensors, and steering angle and angular rate sensors.
[0070] In an embodiment, the sensors 121 also include sensors for sensing or measuring properties of the environment of the AV, such as monocular or stereo cameras 122 in the visible, infrared, or thermal (or both) spectrum, LiDAR 123, RADAR, ultrasonic sensors, time-of-flight (TOF) depth sensors, velocity sensors, temperature sensors, humidity sensors, and precipitation sensors.
[0071] In an embodiment, the AV system 120 includes a data storage unit 142 and a memory 144 for storing machine instructions associated with a computer processor 146 or data collected by the sensor 121. In an embodiment, the data storage unit 142 is associated with the following Figure 3190. In an embodiment, the memory 144 is similar to the main memory 306 described below. In an embodiment, the data storage unit 142 and the memory 144 store historical, real-time, and / or predictive information about the environment 190. In an embodiment, the stored information includes maps, driving performance, traffic congestion updates, or weather conditions. In an embodiment, data related to the environment 190 is transmitted from the remote database 134 to the AV 100 via a communication channel.
[0072] In an embodiment, the AV system 120 includes a communication device 140 for transmitting measured or inferred properties of the state and condition of other vehicles (such as position, linear and angular velocity, linear and angular acceleration, and linear and angular heading) to the AV 100. These devices include vehicle-to-vehicle (V2V) and vehicle-to-infrastructure (V2I) communication devices and devices for wireless communication through point-to-point or ad hoc networks or both. In an embodiment, the communication device 140 communicates across the electromagnetic spectrum (including radio and optical communications) or other media (e.g., air and acoustic media). The combination of vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I) communications (and in some embodiments, one or more other types of communications) is sometimes referred to as vehicle-to-everything (V2X) communications. V2X communications typically comply with one or more communication standards for communication with and between autonomous vehicles.
[0073] In an embodiment, the communication device 140 includes a communication interface. For example, a wired, wireless, WiMAX, Wi-Fi, Bluetooth, satellite, cellular, optical, near field, infrared, or radio interface. The communication interface transmits data from the remote database 134 to the AV system 120. In an embodiment, the remote database 134 is embedded in a Figure 2 The communication interface 140 transmits data collected from the sensor 121 or other data related to the operation of the AV 100 to the remote database 134. In an embodiment, the communication interface 140 transmits information related to teleoperation to the AV 100. In some embodiments, the AV 100 communicates with other remote (e.g., "cloud") servers 136.
[0074] In an embodiment, the remote database 134 also stores and transmits digital data (e.g., stores data such as roads and street locations). Such data is stored in the memory 144 on the AV 100 or transmitted from the remote database 134 to the AV 100 via a communication channel.
[0075] In an embodiment, the remote database 134 stores and transmits historical information (e.g., speed and acceleration profiles) related to driving attributes of vehicles that have previously traveled along the trajectory 198 at similar times of day. In one implementation, such data may be stored in the memory 144 on the AV 100 or transmitted from the remote database 134 to the AV 100 via a communication channel.
[0076] The computing device 146 located on the AV 100 algorithmically generates control actions based on both real-time sensor data and a priori information, allowing the AV system 120 to perform its autonomous driving capabilities.
[0077] In an embodiment, the AV system 120 includes a computer peripheral device 132 coupled to the computing device 146 for providing information and reminders to a user of the AV 100 (e.g., an occupant or a remote user) and receiving input from the user. In an embodiment, the peripheral device 132 is similar to the one described below with reference to Figure 3 Display 312, input device 314 and cursor control 316 are discussed. The coupling may be wireless or wired. Any two or more of the interface devices may be integrated into a single device.
[0078] In an embodiment, the AV system 120 receives and implements the occupant's privacy level, for example, as specified by the occupant or stored in a profile associated with the occupant. The occupant's privacy level determines how specific information associated with the occupant (e.g., occupant comfort data, biometric data, etc.) is allowed to be used, which is stored in the occupant profile and / or stored on the cloud server 136 and associated with the occupant profile. In an embodiment, the privacy level specifies specific information associated with the occupant that is deleted once the ride is completed. In an embodiment, the privacy level specifies specific information associated with the occupant and identifies one or more entities authorized to access the information. Examples of specified entities authorized to access the information may include other AVs, third-party AV systems, or any entity that potentially accesses the information.
[0079] The privacy level of an occupant may be specified at one or more levels of granularity. In an embodiment, the privacy level identifies the specific information to be stored or shared. In an embodiment, the privacy level applies to all information associated with the occupant, such that the occupant may specify that none of her personal information is to be stored or shared. Specifications of entities that are allowed access to specific information may also be specified at various levels of granularity. The various sets of entities that are allowed access to specific information may include, for example, other AVs, cloud servers 136, specific third-party AV systems, etc.
[0080] In an embodiment, the AV system 120 or the cloud server 136 determines whether the AV 100 or another entity can access certain information associated with the occupant. For example, a third-party AV system attempting to access occupant input related to a particular spatiotemporal location must obtain authorization, such as from the AV system 120 or the cloud server 136, to access information associated with the occupant. For example, the AV system 120 uses the occupant's specified privacy level to determine whether the occupant input related to the spatiotemporal location can be presented to a third-party AV system, the AV 100, or another AV. This enables the occupant's privacy level to specify which other entities are allowed to receive data about the occupant's actions or other data associated with the occupant.
[0081] Figure 2 An example "cloud" computing environment is illustrated. Cloud computing is a service delivery model for enabling convenient, on-demand access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) over a network. In a typical cloud computing system, one or more large cloud data centers house the machines used to deliver the services provided by the cloud. Now refer to Figure 2 , cloud computing environment 200 includes cloud data centers 204a, 204b, and 204c interconnected by cloud 202. Data centers 204a, 204b, and 204c provide cloud computing services for computer systems 206a, 206b, 206c, 206d, 206e, and 206f connected to cloud 202.
[0082] The cloud computing environment 200 includes one or more cloud data centers. Figure 2 The cloud data center 204a shown in FIG. 2 refers to a cloud (eg, Figure 2 The physical arrangement of servers in a cloud 202 or a specific portion of a cloud (as shown in FIG. 202 or a specific portion of a cloud). For example, servers are physically arranged into rooms, groups, rows, and racks in a cloud data center. A cloud data center has one or more zones, which include one or more server rooms. Each room has one or more rows of servers, and each row includes one or more racks. Each rack includes one or more individual server nodes. In some implementations, servers in zones, rooms, racks, and / or rows are arranged into groups based on the physical infrastructure requirements of the data center facility, including power, energy, heat, heat sources, and / or other requirements. In an embodiment, server nodes are similar to Figure 3 The data center 204a has many computing systems distributed across multiple racks.
[0083] Cloud 202 includes cloud data centers 204a, 204b, and 204c and networks and network resources (e.g., network devices, nodes, routers, switches, and network cables) used to connect cloud data centers 204a, 204b, and 204c and help facilitate access to cloud computing services by computing systems 206a-f. In an embodiment, the network represents any combination of one or more local networks, wide area networks, or internetworks coupled by wired or wireless links deployed using terrestrial or satellite connections. Data exchanged through the network is transmitted using a variety of network layer protocols (such as Internet Protocol (IP), Multi-Protocol Label Switching (MPLS), Asynchronous Transfer Mode (ATM), Frame Relay, etc.). In addition, in embodiments where the network represents a combination of multiple subnetworks, different network layer protocols are used on each underlying subnetwork. In some embodiments, the network represents one or more interconnected internetworks (such as the public Internet, etc.).
[0084] Computing systems 206a-f or cloud computing service consumers are connected to the cloud 202 through network links and network adapters. In an embodiment, computing systems 206a-f are implemented as various computing devices, such as servers, desktops, laptops, tablets, smart phones, Internet of Things (IoT) devices, autonomous vehicles (including cars, drones, shuttles, trains, buses, etc.) and consumer electronics. In an embodiment, computing systems 206a-f are implemented in other systems or as part of other systems.
[0085] Figure 3 Computer system 300 is illustrated. In implementation, computer system 300 is a special purpose computing device. The special purpose computing device is hardwired to perform these techniques, or includes a digital electronic device such as one or more application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are permanently programmed to perform the above-mentioned techniques, or may include one or more general purpose hardware processors that are programmed to perform these techniques according to program instructions in firmware, memory, other memory, or a combination. Such a special purpose computing device can also combine customized hardwired logic, ASICs or FPGAs with customized programming to complete these techniques. In various embodiments, the special purpose computing device is a desktop computer system, a portable computer system, a handheld device, a network device, or any other device that contains hardwired and / or program logic to implement these techniques.
[0086] In an embodiment, computer system 300 includes a bus 302 or other communication mechanism for transmitting information, and a hardware processor 304 coupled to bus 302 to process information. Hardware processor 304 is, for example, a general-purpose microprocessor. Computer system 300 also includes a main memory 306, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 302 to store information and instructions, which are executed by processor 304. In one implementation, main memory 306 is used to store temporary variables or other intermediate information during the execution of instructions to be executed by processor 304. When these instructions are stored in a non-transitory storage medium accessible to processor 304, computer system 300 becomes a special-purpose machine that is customized to perform the operations specified in the instructions.
[0087] In an embodiment, computer system 300 also includes a read only memory (ROM) 308 or other static storage device coupled to bus 302 for storing static information and instructions for processor 304. A storage device 310, such as a magnetic disk, optical disk, solid state drive, or three-dimensional cross point memory, is provided and coupled to bus 302 to store information and instructions.
[0088] In an embodiment, the computer system 300 is coupled to a display 312 such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, a light emitting diode (LED) display, or an organic light emitting diode (OLED) display for displaying information to a computer user via bus 302. An input device 314 including alphanumeric and other keys is coupled to bus 302 for communicating information and command selections to processor 304. Another type of user input device is a cursor controller 316, such as a mouse, a trackball, a touch display, or cursor direction keys, for communicating direction information and command selections to processor 304 and for controlling movement of a cursor on display 312. Such input devices typically have two degrees of freedom in two axes, a first axis (e.g., an x-axis) and a second axis (e.g., a y-axis) that allow the device to specify a position on a plane.
[0089] According to one embodiment, the techniques herein are performed by computer system 300 in response to processor 304 executing one or more sequences of one or more instructions contained in main memory 306. These instructions are read into main memory 306 from another storage medium, such as storage device 310. Execution of the sequences of instructions contained in main memory 306 causes processor 304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry is used in place of or in combination with software instructions.
[0090] As used herein, the term "storage medium" refers to any non-temporary medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such storage media include non-volatile media and / or volatile media. Non-volatile media include, for example, optical disks, magnetic disks, solid-state drives, or three-dimensional cross-point memories such as storage device 310. Volatile media include dynamic memories such as main memory 306. Common forms of storage media include, for example, floppy disks, floppy disks, hard disks, solid-state drives, tapes or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical media with a hole pattern, RAM, PROM and EPROM, FLASH-EPROM, NV-RAM, or any other memory chip or storage box.
[0091] Storage media are distinct from transmission media, but can be used in conjunction with transmission media. Transmission media participate in the transmission of information between storage media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including wires that provide bus 302. Transmission media can also take the form of sound waves or light waves, such as those generated during radio wave and infrared data communications.
[0092] In an embodiment, various forms of media are involved in carrying one or more sequences of one or more instructions to the processor 304 for execution. For example, the instructions are initially executed on a disk or solid-state drive of a remote computer. The remote computer loads the instructions into its dynamic memory and sends the instructions over a telephone line using a modem. The local modem of the computer system 300 receives the data on the telephone line and uses an infrared transmitter to convert the data to an infrared signal. An infrared detector receives the data carried in the infrared signal, and appropriate circuitry places the data on the bus 302. The bus 302 carries the data to the main memory 306, from which the processor 304 retrieves and executes the instructions. The instructions received by the main memory 306 may optionally be stored on the storage device 310 before or after execution by the processor 304.
[0093] Computer system 300 also includes a communication interface 318 coupled to bus 302. Communication interface 318 provides a two-way data communication coupled to a network link 320 connected to a local network 322. For example, communication interface 318 is an integrated services digital network (ISDN) card, a cable modem, a satellite modem, or a modem for providing a data communication connection with a corresponding type of telephone line. As another example, communication interface 318 is a local area network (LAN) card for providing a data communication connection with a compatible LAN. In some implementations, a wireless link is also implemented. In any such implementation, communication interface 318 sends and receives an electrical, electromagnetic or optical signal carrying a digital data stream representing various types of information.
[0094] The network link 320 typically provides data communication to other data devices through one or more networks. For example, the network link 320 provides a connection to a host computer 324 or to a cloud data center or device operated by an Internet Service Provider (ISP) 326 through a local network 322. The ISP 326, in turn, provides data communication services through a worldwide packet data communication network now commonly referred to as the "Internet" 328. Both the local network 322 and the Internet 328 use electrical, electromagnetic, or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link 320 and through the communication interface 318 are example forms of transmission media, where these signals carry digital data to and from the computer system 300. In an embodiment, the network 320 includes the cloud 202 described above or a portion of the cloud 202.
[0095] Computer system 300 sends messages and receives data, including program code, through network(s), network link 320, and communication interface 318. In an embodiment, computer system 300 receives code for processing. The received code is executed by processor 304 as it is received, and / or stored in storage device 310, or other non-volatile storage for later execution.
[0096] Autonomous Vehicle Architecture
[0097] Figure 4 An example of a method for autonomous vehicles (e.g., Figure 1 100). The architecture 400 includes a sensing module 402 (sometimes referred to as sensing circuitry), a planning module 404 (sometimes referred to as planning circuitry), a control module 406 (sometimes referred to as control circuitry), a positioning module 408 (sometimes referred to as positioning circuitry), and a database module 410 (sometimes referred to as database circuitry). Each module plays a role in the operation of the AV 100. Collectively, the modules 402, 404, 406, 408, and 410 may be Figure 1 406, 408, and 410 are a portion of the AV system 120 shown. In some embodiments, any of modules 402, 404, 406, 408, and 410 is a combination of computer software (e.g., executable code stored on a computer-readable medium) and computer hardware (e.g., one or more microprocessors, microcontrollers, application specific integrated circuits [ASICs], hardware memory devices, other types of integrated circuits, other types of computer hardware, or any or all combinations of these hardware). Each of modules 402, 404, 406, 408, and 410 is sometimes referred to as a processing circuit (e.g., computer hardware, computer software, or a combination of both). Any or all combinations of modules 402, 404, 406, 408, and 410 are also examples of processing circuits.
[0098] In use, the planning module 404 receives data representing a destination 412 and determines data representing a trajectory 414 (sometimes referred to as a route) that the AV 100 may travel in order to reach (e.g., arrive at) the destination 412. In order for the planning module 404 to determine the data representing the trajectory 414, the planning module 404 receives data from the perception module 402, the positioning module 408, and the database module 410.
[0099] The perception module 402 uses, for example, Figure 1 One or more sensors 121 are shown to identify nearby physical objects. Objects are classified (e.g., grouped into types such as pedestrians, bicycles, cars, traffic signs, etc.), and a scene description including the classified objects 416 is provided to the planning module 404.
[0100] The planning module 404 also receives data representing the AV position 418 from the positioning module 408. The positioning module 408 determines the AV position by using data from the sensor 121 and data from the database module 410 (e.g., geographic data) to calculate the position. For example, the positioning module 408 uses data from a GNSS (Global Navigation Satellite System) sensor and geographic data to calculate the longitude and latitude of the AV. In an embodiment, the data used by the positioning module 408 includes a high-precision map with lane geometry attributes, a map describing the road network connection attributes, a map describing the physical attributes of the lane (such as traffic speed, traffic volume, the number of vehicles and bicycle lanes, lane width, lane traffic direction, or lane marking type and location, or a combination thereof), and a map describing the spatial location of road features (such as intersections, traffic signs, or various types of other driving signals). In an embodiment, a high-precision map is constructed by adding data that is automatically or manually annotated to a low-precision map.
[0101] The control module 406 receives data representing the trajectory 414 and data representing the AV position 418, and operates control functions 420a-420c (e.g., steering, throttle, brakes, ignition) of the AV in a manner that will cause the AV 100 to travel the trajectory 414 to reach the destination 412. For example, if the trajectory 414 includes a left turn, the control module 406 will operate the control functions 420a-420c in the following manner: the steering angle of the steering function will cause the AV 100 to turn left, and the throttle and brakes will cause the AV 100 to pause and wait for a passing pedestrian or vehicle before making the turn.
[0102] Communicating with mobile beacons
[0103] Figure 5An example scenario 500 is illustrated in which many autonomous vehicles (AVs) are navigating an environment. Each AV requires multiple highly accurate positioning signals (e.g., GNSS satellites, Wi-Fi, cellular tower signals) for operation. These signals may be severely degraded in areas lacking a LOS for the vehicle to receive broadcast positioning information. Figure 5 A first example AV 501 is depicted in a GNSS denial area 502 (eg, a tunnel) where external signals (eg, GNSS, Wi-Fi, cellular signals) used for positioning have been lost or degraded. Figure 5 Also depicted are three nearby AVs 503a, 503b, and 503c in an area where positioning signals remain available. Autonomous vehicles 501, 503a, 503b, or 503c are Figure 1 An example of AV 100 is shown in FIG.
[0104] AV 501, 503a, 503b, or 503c stores positioning data in the memory 306 of the computer system 300, and the positioning module 408 uses the positioning data to determine the position, speed, and heading (i.e., direction) of the AV 501, 503a, 503b, or 503c, and the AV 501, 503a, 503b, or 503c receives supplemental positioning data from the sensor 121 and the communication device 140 to continuously calculate its respective position, speed, and heading based on the received positioning data. The positioning estimate includes an estimated position 418 and an associated uncertainty value for the estimated position or position error. As the AV 501, 503a, 503b, or 503c travels along the trajectory 414, the sensor 121 provides new positioning data to the positioning module 418, and the positioning module 418 uses the new positioning data to update the estimated position 418 and its associated uncertainty value using, for example, an extended Kalman filter (EKF).
[0105] exist Figure 5 4, AV 501 is shown within a GNSS denial region 502 where sensor 121 is no longer receiving external signals or is receiving degraded external signals. Sensor 121 and communication device 140 are no longer receiving accurate positioning data, and either have completely lost external signals or are receiving degraded external signals with increasing position errors. As AV 501 continues to traverse region 502 along trajectory 414, the position error increases.
[0106] In the presence of degraded external signals and / or in the absence of any external signals, the positioning module 408 estimates the position 418 using equations of motion (e.g., kinematic equations) stored in the main memory 306 or storage device 310 of the AV 501. The equations of motion are kinematic equations used to propagate the estimated position 414 forward in time based on at least the estimated velocity and time variation. The positioning module 408 also propagates errors associated with the estimated position and velocity, e.g., position error and velocity error. However, in the absence of a low-error external signal, the position error increases until the estimated position 418 can no longer be determined within the estimated position error threshold.
[0107] The positioning module 408 of the AV 501 in the GNSS denial area 502 determines that the estimated position error is greater than the estimated position error threshold, and sends a command to the sensor 121 to start searching for a "beacon" that broadcasts its positioning data within the range of the AV 501. In an embodiment, the GNSS denial area is a "dead zone" or an area where the availability of one or more communication network signals (e.g., GNSS, Wi-Fi, cellular network or other communication network required to locate the AV 501) is reduced or there is no availability. In an embodiment, the search can include both fixed and mobile beacons. A "mobile beacon" is any broadcasting device capable of broadcasting its location, including but not limited to other vehicles, such as aircraft, ships, etc. The communication interface 318 uses at least one communication device 140 to scan the broadcast signal containing positioning data. For example, some mobile beacons can include frequency modulated continuous wave RADARs that can determine distance. The RADAR can periodically pause the frequency sweep and use phase shift keying to encode and transmit the positioning estimate data to the AV 501, acting as a beacon for the AV 501. On the receiving end, the AV 501 may include an omnidirectional receiver listening on the same frequency band as the RADAR that can be used to pick up beacon signals so that the signals can be used to enhance the location estimate of the AV 501. Other components may also be used to receive broadcast signals from fixed or mobile beacons, including but not limited to radio frequency (RF) wireless transceivers (e.g., WiFi, Bluetooth).
[0108] In an embodiment, the planning module 404 determines that the trajectory 414 enters the GNSS denied area 502. Before the AV 501 enters the area 502, the planning module 404 instructs the communication interface 318 to scan for signals containing positioning data to update the positioning estimate. For example, the planning module 404 can use maps and other means to determine at a first location that the AV's route will enter a second location, where external signals such as GNSS, Wi-Fi, and cellular network signals are not available or are too degraded for use in a navigation solution as indicated by, for example, a low demodulated signal-to-noise ratio (SNR) or carrier-to-noise ratio (CNR) for RF passband signals.
[0109] In an embodiment, the map includes a three-dimensional building model that can be used to determine the line of sight from a particular external source signal (e.g., a GNSS signal) to a vehicle at a second location. By determining the loss or degradation of the external signal at a first location for a second location, the planning module 404 can preemptively determine a candidate list of fixed or mobile beacons at the second location that can potentially be used to estimate the location of the AV at the second location when the external signal is lost or degraded. In an embodiment, the planning module 404 can query a network-based queue management platform at the second location to search for and provide a list of available fixed or mobile beacons. The advantage of using a queue management computer is that all vehicles in the queue are already tracked and their locations can be known from, for example, GNSS receivers on the queue vehicles. Moreover, the queue management computer knows whether a particular vehicle in the queue is parked (e.g., a fixed beacon) or has pseudo-satellite capabilities for assisting GNSS operations. Moreover, due to the additional computing power, the queue management computer can use more complex search algorithms.
[0110] The nearby AVs 503a-c are configured to operate as mobile beacons and periodically encode their positioning data into their respective broadcast signals, which are transmitted using wireless communications or by other means such as RADARs as previously described. The positioning module 408 provides the positioning data to the communication interface 318, which encodes the data into a signal. The signal is broadcast on a broadcast frequency using the sensor 121 or the communication device 140.
[0111] The positioning data broadcast by the mobile beacon may include beacon location coordinates (e.g., latitude, longitude, altitude) and / or range or distance information (e.g., using RADAR) determined using GNSS satellites or any other positioning technology (e.g., Wi-Fi, cellular towers). In an embodiment, the sensor 121 of the AV 501, 503a, 503b, and 503c includes a continuous wave frequency modulation (CWFM) radar device capable of determining distance. The CWFM radar device operates by transmitting a continuous wave of radio energy (e.g., a sine wave, sawtooth wave, triangle wave, or square wave) whose frequency varies over a fixed period of time by modulating the signal. The CWFM radar receives backscattered radio energy from any reflecting object and generates a Doppler signal using the backscattered energy. The Doppler signal is the frequency difference between the received signal and the transmitted signal that increases with distance, e.g., the delay between the transmitted signal and the received signal. The backscattered energy from the reflecting object is convolved with the transmitted signal to produce a beat signal that, after demodulation, will give the distance of the target. In an embodiment, beacon AV 503a-c broadcasts a signal containing positioning data by modulating a signal transmitted from a CWFM radar.
[0112] In an embodiment, the broadcasting AV 503a-c may operate as a "pseudo-satellite", where the wireless transceiver of the communication interface 318 is repurposed to broadcast using the data format (e.g., NMEA or RINEX) of a GNSS transmitter over a frequency range (e.g., between 1176 MHz and 1610 MHz). In this manner, a GNSS receiver of a nearby AV receives the signal transmitted by the pseudo-satellite AV 503a-c as a GNSS signal.
[0113] When AV 503a, 503b, and 503c are broadcasting their positioning data via one or more sensors 121 or communication devices 140, they operate as "mobile beacons" to assist in the positioning of AV 501. A mobile beacon that is moving (e.g., at a non-zero velocity) is referred to as a "moving beacon," and a mobile beacon that is stationary (e.g., at zero velocity) is referred to as a "fixed beacon." As described above, the communication interface 318 of the mobile beacon vehicle AV 503a, 503b, or 503c encodes the positioning data stored in the positioning module 408 into a broadcast signal. For example, the positioning data encoded by the communication interface 318 includes a timestamp, a unique vehicle identification value, an estimated position and / or velocity, and associated uncertainty.
[0114] In an embodiment, the communication interface 318 uses one or more processors 304 to encode the positioning data into a broadcast signal by, for example, phase shift keying. Phase shift keying is a digital modulation process that transmits data by modulating the phase of a constant frequency reference signal. Alternative modulation processes include frequency keying, amplitude keying, or pulse code modulation. The communication interface 318 transmits a broadcast signal containing the encoded positioning data. In an embodiment, the AV that is broadcasting uses a CWFM radar to transmit a broadcast signal on the same broadcast frequency using the radar's transceiver.
[0115] Figure 6An exemplary positioning system 600 is used by the AV 501 to receive and filter a set of positioning data from both nearby mobile and fixed broadcast beacons AV and update its position estimate within the positioning module 408. The beacon data may include, but is not limited to, a beacon identifier, an estimated position and velocity coordinates, an estimated uncertainty value associated with the position and velocity coordinates, the time elapsed since the last position fix (i.e., the age of the beacon data), the operating state and communication range of the beacon, pseudolite capabilities, operating frequency bands, cryptographic data, and any other information that may assist the AV 501 in locating. When the AV 501 scans the broadcast frequencies using the sensor 121 or the communication device 140 (such as an omnidirectional receiver, etc.), the communication interface 318 receives and decodes or demodulates a signal containing positioning data from one or more beacons AV 503a-c. The communication interface 318 combines the positioning data of the one or more beacons AV 503a-c and determines a set of positioning data corresponding to the set of nearby beacons AV 503a-c that may be used to assist the AV 501 in locating. The communication interface 318 sends the set to the positioning module 408 to the beacon ranking module 601 for filtering and ranking.
[0116] Use the received positioning data for positioning
[0117] In an embodiment, beacon ranking module 601 is part of AV system 120, which filters beacons acquired in beacon scanning positioning data and ranks beacons with respect to one or more quality factors (e.g., accuracy, precision, age of position fix). Beacon ranking module 601 selects a subset of available positioning data for positioning of AV 501 based on their relative quality factors, as shown in FIG. Figure 7 As more fully described.
[0118] Figure 7 Further details of the beacon ranking module 601 of the exemplary positioning system 600 are illustrated. The beacon ranking module 601 receives beacon data and selects a subset of the positioning data to estimate the position of the vehicle using the positioning module 408. In an embodiment, the subset of positioning data is selected based on at least one criterion, including but not limited to: position error, dilution of precision (DOP), age of the position fix (e.g., based on a timestamp in the beacon data), and data indicating whether the beacon is fixed or mobile (e.g., a flag). The fixed / mobile beacon indicator can vary for vehicle beacons, depending on whether the vehicle is moving or parked.
[0119] In an embodiment, the beacon data provided to the beacon ranking module 601 is processed through an uncertainty filter 701, where the position error of the provided set of positioning data is evaluated. In an embodiment, the uncertainty filter 701 compares the provided estimated position error to a position error threshold stored in a memory, which represents the maximum position error allowed for mobile beacons in the subset of mobile beacons used to assist the AV 501 in positioning. The uncertainty filter 701 excludes positioning data that includes a position error greater than the position error threshold from the set of available mobile beacons. In this way, the reduced set of available mobile beacons that assist the AV 501 includes only positioning data from mobile beacons within the defined accuracy limits.
[0120] In an embodiment, the uncertainty filter 701 excludes available beacons for additional criteria. For example, the uncertainty filter 701 excludes available beacons based on the timestamp of their position fix. The uncertainty filter 701 compares the timestamp included in the positioning data of the broadcast signal from the nearby mobile beacon with the local timestamp maintained in the memory 306, and calculates the time difference between the local timestamp and the mobile beacon positioning data timestamp. If the time difference is greater than the time difference threshold, the uncertainty filter 701 excludes the positioning data from the set of available mobile beacons. For example, exclude time differences greater than a 5-minute threshold (e.g., greater than 5 minutes, greater than 10 minutes, greater than 15 minutes). In this way, non-current positioning data (e.g., stale position fix) is excluded from further comparison.
[0121] If uncertainty filter 701 excludes all mobile beacons of the subset, AV 501 continues along trajectory 414, where the position estimate is updated using the equations of motion until an external signal or additional set of position data can be received.
[0122] In an embodiment, after filtering the set of all available mobile beacons and removing beacons that provide inadequate position errors or include timestamps above a time difference threshold, the uncertainty filter 701 provides the remaining list of beacons to two additional algorithms in the beacon ranking module 601: a DOP calculator 702 and a fixed / mobile beacon identifier 703. Figure 7 The DOP calculator 702 and the fixed / mobile beacon identifier 703 are depicted as operating in parallel, but this is not required. In an embodiment, the DOP calculator 702 and the fixed / mobile beacon identifier 703 are executed in series.
[0123] Because the mobile beacons are moving, there may be significant positional errors, the geometric dilution of precision (GDOP), hereinafter referred to as "DOP", in the estimated position of the mobile beacon based on its velocity. For example, if the AV is too close or too far from the mobile beacon, the GDOP becomes larger. In general, the more the mobile beacons are geometrically dispersed relative to each other, the more accurate the position fix of the AV using the mobile beacons. Figure 7 The DOP calculator 702 is an algorithm that receives positioning data from a subset of mobile beacons and calculates DOP values for many different combinations of positioning data in the subset. DOP values are used in satellite navigation and geoengineering to specify how the direction and position errors of a navigation satellite constellation affect subsequent position estimates using positioning data provided by satellites. DOP values are additionally applied to position calculations based on the position geometry and associated errors of a set of ground beacons (such as the mobile beacons described herein).
[0124] The GNSS device of the communication interface 318 of the AV 501 calculates an estimated position based on one or more sets of navigation satellites using a "multilateration" algorithm. Multilateration is the process of determining the point where more than one sphere intersects. For example, determining the point where three spheres intersect is called "trilateration."
[0125] In the case of multilateration using GNSS satellites, each satellite defines a sphere centered at the satellite's position, with a radius of the calculated distance from the satellite to the GNSS receiver of the AV 501. The calculated distance includes an error term, and the intersection of more than one sphere with range uncertainty forms a region whose boundaries are determined by the calculated range error to each available navigation satellite. The actual position of the GNSS receiver of the AV 501 can be anywhere within this region, forcing the device to choose from multiple possibilities. As this region becomes larger, the accuracy is said to be "diluted", i.e., a larger error, or DOP, is associated with the calculated range.
[0126] The DOP value is calculated and reported as three values: horizontal DOP, vertical DOP, and average DOP. The horizontal DOP (HDOP) measures the DOP in relation to latitude and longitude. The vertical DOP (VDOP) measures the accuracy in relation to altitude. The average DOP, also known as position DOP (PDOP), gives the overall accuracy level for latitude, longitude, and altitude. Each DOP value is reported as a number between 1 and 50, where 50 represents very poor accuracy and 1 represents perfect accuracy.
[0127] The DOP calculator 702 of the beacon ranking module 601 receives a subset of mobile beacons and calculates an average DOP value for each combination of two or more beacons in the subset. For example, if the subset includes four or more locations associated with four mobile beacons that assist in positioning, the DOP calculator 702 calculates a DOP value for each combination of two, three, or four beacons.
[0128] The DOP calculator 702 generates a DOP value list (e.g., a table) that includes each combination of mobile beacons within the received set of available mobile beacons that assist in positioning of the AV 501, and a DOP value associated with each combination. In an embodiment, the DOP calculator 702 compares the DOP value of each combination of beacons with a DOP threshold stored in a memory, and excludes combinations associated with DOP values greater than the DOP value threshold from the DOP value list provided to the ranking engine 704.
[0129] The fixed / mobile beacon identifier 703 receives the subset of available beacons from the uncertainty filter 701. The fixed / mobile beacon identifier 703 then determines which beacons are stationary beacons (e.g., infrastructure, parked vehicles) and which beacons are mobile beacons (e.g., vehicles). In an embodiment, the beacon identifier 703 determines which beacons are stationary by comparing the speed values included in the received positioning data to a stationary speed threshold over a specified time period. If the speed value is below the stationary speed threshold, the beacon identifier 703 determines that the speed value is associated with a stationary beacon. If the speed value is above the stationary speed threshold, the beacon identifier 703 determines that the speed value is associated with a mobile beacon in motion.
[0130] In an embodiment, the positioning data received from the beacon includes a fixed / mobile value for the associated beacon. For example, an infrastructure beacon that remains in a constant position may include a fixed / mobile value indicating that the beacon is stationary along with the transmitted positioning data.
[0131] Due to the non-zero velocity, beacons in motion include higher position errors in the associated positioning data. In an embodiment, the beacon identifier 703 compares the position error values of the positioning data received from the available beacons to determine a fixed / moving value. The beacon identifier 703 then associates the fixed / moving value with the beacon positioning data that classifies the associated beacon as stationary or moving, and provides an identification list including all beacon positioning data and associated fixed / moving values to the ranking engine 704.
[0132] Ranking engine 704 receives the list of DOP values from DOP calculator 702 and receives the identification list from fixed / mobile beacon identifier 703. Ranking engine 704 then determines a ranked list of DOP values for combinations of beacons, ranking the included combinations from lowest DOP value (e.g., closest to 1) to highest. In an embodiment, ranking engine 704 determines the ranked list of DOP values using only beacons identified as mobile, using a mixed combination of both mobile beacons and fixed beacons identified as both mobile and fixed, and using only beacons identified as fixed. Again, referring to Figure 6 The ranking engine 704 then provides the determined subset of mobile beacons to the positioning module 408 for use in estimating the position and speed of the AV or updating its estimate.
[0133] Figure 8 The positioning manager 801 of the positioning module 408 and how the positioning module 408 interfaces with the GNSS receiver 803, the communication interface 318 and the sensors 121 of the AV 501 through electronic communication with the data interface 802. The data interface 802 receives data from many services including the GNSS receiver 803, the communication interface 318 and the sensors 121 of the AV 501.
[0134] The GNSS receiver 803 is a hardware component that receives GNSS data from broadcast GNSS satellites. For example, the GNSS receiver 803 receives GNSS data from a nearby pseudo-satellite, a satellite vehicle, an infrastructure satellite, or a satellite in geostationary orbit. The communication interface 318 provides a two-way link to many external signals, thereby providing data communication. For example, the communication interface 318 communicates electronically with a local network, and the interface 318 receives data from a queue service or other beacon through the local network. The communication interface 318 also provides data from many communication networks to the positioning module, such as Wi-Fi scan data, cellular data, or vehicle-to-everything (V2X) data. The positioning module 408 also receives sensor data from the vehicle-mounted sensor 121, which includes one or more data streams from a vehicle-mounted camera, LiDAR, radar, or inertial measurement unit (IMU) system.
[0135] The data interface 802 also provides a location estimate from an associated locator to a requesting module in the AV 501. For example, the planning module 404 requests a location estimate from the positioning module 408. The request is communicated to the data interface 802 and sent to the positioning manager 801.
[0136] The positioning module 408 includes one or more locators to process the received data. A locator is software stored in the memory of the positioning module 408 and executed using one or more processors that uses the received data to calculate a positioning estimate. Figure 8The positioning module 408 includes a wireless / cellular locator 804 for processing wireless / cellular data, a LiDAR / camera locator 805 for processing optical sensor data, a dead reckoning locator 806 for calculating a positioning estimate in the absence of external signals, and a beacon locator 807 for processing beacon data.
[0137] Wireless / cellular locator 804 is a location estimation system that uses nearby wireless access points (e.g., Wi-Fi or cellular networks) to determine a location estimate for AV 501. In an embodiment, AV 501 receives Wi-Fi or cellular data from data interface 802 and measures the strength of the received signal (e.g., received signal strength indication or RSSI). Wireless / cellular locator 804 uses RSSI to calculate a wireless signal "fingerprint."
[0138] Fingerprinting is a method by which the wireless / cellular locator 804 receives multiple RSSI values from nearby wireless access points and combines them into an RSSI vector. The wireless / cellular locator 804 then receives the estimated location of the AV 501 from the positioning module 408 and combines it with the RSSI vector to form a first fingerprint. After the AV 501 travels along the trajectory 414 and arrives at the second unknown location, the wireless / cellular locator 804 determines a second RSSI vector at the second location and compares the second vector to the first vector to calculate an estimated location at the second location.
[0139] The accuracy of the fingerprinting method depends on the number of nearby access points and their associated locations and distance from the AV 501. Fluctuations and interference in the received wireless access point signals increase uncertainty in the location estimate.
[0140] In additional embodiments, the wireless / cellular locator 804 calculates a location estimate based on one or more parameters including signal strength, angle of arrival, or time of flight parameters of received wireless signals. In another example, the processes and features described in the publication of "Position Estimation With Moving Beacons in Wireless Sensor Networks" by Wong et al. (incorporated herein in its entirety by reference) (DOI: 10.1109 / WCNC.2007.433) can be used in the calculation of a vehicle location estimate using mobile beacons.
[0141] The LiDAR / camera localizer 805 receives light signal data including camera image data and LiDAR data from the data interface 802. The LiDAR / camera localizer 805 then calculates a location estimate using visual odometry, which is a method of calculating an estimated position and orientation of the AV 501 by analyzing sequential camera and / or LiDAR images. Visual odometry uses sequential images from one or more cameras or LiDAR sensors received from the data interface 802 to extract "feature points" from the image sequence. The LiDAR / camera localizer 805 tracks the changes in position of the feature points through the image sequence to use the surrounding environment to determine a location estimate.
[0142] In an embodiment, the LiDAR / camera localizer 805 uses inertial measurement unit (IMU) data combined with camera images to compute a localization estimate using visual inertial odometry (VIO).
[0143] Positioning module 408 also includes a dead reckoning locator 806 that calculates a position estimate in the absence of external signals. Dead reckoning locator 806 uses and calculates a position estimate for AV 501 by using a previously determined estimated position and velocity and projecting that location over time. When communication interface 318 or GNSS receiver 803 does not provide positioning data to positioning module 408 of AV 501, the equations of motion used by dead reckoning locator 806 are subject to accumulated errors based at least on the initial position error.
[0144] The positioning manager 801 maintains in memory a list of available positioning estimates provided by the locators 804, 805, 806, 807. In an embodiment, the positioning manager 801 compares the position error of each positioning estimate and ranks the estimates based at least on the position error.
[0145] The positioning manager 801 provides one or more positioning estimates stored in the memory to a requesting module, such as the planning module 404. The requesting module requests a positioning estimate based on at least one parameter of the stored positioning estimates. For example, the planning module 404 requests the positioning estimate that includes the lowest position uncertainty to calculate the trajectory 414. The positioning manager 801 compares the position uncertainties of the positioning estimates from the locators 804, 805, 806, 807, and provides the positioning estimate that includes the lowest position uncertainty, such as the beacon locator 807 estimate, to the planning module 404.
[0146] Queue Service
[0147] Fig. 9The queue management system 900 is illustrated to provide a position estimate to at least one queue vehicle (e.g., 907a, 907n). The data management component of the queue management system 900 includes a queue server 901 and a queue database 902. In an embodiment, the queue server 901 is in communication with the following about Figure 2 206a, 206b, 206c, 206d, 206e, and 206f, and queue database 902 is implemented on a data center similar to cloud data centers 204a, 204b, and 204c.
[0148] The components of system 900 are connected by any form or medium of digital data communication, such as a communication network (e.g., wide area network 903). Additional examples of communication networks include local area networks ("LANs"), peer-to-peer networks (with ad hoc or static members), grid computing infrastructures, and the Internet. In an embodiment, queue server 901 and queue database 902 are connected by a local area network and communicate with system components through wide area network 903.
[0149] Fig. 9 Queue server 901 is depicted communicating with various network components such as network links and network adapters over wide area network 903 . Fig. 9 Exemplary network components include a gateway 904, a router 905, and a cellular tower 906 for wirelessly communicating with vehicles participating in the platoon.
[0150] The queue includes at least one queue vehicle 907, and Fig. 9 Exemplary platoon vehicles 907a-n are depicted. The platoon vehicles 907a-n are vehicles that include similar architecture 400, such as Figure 1 AV 100 or Figure 5 Examples of autonomous vehicles such as AV 501, 503a-c, etc. are shown in FIG. The fleet vehicles 907a-n communicate with the fleet server 901 and transmit state information such as position estimates, etc., which the fleet management system 900 stores on the network fleet database 902.
[0151] In an embodiment, the platoon vehicle 907a determines that as the platoon vehicle 907a continues along the trajectory 414, the external signal will be lost. The platoon vehicle 907a sends a request to the platoon management system 900 to assist in determining a nearby set of mobile beacons to assist in positioning the platoon vehicle 907a. The request includes a positioning estimate for the platoon vehicle 907a. The platoon server 901 receives the request for positioning assistance from the platoon vehicle 907a and compares the estimated position included in the positioning estimate with a database of positioning estimates for platoon vehicles 907b-n stored on the platoon database 902. The platoon server 901 selects at least one platoon vehicle 907b-n to assist in positioning the platoon vehicle 907a based on at least one criterion.
[0152] In an embodiment, the criteria include the range to the queue vehicle 907a. For example, the queue server 901 selects at least one queue vehicle 907b-n whose estimated location is less than 0.5 miles (e.g., less than 0.4, less than 0.3, less than 0.2, or less than 0.1) from the request queue vehicle 907a. For example, the queue server 901 provides a list of all queue vehicles 907b-n within the range for assisting in positioning to the request queue vehicle 907a. In another example, the queue server 901 provides a list of a fixed number of queue vehicles 907b-n (e.g., two, three, four, five or more queue vehicles) within the range. In yet another embodiment, the criteria include the estimated speed of the queue vehicle 907b-n. For example, the queue server 901 selects at least one queue vehicle 907b-n whose estimated speed is zero (e.g., parked or stationary).
[0153] The fleet server 901 transmits a command to at least one selected fleet vehicle (e.g., fleet vehicle 907n) to broadcast a location estimate stored in the positioning module 408. Fleet vehicle 907n receives the command and, in response to the command, broadcasts a signal including the location estimate. Requesting fleet vehicle 907a receives the signal and uses the included location estimate to calculate a new estimated position and associated uncertainty.
[0154] In an embodiment, the fleet server 901 sends a command to the selected fleet vehicles to broadcast positioning data as pseudolites.
[0155] In an embodiment, the fleet vehicles 907a-n operate in a "fleet lead" mode, in which the fleet server 901 designates one fleet vehicle (e.g., fleet vehicle 907a) as a beacon vehicle and the remaining fleet vehicles 907b-n as "client vehicles." The beacon vehicle 907a continuously or intermittently broadcasts a signal including a positioning estimate, and the client vehicles 907b-n receive and use the positioning estimate of the beacon vehicle 907a to calculate an estimated position. In this way, the beacon vehicle 907a assists the client vehicles 907b-n in positioning, reducing the number of vehicles requesting positioning assistance from the fleet server 901.
[0156] Fig.10 is a flow chart of a process 1000 for locating an autonomous vehicle using beacons according to one or more embodiments. Figure 3 Computer system 300 is depicted to implement process 1000 .
[0157] Process 1000 includes determining that a vehicle has lost an external signal or is receiving a degraded external signal, the external signal being used to estimate the vehicle position (1001); determining a set of mobile beacons that can be used to assist in estimating the vehicle position in place of the external signal (1002); using a communication device of the vehicle to receive a broadcast signal from a set of mobile beacons, the broadcast signal including positioning data for each beacon in the set of mobile beacons (1003); selecting positioning data of a subset of mobile beacons to assist in the vehicle position estimation (1004); and using the selected positioning data to estimate the vehicle position (1005). In an embodiment, the external signal is a GNSS signal, a Wi-Fi signal, or a cellular tower signal. In an embodiment, the beacon set includes only mobile beacons, or a mixture of fixed and mobile beacons. In an embodiment, the broadcast signal is sent by other vehicles using RADAR or another sensor configured for short-range communication. In an embodiment, the position of the vehicle may be estimated using trilateration for fixed or parked beacons and the technique described by Wong et al. (DOI: 10.1109 / WCNC.2007.433) for estimating the position of a vehicle using mobile beacons.
[0158] Fig.11 is a flow chart of another process for locating an autonomous vehicle using beacons according to one or more embodiments. Figure 3 Computer system 300 is described to implement process 1100 .
[0159] Process 1100 includes determining at a first location that a vehicle operating at the first location may lose an external signal or receive a degraded external signal at a second location, wherein the external signal is used to estimate the location of the vehicle (1101); determining a set of mobile beacons at the second location, the set of mobile beacons being used to assist in estimating the location of the vehicle at the second location (1102); and receiving a broadcast signal from the set of mobile beacons at the second location, the broadcast signal including positioning data for each beacon in the set of mobile beacons (1103); selecting a subset of the positioning data for assisting in estimating the location of the vehicle at the second location (1104); and using the positioning data to estimate the location of the vehicle at the second location (1105).
[0160] In the previous description, embodiments of the present invention have been described with reference to many specific details, which may be different due to implementation. Therefore, the specification and the accompanying drawings should be regarded as illustrative, rather than restrictive. The only and exclusive indication of the scope of the present invention, and the applicant's expectation that the content of the scope of the present invention is the literal and equivalent scope of the claims announced according to the present application in the specific form of the authorization announcement claims, including any subsequent amendments. Any definition of the terms used to be included in such claims clearly set forth herein should be based on the meaning of such terms as used in the claims. In addition, when the term "also includes" is used in the previous specification or the attached claims, the following of the phrase can be an additional step or entity, or a sub-step / sub-entity of the previously described step or entity.
Claims
1. A method for positioning a vehicle, comprising: Using at least one processor of a vehicle, predicting that the vehicle will lose an external signal used to estimate a position of the vehicle by: using the at least one processor, predicting, based on a map and a route of the vehicle, that the vehicle will arrive at a location at a future time; as well as predicting, using the at least one processor and based on the map and the route of the vehicle, that a line of sight from the transmitter of the external signal to the vehicle will be at least partially obstructed at the location and at the future time; determining, using the at least one processor, a set of mobile beacons that can be used to assist in estimating the position of the vehicle at the future time; receiving, using a communication device of the vehicle, a broadcast signal from the set of mobile beacons at the future time, the broadcast signal including positioning data for the set of mobile beacons; selecting, using the at least one processor, a subset of positioning data from the set of mobile beacons for use in assisting in estimating a position of the vehicle; as well as Using the at least one processor, the position of the vehicle is estimated using the subset of positioning data.
2. The method according to claim 1, wherein: The subset of positioning data includes an estimated location of the set of mobile beacons and an uncertainty value associated with the estimated location, and the subset of mobile beacons is selected based at least in part on the uncertainty value.
3. The method according to claim 1, wherein: Selecting the subset of positioning data from the set of mobile beacons further comprises: Calculating a DOP value for a combination of mobile beacons in the mobile beacon set; and Using the at least one processor, the subset of positioning data is selected from the set of mobile beacons based at least in part on a DOP value.
4. The method according to claim 1, wherein: The external signal includes at least one of a satellite signal, a wireless network signal, and a cellular network signal.
5. The method according to claim 1, wherein: The mobile beacons include other vehicles configured to transmit the broadcast signals.
6. The method according to claim 1, wherein: Determining the mobile beacon set further includes: sending the predicted position of the vehicle at the future time to a network computer; and The set of mobile beacons is received from the network computer.
7. The method according to claim 1, wherein: The positioning data includes a timestamp, and selecting a subset of mobile beacons further includes: Any mobile beacon having a timestamp exceeding a threshold is excluded from the subset of mobile beacons.
8. The method according to claim 1, wherein: The mobile beacons in the set of beacons are configured to operate as pseudolites, and the broadcast signal includes positioning data for a subset of the mobile beacons.
9. The method according to claim 1, further comprising: determining, using the at least one processor, a set of stationary beacons that can be used to assist in estimating the position of the vehicle at the future time; selecting, using the at least one processor, a mixed subset of mobile beacons and stationary beacons; receiving, using a communication device of the vehicle, a broadcast signal from a mixed subset of beacons at the future time, the broadcast signal including positioning data for the mixed subset of beacons; as well as Using the at least one processor, the position of the vehicle is estimated using positioning data for a mixed subset of beacons.
10. The method according to claim 1, wherein: Determining that the vehicle has lost an external signal includes determining that the external signal is degraded.
11. The method according to claim 1, wherein: The map includes a three-dimensional building model.
12. A computer program product comprising a computer program which, when run by a processor, performs the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
V2V collaborative relative positioning system
CN108333610A