Patent Description:
Vehicles and in particular autonomous or self-driving vehicles utilize orientation sensors (sometimes referred to as inertial measurement units or IMUs) to determine the orientation (i.e., roll, pitch, yaw) of the vehicle. For example, in an orientation sensor may include one or more of an accelerometer, gyroscope and magnetometer to determine and maintain the orientation of the vehicle. Orientation of the vehicle may be utilized by a number of vehicle systems, including vehicle locating systems and object detection systems. For example, in some embodiments orientation information is utilized to provide dead-reckoning estimates of vehicle location in the event satellite-based locating systems are unavailable. In addition, the orientation of the vehicle may be utilized in combination with one or more object sensors (e.g., radar-based sensors, LiDAR-based sensors, laser-sensors, etc.) to determine the location of objects relative to the vehicle.

Over time, orientation sensors may accumulate errors. As the magnitude of these errors increases, it may have a detrimental effect on the systems utilizing the orientation information. In some embodiments, orientation errors (at least with respect to the vertical axis) may be corrected based on input provided by a secondary sensor, such as an inclinometer. However, the addition of another sensor increases the cost and decreases the reliability associated with the vehicle. It would be beneficial to develop a system and method of correcting orientation errors without requiring additional dedicated sensors.

Publication <CIT> discloses a system for aligning an inertial measurement unit (IMU) of a vehicle. The system includes a sensor device configured to provide sensor data associated with an environment of the vehicle. The system further includes a sensor data processing module configured to process the sensor data to determine a ground plane and a vertical plane in the environment of the vehicle. The system further includes a correction module configured to determine at least one of a pitch and a roll alignment value based on the ground plane and the vertical plane.

According to one aspect, an orientation system is described that includes an orientation sensor configured to generate orientation data, a distance sensor, and a vehicle processing unit. The distance sensor is configured to measure relative distances to objects external to the vehicle. The vehicle processing unit is configured to receive the orientation data from the orientation sensor and the relative distance data from the distance sensor, wherein the vehicle processing unit detects orientation errors based on the relative distance data. The vehicle processing unit is configured to detect planar surfaces based on the received relative distance data and to define one or more axes associated with the detected planar surface. The vehicle processing unit compares an orientation axis derived from the orientation data to the one or more axes associated with the detected planar surface. Further, the vehicle processing unit generates orientation feedback in response to a variance between the compared axes being less than a threshold value.

According to another aspect, a method of correcting orientation errors accumulated in an orientation sensor includes receiving orientation data defining an orientation of a vehicle along one or more orientation axes. The method further includes receiving relative distance data from a distance sensor, wherein the relative distance data is comprised of relative distances measured to external objects. Planar surfaces are detected in the received relative distance data and one or more surface axes associated with the detected planar surfaces, wherein detecting planar surfaces includes detecting variances in the planar surface and discarding detected planar surfaces having variances greater than a second threshold, and a variance is calculated between the orientation axes and the planar axes. One or more of the orientation axes is corrected in response to the calculated variance being less than a threshold value.

Orientation sensors are employed on vehicles to provide on-board systems with information regarding the orientation of the vehicle. Over time these systems may accumulate errors, which degrades the overall performance of the vehicle. According to some aspects of the present disclosure, relative distance data received from one or more distance sensors are utilized to correct errors accumulated in the orientation sensors. More particularly, the relative distance data is analyzed to detect planar surfaces (e.g., sides of building, signposts, etc.). For those planar surfaces aligned approximately with an orientation axis of the vehicle, an assumption is made that these surfaces are aligned with a vehicle axis. For example, a building located adjacent the vehicle is likely to have a planar surface approximately vertical relative to the ground. A vertical axis defined by the side of the building is likely to be aligned with a vertical axis of the vehicle adjacent the building. Differences between the vertical axis (or horizontal axis) defined by the planar surface and the orientation axis provided by the orientation sensor are determined to represent an error in the orientation data. In response to the detected variance or difference between the respective axes, an adjustment or correction is provided to modify the orientation of the orientation sensor to correct the error. Although the assumption that the axis defined by the planar surface is correctly aligned with a vehicle axis is clearly incorrect on a case-by-case basis (e.g., side of building, signpost, etc. is offset from vertical slightly), the error or variance in the axis defined by the planar surface relative to the vehicle is gaussian. That is, it is just as likely that the building or signpost is offset from vertical in one direction as it is to be in an opposite direction. As a result, accumulating corrections over time and a plurality of planar surfaces will cause the orientation to be corrected toward an approximately correct value. In this way, distance sensors commonly employed on vehicle systems may be employed to prevent the accumulation of orientation errors in the corresponding orientation sensors.

