1. Field of the Invention
The present invention relates to a velocity calculating device, a velocity calculating method, and a navigation device, which are suitable for, for example, a portable navigation device.
2. Description of the Related Art
Existing navigation devices receive position signals (hereinafter referred to as GPS signals) from a plurality of global positioning system (GPS) satellites and calculate the present position of a vehicle on the basis of the GPS signals.
However, when a vehicle in which the navigation device is placed is in a tunnel or an underground parking garage, it is difficult for the navigation device to receive GPS signals from GPS satellites and to calculate the present position on the basis of the GPS signals.
Even when it is difficult to receive GPS signals, some navigation devices calculate the velocity in the direction of travel of the vehicle on the basis of the acceleration in a horizontal direction perpendicular to the direction of travel and the angular velocity around the vertical axis perpendicular to the direction of travel when the vehicle is cornering, and thereby calculate the present position of the vehicle on the basis of the velocity in the direction of travel (see, for example, Japanese Unexamined Patent Application Publication No. 2008-76389).
Such navigation devices can calculate velocity in the direction of travel when the vehicle is cornering, but it is difficult to calculate the velocity in the direction of travel when the vehicle is moving linearly. Therefore, it is difficult for such navigation devices to calculate the velocity in the direction of travel under all road conditions.
The present invention provides a velocity calculating device, a velocity calculating method, and a navigation device that are capable of precisely calculating the velocity of a vehicle under all road conditions.
According to an embodiment of the present invention, there is provided a velocity calculating device including a vertical acceleration detector mounted on a moving body, the vertical acceleration detector detecting an acceleration in a vertical direction generated due to an undulation of a contact surface that is in contact with the moving body; a horizontal angular velocity detector mounted on the moving body, the horizontal angular velocity detector detecting an angular velocity around a horizontal axis that is perpendicular to a direction of travel of the moving body, the angular velocity being generated due to the undulation of the contact surface; a correlation coefficient calculator that calculates a correlation coefficient that represents a degree to which an acceleration in the direction of travel of the moving body is mixed into the acceleration in the vertical direction in accordance with an attachment angle with which a body including the vertical acceleration detector and the horizontal angular velocity detector is attached to the moving body; a true vertical acceleration detector that calculates a true acceleration in the vertical direction by subtracting the acceleration in the direction of travel mixed into the acceleration in the vertical direction from the acceleration in the vertical direction, the acceleration in the direction of travel mixed into the acceleration in the vertical direction being calculated on the basis of the correlation coefficient; and a velocity calculator that calculates a velocity of the moving body in the direction of travel of the moving body on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis.
According to an embodiment of the present invention, there is provided a method of calculating a velocity, the method including the steps of detecting an acceleration in a vertical direction generated due to an undulation of a contact surface that is in contact with a moving body by using a vertical acceleration detector mounted on the moving body; detecting an angular velocity around a horizontal axis that is perpendicular to a direction of travel of the moving body by using a horizontal angular velocity detector mounted on the moving body, the angular velocity being generated due to the undulation of the contact surface; calculating a correlation coefficient that represents a degree to which an acceleration in the direction of travel of the moving body is mixed into the acceleration in the vertical direction in accordance with an attachment angle with which a body including the vertical acceleration detector and the horizontal angular velocity detector is attached to the moving body by using a correlation coefficient calculator; calculating a true acceleration in the vertical direction by subtracting the acceleration in the direction of travel mixed into the acceleration in the vertical direction from the acceleration in the vertical direction by using a predetermined true vertical acceleration detector, the acceleration in the direction of travel mixed into the acceleration in the vertical direction being calculated on the basis of the correlation coefficient; and calculating a velocity of the moving body in the direction of the travel of the moving body on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis by using a velocity calculator.
Thus, the degree to the acceleration of the moving body in the direction of travel is mixed into the acceleration in a vertical direction in accordance with the angle with which the body is mounted on the moving body is calculated as the correlation coefficient, the acceleration direction of travel that is mixed into the acceleration in the vertical direction is calculated on the basis of the correlation coefficient, the true acceleration in the vertical direction is calculated by subtracting the acceleration direction of travel that is mixed into the acceleration in the vertical direction from the acceleration in the vertical direction, and the velocity of the moving body in the direction of travel is calculated on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis, whereby the velocity of the moving body can be precisely calculated irrespective of whether or not the body of the velocity calculating device is attached to the moving body with an attachment angle.
According to an embodiment of the present invention, there is provided a navigation device including a vertical acceleration detector mounted on a moving body, the vertical acceleration detector detecting an acceleration in a vertical direction generated due to an undulation of a contact surface that is in contact with the moving body; a horizontal angular velocity detector mounted on the moving body, the horizontal angular velocity detector detecting an angular velocity around a horizontal axis that is perpendicular to a direction of travel of the moving body, the angular velocity being generated due to the undulation of the contact surface; a correlation coefficient calculator that calculates a correlation coefficient that represents a degree to which an acceleration in the direction of travel of the moving body is mixed into the acceleration in a vertical direction in accordance with an attachment angle with which a body including the vertical acceleration detector and the horizontal angular velocity detector is attached to the moving body; a true vertical acceleration detector that calculates a true acceleration in a vertical direction by subtracting the acceleration in the direction of travel mixed into the acceleration in a vertical direction from the acceleration in a vertical direction, the acceleration in the direction of travel mixed into the acceleration in a vertical direction being calculated on the basis of the correlation coefficient; a velocity calculator that calculates a velocity of the moving body in the direction of travel of the moving body on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis; a vertical angular velocity detector that calculates an angular velocity around the vertical axis perpendicular to the direction of travel; an angle calculator that calculates an angle by which the moving body has rotated on the basis of the angular velocity around the vertical axis; and a position calculator that calculates a position of the moving body on the basis of the velocity in the direction of travel that is calculated by the velocity calculator and the angle that is calculated by the angle calculator.
Thus, the degree to the acceleration of the moving body in the direction of travel is mixed into the acceleration in a vertical direction in accordance with the angle with which the body is mounted on the moving body is calculated as the correlation coefficient, the acceleration direction of travel that is mixed into the acceleration in the vertical direction is calculated on the basis of the correlation coefficient, the true acceleration in the vertical direction is calculated by subtracting the acceleration direction of travel that is mixed into the acceleration in the vertical direction from the acceleration in the vertical direction, the velocity of the moving body in the direction of travel is calculated on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis, and the position of the moving body is calculated on the basis of the velocity in the direction of travel and the angle that is calculated by the angle calculator, whereby the velocity of the moving body can be precisely calculated irrespective of whether or not the body of the velocity calculating device is attached to the moving body with an attachment angle.
The embodiments of present invention realize a velocity calculating device and a method of calculating a velocity with which the degree to the acceleration of the moving body in the direction of travel is mixed into the acceleration in a vertical direction in accordance with the angle with which the body is mounted on the moving body is calculated as the correlation coefficient, the acceleration direction of travel that is mixed into the acceleration in the vertical direction is calculated on the basis of the correlation coefficient, the true acceleration in the vertical direction is calculated by subtracting the acceleration direction of travel that is mixed into the acceleration in the vertical direction from the acceleration in the vertical direction, and the velocity of the moving body in the direction of travel is calculated on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis, whereby the velocity of the moving body can be precisely calculated irrespective of whether or not the body of the velocity calculating device is attached to the moving body with an attachment angle.
The embodiment of present invention realizes a navigation device with which the degree to the acceleration of the moving body in the direction of travel is mixed into the acceleration in a vertical direction in accordance with the angle with which the body is mounted on the moving body is calculated as the correlation coefficient, the acceleration direction of travel that is mixed into the acceleration in the vertical direction is calculated on the basis of the correlation coefficient, the true acceleration in the vertical direction is calculated by subtracting the acceleration direction of travel that is mixed into the acceleration in the vertical direction from the acceleration in the vertical direction, the velocity of the moving body in the direction of travel is calculated on the basis of the true acceleration in the vertical direction and the angular velocity around the horizontal axis, and the position of the moving body is calculated on the basis of the velocity in the direction of travel and the angle that is calculated by the angle calculator, whereby the velocity of the moving body can be precisely calculated irrespective of whether or not the body of the velocity calculating device is attached to the moving body with an attachment angle.
Hereinafter, embodiments for carrying out the present invention (hereinafter referred to as embodiments) will be described in the following order with reference to the drawings.
In the following description, a personal navigation device (hereinafter referred to as a PND) is used as an example of a first embodiment of the present invention, and the fundamental principle of calculating the velocity and the present position of a vehicle using the PND will be described.
In practice, a road on which a vehicle travels is seldom flat, and is generally concave as illustrated in
In the coordinate system associated with the vehicle, the X axis extends in the front-back direction, the Y axis extends in a horizontal direction perpendicular to the X axis, and the Z axis extends in the vertical direction.
The PND is placed, for example, on the dashboard of the vehicle. When the vehicle travels on the concave road (
A Y axis gyro sensor of the PND detects an angular velocity ωy around the Y axis (hereinafter referred to as a pitch rate) perpendicular to the direction of travel of the vehicle with a sampling frequency of, for example, 50 Hz.
For the PND, the sign of the downward acceleration αz along the Z axis is defined as positive. The sign of the pitch rate ωy upwardly rotating, with respect to the direction of travel, along an imaginary circle that is formed along a concave road surface illustrated in
The PND calculates the velocity V of the vehicle in the direction of travel 50 times per second using the acceleration αz detected by the three-axis acceleration sensor and the pitch rate ωy detected by the Y axis gyro sensor in accordance with the following equation (1).
When the vehicle travels on a convex road (
The PND calculates the velocity V′ of the vehicle in the direction of travel 50 times per second using the acceleration αz′ detected by the three-axis acceleration sensor and the pitch rate ωy′ detected by the Y axis gyro sensor in accordance with the following equation (2).
For convenience of description here, a negative acceleration is described as the acceleration αz′. In practice, the three-axis acceleration sensor detects the acceleration αz′ as a negative value of the acceleration αz. Likewise, a negative pitch rate is described as the pitch rate ωy′. In practice, the Y axis gyro sensor detects the pitch rate ωy′ as a negative value of the pitch rate ωy. Therefore, in practice, the velocity V′ is also calculated as the velocity V.
Next, the principle of calculating the present position on the basis of the velocity V, which have been calculated by using the above principle of velocity calculation, and the angular velocity around the Z axis will be described.
Referring to
Referring to
The specific structure of the PND, which calculates the velocity of a vehicle using the fundamental principle described above, will be described.
Referring to
The PND 1 is supported by and is mechanically and electrically connected to a cradle 3 that is attached to a dashboard of a vehicle with a suction cup 3A.
Thus, the PND 1 operates using electric power supplied by a battery of the vehicle through the cradle 3. When the PND 1 is detached from the cradle 3, the PND 1 operates using electric power supplied by an internal battery.
The PND 1 is disposed so that the display 2 extends perpendicular to the direction of travel of the vehicle.
In the coordinate system, the direction of travel of the vehicle is defined as the positive direction along the X axis, the direction to the right is defined as the positive direction along the Y axis, and the direction downward is defined as the positive direction along the Z axis.
Referring to
The three-axis acceleration sensor 4 detects an acceleration αx along the X-axis, an acceleration αy along the Y-axis, and the acceleration αz along the Z-axis respectively as voltages.
The Y axis gyro sensor 5, the Z axis gyro sensor 6, and the barometric pressure sensor 7 respectively detect the pitch rate ωy around the Y axis, the yaw rate ωz the around the Z axis, and an ambient pressure PR respectively as voltages.
Referring to
In the PND 1, the controller 11 performs velocity calculation and other processes described below in accordance with various application programs that are read from the memory 12.
In order to perform the velocity calculation and other processes, the controller 11 includes, as functional blocks, a GPS processor 21, a velocity calculator 22, an angle calculator 23, a height calculator 24, a position calculator 25, and a navigator 26.
A GPS antenna ANT of the PND 1 receives GPS signals from GPS satellites, and the GPS signals are sent to the GPS processor 21 of the controller 11.
The GPS processor 21 obtains present position data NPD1 by accurately measuring the present position of the vehicle on the basis of orbit data obtained by demodulating the GPS signals and data on the distances between the GPS satellites and the vehicle, and sends the present position data NPD1 to the navigator 26.
The navigator 26 reads map data of a region including the present position of the vehicle from the memory 12 on the basis of the present position data NPD1, and generates a map image including the present position, outputs the map image to the display 2, and thereby displays the map image.
The three-axis acceleration sensor 4 detects the accelerations αx, αy and αz with a sampling frequency of, for example, 50 Hz, and sends acceleration data AD that represents the acceleration αz to the velocity calculator 22 of the controller 11.
The Y axis gyro sensor 5 detects the pitch rate ωy with a sampling frequency of, for example, 50 Hz, and sends pitch rate data PD that represents the pitch rate ωy to the velocity calculator 22 of the controller 11.
The velocity calculator 22 calculates the velocity V 50 times per second in accordance with equation (1) using the acceleration αz, which corresponds to the acceleration data AD supplied by the three-axis acceleration sensor 4, and the pitch rate ωy, which corresponds to the pitch rate data PD supplied by the Y axis gyro sensor 5, and sends velocity data VD that represents the velocity V to the position calculator 25.
The Z axis gyro sensor 6 detects the yaw rate ωz at a sampling frequency of, for example, 50 Hz, and sends yaw rate data YD that represents the yaw rate ωz to the angle calculator 23 of the controller 11.
The angle calculator 23 calculates the angle θ with which the vehicle turns to the right or to the left by multiplying the yaw rate ωz, which corresponds to the yaw rate data YD supplied by the Z axis gyro sensor 6, by a sampling period (in this case, 0.02 s), and sends angle data DD that represents the angle θ to the position calculator 25.
The position calculator 25 calculates the displacement from the previous position P0 to the present position P1 illustrated in
The barometric pressure sensor 7 detects the ambient pressure PR with a sampling frequency of, for example, 50 Hz, and sends barometric pressure data PRD that represents the barometric pressure PR to the height calculator 24.
The height calculator 24 calculates the height of the vehicle on the basis of the barometric pressure PR, which corresponds to the barometric pressure data PRD supplied by the barometric pressure sensor 7, and sends height data HD that represents the height of the vehicle to the navigator 26.
The navigator 26 reads map data of a region including the present position of the vehicle from the memory 12 on the basis of the present position data NPD2 supplied by the position calculator 25 and the height data HD supplied by the height calculator 24, generates a map image including the present position, outputs the map image to the display 2, and thereby displays the map image.
Next, a velocity calculation process performed by the velocity calculator 22 will be described in detail. In this process, the velocity calculator 22 calculates the velocity V on the basis of the acceleration αz, which corresponds to the acceleration data AD supplied by the three-axis acceleration sensor 4, and the pitch rate ωy, which corresponds to the pitch rate data PD supplied by the Y axis gyro sensor 5.
Referring to
The data acquirer 31 of the velocity calculator 22 acquires the acceleration data AD supplied by the three-axis acceleration sensor 4 and the pitch rate data PD supplied by the Y axis gyro sensor 5, and sends the acceleration data AD and the pitch rate data PD to the high pass filter 32.
The high pass filter 32 removes direct-current components from the acceleration data AD and the pitch rate data PD, which are supplied by the data acquirer 31, to generate acceleration data AD1 and pitch rate data PD1, and sends the acceleration data AD1 and the pitch rate data PD1 to the low pass filter 33.
The low pass filter 33 performs low pass filtering (described below) on the acceleration data AD1 and the pitch rate data PD1, which are supplied by the high pass filter 32, to generate acceleration data AD2 and pitch rate data PD2, and sends the acceleration data AD2 and the pitch rate data PD2 to the velocity calculating section 34.
The velocity calculating section 34 performs velocity calculation (described below) using the acceleration data AD2 and the pitch rate data PD2, which are supplied by the low pass filter 33, to generate velocity data VD1, and sends the velocity data VD1 to the smoother/noise filter 35.
The smoother/noise filter 35 performs smoothing and noise filtering (described below) on the velocity data VD1, which is supplied by the velocity calculating section 34, to generate velocity data VD, and sends the velocity data VD to the velocity output section 36.
The velocity output section 36 sends the velocity data VD, which is supplied by the smoother/noise filter 35 and represents the velocity V of the vehicle, to the position calculator 25.
Thus, the velocity calculator 22 calculates the velocity V of the vehicle on the basis of the acceleration data AD supplied by the three-axis acceleration sensor 4 and the pitch rate data PD supplied by the Y axis gyro sensor 5.
Next, low pass filtering, which is performed by the low pass filter 33 on the acceleration data AD1 and the pitch rate data PD1 supplied by the high pass filter 32, will be described in detail.
Referring to
When the height H changes, the angle φ changes in accordance with the change in the height H. Thus, the PND 1 can detect the undulation of a road surface in the direction of travel of the vehicle using the Y axis gyro sensor 5.
Thus, when a vehicle is traveling at a low velocity lower than 20 km/h, the PND 1 mounted on the vehicle detects the angle φ, which is based on the pitch rate ωy corresponding to the pitch rate data PD obtained by the Y axis gyro sensor 5, as an oscillation having a frequency in the range of 1 to 2 Hz.
As with
As can be seen from
Moreover, as illustrated in
Therefore, using the Y axis gyro sensor 5, the PND 1 detects the pitch rate ωy as an oscillation having a frequency in the range of 1 to 2 Hz irrespective of the velocity of the vehicle.
The PND 1 is supported by the cradle 3, which is attached to the dashboard of the vehicle with the suction cup 3A. Referring to
Therefore, when the vehicle vibrates due to the undulation of a road surface, the PND 1 vibrates up and down around the support point 3C of the PND supporter 3D with, for example, an acceleration αc and an angular velocity ωc.
Therefore, in practice, the three-axis acceleration sensor 4 detects an acceleration (hereinafter referred to as a total acceleration) αcz that is the sum of the acceleration αz (
The Y axis gyro sensor 5 detects an angular velocity (hereinafter referred to as a total angular velocity) ωcy that is the sum of the pitch rate ωy (
Therefore, the low pass filter 33 acquires the acceleration data AD1, which represents the total angular velocity ωcy, and the pitch rate data PD1, which represents the total acceleration ωcz, through the data acquirer 31 and the high pass filter 32.
In particular,
As can be clearly seen from
That is, the Y axis gyro sensor 5 of the PND 1 detects the total angular velocity ωcy that is the sum of the pitch rate ωy, which oscillates with a frequency in the range of 1 to 2 Hz due to the aforementioned undulation of the road surface, and the angular velocity ωc, which oscillates with a frequency of about 15 Hz due to the cradle 3 that supports the PND 1.
In particular,
Considering the fact that the total angular velocity ωcy (
That is, the three-axis acceleration sensor 4 of the PND 1 detects the total acceleration αcz, which is the sum of the acceleration αz, which oscillates with a frequency in the range of 1 to 2 Hz due to the aforementioned undulation of the road surface, and the acceleration αc, which oscillates with a frequency of about 15 Hz due to the cradle 3 that support the PND 1.
Therefore, the low pass filter 33 performs low pass filtering on the acceleration data AD1 and the pitch rate data PD1, which are supplied by the high pass filter 32, so as to remove the frequency component of about 15 Hz, i.e., the acceleration αc and the angular velocity ωc that are generated due to the cradle 3 that supports the PND 1.
As can be seen from
Therefore, the low pass filter 33 according to the embodiment performs the IIR filtering with a cutoff frequency of 2 Hz four times on the acceleration data AD1 and the pitch rate data PD1, which are supplied by the high pass filter 32, to generate an acceleration data AD2 and pitch rate data PD2, and sends the acceleration data AD2 and the pitch rate data PD2 to the velocity calculating section 34.
Thus, the low pass filter 33 removes the acceleration αc, which is generated due to the vibration of the PND supporter 3D around the support point 3C of the cradle 3, from the total acceleration αcz, and thereby extracts only the acceleration αz, which is generated due to the undulation of the road surface.
Moreover, the low pass filter 33 removes the angular velocity ωc, which is generated due to the vibration of the PND supporter 3D around the support point 3C of the cradle 3, from the total angular velocity ωcy, and thereby extracts only the pitch rate ωy, which is generated due to the undulation of the road surface.
Next, velocity calculation performed by the velocity calculating section 34 will be described in detail. The velocity calculating section 34 calculates the velocity V on the basis of the acceleration data AD2 and the pitch rate data PD2 supplied by the low pass filter 33.
In
As can be seen from
In this simulation, it is assumed that a vehicle having a wheelbase of 2.5 m travels at a velocity of 5 m/s on a road surface having a sinusoidal undulation with an amplitude of 0.1 m and a wavelength of 20 m.
As can be seen from
Therefore, as illustrated in
However, as illustrated in
In particular, when the autonomous velocity V of the vehicle is lower than 20 km/h, the phase difference between the acceleration αz and the pitch rate ωy is large, so that the calculation error of the autonomous velocity V increases.
Therefore, referring to
Moreover, the velocity calculating section 34 extracts the maximum value and the minimum value of the pitch rate ωy, which corresponds to the pitch rate data PD2 supplied by the low pass filter 33, from a range of 25 or 75 data points centered around the data point Pm. The maximum and minimum values will be referred to as the maximum pitch rate ωy,max and the minimum pitch rate ωy,min, respectively.
That is, the velocity calculating section 34 extracts the maximum and minimum accelerations αz,max and αz,min and the maximum and minimum pitch rates ωy,max and ωy,min from a range that is larger than the largest possible phase difference that may be generated between the acceleration αz and the pitch rate ωy.
The velocity calculating section 34 calculates the velocity V in the direction of travel at the previous position P0 (
Thus, even when there is a phase difference between the acceleration αz and the pitch rate ωy, the velocity calculating section 34 can calculate, by using equation (3), the velocity V from which the influence of the phase delay is removed.
Referring to
When calculating the velocity V in the direction of travel at the previous position P0 while the vehicle is decelerating, the velocity calculating section 34 uses a range of 75 data points if the former velocity Vn-1 is equal to or higher than 25 km/h, and the velocity calculating section 34 uses a range of 25 data points if the former velocity Vn-1 is lower than 25 km/h.
Thus, the velocity calculating section 34 switches the data range between 25 data points and 75 data points in accordance with the velocity V when extracting the maximum and minimum accelerations αz,max and αz,min and the maximum and minimum pitch rates ωy,max and ωy,min.
When the velocity V of the vehicle is equal to or lower than, for example, 25 km/h, the acceleration αz and the pitch rate ωy change sharply in response to a slight change in the road surface. Therefore, the velocity calculating section 34 uses a narrow data range in order to deal with a sharp change.
When the velocity of the vehicle is equal to or higher than 35 km/h, the influence of a suspension of the vehicle is large and the acceleration αz and the pitch rate ωy change slowly. Therefore, the velocity calculating section 34 sets a wide data range in order to deal with a slow change
Thus, the velocity calculating section 34 changes the data range, from which the maximum and minimum accelerations αz,max and αz,min and the maximum and minimum pitch rates ωy,max and ωy,min are extracted, in accordance with the velocity V of the vehicle, so that the conditions of the road surface and the vehicle that change in accordance with the velocity V can be taken into account, whereby the velocity V can be calculated more precisely.
Moreover, when calculating the maximum and minimum accelerations αz,max and αz,min and the maximum and minimum pitch rates ωy,max and ωy,min, the velocity calculating section 34 changes the data range with a hysteresis between the case when the vehicle is accelerating and the case when the vehicle is decelerating.
Thus, frequency of changing of the data range around a switching velocity is reduced as compared to a case in which the velocity calculating section 34 calculates the velocity V by changing the data range without a hysteresis. As a result, the velocity calculating section 34 can reduce the calculation error of the velocity V that may occur due to frequent switching of the data range, whereby the velocity V can be calculated more precisely.
Next, smoothing and noise filtering performed by the smoother/noise filter 35 on the velocity data VD1, which has been calculated by the velocity calculating section 34, will be described in detail.
The smoother/noise filter 35 performs low pass filtering, which is first-order IIR with a variable cutoff frequency, on the velocity data VD1 supplied by the velocity calculating section 34.
To be specific, when calculating the velocity V in the direction of travel at the previous position P0, the smoother/noise filter 35 determines the cutoff frequency on the basis of the former velocity Vn-1.
When the velocity of the vehicle is equal to or higher than, for example, 60 km/h, the velocity V calculated by the velocity calculating section 34 of the PND 1 includes a large amount of noise, and thereby the velocity V considerably deviates. Therefore, the smoother/noise filter 35 uses a low pass filter having a low cutoff frequency when the former velocity Vn-1 is equal to or higher than 60 km/h.
In contrast, the smoother/noise filter 35 uses a low pass filter having a high cutoff frequency when the former velocity Vn-1 is lower than 60 km/h.
When the velocity V calculated by the velocity calculating section 34 is lower than, for example, 10 km/h, the pitch rate ωy, which is the denominator of equation (1) or (3), may be small, so that the velocity V calculated using the equation (1) or (3) may become considerably higher than the real value.
Therefore, the smoother/noise filter 35 acquires the acceleration data AD2 and the pitch rate data PD2, which have been low pass filtered, from the low pass filter 33. If the pitch rate ωy corresponding to the pitch rate data PD2 is lower than a predetermined threshold, the smoother/noise filter 35 determines that the velocity V is excessively high and sets the value of the velocity V, after being low pass filtered, at 0.
If an arc B1 of the undulation of a road surface is larger than the wheelbase W of the vehicle as illustrated in
However, if an arc B2 of the undulation of a road surface is smaller than the wheelbase W of the vehicle as illustrated in
At this time, the three-axis acceleration sensor 4 and the Y axis gyro sensor 5 of the PND 1 detect the acceleration αb and the angular velocity ωb (
The acceleration αb is larger than the acceleration αz, which is generated when the arc B1 of the undulation of the road surface is larger than the wheelbase W of the vehicle. The angular velocity ωb is higher than the pitch rate ωy, which is generated when the arc B1 of the undulation of the road surface is larger than the wheelbase W of the vehicle.
A velocity Vb (hereinafter also referred to as a small-arc velocity) is calculated using equation (1) or (3) on the basis of the acceleration αb and the angular velocity ωb, which are generated when the arc B2 of the undulation of the road surface is smaller than the wheelbase W of the vehicle.
Because the acceleration αb changes more than the angular velocity ωb, the velocity Vb is considerably higher than the velocity V, which is calculated using equation (1) or (3) on the basis of the acceleration αz and the angular velocity ωy generated when the arc B1 of the undulation of the road surface is larger than the wheelbase W of the vehicle.
Therefore, when the arc B2 of the undulation of the road surface is smaller than the wheelbase W of the vehicle, the velocity calculator 22 of the PND 1 calculates the small-arc velocity Vb on the basis of the acceleration αb and the angular velocity ωb, which leads to calculating the velocity V as an excessively high value.
The smoother/noise filter 35 acquires, from the low pass filter 33, the acceleration data AD2 and the pitch rate data PD2, which have been low pass filtered, and determines whether or not the acceleration αz corresponding to the acceleration data AD2 and pitch rate ωy corresponding to the pitch rate data PD2 are higher than predetermined thresholds.
If the acceleration α2 corresponding to the acceleration data AD2 and the pitch rate ωy corresponding to the pitch rate data PD2 are higher than the predetermined thresholds, the smoother/noise filter 35 determines that the velocity V is excessively high and uses the former velocity Vn-1 instead of the velocity V that has been low pass filtered. That is, the smoother/noise filter 35 uses the former velocity Vn-1 if the velocity V is excessively high when the velocity of the vehicle is not very low, because it is likely that the velocity V is not accurate in such a case.
Thus, if the velocity V that has been low pass filtered is excessively high, the smoother/noise filter 35 sets the velocity V at 0 when the velocity of the vehicle is very low and sets the velocity V at the former velocity Vn-1 when the velocity of the vehicle is not very low, whereby the velocity V can be calculated more accurately.
1-4. Process of Position Calculation using Velocity Calculation
Referring to the flowchart of
The controller 11 starts the process from a start step of a routine RT1. In step SP1, the data acquirer 31 of the velocity calculator 22 acquires the acceleration data AD detected by the three-axis acceleration sensor 4 and the pitch rate data PD detected by the Y axis gyro sensor 5, and the controller 11 proceeds to step SP2.
In step SP2, the high pass filter 32 of the velocity calculator 22 of the controller 11 performs high pass filtering on the acceleration data AD and the pitch rate data PD, and the controller 11 proceeds to step SP3.
In step SP3, the low pass filter 33 of the velocity calculator 22 of the controller 11 performs low pass filtering, which is fourth-order IIR filtering with a cutoff frequency of, for example, 1 Hz, on the acceleration data AD1 and the pitch rate data PD1, which have been high pass filtered, and the controller 11 proceeds to step SP4.
In step SP4, the velocity calculating section 34 of the velocity calculator 22 of the controller 11 calculates the velocity V using equation (3) on the basis of the acceleration αz corresponding to the acceleration data AD2 and the pitch rate ωy corresponding to the pitch rate data PD2, which have been low pass filtered, and the controller 11 proceeds to step SP5.
In step SP5, the controller 11 performs smoothing and noise filtering on the velocity data VD representing the velocity V, which has been calculated in step SP4.
To be specific, the controller 11 performs low pass filtering having a variable cutoff frequency on the velocity data VD1 representing the velocity V, which has been calculated in step SP4.
If the controller 11 determines that the velocity V that has been low pass filtered is excessively high, the controller 11 sets the velocity V at 0 when the velocity of the vehicle is lower than, for example, 10 km/h and sets the velocity V at the former velocity Vn-1 when the velocity of the vehicle is equal to or higher than 10 km/h, and the controller 11 proceeds to step SP6.
In step SP6, the angle calculator 23 of the controller 11 acquires the yaw rate data YD detected by the Z axis gyro sensor 6, and the controller 11 proceeds to step SP7.
In step SP7, the angle calculator 23 of the controller 11 calculates the angle data DD representing the angle θ by multiplying the yaw rate ωz corresponding to the yaw rate data YD by the sampling period 0.02 s, and the controller 11 proceeds to step SP8.
In step SP8, the controller 11 calculates the present position data NPD2 on the basis of the velocity data VD, on which smoothing and noise filtering have been performed in step SP5, and the angle data DD, which has been calculated in step SP7, and the controller 11 proceeds to step SP9.
In step SP9, the controller 11 reads from the memory 12 a map data including the present position of the vehicle on the basis of the present position data NPD2 supplied by the position calculator 25, generates a map image including the present position, and outputs the map image to the display 2, and the controller 11 proceeds to step SP10 where the process finishes.
As can be seen from
The velocity calculated from the speed pulse of the vehicle will be referred to as a reference velocity, and the distance calculated using the reference velocity will be referred to as a reference distance.
As illustrated in
As in the case of
Referring to
As can be seen from
As can be seen from these results, when the vehicle travels along a large number of curves, the velocity V calculated by the PND 1 is substantially similar to the reference velocity Vref, and the error between the distance D, which is calculated on the basis of the velocity V, and the reference distance Dref is smaller than 10%.
The travel path T (
Hereinafter, the velocity that is calculated on the basis of GPS signals received by the GPS antenna ANT will be referred to as the GPS velocity, and the distance that is calculated from the GPS velocity will be referred to as the GPS distance.
As can be seen from
In
In the PND 1 having the structure described above, the three-axis acceleration sensor 4 detects the acceleration αz along the Z axis perpendicular to direction of travel of the vehicle, which is generated due to the undulation of a road surface, and the Y axis gyro sensor 5 detects the pitch rate ωy around the Y axis perpendicular to the direction of travel of the vehicle, which is generated due to the undulation of a road surface.
The PND 1 calculates the velocity V using equation (1) or (3) on the basis of the acceleration αz detected by the three-axis acceleration sensor 4 and the pitch rate ωy detected by the Y axis gyro sensor 5.
Thus, the PND 1, which has a simple structure including the three-axis acceleration sensor 4 and the Y axis gyro sensor 5, can accurately calculate the velocity V of the vehicle under all road conditions even when it is difficult for the PND 1 to receive GPS signals.
The PND 1 has a good usability because the PND 1 is detachable from the vehicle and it is not necessary for a user to carry out a cumbersome task of connecting a cable to receive speed pulse signals from the vehicle.
The Z axis gyro sensor 6 of the PND 1 detects the yaw rate ωz around the Z axis perpendicular to the direction of travel of the vehicle, and the PND 1 calculates present position on the basis of the velocity V and the yaw rate ωz.
Thus, the PND 1, which has a simple structure including the three-axis acceleration sensor 4, the Y axis gyro sensor 5, and the Z axis gyro sensor 6, can accurately calculate the present position of the vehicle under all road conditions even when it is difficult for the PND 1 to receive GPS signals.
When calculating the velocity V, the PND 1 performs low pass filtering on the acceleration data AD1 and the pitch rate data PD1. Thus, the PND 1 can remove from the acceleration αc and the angular velocity ωc components that are generated due to the cradle 3 and oscillate at a frequency of, for example, about 15 Hz, which is substantially higher than those of the acceleration αz and the pitch rate ωy, which are generated due to undulation of a road surface and oscillate at a frequency of, for example, 1 to 2 Hz.
Thus, the PND 1 can more accurately calculate the velocity V using the acceleration αz and the pitch rate ωy from which the vibration component generated due to the cradle 3 is removed.
The PND 1 extracts the maximum acceleration αz,max and the minimum acceleration αz,min from the range of 25 to 75 data points of the acceleration αz around the data point Pm, and extracts the maximum pitch rate ωy,max and the minimum pitch rate ωy,min from the range of 25 to 75 data points of the pitch rate ωy around the data point Pm.
The PND 1 calculates the velocity V using equation (3) from the maximum and minimum accelerations αz,max and αz,min and the maximum and minimum pitch rates ωy,max and ωy,min.
Thus, the PND 1 uses data points in a range that is wider than the phase difference between the acceleration αz and the pitch rate ωy, the phase delay being changeable in accordance with the position at which the PND 1 is placed in the vehicle, thereby removing the influence of the phase difference between the acceleration αz and the pitch rate ωy.
When the velocity V calculated using equation (3) on the basis of the acceleration αz and the pitch rate ωy is excessively high, the PND 1 sets the velocity V at 0 when the vehicle is traveling at a very low velocity, and otherwise the PND 1 sets the velocity at the former velocity Vn-1, thereby calculating the velocity V more accurately.
With the above structure, the PND 1 according to the first embodiment detects the acceleration αz along the Z axis, which is generated due to the undulation of a road surface, and the pitch rate ωy around the Y axis, which is generated due to the undulation of the road surface, and calculates the velocity V using the acceleration αz and the pitch rate ωy, thereby accurately calculating the velocity V under all road conditions.
A PND 50 according to a second embodiment (
2-1. Negative Influence when PND is used in Upward Tilt Position
The PND 50 according to the second embodiment removes a negative influence that is produced in the velocity calculation when the PND 50 is used in a position that is tilted in the direction of travel along the X axis and around the Y axis (
The upward tilt position may occur when the PND 50 is initially attached to the cradle 3 in the upward tilt position or when the PND 50 is attached to the cradle 3 and then tilted to be in the upward tilt position.
The following discussion holds true also when the PND 50 is used in a downward tilt position, which is opposite to the upward tilt position and in which the PND 50 is tilted in the direction of travel along the X axis and around the Y axis (
Referring to
However, in practice, when the PND 50 is used in the upward position in which the PND 50 is tilted in the direction of travel along the X axis and around the Y axis (
It has been found that the abnormal value EV1 corresponds to a timing (elapsed time) when the vehicle is accelerating from a parking lot to a traffic lane of an expressway as illustrated in
That is, as illustrated in
When the PND 50 is used in a position in which the body of the PND 50 is perpendicular to the Z axis, the acceleration αx along the X axis and the acceleration αz along the Z axis is uncorrelated. However, when the PND 50 is used in the upward tilt position, the acceleration αx along the X axis and the acceleration αz along the Z axis is correlated (has a slope indicated by a line) as illustrated in
Accordingly, when the PND 50 is used in the upward tilt position, the acceleration αx along the X axis is mixed into the acceleration αz along the Z axis, which is used to calculate the autonomous velocity V, when the vehicle is accelerating or decelerating.
That is, with the PND 50, the acceleration αx along the X axis is mixed into the acceleration αz along the Z axis, whereby the acceleration αz along the Z axis is overestimated and an error is generated in the calculation result of the autonomous velocity V.
As described above using
Therefore, it is necessary for the PND 50 to learn a correlation coefficient K (described below) that represents the degree to which the acceleration αx along the X axis is mixed into the acceleration αz along the Z axis and calculate a true acceleration αz′ along the Z axis from which the acceleration ax along the X axis is removed beforehand in accordance with the following equation (4).
αz′=αz−K·αx (4)
Thus, the PND 50 can reduce en error of the autonomous velocity V with respect to the GPS velocity Vg, and can make the velocity ratio VP (GPS velocity Vg/autonomous velocity V) illustrated in
When the acceleration αx along the X axis is near “0”, slight noise may considerably influence the value of the acceleration αx and the noise may become dominant. Therefore, when calculating the autonomous velocity V, the PND 50 calculates the correlation coefficient K only when the acceleration |αx| is larger than a predetermined threshold TH (for example, 0.075 m/s2).
A velocity calculator 52 calculates the correlation coefficient K between the acceleration αz along the Z axis and the acceleration αx along the X axis by learning, and calculates the true acceleration αz′ along the Z axis by removing the acceleration αx along the X axis that is mixed into the acceleration αz along the Z axis by using the correlation coefficient K.
The velocity calculator 52 calculates the autonomous velocity V using the acceleration αz′ along the Z axis and the pitch rate ωy around the Y axis in accordance with the following equation (5).
When calculating the correlation coefficient K beforehand by learning, the velocity calculator 52 calculates a correlation coefficient Kn calculated on the basis of, for example, the result of the n-th sampling in accordance with the following equation (6).
However, the calculation results of the correlation coefficient Kn have a large deviation (error) between samples. Therefore, it is difficult to use the correlation coefficient Kn to correct the acceleration αz along the Z axis (to remove the acceleration αx along the X axis that is mixed into the acceleration αz along the Z axis) for the next sampling.
Therefore, it is necessary for the velocity calculator 52 to use a large number of correlation coefficients Kn, each of which including an error, to obtain the final value of the correlation coefficient K that has a small error. A simple method, for example, is to obtain the final value of the correlation coefficient K by averaging all the correlation coefficients Kn obtained by sampling in a certain past period.
However, this method has two demerits. One is that it is necessary to prepare a buffer for storing the correlation coefficient Kn in the past period. The other is that the method is inefficient because the method does not consider the fact that the error of the correlation coefficient Kn is small when the acceleration |αx| along the X axis is considerably larger than “0” (larger than the threshold TH).
Therefore, when calculating the final value of the correlation coefficient K, the velocity calculator 52 uses a correlation coefficient learning section (described below) including an infinite impulse response (IIR) filter, so that it is not necessary for the velocity calculator 52 to have a buffer for storing all the correlation coefficient Kn in a past period.
The correlation coefficient learning section calculates the final value of the correlation coefficient K using the following equation (7).
K=(Kn−K)·Gain+K (7)
Thus, the correlation coefficient learning section stores only the correlation coefficient K that is the result of the previous learning. In equation (7), Gain is a predetermined constant.
Instead of using the Gain as a constant, however, the correlation coefficient learning section changes the value of the Gain in accordance with the acceleration |αx| along the X axis, so that the correlation coefficient Kn having a smaller error is weighted heavily and thereby the final value of the correlation coefficient K converges faster on an appropriate final value.
To be specific, the correlation coefficient learning section calculates the Gain in equation (7) using the following equation (8).
The reference αx is set at 0.15 m/s2 (for example, corresponding to 200 digits (200 data points) in the X axis acceleration direction of
That is, the correlation coefficient learning section sets, for example, the reference αx at 0.15 m/s2 and the reference Gain at 1/10000, and calculates the Gain using the values of the acceleration |αx| along the X axis sampled by the three-axis acceleration sensor 4 in the past 200 seconds.
That is, when calculating the Gain, the correlation coefficient learning section updates the output of the three-axis acceleration sensor 4 every 200 seconds. Thus, with consideration of the case in which the upward tilt position (the tilt angle) of the PND 50 is changed, the correlation coefficient learning section does not use old data in order to prevent miscalculating the Gain by using data before the tilt position (the tilt angle) of the PND 50 is changed.
The velocity calculator 52 calculates the final value of the correlation coefficient K when the PND 50 is mounted on the cradle 3, the vehicle is in a GPS measurement area, and the GPS velocity is equal to or higher than 1.0 m/s. Thus, the velocity calculator 52 calculates the correlation coefficient K only when the vehicle is traveling, and does not calculate the correlation coefficient K when the user is holding the PND 50 or adjusting the tilt angle of the PND 50.
The data acquirer 31 of the velocity calculator 52 sends the acceleration data AD representing the acceleration αz, the acceleration data AX representing the acceleration αx, and the pitch rate data PD supplied by the Y-axis gyro sensor 5 to the high pass filter 32.
The high pass filter 32 removes direct-current components (and thereby removes offset components) from the acceleration data AD, the acceleration data AX, and the pitch rate data PD to generate acceleration data AD1, acceleration data AX1, and pitch rate data PD1, and sends the acceleration data AD1, the acceleration data AX1, and the pitch rate data PD1 to the low pass filter 33.
The low pass filter 33 performs the aforementioned low pass filtering on the acceleration data AD1, the acceleration data AX1, and the pitch rate data PD1 to generate an acceleration data AD2 and an acceleration data AX2. The low pass filter 33 sends the acceleration data AD2 to the Z axis direction acceleration corrector 70 and the correlation coefficient learning section 71, and sends the pitch rate data PD2 to the velocity calculating section 34.
The correlation coefficient learning section 71 calculates the final value of the correlation coefficient K by using the acceleration αz along the Z axis represented by the acceleration data AD2 and the acceleration αx along the X axis represented by the acceleration data AX2 in accordance with equations (6) and (8), and outputs the final value of the correlation coefficient K to the Z axis direction acceleration corrector 70.
The Z axis direction acceleration corrector 70 calculates the true acceleration αz′ along the Z axis by correcting, in accordance with equation (4), the acceleration αz represented by the acceleration data AD2 by using the acceleration αx represented by the acceleration data AX2 and the final value of the correlation coefficient K supplied by the correlation coefficient learning section 71, and sends the acceleration data AD3 representing the true acceleration αz′ along Z axis to the velocity calculating section 34.
The velocity calculating section 34 calculates, in accordance with equation (5), the autonomous velocity V including a small error by using the true acceleration αz′ along the Z axis represented by the acceleration data AD3 supplied by the Z axis direction acceleration corrector 70 and the pitch rate ωy around the Y axis represented by the pitch rate data PD2, and sends the velocity data VD1 representing the autonomous velocity V to the smoother/noise filter 35.
The smoother/noise filter 35 performs smoothing and noise filtering (described above) on the velocity data VD1, which is supplied by the velocity calculating section 34, to generate velocity data VD, and sends the velocity data VD to the velocity output section 36.
The velocity output section 36 sends the velocity data VD, which is supplied by the smoother/noise filter 35 and represents the velocity V of the vehicle, to the position calculator 25.
Thus, even when the PND 50 is in the upward tilt position, the velocity calculator 52 according to the second embodiment can more precisely calculate the autonomous velocity V by using the true acceleration αz′ along the Z axis from which the acceleration αx that is mixed into the acceleration αz has been removed.
As with the first embodiment, in the PND 50 according to the second embodiment and having the structure described above, the three-axis acceleration sensor 4 detects the acceleration αz along the Z axis perpendicular to direction of travel of the vehicle, which is generated due to the undulation of a road surface, and the Y axis gyro sensor 5 detects the pitch rate ωy around the Y axis perpendicular to the direction of travel of the vehicle, which is generated due to the undulation of a road surface.
When the PND 50 is used in the upward tilt position, the PND 50 considers that the acceleration αx along the X axis is mixed into the acceleration αz detected by the three-axis acceleration sensor 4, and learns the degree of mixture as the final value of the correlation coefficient K.
The PND 50 calculates the true acceleration αz′ along the Z axis, from which the acceleration αx along the X axis has been removed, in accordance with equation (4), and calculates the autonomous velocity V that is more precise on the basis of the acceleration αz′ along the Z axis and the pitch rate ωy around the Y axis in accordance with equation (5).
Therefore, as compared with the first embodiment, the PND 50 can calculate the autonomous velocity V that is more precise in that an error generated when the PND 50 is attached to the vehicle in the upward tilt position has been removed.
When the value of the acceleration αx along the X axis is about “0”, noise may become dominant. Therefore, when calculating the autonomous velocity V, the velocity calculator 52 calculates the correlation coefficient K only when the acceleration |αx| is larger than the predetermined threshold TH.
Thus, the PND 50 can eliminate the influence of noise by removing the acceleration αx along the X axis from the acceleration αz along the Z axis when calculating the true acceleration αz′ along the Z axis, whereby the PND 50 can more precisely calculate the autonomous velocity V.
When calculating the Gain by using equation (8), the velocity calculator 52 adjusts the timing for updating the output value of the three-axis acceleration sensor 4, which is used for calculating the autonomous velocity V, in accordance with the reference Gain.
Thus, even when the upward tilt position of the PND 50 is slightly changed (tilt angle is changed), the PND 50 can accurately calculate the autonomous velocity V by using only new data and without being influenced by old data.
With the structure described above, even when the PND 50 according to the second embodiment is in the upward tilt position, the PND 50 can precisely calculate the autonomous velocity V in consideration of an error generated due to the tilt angle of the PND 50.
In the first embodiment described above, the velocity V is calculated using equation (3) on the basis of the maximum and minimum accelerations αz,min and αz,max, which are extracted from the acceleration αz corresponding to the acceleration data AD2, and the maximum and minimum angular velocities ωy,max and ωy,min which are extracted from the pitch rate ωy corresponding to the angular velocity data DD2.
However, the present invention is not limited thereto. The velocity calculating section 34 may calculate the variances of the acceleration αz corresponding to the acceleration data AD2 and the pitch rate ωy corresponding to the pitch rate data PD2, which are supplied by the low pass filter 33, for, for example, a range of 25 data points or 75 data points around the data point Pm corresponding to the previous position P0. Then, the velocity calculating section 34 may calculate the velocity V by dividing the variance of the acceleration αz by the variance of the pitch rate ωy.
Alternatively, the velocity calculating section 34 may calculate the deviations of the acceleration αz corresponding to the acceleration data AD2 and the pitch rate ωy corresponding to the pitch rate data PD2, which are supplied by the low pass filter 33, for, for example, a range of 25 data points or 75 data points around the data point Pm corresponding to the previous position P0. Then, the velocity calculating section 34 may calculate the velocity V by dividing the deviation of the acceleration αz by the deviation of the pitch rate ωy.
In the first and second embodiments described above, the three-axis acceleration sensor 4, the Y axis gyro sensor 5, and the Z axis gyro sensor 6 respectively measure the accelerations αx, αy, αz, the pitch rates ωy, and the yaw rate ωz with a sampling frequency of 50 Hz. However, the present invention is not limited thereto. The three-axis acceleration sensor 4, the Y axis gyro sensor 5, and the Z axis gyro sensor 6 may respectively measure the accelerations αx, αy, αz, the pitch rates ωy, and the yaw rate ωz with a sampling frequency of, for example, 10 Hz instead of 50 Hz.
In the first and second embodiments described above, the velocity V is calculated using the acceleration αz and the pitch rate ωy that are detected with a sampling frequency of 50 Hz. However, the present invention is not limited thereto. The velocity calculators 22 and 52 of the PNDs 1 and 50 may calculate the averages of the acceleration αz and the pitch rate ωy, which are detected with a sampling frequency of 50 Hz, for, for example, every 25 data points, and may calculate the velocity V using the averages of the acceleration αz and the pitch rate ωy.
In this case, the velocity calculators 22 and 52 of the PNDs 1 and 50 calculate the averages of the acceleration αz and pitch rate ωy, which are detected with a sampling frequency of 50 Hz, for, for example, every 25 data points, thereby calculating the velocity V twice per second. Thus, a processing load for the controllers 11 of the PNDs 1 and 50 due to velocity calculation can be reduced.
In the first and second embodiments described above, the high pass filter 32 performs high pass filtering on the acceleration data AD and the pitch rate data PD, which have been detected by the three-axis acceleration sensor 4 and the Y axis gyro sensor 5. However, the present invention is not limited thereto. The PNDs 1 and 50 may not perform high pass filtering on the acceleration data AD and the pitch rate data PD, which have been detected by the three-axis acceleration sensor 4 and the Y axis gyro sensor 5.
In the first and second embodiments, the high pass filter 32 and the low pass filter 33 perform high pass filtering and low pass filtering on the acceleration data AD and the pitch rate data PD, which have been detected by the three-axis acceleration sensor 4 and the Y axis gyro sensor 5. However, the present invention is not limited thereto. The PNDs 1 and 50 may perform, in addition to the high pass filtering and low pass filtering, moving average filtering on the acceleration data AD and the pitch rate data PD. The PNDs 1 and 50 may perform filtering that is an appropriate combination of high pass filtering, low pass filtering, and moving average filtering on the acceleration data AD and the pitch rate data PD.
In the first and second embodiments described above, when calculating, for example, the velocity V at the previous position P0 using the acceleration αz and the pitch rate ωy, if it is determined that the velocity V at the previous position P0 is excessively high, the velocity V at the present position P0 is set at the former velocity Vn-1. However, the present invention is not limited thereto. If the velocity V at the previous position P0 is higher than the former velocity Vn-1 by a predetermined threshold, the velocity calculators 22 and 52 of the PNDs 1 and 50 may set the velocity V at the previous position P0 at a value that equals the former velocity Vn-1 plus a velocity that will be increased by acceleration of the vehicle.
If the velocity V at the previous position P0 is lower than the former velocity Vn-1 by a predetermined threshold, the velocity calculator 22 of the PND 1 may set the velocity at the previous position P0 at a value that equals the former velocity Vn-1 minus a velocity that will be decreased by deceleration of the vehicle.
In the first embodiment described above, the velocity V is calculated on the basis of the acceleration αz and the pitch rate ωy using equation (3).
However, the present invention is not limited thereto. The controller 11 of the PND 1 may compare the velocity V, which is calculated on the basis of the acceleration αz and the pitch rate ωy using equation (3), with the GPS velocity Vg, which is calculated on the basis of GPS signals.
When the velocity V has an error with respect to the GPS velocity Vg, the controller 11 of the PND 1 may calculate, for example, a correction factor for correcting the velocity V by using a linear function or a polynomial function of a second or a higher degree so as to minimize the error, and stores the correction factor in the memory 12.
Therefore, the velocity calculator 22 of the PND 1 may calculate the velocity V on the basis of the acceleration αz and the pitch rate ωy respectively detected by the three-axis acceleration sensor 4 and the Y-axis gyro sensor 5 using equation (3), read the correction factor from the memory 12, and correct the velocity V using the correction factor and a linear function or a polynomial function of a second or a higher degree.
In this case, the PND 1 can more precisely calculate the velocity V by learning beforehand the correction factor for correcting the velocity V on the basis of the GPS velocity Vg calculated on the basis of GPS signals.
When calculating the correction factor used to correct the velocity V with respect to the GPS velocity Vg, the controller 11 of the PND 1 may divide the range of the velocity V into a plurality of velocity regions, such as a super low velocity region, a low velocity region, a medium velocity region, and a high velocity region, and may calculate a correction factor for each of the velocity regions.
When calculating the correction factor used to correct the velocity V with respect to the GPS velocity Vg, the controller 11 of the PND 1 may calculate the correction factor only when the vehicle is traveling at a high velocity that is equal to or higher than a predetermined value, such as 60 km/h.
In the second embodiment described above, the PND 50 calculates the velocity V by removing beforehand an influence that is produced when the PND 50 is used in the upward tilt position in which the PND 50 is tilted in the direction of travel along the X axis and around the Y axis (
In this case, with the PND 50, the Z axis yaw angular velocity (yaw rate) ωz, which is detected by the Z-axis gyro sensor 6, is mixed into the Y axis pitch rate ωy, which is detected by the Y-axis gyro sensor 5.
Thus, with the PND 50, the pitch rate ωy may become overestimated, and an error may be generated in the calculation result of the velocity Vy (the autonomous velocity may be underestimated).
Therefore, the PND 50 learns a correlation coefficient Ky that represents the degree to which the yaw rate ωz around the Z axis is mixed into the pitch rate ωy around the Y axis, and calculates a true pitch rate ωy′ around the Y axis from which the yaw rate ωz around the Z axis is removed beforehand from the pitch rate ωy around the Y axis in accordance with the following equation (9).
ωy′=ωy−Ky·ωz (9)
When the yaw rate ωz around the Z axis is near “0”, slight noise may considerably influence the value of the yaw rate ωz and the noise may become dominant. Therefore, when calculating the autonomous velocity Vy, the PND 50 calculates the correlation coefficient Ky only when the yaw rate |ωz| is larger than a predetermined threshold THy (for example, 1 deg/s).
A velocity calculator (described below) of the PND 50 calculates the correlation coefficient Ky between the pitch rate ωy around the Y axis and the yaw rate ωz around the Z axis by learning, and calculates the true pitch rate ωy′ around the Y axis by removing the yaw rate ωy around the Z axis that is mixed into the pitch rate ωy around the Y axis by using the correlation coefficient Ky.
The velocity calculator calculates the autonomous velocity Vy using the acceleration αz along the Z axis and the true pitch rate ωg′ around the Y axis in accordance with the following equation (10).
When calculating the correlation coefficient Ky beforehand by learning, the velocity calculator calculates a correlation coefficient Kyn calculated on the basis of, for example, the result of the n-th sampling in accordance with the following equation (11).
However, the calculation results of the correlation coefficient Kyn have a large deviation (error) between samples. Therefore, it is difficult to use the correlation coefficient Kyn to correct of the pitch rate ωy around the Y axis (removing the yaw rate ωz around the Z axis that is mixed into the pitch rate ωy around the Y axis) for the next sampling.
Therefore, it is necessary for the velocity calculator to use a large number of correlation coefficients Kyn, each of which including an error, to obtain the final value of the correlation coefficient Ky that has a small error. A simple method, for example, is to obtain the final value of the correlation coefficient Ky by averaging all the correlation coefficient Kn obtained by sampling in a past period.
However, this method has two demerits. One is that it is necessary to prepare a buffer for storing the correlation coefficient Kn in the past period. The other is that the method is inefficient because the method does not consider the fact that the error of the correlation coefficient Kyn is small when the yaw rate |ωz| around the Z axis is considerably larger than “0” (larger than the threshold THy).
Therefore, when calculating the final value of the correlation coefficient K, the velocity calculator uses a correlation coefficient learning section (described below) including an infinite impulse response (IIR) filter, so that it is not necessary for the velocity calculator to have a buffer for storing all the correlation coefficient Kyn in a past period.
The correlation coefficient learning section calculates the final value of the correlation coefficient Ky using the following equation (12).
K
y=(Kyn−Ky)·Gainy+Ky (12)
Thus, the correlation coefficient learning section stores only the correlation coefficient Ky that is the result of the previous learning. In equation (12), Gainy is a predetermined constant.
Instead of using the Gainy as a constant, however, the correlation coefficient learning section changes the value of the Gainy in accordance with the yaw rate |ωz| around the Z axis, so that the correlation coefficient Kyn having a smaller error is weighted and thereby the final value of the correlation coefficient Ky converges faster on an appropriate final value.
To be specific, the correlation coefficient learning section calculates the Gain in equation (12) using the following equation (13)
Description of the meaning of equation (13) is omitted because it is the same as that of equation (8).
The data acquirer 31 of the velocity calculator 92 sends the acceleration data AD representing the acceleration αz, the yaw rate data AZ representing the yaw rate ωz around the Z axis, and the pitch rate data PD representing the pitch rate ωy around the Y axis supplied by the Y-axis gyro sensor 5 to the high pass filter 32.
The high pass filter 32 removes direct-current components (and thereby removes offset components) from the acceleration data AD, the yaw rate data AX, and the pitch rate data PD to generate acceleration data AD1, yaw rate data AZ1, and pitch rate data PD1, and sends the acceleration data AD1, the acceleration data AX1, and the pitch rate data PD1 to the low pass filter 33.
The low pass filter 33 performs the aforementioned low pass filtering on the acceleration data AD1, the yaw rate data AZ1, and the pitch rate data PD1 to generate acceleration data AD2, yaw rate data AZ2, and pitch rate data PD2. The low pass filter 33 sends the acceleration data AD2 to the velocity calculating section 34, and sends the pitch rate data PD2 and the yaw rate data AZ2 to the correlation coefficient learning section 101 and the pitch rate corrector 100.
The correlation coefficient learning section 101 calculates the final value of the correlation coefficient Ky by using the pitch rate ωy around the Y axis represented by the pitch rate data PD2 and the yaw rate ωz around the Z axis represented by the yaw rate data AZ2 in accordance with equations (11) and (13), and outputs the final value of the correlation coefficient Ky to the pitch rate corrector 100.
The pitch rate corrector 100 calculates the true pitch rate ωy′ around the Y axis by correcting, in accordance with equation (9), the pitch rate ωy around the Y axis represented by the pitch rate data PD2 by using the yaw rate ωz represented by yaw rate data AZ2 and the final value of the correlation coefficient Ky supplied by the correlation coefficient learning section 101, and sends pitch rate data PD3 representing the true pitch rate ωy′ to the velocity calculating section 34.
The velocity calculating section 34 calculates, in accordance with equation (10), the autonomous velocity Vy including a small error by using the true pitch rate ωy′ around the Y axis represented by the acceleration data PD3 supplied by the pitch rate corrector 100 and the acceleration αz along the Z axis represented by the acceleration data AD2, and sends the velocity data VD2 representing the autonomous velocity Vy to the smoother/noise filter 35.
The smoother/noise filter 35 performs smoothing and noise filtering (described above) on the velocity data VD2, which is supplied by the velocity calculating section 34, to generate velocity data VD, and sends the velocity data VD to the velocity output section 36.
The velocity output section 36 sends the velocity data VD, which is supplied by the smoother/noise filter 35 and represents the autonomous velocity Vy of the vehicle, to the position calculator 25.
Thus, even when the PND 50 is in the tilt position tilted in a roll direction, the velocity calculator 92 can more precisely calculate the autonomous velocity Vy by using the true pitch rate ωy′ around the Y axis from which the yaw rate ωz that is mixed into the pitch rate ωy around the Y axis has been removed.
The PND 50 may remove beforehand the influence when the PND 50 is used in an upward tilt position and the influence when the PND 50 is used in a position tilted with respect to a roll direction (a rightward tilt position or a leftward tilt position) and calculate the autonomous velocity V.
In the first and second embodiments described above, the PNDs 1 and 50 perform navigation while the PNDs 1 and 50 are supplied with electric power. However, the present invention is not limited thereto. When the power button (not shown) is pressed and the PNDs 1 and 50 are powered off, the PNDs 1 and 50 may store, in the memory 12, the present position, the height, and the like at the moment when the power button is pressed. When the power button is pressed again and the PNDs 1 and 50 are powered on, the PNDs 1 and 50 may read the present position, the height, and the like from the memory 12, and may perform navigation on the basis of the present position, the height, and the like in accordance with the process of calculating the present position.
In the first and second embodiments described above, the PNDs 1 and 50 calculate the velocity V while the PNDs 1 and 50 are supported on the cradle 3 placed on the dashboard of the vehicle. However, the present invention is not limited thereto. When it is detected that the PNDs 1 and 50 are mechanically or electrically disconnected from the cradle 3, the velocity V may be set at 0 or maintained at the former velocity Vn-1.
In the first and second embodiments described above, the PNDs 1 and 50 are used in a landscape position. However, the present invention is not limited thereto. As illustrated in
In the first and second embodiments described above, the three-axis acceleration sensor 4, the Y axis gyro sensor 5, the Z axis gyro sensor 6, and the barometric pressure sensor 7 are disposed inside the PNDs 1 and 50. However, the present invention is not limited thereto. The three-axis acceleration sensor 4, the Y axis gyro sensor 5, the Z axis gyro sensor 6, and the barometric pressure sensor 7 may be disposed outside the PNDs 1 and 50.
The PNDs 1 and 50 may include an adjustment mechanism disposed on a side thereof so that a user can adjust the attachment angles of the three-axis acceleration sensor 4, the Y axis gyro sensor 5, the Z axis gyro sensor 6, and the barometric pressure sensor 7.
In this case, the PNDs 1 and 50 allow a user to adjust the adjustment mechanism so that, for example, the rotation axis of the Y axis gyro sensor 5 is aligned in the vertical direction with respect to the vehicle even when the display 2 is not substantially perpendicular to the direction of travel of the vehicle.
In the first and second embodiments described above, the velocity V is determined as excessively high if the pitch rate ωy corresponding to the pitch rate data PD2 is lower than a predetermined threshold and if the acceleration αz corresponding to the acceleration data AD2 and the pitch rate ωy corresponding to the pitch rate data PD2 are higher than predetermined thresholds. However, the present invention is not limited thereto. The controllers 11 may determine that the velocity V is excessively high if the velocity V calculated by the velocity calculating section 34 is higher than the former velocity Vn-1 by a predetermined value.
In this case, the smoother/noise filter 35 may set the velocity V at 0 when the velocity V calculated by the velocity calculating section 34 is higher than the former velocity Vn-1 by a predetermined value and when the former velocity is at a low velocity lower than, for example, 10 km/h. The smoother/noise filter 35 may set the velocity V at the former velocity Vn-1 when the velocity V calculated by the velocity calculating section 34 is higher than the former velocity Vn-1 by a predetermined value and the former velocity is equal to or higher than, for example, 10 km/h.
In the first and second embodiments described above, the controllers 11 of the PNDs 1 and 50 performs the process of calculating the present position of the routine RT1 and the like in accordance with application programs stored in the memory 12. However, the present invention is not limited thereto. The controllers 11 of the PNDs 1 and 50 may perform the process of calculating the present position in accordance with application programs that are installed from storage media, downloaded from the Internet, or installed by using other methods.
In the embodiments described above, the PNDs 1 and 50, each of which corresponds to a velocity calculating device according to the present invention, includes the three-axis acceleration sensor 4 corresponding to a vertical acceleration detector, the Y-axis gyro sensor 5 corresponding to a horizontal angular velocity detector, the correlation coefficient learning section 71 corresponding to a correlation coefficient learning section, the Z axis direction acceleration corrector 70 corresponding to a true vertical acceleration detector, and the velocity calculating section 34 corresponding to a velocity calculator. However, the present invention is not limited thereto. A velocity calculating device according to the present invention may include a vertical acceleration detector, a horizontal angular velocity detector, a correlation coefficient learning section, a true vertical acceleration detector, and a velocity calculator, which have different structures.
The present application contains subject matter related to that disclosed in Japanese Priority Patent Application JP 2009-213447 filed in the Japan Patent Office on Sep. 15, 2009, the entire content of which is hereby incorporated by reference.
It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
2009-213447 | Sep 2009 | JP | national |