Automatic pitch mounting compensation in an automatic steering system
11167743 · 2021-11-09
Assignee
Inventors
Cpc classification
B60W10/22
PERFORMING OPERATIONS; TRANSPORTING
G05D1/027
PHYSICS
B60W2420/905
PERFORMING OPERATIONS; TRANSPORTING
International classification
B60W10/22
PERFORMING OPERATIONS; TRANSPORTING
G01C25/00
PHYSICS
Abstract
A calibration system calibrates inertial sensor readings on a vehicle. The calibration system estimates an attitude of the ground from a series of height and position measurements and reads an attitude from an inertial sensor subsystem attached to the vehicle. The calibration system then calculates an attitude offset between the vehicle and inertial sensor subsystem based on a difference between the estimated attitude of the ground and the attitude reading of the inertial sensor subsystem. The calibration system may estimate a slope of the ground from a 3-dimensional terrain map. The slope of the ground is converted into an estimated roll and/or pitch of the vehicle which is then compared with the roll and pitch readings from the inertial sensor subsystem to determine the attitude offset.
Claims
1. A system for calibrating sensor readings for a vehicle having a plurality of sensor subsystems separately attached thereto, the system comprising: a hardware processor to: estimate an attitude of sloping terrain from a series of height and position measurements that are based on data collected from a first sensor subsystem of the plurality of separately-attached sensor subsystems; estimate an attitude of a second different sensor subsystem of the plurality of separately-attached sensor subsystems, wherein the second sensor subsystem includes an inertial sensor subsystem attached to the vehicle at a different location than the first sensor subsystem; wherein the first sensor subsystem includes a receiver of a global navigation satellite system (GNSS), wherein the hardware processor is further configured to: estimate the attitude of the sloping terrain from altitudes measured with the GNSS; estimate the attitude of the inertial sensor subsystem with roll and pitch measurements from the inertial sensor subsystem; calculate an attitude offset between the vehicle and the inertial sensor subsystem based on a difference between the estimated attitude of the sloping terrain and the estimated attitude of the inertial sensor subsystem; and generate steering commands using position data generated using the first sensor subsystem and attitude data generated using the inertial sensor subsystem and the calculated attitude offset, wherein the steering commands are arranged to control a steering control unit of the vehicle to auto-steer the vehicle.
2. The calibration system of claim 1, wherein the hardware processor is further configured to: measure an altitude of the sloping terrain at a current location of the vehicle; measure a distance from a previous location of the vehicle; estimate a slope of the sloping terrain from the altitude and distance; convert the slope of the sloping terrain into an estimated roll or pitch of the vehicle; and use the estimated roll or pitch of the vehicle as the attitude of the vehicle.
3. The calibration system of claim 1, wherein the hardware processor is further configured to: calculate attitude offsets between the vehicle and inertial sensor subsystem for different positions of the vehicle; estimate a mean for the attitude offsets; identify changes in the mean; and update the attitude offset based on detected changes in the mean.
4. The calibration system of claim 1, wherein the hardware processor is further configured to calculate a pitch θ.sub.g of the sloping terrain from the least squares straight line fit of a height profile, where:
5. The calibration system of claim 1, wherein the hardware processor is further configured to: monitor a time history of differences between a pitch θ.sub.g of the sloping terrain and a θ.sub.h pitch from the inertial sensor subsystem; estimate a mean difference between θ.sub.g and θ.sub.h; and adjust a pitch bias of the inertial sensor subsystem based on a change in the mean difference.
6. The system of claim 1, wherein the second sensor subsystem is mounted onto a steering wheel or steering column of the vehicle, wherein the steering wheel or steering column has an adjustable rake angle, and wherein the first sensor subsystem is mounted on the vehicle remote from the steering wheel or steering column.
7. The calibration system of claim 1, wherein the hardware processor is further configured to: determine altitudes and associated positions of the vehicle; add the altitudes and associated positions to a height profile; and use the height profile to estimate the attitude of the sloping terrain.
8. The calibration system of claim 7, wherein the hardware processor is further configured to: fit a curve to the height profile around a current position of the vehicle; estimate a pitch of the sloping terrain from a slope of the fitted curve; and estimate a pitch bias of the inertial sensor subsystem based on a difference between the estimated pitch of the sloping terrain and a pitch measurement from the inertial sensor subsystem.
9. The calibration system of claim 1, wherein the hardware processor is further configured to: generate a height map of the sloping terrain by measuring altitudes at different geographic locations; calculate a partial derivative of the height map to generate roll and pitch angles; and calculate the attitude of the sloping terrain from the roll and pitch angles.
10. The calibration system of claim 9, wherein the hardware processor is further configured to: calculate roll ϕ.sub.g and pitch θ.sub.g angles of the sloping terrain using:
11. A memory storing a computer program for estimating a calibration bias for an inertial sensor in a vehicle having a plurality of sensor separately attached thereto, wherein the inertial sensor comprises a first sensor of the plurality of separately-attached sensors, the computer program comprising a set of instructions operable to: estimate an axis of the vehicle from a series of height and position measurements that are based on data supplied from a second sensor of the plurality of separately-attached sensors, wherein the second sensor is attached to the vehicle at a different location than the first sensor; wherein the second sensor includes a receiver of a global navigation satellite system (GNSS), and wherein the instructions are further operable to: estimate the axis of the vehicle from altitudes measured with the GNSS; estimate the axis of the inertial sensor from roll and pitch readings from the inertial sensor; calculate an offset between the axis of the vehicle and the axis of the inertial sensor; and calibrate the inertial sensor based on the offset.
12. The memory of claim 11, wherein the instructions are further operable to estimate the axis of the sloping terrain from a terrain map.
13. The memory of claim 11, wherein: the axis of the vehicle includes at one of a roll, pitch, or yaw angle of the vehicle; and the axis of the inertial sensor includes at least one of a roll, pitch, or yaw angle of the inertial sensor.
14. The memory of claim 11, wherein the instructions are further operable to: measure an altitude; calculate a slope from the altitude and a distance from a previous measurement; convert the slope into at least one of an estimated roll or pitch of the vehicle; and use the at least one estimated roll or pitch of the vehicle as the axis of the vehicle.
15. The memory of claim 11, wherein the instructions are further operable to: calculate offsets between the axis of the vehicle and the axis of the inertial sensor for different positions of the vehicle; estimate a mean for the offsets; and update the calibrated offset of the inertial sensor based on a change in the mean.
16. The memory of claim 11, wherein a mounting location on which the first sensor is attached to the vehicle is movable with respect to a chassis or body of the vehicle, and wherein a mounting location on which the second sensor is attached is non-movable with respect to the chassis of the body of the vehicle.
17. The memory of claim 11, wherein the instructions are further operable to: receive a current altitude measurement for a current position of the vehicle; calculate a displacement distance from a previous position of the vehicle; add the displacement distance and current altitude measurement to a height profile; and use the height profile to calculate the axis of the vehicle.
18. The memory of claim 17, wherein the instructions are further operable to: fit a curve to the height profile around the current position of the vehicle; estimate a pitch of the sloping terrain from a slope of the fitted curve; and estimate a pitch bias of the inertial sensor based on a difference between the estimated pitch of the sloping terrain and a pitch measurement from the inertial sensor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The included drawings are for illustrative purposes and serve to provide examples of possible structures and operations for the disclosed inventive systems, apparatus, methods and computer-readable storage media. These drawings in no way limit any changes in form and detail that may be made by one skilled in the art without departing from the spirit and scope of the disclosed implementations.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12) A steering control system automatically estimates and compensates for a relative attitude offset between a vehicle chassis or body and a steering system inertial sensor subsystem. The steering system automatically re-calibrates the mounting offsets during normal vehicle operation without user intervention. This is particularly useful with steering control units mounted on steering wheels or columns, where a user can freely adjust the steering column rake angle on the fly.
(13)
(14) An inertial sensor subsystem 108 may include any combination of gyroscopes and accelerometers that are usually mounted at a second location on vehicle 102 different from the first location of GNSS subsystem 106. Inertial sensor subsystem 108 is typically mounted to vehicle 102 with an unknown and/or variable pitch mounting offset relative to the orientation of vehicle 102.
(15) A steering control unit 118 may include one or more processors coupled to both GNSS subsystem 106 and inertial subsystem 108. Steering control unit 118 uses position data received from GNSS subsystem 106 and attitude data received from inertial sensor subsystem 108 to steer reference point 114 on vehicle 102 along a desired path over ground surface 116. In one embodiment, inertial sensor subsystem 108 is located in steering control unit 118 and mounted to vehicle 102 at a fixed position and orientation. In another embodiment, inertial sensor subsystem 108 is located in steering control unit 108 and mounted to a steering column of vehicle 102 which has an adjustable rake angle.
(16) Control unit 118 needs to know the attitude of vehicle body axis 112 in order to accurately project the GNSS position measured by GNSS subsystem 106 down to reference point 114. In order to accurately project the position of GNSS subsystem 106 down to control point 114, control unit 118 calculates the attitude mounting offset between inertial axis 110 of inertial sensor subsystem 108 and vehicle body axis 112 of vehicle 102.
(17)
(18) Control unit 118 automatically calibrates inertial sensor subsystem 108 for inertial sensor mounting attitude offsets without an operator having to manually measure or manually run specific calibration steps. Control unit 118 estimates the inertial mounting offset of inertial sensor subsystem 108 any time its position or orientation is changed, such as during vehicle use or at time of installation.
(19)
(20) Referring now to
(21) Second map 136 includes an x-axis that corresponds to distance (d) and a y-axis that corresponds to height or altitude (h). Control unit 118 generates a one-dimensional terrain profile 136 by calculating distances 134 between the locations of each altitude measurement 128. Control unit 118 measures the slope of curve 138 by calculating changes in height 128 vs. changes in associated distances 134. Control unit 118 uses the slope of curve 138 to estimate the attitude of vehicle 102.
(22)
(23) Control unit 118 uses the slope of curve 138 in
(24) Control unit 118 in operation 140A uses the GNSS positional measurements to generate the height map of the local terrain as shown above in
h.sub.i=h(x.sub.i,y.sub.i),
where h.sub.i is the height at the position coordinates (x.sub.i, y.sub.i) and h(⋅, ⋅) of the terrain model. There are numerous methods known to those skilled in the art for estimating the terrain model h(⋅, ⋅) from a dataset of GNSS measurements. It is assumed that an appropriate method has been used and that the terrain model is available for the rest of the process.
(25) The partial derivative of the height map
(26)
is then evaluated and transformed to be aligned with the vehicle heading. The ground slopes aligned with the vehicle are converted into roll ϕ.sub.g and pitch θ.sub.g angles of the ground using:
(27)
(28) where
(29)
are the partial derivative of the height map calculated or estimated around the current vehicle location and ψ is the vehicle body heading.
(30) Operation 140B uses the inertial sensors, or a fusion process of the inertial sensors and other sensors, to estimate the attitude of the inertial sensor subsystem 108 (ϕ.sub.h, θ.sub.h) or of vehicle 102 (ϕ, θ) if the inertial mounting biases (ϕ.sub.b, θ.sub.b) are assumed to be known.
(31) Operation 140C detects the mounting biases, and determines how the mounting biases need to be changed if the current mounting biases are wrong. This depends on whether or not the attitude of inertial sensor subsystem 108 is used in operation 140B or if the estimated vehicle attitude (corrected with a set of mounting biases) is used.
(32) In either case, control unit 118 may low pass filter the difference between the estimated attitude and the ground attitude to measure the mean and remove any transient effects. If this mean value is significantly different from current mounting biases, the mounting biases can be updated to this new mean value. In the case when the vehicle attitude is used, when the mean shifts significantly from zero, the current mounting biases of inertial sensor subsystem 108 can be incremented by the mean.
(33) The general method may generate a fairly accurate terrain map so that the roll bias can be accurately estimated. The accuracy of the roll bias may have a large effect on the ground cross track error, especially traversing pass to pass or traversing on the same control path but when vehicle 102 is driven in the opposite direction. To estimate the roll from the terrain, the terrain on the sides of vehicle 102 should already be mapped. One example simplified process for estimating the pitch bias is described below in
(34) Operation 140A can be modified so the GNSS positional measurements are parameterized into a 1-dimensional height profile along the direction of travel. This reduction allows the pitch bias to be identified in a more computational efficient way without the need of mapping the terrain height profile in 2-dimensions.
(35) Let the height profile be a function such that:
h.sub.i=h(d.sub.i)
where h.sub.i is the height at displacement distance d.sub.i and h(⋅) the height profile function or set. To convert GNSS positional measurements P.sub.k.sup.n into this parameterized form, the following mapping may be used. The displacement between GNSS samples is calculated using:
Δd.sub.k=α√{square root over ((P.sub.x.sub.
where Δd.sub.k is the change in the parameterized distance for GNSS measurement k, (P.sub.x, P.sub.y).sub.k.sup.n are the x and y positional components for GNSS measurement k, are the x (P.sub.x, P.sub.y).sub.k-1.sup.n and y positional components for the previous GNSS measurement k−1, and α is a direction scaling factor that is α=1 if traveling forward (V>0) or α=−1 if traveling in reverse (V<0).
(36) The current displacement distance d.sub.k is obtained by accumulating all the displacement differences for the previous measurements.
(37)
(38) The change distance Δd.sub.k is approximated from the velocity for a smooth profile, such that:
Δd.sub.k=(t.sub.k−t.sub.k-1)V,
where t.sub.k is the time of the current GNSS measurement, t.sub.k-1 is the time of the previous GNSS measurement, and V is the signed forward speed of the vehicle. The altitude measurement h.sub.k is taken from the z component of the GNSS positional measurement P.sub.k.sup.n, which is paired with the displacement to form the height profile data point (d.sub.k, h.sub.k).
(39) The slope of terrain 116 around the current vehicle position may be estimated from this dataset. Control unit 118 may fit a mathematical feature, such as a first order polynomial, to the data set and the first derivative evaluated around the current point of interest (current location 114 of vehicle 102).
(40) A discrete implementation of this evaluates:
(41)
where n is the smallest number (to keep the region of interest around the local position) which satisfies n>2 and n>w, where w is the wheel base of vehicle 102 to help account for the length of the vehicle.
(42) Control unit 118 may extract the slope and hence ground pitch θ.sub.g from the least squares straight line fit using:
(43)
(44) Operation 140B is unmodified from before, however it is only the pitch attitude that is considered rather than both the roll and pitch.
(45) Control unit 118 in operation 140C may monitor a time history of the difference between the ground pitch θ.sub.g and inertial sensor pitch θ.sub.h (or vehicle pitch θ=θ.sub.h−θ.sub.b). Control unit 118 may filter this difference to estimate the mean and when there is a detectable change in mean, adjust the pitch bias to the identified value.
(46) If the difference between ground and inertial pitch is monitored γ=θ.sub.h−θ.sub.g, then when the low pass filtered value
(47) Control unit 118 may monitor the difference between the ground and vehicle pitch, γ=θ−θ.sub.g where θ=θ.sub.h−θ.sub.b. When the low pass filtered value
(48)
(49) In operation 150A, control unit 118 incorporates new GNSS measurements into a terrain model. As explained above, the terrain model is alternatively referred to as a terrain map or terrain profile and may be data stored in computer memory that identifies GNSS measured altitudes for associated longitude and latitude positions. In operation 150B, control unit 118 calculates a slope of the terrain model at a current location. As explained above, control unit 118 may calculate a changes in distance vs. a change in altitude from a previously measured location to calculate the slope.
(50) In operation 150C, control unit 118 converts the calculated terrain slope into a vehicle body roll and pitch. For example, control unit 118 calculates the partial derivative of the height map to convert the terrain slope into the vehicle roll and pitch angles. In operation 150D, control unit 118 measures the roll and pitch from the internal sensor subsystem 108. For example, control unit 118 reads the roll and pitch attitude measurements from inertial sensor subsystem 108.
(51) In operation 150E, control unit 118 estimates the mounting biases of inertial sensor subsystem 108. For example, control unit 118 calculates the differences of the calculated terrain/vehicle roll and pitch compared with the measured roll and pitch from inertial sensor subsystem 108 to determine the mounting biases between inertial sensor subsystem 108 and vehicle 102.
(52) In operation 150F, control unit 118 may filter the calculated mounting biases to estimate a mean mounting bias. Any filtering method that smoothes the time history while maintaining the relevant mean profile may be used. A simple first order low pass filter can be implemented
(53)
(54) In operation 160C, control unit 118 accumulates a total displacement from the previous measurement point and pairs the accumulated total distance with a current height measurement. In operation 160D, control unit 118 adds the distance-height pair into a height profile set as shown above in
(55) In operation 160E, control unit 118 uses a fit curve feature at a current displacement position in the height profile as discussed above. In operation 160F, control unit 118 estimates the terrain pitch from the slope of the fitted curve. In operation 160G, control unit measures the vehicle pitch from inertial sensor subsystem 108. In operation 160H, control unit 118 estimates the pitch bias as the difference between the calculated terrain pitch and the measured inertial sensor subsystem pitch.
(56) In operation 160I, control unit 118 filters the calculated pitch bias to estimate a mean pitch bias. If the mean pitch bias has changed by some threshold amount in operation 160J, control unit 118 in operation 160K updates the pitch bias to the latest calculated mean pitch bias.
Computer, Software, and Sensor Systems
(57) A Global navigation satellite system (GNSS) is broadly defined to include GPS (U.S.) Galileo (European Union, proposed) GLONASS (Russia), Beidou (China) Compass (China, proposed) IRNSS (India, proposed), QZSS (Japan, proposed) and other current and future positioning technology using signal from satellites, with or with augmentation from terrestrial sources.
(58) IMUs may include gyroscopic (gyro) sensors, accelerometers and similar technologies for providing outputs corresponding to the inertial of moving components in all axes, i.e., through six degrees of freedom (positive and negative directions along transverse X, longitudinal Y and vertical Z axes). Yaw, pitch and roll refer to moving component rotation about the Z, X, and Y axes respectively. Said terminology will include the words specifically mentioned, derivative thereof and words of similar meaning.
(59)
(60)
(61) Guidance processor 6 includes a graphical user interface (GUI) 26, a microprocessor 24, and a media element 22, such as a memory storage drive. Guidance processor 6 electrically communicates with, and provides control data to steering controller 166. Steering controller 166 includes a wheel movement detection switch 28 and an encoder 30 for interpreting guidance and steering commands from CPU 6.
(62) Steering controller 166 may interface mechanically with the vehicle's steering column 34, which is mechanically attached to steering wheel 32. A control line 42 may transmit guidance data from CPU 6 to steering controller 166. An electrical subsystem 44, which powers the electrical needs of vehicle 102, may interface directly with steering controller 166 through a power cable 46. Steering controller 166 can be mounted to steering column 34 near the floor of the vehicle, and in proximity to the vehicle's control pedals 36. Alternatively, steering controller 166 can be mounted at other locations along steering column 34.
(63) As explained above, some auto-steering systems 100 may include an inertial sensor subsystem 108 that attaches to steering column 34. Of course, inertial sensor subsystem 108 may be attached to any location in vehicle 102.
(64) Steering controller 166 physically drives and steers vehicle 102 by actively turning the steering wheel 32 via steering column 34. A motor 45 powered by vehicle electrical subsystem 44 may power a worm drive which powers a worm gear 48 affixed to steering controller 166. These components are preferably enclosed in an enclosure. In other embodiments, steering controller 166 is integrated directly into the vehicle drive control system independently of steering column 34.
Example Computing System
(65) The diagram below shows a computing device 1000 used for operating the control unit 118 that includes guidance processor 6 discussed above. The computing device 1000 may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. In other examples, computing device 1000 may be a personal computer (PC), a tablet, a Personal Digital Assistant (PDA), a cellular telephone, a smart phone, a web appliance, or any other machine or device capable of executing instructions 1006 (sequential or otherwise) that specify actions to be taken by that machine.
(66) While only a single computing device 1000 is shown, the computing device 1000 may include any collection of devices or circuitry that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the operations discussed above. Computing device 1000 may be part of an integrated control system or system manager, or may be provided as a portable electronic device configured to interface with a networked system either locally or remotely via wireless transmission.
(67) Processors 1004 may comprise a central processing unit (CPU), a graphics processing unit (GPU), programmable logic devices, dedicated processor systems, micro controllers, or microprocessors that may perform some or all of the operations described above. Processors 1004 may also include, but may not be limited to, an analog processor, a digital processor, a microprocessor, multi-core processor, processor array, network processor, etc.
(68) Some of the operations described above may be implemented in software and other operations may be implemented in hardware. One or more of the operations, processes, or methods described herein may be performed by an apparatus, device, or system similar to those as described herein and with reference to the illustrated figures.
(69) Processors 1004 may execute instructions or “code” 1006 stored in any one of memories 1008, 1010, or 1020. The memories may store data as well. Instructions 1006 and data can also be transmitted or received over a network 1014 via a network interface device 1012 utilizing any one of a number of well-known transfer protocols.
(70) Memories 1008, 1010, and 1020 may be integrated together with processing device 1000, for example RAM or FLASH memory disposed within an integrated circuit microprocessor or the like. In other examples, the memory may comprise an independent device, such as an external disk drive, storage array, or any other storage devices used in database systems. The memory and processing devices may be operatively coupled together, or in communication with each other, for example by an I/O port, network connection, etc. such that the processing device may read a file stored on the memory.
(71) Some memory may be “read only” by design (ROM) by virtue of permission settings, or not. Other examples of memory may include, but may be not limited to, WORM, EPROM, EEPROM, FLASH, etc. which may be implemented in solid state semiconductor devices. Other memories may comprise moving parts, such a conventional rotating disk drive. All such memories may be “machine-readable” in that they may be readable by a processing device.
(72) “Computer-readable storage medium” (or alternatively, “machine-readable storage medium”) may include all of the foregoing types of memory, as well as new technologies that may arise in the future, as long as they may be capable of storing digital information in the nature of a computer program or other data, at least temporarily, in such a manner that the stored information may be “read” by an appropriate processing device. The term “computer-readable” may not be limited to the historical usage of “computer” to imply a complete mainframe, mini-computer, desktop, wireless device, or even a laptop computer. Rather, “computer-readable” may comprise storage medium that may be readable by a processor, processing device, or any computing system. Such media may be any available media that may be locally and/or remotely accessible by a computer or processor, and may include volatile and non-volatile media, and removable and non-removable media.
(73) Computing device 1000 can further include a video display 1016, such as a liquid crystal display (LCD), light emitting diode (LED), organic light emitting diode (OLED), or a cathode ray tube (CRT) and a user interface 1018, such as a keyboard, mouse, touch screen, etc. All of the components of computing device 1000 may be connected together via a bus 1002 and/or network.
(74) The system described above can use dedicated processor systems, micro controllers, programmable logic devices, or microprocessors that perform some or all of the operations. Some of the operations described above may be implemented in software, such as computer readable instructions contained on a storage media, or the same or other operations may be implemented in hardware.
(75) For the sake of convenience, the operations are described as various interconnected functional blocks or distinct software modules. This is not necessary, however, and there may be cases where these functional blocks or modules are equivalently aggregated into a single logic device, program or operation with unclear boundaries. In any event, the functional blocks and software modules or features of the flexible interface can be implemented by themselves, or in combination with other operations in either hardware or software.
(76) References above have been made in detail to preferred embodiment. Examples of the preferred embodiments were illustrated in the referenced drawings. While preferred embodiments where described, it should be understood that this is not intended to limit the invention to one preferred embodiment. To the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims.
(77) Having described and illustrated the principles of the invention in a preferred embodiment thereof, it should be apparent that the invention may be modified in arrangement and detail without departing from such principles. Claim is made to all modifications and variation coming within the spirit and scope of the following claims.