<FIG> is a block diagram of the various sensors - including distance sensors <NUM> and orientation sensors <NUM> - configured to communicate with a vehicle processing unit <NUM>. Orientation sensor <NUM> includes one or more of an accelerometer, gyroscope, magnetometer, and/or other sensors utilized to measure and determine the orientation of the vehicle. Vehicle processing unit <NUM> utilizes orientation data in a number of applications, such as determining a heading of the vehicle, interpreting objects detected by the one or more distance sensors <NUM>, and/or determining a position of the vehicle. As discussed above, orientation sensor <NUM> may accumulate errors over time that if left unchecked may result in erroneous orientation estimates provided to the vehicle processing unit <NUM>.

The one or more distance sensors <NUM> are utilized to measure the relative distances to objects located external to the vehicle. The one or more distance sensors <NUM> may include one or more of laser distance and ranging (LiDAR) sensors, cameras or visions-based sensors, proximity sensors, laser sensors, radar sensors, acoustic sensors, and others. In some embodiments, each of the distance sensors <NUM> collects a plurality of points - sometimes referred to as a point cloud - wherein each point in the point cloud described the distance of the point from the sensor. Subsequent analysis of the point cloud by a vehicle processing unit <NUM> (or by the sensor itself) allows the points to be clustered into surfaces representing objects located adjacent to the vehicle <NUM>. According to some embodiments, assumptions about the surfaces detected by the distance sensors <NUM> are utilized to correct errors in the orientation sensor <NUM>. In the embodiment shown in <FIG>, vehicle processing unit <NUM> detects the errors and provides orientation feedback to orientation sensor <NUM> to correct the detected errors. In other embodiments, no feedback is required, but vehicle processing unit <NUM> modifies orientation data provided by the orientation sensor <NUM> to correct the detected errors.

With respect to <FIG> and <FIG>, a top view and side view of a vehicle <NUM> is illustrated that includes a plurality of distance sensors 102a-102d. <FIG> illustrates assumptions relied on to correct the vertical axis of the orientation sensor and <FIG> illustrates assumptions relied upon to correct a horizontal axis of the orientation sensor. The orientation of the vehicle is represented by rotation about three principal axes labeled here x, y, and z (referred to as the vehicle orientation). For the purposes of discussion, the z-axis is oriented vertically, the x-axis is oriented longitudinally along a length of the vehicle <NUM>, and the y-axis is oriented laterally along a width of the vehicle <NUM>. The orientation sensor <NUM> (shown in <FIG>) is configured to measure the orientation of the vehicle <NUM>, and to provide orientation data to the vehicle processing unit <NUM> (also shown in <FIG>). The one or more distance sensors 102a-102d are located at various locations around the vehicle and configured to detect objects located adjacent or external to the vehicle <NUM>.

