The technical field generally relates to sensors, and more particularly to the detecting of and compensating for misaligned sensors in vehicles.
Modern vehicles are being fitted with a multitude of different sensors. The sensors are being used for autonomous driving vehicle systems, autonomous parking systems, adaptive cruise control systems, crash avoidance systems and for a variety of other uses. Data from some of the sensors may have a predetermined frame of reference. For example, if a sensor mounted on the front center of the vehicle may be pointed in a direction parallel with the vehicle, the data from the sensor may be processed based upon the presumption that the sensor is pointed in the direction parallel with the vehicle. Accordingly, if the sensor becomes misaligned, the data from the sensor may not be accurate.
Accordingly, it is desirable to provide systems and methods for determining if a sensor is misaligned and for compensating for the misalignment. Furthermore, other desirable features and characteristics of the present invention will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and the foregoing technical field and background.
In accordance with an embodiment, a vehicle is provided. The vehicle may include, but is not limited to, a sensor configured to acquire sensor data, a processor communicatively coupled to the processor, wherein the processor is configured to determine when an object detected in the acquired sensor data is a stationary object, and calculate a misalignment angle of the sensor based upon sensor data associated with the stationary object.
In accordance with another embodiment, a method for determining a misalignment angle for a sensor in a vehicle is provided. The method may include, but is not limited to, determining, by a processor, when an object detected in sensor data acquired by the sensor is a stationary object, and calculating, by the processor, the misalignment angle of the sensor based upon sensor data associated with the stationary object.
The exemplary embodiments will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and wherein:
The following detailed description is merely exemplary in nature and is not intended to limit the application and uses. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description.
As discussed above, vehicles are more frequently being fitted with sensors used in autonomous driving vehicle systems, autonomous parking systems, adaptive cruise control systems, crash avoidance systems and for a variety of other safety systems. If the sensors become misaligned from a presumed frame of reference, due to either manufacturing or installation tolerances or due to subsequent wear and tear on the vehicle or an impact to the vehicle, the data from the sensor may be inaccurate. As discussed in further detail below a system and method for detecting a misalignment and compensating for a misalignment are provided herein. The system and method primarily utilizes data from the misaligned sensor itself to determine if the sensor is misaligned.
The sensor 110 is communicatively coupled to at least one processor 120. The processor 120 may be a central processing unit (CPU), a graphics processing unit (GPU), a physic processing unit (PPU), an application specific integrated circuit (ASIC), or any other logic circuit or combination thereof. The processor 120, based upon data received from the sensor 110, may detect other vehicles, pedestrians, traffic lights, traffic signs, lane lines and a multitude of other objects for use in autonomous navigation or accident avoidance. The vehicle may further include a memory 130. The memory 130 may be a non-volatile type memory, a volatile type memory, or a combination thereof. The memory 130 may store non-transitory computer-readable instruction, which when executed by the processor, may cause the processor to implement the system and method for determining the misalignment angle of the sensor discussed herein.
As discussed above, the sensor 110 may become misaligned due to various factors. In order to correct for the misalignment, the processor 120 utilizes the data collected from the sensor 110 to determine a misalignment angle. The processor 120 may be communicatively coupled to one or more other sensors 140 to aid in calculating the misalignment angle. The sensors 140 may include, but are not limited to, one or more of a speed sensor for determining a speed of the vehicle 100, a gyroscope to determine a yaw of the vehicle 100 and a steering wheel angle and/or road wheel angle sensor to indicate if vehicle is turning in linear situation.
As seen in
As discussed in further detail below, the processor 120 determines the misalignment angle α by comparing reported positions of a stationary object 150 with expected positions. The stationary object 150 may be, for example, a street light, a street sign, a bridge, a tree, lane lines, a parked vehicle, or any other detectable stationary object. The processor 120 classifies a detected object as a stationary object 150, rather than a dynamic object such as another vehicle or a pedestrian, by comparing detected object info (one or more of a range, a range rate, an azimuth angle, an azimuth angle rate, etc.) to the host vehicle's motion. If the relative motion of the object is close to the host vehicle's motion, the object is deemed as “stationary.” In other words, if an object is stationary, the data from the sensors will indicate that the object, while not itself in motion, is approaching the vehicle at the approximate speed of the vehicle due to the motion of the vehicle itself.
In
The process for determining the misalignment angle α may be performed periodically by the sensor 110, and/or may be performed after a detected event, such as after the vehicle 100 experiences an impact. As discussed in further detail below, the process for determining the misalignment angle α may vary depending upon the type of sensor.
The processor then determines the misalignment angle α based upon data from the sensor 110 and a reported vehicle speed. (Step 220). For a radar type sensor, or other sensors which utilize a Doppler measurement, such as coherent lidar sensors and ultrasonic sonars, the sensor data includes the reported distance r′ between the stationary object 150 and the vehicle 100 as well as the angle between the stationary object and the vehicle. When the sensor is misaligned, the reported angle in the sensor data is the angle Θ′ representing the angle between the vector X and the stationary object 150. As discussed above, the actual angle between the vehicle 100 and the stationary object is the angle Θ illustrated in
The reported range rate {dot over (r)} between the sensor 110 and the stationary object 150 should be substantially dependent on the actual relative velocity along the X-axis between the stationary object 150 and the vehicle 100 unless there is severe damage to the vehicle 100 in the area of the sensor 110. The actual range rate {dot over (r)} between the stationary object 150 and the vehicle 100 is based upon the relative speed of the vehicle 100 with respect to the stationary object 150 and the actual angle Θ between the stationary object 150 and the vehicle 100. In one embodiment, for example, the measured range rate {dot over (r)} from the sensor is related to actual angle Θ by Equation 1:
{dot over (r)}=−V cos(Θ) Equation 1
where V is the relative speed of the stationary object 150 with respect to the vehicle 100. By plugging in the equation for Θ (i.e., Θ=Θ′+α) and solving the equation for α, the processor may determine the misalignment angle α for a radar type sensor, or other sensors which utilize a Doppler measurement according to Equation 2:
For lidar based sensors or camera based sensors which do not directly measure Doppler, velocities (Doppler equivalent signals) can be estimated through position difference of adjacent time loops through tracking methods. Accordingly the data received from these types of sensor may be analyzed by the processor to estimate a position (x, y) of the stationary object and a speed (vx, vy) of the stationary object 150 in both the coordinate relative to the vehicle 100.
There are multiple ways to derives velocities from position tracking. In one embodiment, for example, l0=(x0, y0) is a target's position at time t=0, and l1=(x1, y1) is the position at next time loop t=1. The velocity v=(vx, vy) may be determined according to
where Δt is the sampling interval. Then the derived velocity v is fed to a low pass filter to remove potential high frequency noise.
In another embodiment, for example, an alternative method to estimate v is applying Kalman filtering technique with following state equation: s1=Fs0+u where s1 is the predicted state variable at time t=1, including signals s1=(x1, y1, vx1, vy1); s0 is the state variables at previous time step; F is linear transform matrix:
and u is a zero-mean Gaussian noise vector with covariance matrix Q. At each time step, the position part of state variables is observed by the sensor: p=Hs+w where H is measurement matrix and w is a zero-mean Gaussian distribution with covariance matrix R. Then the Kalman filtering equations can be applied to estimate the state variables at each time step, which includes velocities of each object (i.e., vx and vy).
The processor may then calculate the misalignment angle α based upon the estimated position, relative velocity and a yaw rate ωH of the vehicle 100. (Step 220). The yaw rate ωH of the vehicle 100 may be determined, for example, based upon data from one of the other sensors 140 in the vehicle 100.
A predicted velocity vp of the stationary object 150 is estimated by the processor according to equation 3:
In other words, the predicted object velocity vp of the stationary object 150 relative to the vehicle 100 is based upon the speed vH of the vehicle 100 and the yaw rate ωH of the vehicle 100, and the position of the object x, y in XY coordinate system illustrated in
the result should be equal to the velocity of the stationary object
relative to the vehicle 100 returned by the sensor 110. In one embodiment, for example, the relationship may be determined according to Equation 4:
Assume N pairs of velocity of the object returned by the sensor and predicted object velocity are buffered in the system, by some screening logic to ensure only stationary objects are selected. The buffered N samples of the predicted object velocities are written as a 2-by-N matrix P=(vp1 vp2 . . . vpN) where the i-th sample has velocity components −vH+ωHx and −ωHy along X- and Y-axes, respectively. The buffered N samples of velocities of object returned by the sensor are written as a 2-by-N matrix: M=(v1 v2 . . . vN) where the i-th sample has velocity components vx and vy along X- and Y-axes, respectively.
The processor determines the rotation matrix Rα according to equation 5:
Rα=UCVT Equation 5
where U is a matrix whose columns represent the left singular vectors of matrix product PMT, V is a matrix whose columns represent the right singular vectors PMT, C is a diagonal matrix can be computed according to Equation 6:
where T is matrix transpose operator and det(X) computes the determinant of the matrix X.
In one embodiment, for example, the processor may first calculated U and V using singular value decomposition (SVD) such that
USVT=PMT
where S is the diagonal matrix with singular values.
In one embodiment, since the matrix product A=PMT is a 2-by-2 matrix, there is a close form solution for SVD and finding the matrices U and V:
S=AAT
φ=½a tan 2(S21+S12, S11−S22), a tan 2 ( ) denotes the arctangent function with two arguments. Sij is the (i,j)-element of the matrix S.
S′=A
T
A
θ=½ a tan 2 (S′21+S′12, S′11−S′22) where S′ij is the (i,j)-element of the matrix S′.
α=S11+S22
β=√{square root over ((S11−S22)2+4S21S12)}
B=U
T
AW
sign( ) denotes the sign function
After Rα is computed by Equation 5, let c be the (1,1)-element of the matrix and s be the (1,2)-element of the matrix, the misalignment angle is computed as
In one embodiment, a circular queue with fixed maximum buffer size is used for store pairs of velocity of the object returned by the sensor and predicted object velocity. New samples are added to the queue while some old samples are removed from the queue. Matrix product PMT can be incrementally computed as
A1=A0+pnmnT−pomoT
where A0 is the matrix product PMT in previous time step, A1 is the new matrix product, pn and mn are the new sample pair added to the buffer, and po and mo are the old sample pair to be removed from the buffer.
In one embodiment, for example, the processor may take an average of multiple determined misalignment angles α to determine an average misalignment angle. The processor may determine multiple misalignment angles α for s single stationary object by calculating the misalignment angle α a number of times as the vehicle passes the single stationary object. Alternatively, or in addition thereto, the processor may average the misalignment angle α for multiple different stationary objects over time.
The processor then determines if the determined misalignment angle α, or the average misalignment angle, is greater than a predetermined threshold. (Step 230). If the processor determined misalignment angle α, or the average misalignment angle, is greater than the predetermined threshold, the processor reports a fault. (Step 240). The predetermined threshold may be indicative of damage to the sensor 110 or to the vehicle 100 in the area of the sensor. Accordingly, the processor may send a visual or audio signal to the driver of the vehicle, or a communication to a service center, to indicate that the vehicle requires service.
If the processor determined misalignment angle α, or the average misalignment angle, is less than the predetermined threshold, the processor compensates incoming sensor data based upon the misalignment angle α. (Step 250). In one embodiment, for example, the processor may adjust the object data reported by that sensor by rotating object data by the estimated misalignment angle. The process then returns to Step 210 to calculate the next value for the misalignment angle α.
While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the disclosure in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the exemplary embodiment or exemplary embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope of the disclosure as set forth in the appended claims and the legal equivalents thereof.
Number | Name | Date | Kind |
---|---|---|---|
5422829 | Pollock | Jun 1995 | A |
5512904 | Bennett | Apr 1996 | A |
5964822 | Alland et al. | Oct 1999 | A |
6175802 | Okude et al. | Jan 2001 | B1 |
6202027 | Alland | Mar 2001 | B1 |
6587784 | Okude et al. | Jul 2003 | B1 |
7337650 | Preston et al. | Mar 2008 | B1 |
20040027272 | Richardson | Feb 2004 | A1 |
20050261573 | Satoh et al. | Nov 2005 | A1 |
20060031014 | Sato et al. | Feb 2006 | A1 |
20070297695 | Aratani et al. | Dec 2007 | A1 |
20100017128 | Zeng | Jan 2010 | A1 |
20100235129 | Sharma et al. | Sep 2010 | A1 |
20100324862 | Sato et al. | Dec 2010 | A1 |
20110007157 | Sekelsky et al. | Jan 2011 | A1 |
20120134457 | Suina et al. | May 2012 | A1 |
20120312960 | Mine | Dec 2012 | A1 |
20130124142 | Zeck | May 2013 | A1 |
20130218398 | Gandhi | Aug 2013 | A1 |
20140163888 | Bowler et al. | Jun 2014 | A1 |
20150323651 | Poiger et al. | Nov 2015 | A1 |
20160161597 | Treptow et al. | Jun 2016 | A1 |
20160209211 | Song et al. | Jul 2016 | A1 |
20160223657 | Huntzicker et al. | Aug 2016 | A1 |
Number | Date | Country |
---|---|---|
102778670 | Nov 2012 | CN |
Entry |
---|
STMicroelectronic, “Tilt measurement using a low-g 3-axis accelerometer”, Apr. 2010. |
USPTO, Final Office Action in U.S. Appl. No. 14/614,176 dated Oct. 20, 2016. |
Huntzicker, Fred W., U.S. Appl. No. 14/614,176 entitled “Vehicle Sensor Compensation,” filed Feb. 4, 2015. |
Song, Xiaofeng F., U.S. Appl. No. 14/598,894 entitled “Method for Determining Misalignment of an Object Sensor,” filed Jan. 16, 2015. |
USPTO, Office Action for U.S. Appl. No. 14/614,176, dated Jun. 22, 2016. |
USPTO, Office Action for U.S. Appl. No. 14/614,176 dated Jun. 19, 2017. |
USPTO, Office Action for U.S. Appl. No. 14/614,176 dated Jun. 22, 2017. |
State Intellectual Property Office of the People's Republic of China, Office Action in Chinese Patent Application No. 201610078716.2 dated Aug. 25, 2017. |
Number | Date | Country | |
---|---|---|---|
20150276923 A1 | Oct 2015 | US |