METHOD FOR DETERMINING THE LOCATION OF AN EGO-VEHICLE
20200216076 · 2020-07-09
Inventors
Cpc classification
B60W2552/53
PERFORMING OPERATIONS; TRANSPORTING
B60W2556/45
PERFORMING OPERATIONS; TRANSPORTING
G06V20/588
PHYSICS
G05D1/0287
PHYSICS
B60W2520/00
PERFORMING OPERATIONS; TRANSPORTING
B60W2050/0025
PERFORMING OPERATIONS; TRANSPORTING
G08G1/167
PHYSICS
B60W2420/403
PERFORMING OPERATIONS; TRANSPORTING
G05D1/0276
PHYSICS
B60W50/0097
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A method for determining a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road comprises a step of obtaining road sensor data from at least one road sensor of the ego-vehicle detecting the lane boundaries of the road. In another step, a measured state vector of the ego-vehicle is calculated from the road sensor data. Furthermore, motion state data related to current heading and velocity of the ego-vehicle is obtained and a predicted state vector of the ego-vehicle is calculated based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle. Finally a current state vector is determined by calculating a weighted average of the measured state vector and the predicted state vector of the ego-vehicle. The weights are determined based on characteristics of an upcoming section of the road.
Claims
1. A method for determining a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road, the method comprising: receiving road sensor data from at least one road sensor of the ego-vehicle, the at least one road sensor being configured to detect the lane boundary of the road; calculating a measured state vector of the ego-vehicle using the road sensor data; receiving motion state data from at least one motion sensor of the ego-vehicle, the at least one motion sensor being configured to measure heading and velocity of the ego-vehicle; calculating a predicted state vector of the ego-vehicle based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle; and determining a current state vector by calculating a weighted average of the measured state vector and the predicted state vector of the ego-vehicle, wherein the weights are determined based on characteristics of an upcoming section of the road.
2. The method of claim 1, wherein the characteristics of the upcoming section of the road are obtained from a high definition map based on current location information of the ego-vehicle received from at least one location sensor of the ego-vehicle.
3. The method of claim 2, wherein the obtained characteristics of the upcoming section of the road for determining the weights include at least one of a road curvature and a first derivative of the road curvature.
4. The method of claim 1, wherein the upcoming section of the road is determined by analyzing the occurrence of road links in a direction of travel of the ego-vehicle.
5. The method of claim 1, wherein the upcoming section of the road is determined by determining a most probable path along the road.
6. The method of claim 1, wherein the upcoming section of the road is determined by receiving a planned route path of a navigation system of the ego-vehicle.
7. The method of claim 1, wherein the predicted state vector and the measured state vector are calculated using at least one of a Kalman filter, an extended Kalman filter, an unscented Kalman filter, and a particle filter.
8. The method of claim 1, further comprising increasing the weight of the predicted state vector in response to a determination that at least one of an average road curvature and a maximum road curvature of the upcoming section of the road is less than a predefined threshold.
9. The method of claim 1, further comprising decreasing the weight of the measured state vector in response to a determination that at least one of an average road curvature and a maximum road curvature of the upcoming section of the road is less than a predefined threshold.
10. The method of claim 1, further comprising decreasing the weight of the predicted state vector in response to a determination that at least one an average road curvature and a maximum road curvature of the upcoming section of the road is greater than or equal to a predefined threshold.
11. The method of claim 1, further comprising increasing the weight of the measured state vector in response to a determination that at least one of an average road curvature and a maximum road curvature of the upcoming section of the road is greater than or equal to a predefined threshold.
12. The method of claim 1, wherein the characteristics of the upcoming section of the road are received from trajectories of at least one leading vehicle.
13. The method of claim 1, wherein the weights are determined by selecting the weights based on a geographical situation of the ego-vehicle.
14. A system for determining a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road, the system comprising: a processor; and a memory including instructions that, when executed by the processor, cause the processor to: receive road sensor data from at least one road sensor of the ego-vehicle; calculate a measured state vector of the ego-vehicle using the road sensor data; receive motion state data from at least one motion sensor of the ego-vehicle; calculate a predicted state vector of the ego-vehicle based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle; and determine a current state vector by calculating a weighted average of the measured state vector and the predicted state vector of the ego-vehicle, wherein the weights are determined based on characteristics of an upcoming section of the road.
15. The system of claim 14, wherein the instructions further cause the processor to: receive a high definition map corresponding to current location information of the ego-vehicle; and identify the characteristics of the upcoming section of the road based on the high definition map.
16. The system of claim 15, wherein the characteristics of the upcoming section of the road include at least one of a road curvature and a first derivative of the road curvature.
17. The system of claim 14, wherein the instructions further cause the processor to: analyze an occurrence of road links in a direction of travel of the ego-vehicle; and identify the upcoming section of the road is determined using the road links.
18. The system of claim 14, wherein the instructions further cause the processor to: determine a most probable path along the road; and identify the upcoming section of the road based on the most probable path.
19. The system of claim 14, wherein the instructions further cause the processor to: receive a planned route path of a navigation system of the ego-vehicle; and identify the upcoming section of the road based on the planned route path.
20. A system a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road, the system comprising: a processor; and a memory including instructions that, when executed by the processor, cause the processor to: receive road sensor data; calculate a measured state vector of the ego-vehicle using the road sensor data; receive motion state data; calculate a predicted state vector of the ego-vehicle based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle; calculate a weight average of the measured state vector and the predicted state vector of the ego-vehicle; and determine a current state vector based on the weighted average.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0034]
[0035]
[0036]
DETAILED DESCRIPTION OF THE INVENTION
[0037]
wherein y.sub.off describes the offset between a reference point of the ego-vehicle to the lane boundary, describes the angle between the right lane boundary and the ego-vehicle's movement (i.e. the heading of the ego-vehicle), c.sub.0 describes the curvature of the lane boundary, and c.sub.1 describes the rate of change (first derivative) of c.sub.0.
[0038]
[0039] In a step S1a, first sensor data is obtained from a first road sensor of the ego-vehicle. The ego-vehicle may comprise more than one road sensor. Accordingly, second sensor data, third sensor data, and/or fourth sensor data, etc. may be generated by a second road sensor, a third road sensor, and/or a fourth road sensor, etc. In particular, the sensors may be optical sensors such as cameras or a LiDAR or by radar sensors.
[0040] The sensor data may be processed by an image processing method in order to measure information related to road surface markings. In particular, the parameters of the state vector described above with reference to
[0041] In another step S1b which may be executed at the same time as step S1a, motion state data is obtained from motion sensors of the ego vehicle. In particular, a heading and a velocity of the ego-vehicle may be obtained from at least one first motion sensor measuring the heading of the ego vehicle and at least one second motion sensor measuring the velocity of the ego-vehicle.
[0042] In step S2b, a predicted state vector may be calculated from a previous state vector based on the obtained motion state data. For example, a process of dead reckoning may be executed to predict the state vector. For example, in a case that the heading (direction) and the velocity of the ego-vehicle are known with a certain accuracy, the current position (state vector) may be predicted with a corresponding accuracy by starting from the last known position and adding a translation based on the elapsed time and the current velocity in the measured direction. When the ego-vehicle is moving along a straight road section, this process may yield a relatively high accuracy.
[0043] In some embodiments, step S2b may correspond to a prediction step implemented by a Kalman filter. In particular, a predicted state vector X.sub.k may be calculated from a previous state vector X.sub.k-1 using a state transition model F.sub.k which models the progression of the state vector. The transition model may be determined according to the current motion state as determined in step S1b.
[0044] A Kalman filter is implemented as a recursive estimator. Thus the predicted sate vector and the previous state vector are expressed for a given iteration (time) k. In other words, the Kalman filter is suitable for describing linear dynamical systems discretized in time domain. Perturbations (i.e. uncertainties) are assumed to be dominated by Gaussian noise. At each discrete time increment, a linear operator is applied to the previous state to generate the new state with an uncertainty. The following equation describes the predicted state transition:
X.sub.k=F.sub.kX.sub.k-1+.sub.k
[0045] The process noise .sub.k may assumed to be drawn from a zero mean multivariate normal distribution with covariance Q.sub.k.
[0046] Similarly, the measurement (or update) step S2a can be described by a measurement function:
Z.sub.k=H.sub.kX.sub.k+v.sub.k
[0047] Here, the measured state vector Z.sub.k is obtained by applying the observation model H.sub.k which maps the true state space into the observed space. The observation noise v.sub.k may assumed to be drawn from a zero mean Gaussian distribution with covariance R.sub.k.
[0048] A weighted average of the measured state vector and the predicted state vector may be calculated in step S3. The weights may be determined in step S2c based on road characteristics obtained previously in step S1c. When using a Kalman filter model, the weights may be calculated in from the covariance Q.sub.k and the covariance R.sub.k. The uncertainty of the measurement mainly depends on parameters related to the visibility of the lane markings. According to an aspect, the covariance R.sub.k may be assumed to be constant. Then, only the covariance Q.sub.k related to the prediction needs to be adjusted, for example in dependence on the expected curvature of the road, which may be derived from a map. This way, the performance of the Kalman filter may be adjusted according to road characteristics such that an improved accuracy may be obtained. The covariance Q.sub.k is a matrix. The higher the values in Q.sub.k are compared to those in R.sub.k, the more the resulting weighted state vector moves towards the measured state vector. In other words, incoming measurements have a higher impact than the prediction. The lower the values in Q.sub.k are compared to those in R.sub.k, the more the resulting weighted state vector moves towards the predicted state vector. In other words, incoming measurements have a rather low impact on the resulting weighted state vector. When driving on a curvy road, the a higher weight will be given to the measured state vector, whereas then driving on a mostly straight road such as a highway, a better result with lower uncertainty is obtained by giving a higher weight to the predicted state vector.
[0049] As a result of the method, a current state vector may be obtained in step S4 as the weighted average of the measured state vector and the predicted state vector. This current state vector may be used in step S2b as the new input previous state vector in the next iteration of the method.
[0050] The method may be executed at discretized time intervals, for example with a repetition rate corresponding to a frame rate of a camera as one of the ego-vehicle's sensors for detecting road surface markings. A typical frame rate is 20 or 25 frames per second (fps). The repetition rate may be adapted to the current velocity of the ego-vehicle or depend on the weight of the measured state vector. In case the weight of the measured state vector is high, a high repetition rate may be used in order to take into account as many measurements as possible. If a low weight is given to the measured state vector, the ego-vehicle may be driving along an essentially straight road, such that it may be sufficient to determine the ego-vehicle's location less frequently, for example once per second or once per ten seconds.
[0051]
[0052] The communication module 10 may comprise at least one interface for communicating with a server via a wireless connection such as a mobile data network. Via the communication module 10, data may be sent to and/or received from the server. For example, the communication module 10 may receive map information from the server, which may then be stored in the storage module 13. Furthermore, the communication module 10 may be configured to communicate with other vehicles, for example for receiving trajectory information of leading vehicles.
[0053] The sensor module 11 may provide road sensor data obtained from at least one road sensor 31 of the ego-vehicle for detecting the lane boundaries of the road. The at least one road sensor 31 may include sensors such as at least one front facing perspective camera, at least one side-facing fisheye camera, at least one LiDAR, and/or at least one radar. Thus, the sensor module 11 may comprise a plurality of interfaces for receiving sensor data from a plurality of road sensors of the ego-vehicle. In particular, the sensor module 11 may be configured to provide the sensor data to the processing module 15.
[0054] The ego-motion module 12 may provide motion state data obtained from at least one motion sensor 32 of the ego-vehicle. The at least one motion sensor 32 may be configured for measuring at least one of a heading and/or a velocity of the ego-vehicle. In particular, the ego-motion module 12 may be configured to provide the motion state data to the processing module 15.
[0055] The storage module 13 may store a plurality of different data, including at least one of sensor data, motion data, map data, location data, trajectory data, and/or results computed by the processing module 15. The stored data may be accessed by the processing module 15 for further processing.
[0056] The location module 14 may provide current location information based on sensor data obtained from at least one location sensor 33 of the ego-vehicle. The at least one location sensor 33 may receive location data from a Global Navigation Satellite System (GNSS). Furthermore, the at least one sensor may comprise an Inertial Measurement Unit (IMU). Data obtained from the GNSS and the IMU may be combined by the location module in order to improve the location accuracy. The location information provided by the location module 14 may be used by the processing module 15 in order to localize the ego-vehicle on a HD map. Furthermore, the location module 14 may provide location information to a navigation system 20 of the ego-vehicle.
[0057] The processing module 15 may comprise at least one central processing unit (CPU), a random access memory (RAM), and read-only memory (ROM). The processing module may interact and/or control and/or receive data from at least one of the communication module 10, the sensor module 11, the ego-motion module 12, the storage module 13, and the location module 14. Furthermore, the processing module 15 may receive data from the navigation system 20.
[0058] In some embodiments, functions of the processing module 15 may be implemented in a geographically distant server. The data to be processed may then be transferred to the server by means of the communication module 10. The calculated results, such as the current state vector, may then be transferred from the server to the information processing device 1.
[0059] The features described in herein can be relevant to one or more embodiments in any combination. The reference numerals in the claims have merely been introduced to facilitate reading of the claims. They are by no means meant to be limiting.
[0060] Throughout this specification various embodiments have been discussed. However, it should be understood that the invention is not limited to any one of these. It is therefore intended that the foregoing detailed description be regarded as illustrative rather than limiting.
[0061] In some embodiments, the systems described herein may include a computing device. The computing device may include any suitable computing device. The computing device may be local (e.g., with in the vehicle) or remote (e.g., in a cloud computing device or other suitable remote computing device. The computing device may include a processor and a memory. The processor may include any suitable processor, such as those described herein. The memory may include Random Access Memory (RAM), a Read-Only Memory (ROM), or a combination thereof. The memory may store programs, utilities, or processes to be executed in by the processor. The memory may provide volatile data storage, and stores instructions related to the operation of the computing device. The memory may include instructions that, when executed by the processor, cause the processor to, at least, perform the methods and/or the functions of the systems described herein.
[0062] In some embodiments, a method for determining a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road includes: receiving road sensor data from at least one road sensor of the ego-vehicle, the at least one road sensor being configured to detect the lane boundary of the road; calculating a measured state vector of the ego-vehicle using the road sensor data; receiving motion state data from at least one motion sensor of the ego-vehicle, the at least one motion sensor being configured to measure heading and velocity of the ego-vehicle; calculating a predicted state vector of the ego-vehicle based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle; and determining a current state vector by calculating a weighted average of the measured state vector and the predicted state vector of the ego-vehicle, wherein the weights are determined based on characteristics of an upcoming section of the road.
[0063] In some embodiments, the characteristics of the upcoming section of the road are obtained from a high definition map based on current location information of the ego-vehicle received from at least one location sensor of the ego-vehicle. In some embodiments, the obtained characteristics of the upcoming section of the road for determining the weights include at least one of a road curvature and a first derivative of the road curvature. In some embodiments, the upcoming section of the road is determined by analyzing the occurrence of road links in a direction of travel of the ego-vehicle. In some embodiments, the upcoming section of the road is determined by determining a most probable path along the road. In some embodiments, the upcoming section of the road is determined by receiving a planned route path of a navigation system of the ego-vehicle. In some embodiments, the predicted state vector and the measured state vector are calculated using at least one of a Kalman filter, an extended Kalman filter, an unscented Kalman filter, and a particle filter. In some embodiments, the method also includes increasing the weight of the predicted state vector in response to a determination that at least one of an average road curvature and a maximum road curvature of the upcoming section of the road is less than a predefined threshold. In some embodiments, the method also includes decreasing the weight of the measured state vector in response to a determination that at least one of an average road curvature and a maximum road curvature of the upcoming section of the road is less than a predefined threshold. In some embodiments, the method also includes decreasing the weight of the predicted state vector in response to a determination that at least one an average road curvature and a maximum road curvature of the upcoming section of the road is greater than or equal to a predefined threshold. In some embodiments, the method also includes increasing the weight of the measured state vector in response to a determination that at least one of an average road curvature and a maximum road curvature of the upcoming section of the road is greater than or equal to a predefined threshold. In some embodiments, the characteristics of the upcoming section of the road are received from trajectories of at least one leading vehicle. In some embodiments, the weights are determined by selecting the weights based on a geographical situation of the ego-vehicle.
[0064] In some embodiments, a system for determining a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road includes a processor and a memory. The memory includes instructions that, when executed by the processor, cause the processor to: receive road sensor data from at least one road sensor of the ego-vehicle; calculate a measured state vector of the ego-vehicle using the road sensor data; receive motion state data from at least one motion sensor of the ego-vehicle; calculate a predicted state vector of the ego-vehicle based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle; and determine a current state vector by calculating a weighted average of the measured state vector and the predicted state vector of the ego-vehicle, wherein the weights are determined based on characteristics of an upcoming section of the road.
[0065] In some embodiments, the instructions further cause the processor to receive a high definition map corresponding to current location information of the ego-vehicle and identify the characteristics of the upcoming section of the road based on the high definition map. In some embodiments, the characteristics of the upcoming section of the road include at least one of a road curvature and a first derivative of the road curvature. In some embodiments, the instructions further cause the processor to analyze an occurrence of road links in a direction of travel of the ego-vehicle and identify the upcoming section of the road is determined using the road links. In some embodiments, the instructions further cause the processor to determine a most probable path along the road and identify the upcoming section of the road based on the most probable path. In some embodiments, the instructions further cause the processor to receive a planned route path of a navigation system of the ego-vehicle and identify the upcoming section of the road based on the planned route path.
[0066] In some embodiments, a system a current state vector describing location and heading of an ego-vehicle with respect to a lane boundary of a road includes a processor and a memory. The memory includes instructions that, when executed by the processor, cause the processor to: receive road sensor data; calculate a measured state vector of the ego-vehicle using the road sensor data; receive motion state data; calculate a predicted state vector of the ego-vehicle based on the motion state data of the ego-vehicle and a previous state vector of the ego-vehicle; calculate a weight average of the measured state vector and the predicted state vector of the ego-vehicle; and determine a current state vector based on the weighted average.
[0067] The above discussion is meant to be illustrative of the principles and various embodiments of the present disclosure. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated.
[0068] The word example is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as example is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word example is intended to present concepts in a concrete fashion. As used in this application, the term or is intended to mean an inclusive or rather than an exclusive or. That is, unless specified otherwise, or clear from context, X includes A or B is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then X includes A or B is satisfied under any of the foregoing instances. In addition, the articles a and an as used in this application should generally be construed to mean one or more unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term an implementation or one implementation throughout is not intended to mean the same embodiment or implementation unless described as such.
[0069] Implementations of the systems, algorithms, methods, instructions, etc., described herein can be realized in hardware, software, or any combination thereof. The hardware can include, for example, computers, intellectual property (IP) cores, application-specific integrated circuits (ASICs), programmable logic arrays, optical processors, programmable logic controllers, microcode, microcontrollers, servers, microprocessors, digital signal processors, or any other suitable circuit. The term processor should be understood as encompassing any of the foregoing hardware, either singly or in combination. The terms signal and data are used interchangeably.
[0070] For example, one or more embodiments can include any of the following: packaged functional hardware unit designed for use with other components, a set of instructions executable by a controller (e.g., a processor executing software or firmware), processing circuitry configured to perform a particular function, and a self-contained hardware or software component that interfaces with a larger system, an application specific integrated circuit (ASIC), a Field Programmable Gate Array (FPGA), a circuit, digital logic circuit, an analog circuit, a combination of discrete circuits, gates, and other types of hardware or combination thereof, and memory that stores instructions executable by a controller to implement a feature.
[0071] Further, in one aspect, for example, systems described herein can be implemented using a general-purpose computer or general-purpose processor with a computer program that, when executed, carries out any of the respective methods, algorithms, and/or instructions described herein. In addition, or alternatively, for example, a special purpose computer/processor can be utilized which can contain other hardware for carrying out any of the methods, algorithms, or instructions described herein.
[0072] Further, all or a portion of implementations of the present disclosure can take the form of a computer program product accessible from, for example, a computer-usable or computer-readable medium. A computer-usable or computer-readable medium can be any device that can, for example, tangibly contain, store, communicate, or transport the program for use by or in connection with any processor. The medium can be, for example, an electronic, magnetic, optical, electromagnetic, or a semiconductor device. Other suitable mediums are also available.