<FIG> is a side view of the vehicle <NUM> that illustrates detection of a vertically aligned object by the distance sensor 102b. In particular, the sensor 102b measures relative distances between the sensor 102b and objects located within the field of view of the sensor 102b. The collection of relative distances are analyzed to detect surfaces, such as the surfaces associated with stop sign <NUM> and signpost <NUM>. In some embodiments, planar surfaces detected by the distance sensors <NUM> are utilized for detecting orientation errors. For example, in the embodiments shown in <FIG>, signpost <NUM> provides a planar surface that may be selected as useful for detecting orientation errors. With respect to planar surfaces oriented vertically, an assumption is made that the vertical axis is oriented approximately straight up and down (i.e., perpendicular to the horizon), and therefore is aligned with the vertical axis of the vehicle. Variances or errors detected by comparing the vertical axis z' associated with the planar surface with the vertical axis defined by the orientation sensor <NUM> is attributed to an error in the orientation sensor <NUM>. In response to the detected variance, an adjustment or corrective value may be generated to correct the orientation indicated by the orientation sensor <NUM>. Although this assumption may be invalid in a particular instance, it is further assumed that errors in the axes defined by the planar surfaces (such as axes z') relative to the vehicle axes are gaussian in nature and will cancel out as the number of planar surfaces analyzed increases. That is, a first signpost <NUM> mis-aligned slightly from vertical (and therefore mis-aligned slightly with the vertical axis z of the vehicle <NUM>) in a first direction will be offset by a second or subsequent signpost mis-aligned in the opposite direction. In addition to signposts used as an example in <FIG>, most structures having a planar surface rising in a vertical direction are approximately perpendicular with the horizon - and therefore represent a vertical axis z' that should be aligned with the vertical axis z of the vehicle. For example, the planar surface associated with most buildings is approximately vertical in nature. While this may not be true for all buildings, for the most part buildings are oriented approximately vertically, with an error from a true vertical orientation that is gaussian in nature. Furthermore, as discussed in more detail below, if the planar surface defines an axis that is much different than the orientation axis of the vehicle (e.g., a signpost partially knocked down, extending at an angle of <NUM> degrees relative to the horizontal), steps may be taken to discard the planar surface from analysis.

The example illustrated in <FIG> is provided with respect to the vertical axis, but in other embodiments similar analysis may be provided with horizontal axes (e.g., x, y) as well. For example, in the embodiment shown in <FIG>, distance sensor 102d detects a side of a building <NUM>. The building <NUM> is relatively planar and defines an axis x'. An assumption is made that the horizontal axis x' is aligned approximately with the longitudinal axis x of the vehicle <NUM>. Differences or variances between the horizontal axis x' defined by the planar surface <NUM> and the longitudinal orientation provided by the orientation sensor are attributable to errors in the orientation sensor <NUM>. The assumption provided with respect to horizontal axes is that most roads are aligned (either parallel or perpendicular) with adjacent buildings. As a result, the horizontal axes x', y' defined by planar surfaces adjacent to the vehicle <NUM> are likely aligned with an orientation axis x, y of the vehicle <NUM>. In some embodiments, an additional assumption may be relied upon that if a building is not aligned with the road, it is aligned with a cardinal direction (i.e., North, South, East, West) and may be utilized to detect errors in the orientation sensor.

Referring now to <FIG>, a block diagram of components included in an orientation system <NUM> is shown according to some embodiments. In the embodiment shown in <FIG>, orientation system <NUM> includes a plurality of LiDAR sensors <NUM>, 302b,. 302N, a plurality of LiDAR controllers 304a, 304b,. , 304N, an IMU <NUM>, an IMU correction unit <NUM>, and a vehicle processing unit <NUM>. The plurality of LiDAR sensors 302a, 302b,. , 302N are utilized to collect relative distance data, which is provided to the plurality of LiDAR controllers 304a, 304b,. , 304N, respectively. In this embodiment, the LiDAR controllers (generically referred to as LiDAR controllers <NUM>) process the point clouds collected by the plurality of LiDAR sensors <NUM>. In some embodiments, LiDAR controllers <NUM> cluster points and detects surfaces. The vehicle processing unit <NUM> receives detected surfaces from the LiDAR controllers <NUM> and utilizes the surfaces to detect and identify objects (provided as an output labeled "LiDAR Detected Objects"). In addition, vehicle processing unit <NUM> may use the surfaces detected by the LiDAR controllers <NUM> to detect errors in orientation data provided by IMU <NUM>.

In some embodiments, vehicle processing unit <NUM> reviews surfaces provided by the plurality of LiDAR controllers <NUM> and detects planar surfaces to compare with orientation data received from the IMU. In some embodiments, a surface is identified as planar if a plurality of points located between a first point and a second point are located on the same plane. For example, <FIG> illustrates a surface <NUM> detected by a LiDAR controller <NUM>. A plurality of points located on the surface <NUM> are selected and utilized to determine whether the points extend along a single axis or plane. In some embodiments, the determination of whether a surface is planar is based on a fewer number of points than are included with the surface. In some embodiments, the points are selected along the entire surface <NUM>, while in other embodiments points are selected along an axis defined by the surface <NUM>. For example, as shown in <FIG>, an axis <NUM> is defined by first point 508a selected at or near a bottom of the surface <NUM> and a second point 508b selected at or near a top of the surface <NUM>. The surface <NUM> is determined to be planar if a plurality of points (labeled "<NUM>") located between the first point 508a and the second point 508b are located on approximately the same plane. In some embodiments, a confidence level is assigned to the detected planar surface <NUM> based on how closely the selected points are aligned along the same plane. In some embodiments, the confidence level must be higher than a threshold value or the surface is discarded as not planar. In some embodiments, the confidence level is retained and utilized in subsequent steps to weight the correction or adjustment made to the orientation data.

Assuming the surface is determined to be planar, then one or more axes defining the planar surface are compared with one or more axes of the orientation data provided by the IMU <NUM>. In some embodiments, if the difference or variance between the compared axes is greater than a threshold value, this indicates that the planar surface <NUM> is not closely enough aligned with an orientation axis of the IMU <NUM> to be utilized for correction. The assumption relied on here is that the orientation data provided by the IMU <NUM> may have some errors, but those errors will not be egregious. For example, if a stop sign is leaning at a <NUM> degree angle, the planar surface of the signpost will be sufficiently planar, but the difference between the vertical orientation axis provided by the IMU <NUM> and the axis defined by the signpost is so great that it is likely the signpost is not aligned with the vertical axis of the vehicle.

In some embodiments, if the variance between the compared axes is greater than a threshold value, a second check may be performed to determine whether the axis defined by the planar surface is aligned with a cardinal direction. In some embodiments, this check is only performed with respect to horizontal axes. If the variance or difference between the axis associated with the planar surface and the cardinal axis are greater than a threshold value, then it is determined that the planar surface cannot be utilized to correct the orientation data and the surface is discarded.

Assuming that the comparison between the one or more axes associated with the planar surface and either the orientation axis defined by the IMU <NUM> or the cardinal axes, then the one or more axes defined by the planar surface are assumed to be aligned with the one or more axes of the vehicle. Based on this assumption, the variance or difference between the one or more axes defined by the planar surface and the one or more axes provided by the IMU <NUM> are determined to be the result of errors in the IMU <NUM>. For example, in the embodiment shown in <FIG>, the planar surface <NUM> is defined by a vertical axis <NUM>, which is compared to a vertical axis <NUM> defined by the IMU <NUM>. The variance between the two axes is defined by angle <NUM>, which represents the error attributable to the IMU <NUM>.

Based on the detected variance between the respective axes, vehicle processing unit <NUM> generates orientation feedback provided to IMU correction unit <NUM>. In some embodiments, the magnitude of the orientation feedback is based on the magnitude of the variance detected between the respective axes. In some embodiments, if the variance is greater than a threshold value (referred to herein as a "nudge threshold"), then the magnitude of the orientation feedback is assigned a predetermined value. In some embodiments, the magnitude of the orientation feedback if the variance is greater than the nudge threshold is equal to the nudge threshold. In other embodiments, the magnitude of the orientation feedback may be greater than or less than the nudge threshold. In some embodiments, if the variance is less than the nudge threshold, then the magnitude of the orientation feedback is equal to the magnitude of the variance. In some embodiments, the magnitude of the orientation feedback provided to the IMU correction unit <NUM> is further based on the confidence level associated with the determination. For example, this may include the confidence level associated with the planar surface detected by the LiDAR sensors <NUM>, wherein a higher confidence level in the detected planar surface results in the orientation feedback being assigned a greater value than a lower confidence level. In some embodiments, the orientation feedback provided to the IMU correction unit <NUM> is added to previously calculated orientation feedbacks, such that IMU correction unit <NUM> accumulates orientation feedback values calculated by the vehicle processing unit <NUM>. In some embodiments, the orientation feedback provided to the IMU correction unit <NUM> is latched to ensure the corrective value is retained by the IMU correction unit <NUM>.

In this way, orientation data provided by IMU <NUM> is augmented with correction values stored by the IMU correction unit <NUM>. Each time orientation data is calculated by the IMU <NUM>, the orientation data is adjusted by the values stored in the IMU correction unit, <NUM> wherein the value stored in the IMU correction unit <NUM> is continually updated based on comparisons between the (corrected) IMU orientation data and the planar surfaces detected by the one or more LiDAR sensors <NUM> and LiDAR controller <NUM>.

<FIG> is a flowchart illustrating steps performed to correct orientation data based on relative distances collected by one or more distance sensors. It should be understood that the sequence of the steps may be modified and that in some embodiments one or more of the steps may be omitted.

At step <NUM>, orientation data is received from the orientation sensor (e.g., IMU sensor). At step <NUM>, relative distance data is received from one or more distance sensors. As described above, a number of difference types of distance sensors may be utilized, including one or more of LiDAR-based sensors, radar-based sensors, vision-based sensors, etc. In some embodiments, the relative distance data collected by the distance sensors is provided in the form of a point cloud, wherein each point is defined by a distance from the sensor to the object.

At step <NUM>, surfaces are detected within the received relative distance data. Processing of the relative distance data may be performed locally by the distance sensor or may be performed separate from the distance sensor - such as by vehicle processing unit. The step of detecting surfaces within the relative distance data may be utilized in other applications, such as part of the process of object detection. In some applications, the step of detecting surfaces is referred to as point clustering, wherein the plurality of points included in the point cloud are clustered together based on their distance to one another to form and detect surfaces. In some embodiments, additional analysis is performed on the detected surfaces to classify surfaces into objects (e.g., car, building, pedestrian, etc.).

At step <NUM>, surfaces detected at step <NUM> are analyzed to determine if they are planar. In some embodiments, the determination of whether an object is planar involves selecting a plurality of points along the detected surface and checking to determine whether the plurality of points are located along a particular plane or axis. In the example shown in <FIG>, having detected the surface <NUM>, a plurality of points are selected with respect to the surface <NUM> and utilized to determine if the surface is planar. In some embodiments the points selected are located along an axis as shown in <FIG>, but in other embodiments may be selected at random along the entire surface. In addition, the number of points tested to determine whether the surface is planar may be less than the total number of points identified with respect to the surface. If the surface is identified as not planar at step <NUM>, then it is discarded at step <NUM>. If the surface is identified as planar at step <NUM>, then the process continues at step <NUM>.

In some embodiments, at step <NUM> a confidence level is assigned to the surface based on analysis of whether the surface is planar. In some embodiments, surfaces determined to be more planar are assigned a higher confidence level and surfaces determined to be less planar are assigned a lower confidence level (assuming the surface is planar enough to not be discarded entirely). In addition, the confidence level may also be based on the number of points analyzed with respect to the surface, wherein as the number of points analyzed increases the confidence associated with the surface being planar also increases (assuming the points are determined to be located along an axis or plane). As described in more detail below, in some embodiments the confidence level assigned to the surface is utilized to determine the adjustment or correction applied to the orientation sensor, wherein high confidence in the surface being planar results in larger adjustments/corrections.

In some embodiments, at step <NUM> the orientation of the detected planar surface is translated into the orientation of the vehicle. For example, if the distance sensor utilized to capture the planar surface is oriented in a direction known to be offset from an orientation or particular axis of the vehicle (i.e., downward) then the surface is translated to account for this offset. Typically, the orientation of the distance sensor relative to the vehicle is known, such that the translation remains the same with respect to surfaces detected by particular sensors.

At step <NUM>, a variance or difference between the orientation axis of the vehicle and the orientation of the detected planar surface is calculated. The variance represents the error between the orientation axis provided by the orientation sensor and the orientation of the planar surface. However, this does not necessarily imply that the variance represents the error in the orientation sensor, only the difference between the axis of the orientation axis of the vehicle (provided by the orientation sensor) and the orientation of the planar surface. In some embodiments, at step <NUM>, the variance is utilized to determine whether the planar surface is a good fit for estimating error in the orientation sensor, and then at steps <NUM>-<NUM> a determination is made regarding how to correct the orientation sensor based on the orientation of the detected planar surface.

At step <NUM>, the axis variance calculated at step <NUM> is compared to a threshold. The comparison is utilized to determine whether the axes are aligned closely enough that the axis associated with the detected surface is determined to be a good candidate for correcting the orientation sensor. Planar surfaces not aligned with an axis of the vehicle (for example, a building aligned at an angle relative to the street on which the vehicle is located) are not useful for correcting the orientation sensor and should be discarded. In some embodiments, if the variance or difference between the axes is less than a threshold, this is an indication that the axis associated with the planar surface is likely aligned with an orientation axis of the vehicle and can be utilized to correct the orientation sensor. In some embodiments, the threshold is a fixed value, while in other embodiments the threshold may vary. For example, the threshold may be increased to accept more planar surfaces as potentially useful as the duration between corrections increases. That is, in an environment in which a plurality of planar surfaces aligned with the orientation of the vehicle are detected, it may be beneficial to discard those planar surfaces determined to be offset from the orientation of the vehicle even by a small amount. In an environment (e.g., driving in the country) in which very few planar surfaces are identified as useful for correcting orientation errors, it may be beneficial to increase the threshold to utilize planar surfaces that would otherwise have been discarded.

In some embodiments, if the variance between the axes is greater than a threshold at step <NUM> then the planar surface is discarded at step <NUM>. In other embodiments, if the variance between axes is greater than a threshold, at step <NUM> one or more axes associated with the planar surface are compared to cardinal coordinates to determine if the planar surface is aligned with the cardinal coordinate system. If the planar surface is aligned with a cardinal direction (e.g., East, West, North, South) and the heading of the vehicle is known, then the planar surface may still be utilized to correct the orientation sensor. If the variance between the axis of the planar surface and the cardinal axis is greater than a threshold - indicating that the planar surface is not aligned with a cardinal direction - then the planar surface is discarded at step <NUM>. If the variance between the axis of the planar surface and the cardinal axis is less than a threshold - indicating that the planar surface is aligned with a cardinal direction - then the planar surface is utilized at step <NUM> to correct the orientation sensor.

In some embodiments, having determined either at step <NUM> or step <NUM> that the planar surface is a good candidate for correcting the orientation sensor, an orientation feedback value is generated to be provided in feedback to the orientation sensor. That is, a determination in the affirmative at either step <NUM> or step <NUM> indicates that a detected surface is planar and that one or more axes associated with the detected surface area aligned with the one or more axes of the vehicle. The result of this assumption is that variances or differences detected between the one or more axes defined by the planar surface and the orientation data provided by the orientation sensor are attributed to errors in the orientation sensor. In some embodiments, based on these detected errors, orientation feedback may be provided to correct the orientation data provided by the orientation sensor. As described above with respect to <FIG> and <FIG>, in some embodiments this may include providing the orientation feedback directly to the orientation sensor itself to re-initialize or align the orientation sensor with the corrected orientation. In other embodiments, as shown in <FIG> for example, the orientation feedback is latched into a correction unit such as the IMU correction unit <NUM>, which accumulates corrections provided in response to detected variances.

In some embodiments, the orientation feedback provided is referred to as a "nudge" because it acts to slowly modify (i.e., nudge) the correction applied to the orientation sensor to prevent large changes in the correction applied to the orientation data. The magnitude of the orientation feedback may be determined in a variety of ways. For example, in some embodiments a fixed value is assigned regardless of the magnitude of the detected variance between the respective axes. The fixed value is typically small and ensures that each adjustment is relatively small in nature. In other embodiments a variable nudge value is assigned based on the magnitude of the axis variance. Steps <NUM> and <NUM> ensure that the magnitude of the variance is less than the threshold values utilized in those steps, but this may still lead to large adjustments to the orientation data. In some embodiments, step <NUM> is utilized to ensure that the magnitude of the orientation feedback does not exceed a threshold value. In some embodiments, the magnitude of the orientation feedback is based on the magnitude of the variance as well as the confidence level associated with the detected planar surface (determined at step <NUM>). That is, for a surface determined to be very planar and therefore being assigned a high confidence level, the magnitude of the correction applied may be greater. Conversely, a surface determined to be only somewhat planar and therefore assigned a low confidence level will result in a lower magnitude correction being applied.

In other embodiments, as shown in <FIG>, a trade-off between a fixed nudge value and a dynamic nudge value is provided. In the embodiment shown in <FIG>, at step <NUM> the variance between the one or more axes detected with respect to the planar surface and the one or more orientation axes defined by the orientation sensor is compared to a nudge threshold. If the variance is less than the nudge threshold, indicating a relatively small difference between the planar surface axis and the orientation axis, then the magnitude of the variance is utilized as the orientation feedback provided to the IMU correction unit at step <NUM>. If the variance is greater than the nudge threshold, indicating a relatively large difference between the planar surface axis and the orientation axis, then a fixed value is utilized as the orientation feedback provided to the IMU correction unit at step <NUM>. In some embodiments, the fixed value has a magnitude equal to the magnitude of the nudge threshold. In this way, step <NUM> ensures that the fixed value utilized at step <NUM> represents the largest orientation correction provided in feedback to the IMU correction unit <NUM>.

Claim 1:
An orientation system for installation on a vehicle, the orientation system comprising:
an orientation sensor (<NUM>, <NUM>) configured to generate orientation data;
a distance sensor (<NUM>, <NUM>-102d, 302a-N, 304a-304N) configured to generate
relative distance data measuring relative distances to objects external to the vehicle; and
a vehicle processing unit (<NUM>, <NUM>) configured to receive the orientation data from the orientation sensor (<NUM>, <NUM>) and the relative distance data from the distance sensor (<NUM>, <NUM>-102d, 302a-N, 304a-304N), wherein the vehicle processing unit (<NUM>, <NUM>) detects orientation errors based on the relative distance data, wherein the vehicle processing unit (<NUM>, <NUM>) is configured to detect planar surfaces based on the received relative distance data and to define one or more axes associated with the detected planar surface, characterised in that
the vehicle processing unit (<NUM>, <NUM>) compares an orientation axis derived from the orientation data to the one or more axes associated with the detected planar surface, wherein the vehicle processing unit (<NUM>, <NUM>) generates orientation feedback in response to a variance between the compared axes being less than a threshold value.