Lane curb assisted off-lane checking and lane keeping system for autonomous driving vehicles

In one embodiment, a lane departure detection system detects at a first point in time that a wheel of an ADV rolls onto a lane curb disposed on an edge of a lane in which the ADV is moving. The system detects at a second point in time that the wheel of the ADV rolls off the lane curb of the lane. The system calculates an angle between a moving direction of the ADV and a lane direction of the lane based on the time difference between the first point in time and the second point in time in view of a current speed of the ADV. The system then generates a control command based on the angle to adjust the moving direction of the ADV in order to prevent the ADV from further drifting off the lane direction of the lane.

CROSS-REFERENCE TO RELATED APPLICATION

This patent application is a U.S. National Phase Application under 35 U.S.C. § 371 of International Application No. PCT/CN2017/081057, filed Apr. 19, 2017, entitled “LANE CURB ASSISTED OFF-LANE CHECKING AND LANE KEEPING SYSTEM FOR AUTONOMOUS DRIVING VEHICLES,” which is incorporated by reference herein by its entirety.

TECHNICAL FIELD

Embodiments of the present invention relate generally to operating autonomous vehicles. More particularly, embodiments of the invention relate to lane departure detection based on lane curb sensing.

BACKGROUND

Motion planning and control are critical operations in autonomous driving. It is important for an autonomous driving vehicle (ADV) to drive and remain within a lane in which the ADV is moving. However, it is possible that the perception or planning of autonomous driving could be inaccurate and do not detect that the ADV does not follow the lane correctly. It is difficult to detect such a scenario, especially when the lane is not painted in contrast enough.

SUMMARY

Embodiments of the present disclosure provide a computer-implemented method for operating an autonomous driving vehicle, a non-transitory machine-readable medium, and a data processing system.

In an aspect of the disclosure, the computer-implemented method for operating an autonomous driving vehicle comprises: detecting, a first point in time, that a wheel of an autonomous driving vehicle (ADV) rolls onto a lane curb disposed on an edge of a lane in which the ADV is moving; detecting, at a second point in time, that the wheel of the ADV rolls off the lane curb of the lane; calculating an angle between a moving direction of the ADV and a lane direction of the lane based on a difference between the first point in time and the second point in time in view of a current speed of the ADV; and generating a control command based on the angle to adjust the moving direction of the ADV to prevent the ADV from further drifting off the lane direction of the lane.

In another aspect of the disclosure, the non-transitory machine-readable medium has instructions stored therein, which when executed by a processor, cause the processor to perform operations of operating an autonomous driving vehicle, the operations comprising: detecting, a first point in time, that a wheel of an autonomous driving vehicle (ADV) rolls onto a lane curb disposed on an edge of a lane in which the ADV is moving; detecting, at a second point in time, that the wheel of the ADV rolls off the lane curb of the lane; calculating an angle between a moving direction of the ADV and a lane direction of the lane based on a difference between the first point in time and the second point in time in view of a current speed of the ADV; and generating a control command based on the angle to adjust the moving direction of the ADV to prevent the ADV from further drifting off the lane direction of the lane.

In a further aspect of the disclosure, the data processing system comprises a processor; and a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations including: detecting, a first point in time, that a wheel of an autonomous driving vehicle (ADV) rolls onto a lane curb disposed on an edge of a lane in which the ADV is moving, detecting, at a second point in time, that the wheel of the ADV rolls off the lane curb of the lane, calculating an angle between a moving direction of the ADV and a lane direction of the lane based on a difference between the first point in time and the second point in time in view of a current speed of the ADV, and generating a control command based on the angle to adjust the moving direction of the ADV to prevent the ADV from further drifting off the lane direction of the lane.

In a further aspect of the disclosure, the computer-implemented method for operating an autonomous driving vehicle comprises: detecting, a first point in time, that a first wheel of an autonomous driving vehicle (ADV) contacts a lane curb disposed on an edge of a lane in which the ADV is moving; detecting, at a second point in time, that a second wheel of the ADV contacts the lane curb of the lane; calculating an angle between a moving direction of the ADV and a lane direction of the lane based on a difference between the first point in time and the second point in time in view of a current speed of the ADV; and generating a control command based on the angle to adjust the moving direction of the ADV to prevent the ADV from further drifting off the lane direction of the lane.

DETAILED DESCRIPTION

According to some embodiments, a lane departure detection system is configured to detect that an ADV is departing from the lane in which the ADV is driving based on sensor data captured when the ADV contacts a lane curb disposed on the edge of the lane, either on the shoulder of the lane or between lanes. When the ADV contacts the lane curb, the lane departure detection system detects and calculates an angle between a moving direction of the ADV and a lane direction of the lane based on timing of the contacts in view of the speed of the ADV. Based on the angle, the system calculates how much the moving direction of the ADV is off compared to a lane direction of the lane. The lane direction is typically substantially in parallel with a longitudinal axis or direction of a lane curb or a distribution line or pattern of an array of lane curb segments of the lane curb disposed on an edge of a lane or between lanes. A control command such as a speed control command and/or a steering control command is generated based on the angle and/or the distance that ADV is off from the lane to correct the moving direction of the ADV.

In one aspect of the invention, a lane departure detection system detects at a first point in time that a wheel of an ADV rolls onto a lane curb disposed on an edge of a lane in which the ADV is moving. The system detects at a second point in time that the same wheel of the ADV rolls off the lane curb of the lane. The contacts between the wheel rolling on and rolling off is detected using a sensor associated with the wheel such as a tire pressure sensor or a motion sensor. The wheel can be any one of the wheels of the ADV, either being a front wheel or a rear wheel. The system calculates an angle between a moving direction of the ADV and a lane direction of the lane based on the time difference between the first point in time and the second point in time in view of a current speed of the ADV. The system then generates a control command (e.g., speed control command, steering control command) based on the angle to adjust the moving direction of the ADV in order to prevent the ADV from further drifting off the lane direction of the lane.

In calculating the angle, according to one embodiment, a distance perpendicular to the lane direction of the lane is calculated from the first point in time to the second point in time. Such a distance is also referred to as a lateral moving distance of the ADV. The angle is then calculated based on the distance and the current speed of the ADV in view of the time difference between the first point in time and the second point in time. The distance perpendicular to the lane direction may be calculated based on a wheel width of the wheel and a curb width of the lane curb. The wheel width may be determined based on the specification of the wheel. Curb width of the lane curb may be determined based on the perception data perceiving the lane curb such as an image of the lane captured by a camera.

According to another aspect of the invention, a lane departure detection system detects at a first point in time that a first wheel of an ADV contacts a lane curb disposed on an edge of a lane in which the ADV is moving. The system detects at a second point in time that a second wheel of the ADV contacts the lane curb of the lane. The contact between the first wheel and the lane curb is detected using a sensor associated with the first wheel such as a tire pressure sensor or a motion sensor. The contact between the second wheel and the lane curb is detected using a sensor associated with the first wheel such as a tire pressure sensor or a motion sensor. The first wheel and the second wheel are different wheels, which can be any of the wheels of the ADV such as a pair of front wheels or rear wheels. The system calculates an angle between a moving direction of the ADV and a lane direction of the lane based on the time difference between the first point in time and the second point in time in view of a current speed of the ADV. The system then generates a control command (e.g., speed control command, steering control command) based on the angle to adjust the moving direction of the ADV in order to prevent the ADV from further drifting off the lane direction of the lane.

In calculating the angle, according to one embodiment, a first distance between the first wheel and the second wheel is determined. The first distance can be the length of an axle coupling the first wheel and the second wheel. A second distance that the ADV has moved perpendicular to the lane direction of the lane (e.g., lateral moving distance) is determined based on the time difference between the first point in time and the second point in time in view of the current speed of the ADV. The angle is then calculated based on a sinusoidal relationship between the first distance and the second distance.

Referring now toFIG. 2, in one embodiment, sensor system115includes, but it is not limited to, one or more cameras211, global positioning system (GPS) unit212, inertial measurement unit (IMU)213, radar unit214, and a light detection and range (LIDAR) unit215. GPS system212may include a transceiver operable to provide information regarding the position of the autonomous vehicle. IMU unit213may sense position and orientation changes of the autonomous vehicle based on inertial acceleration. Radar unit214may represent a system that utilizes radio signals to sense objects within the local environment of the autonomous vehicle. In some embodiments, in addition to sensing objects, radar unit214may additionally sense the speed and/or heading of the objects. LIDAR unit215may sense objects in the environment in which the autonomous vehicle is located using lasers. LIDAR unit215could include one or more laser sources, a laser scanner, and one or more detectors, among other system components. Cameras211may include one or more devices to capture images of the environment surrounding the autonomous vehicle. Cameras211may be still cameras and/or video cameras. A camera may be mechanically movable, for example, by mounting the camera on a rotating and/or tilting a platform.

In one embodiment, sensor system115further includes one or more tire pressure sensors216and/or one or more motion sensors217. Each of tire pressure sensors216is configured to sense and measure a tire pressure of one of the wheels of the vehicle. In one embodiment, each of the wheels of the ADV is associated with a tire pressure sensor and/or a motion sensor. Such sensors may be disposed or mounted near the corresponding wheel, for example, near a suspension joint associated with the wheel. Thus, when a wheel of the ADV contacts a lane curb, it can be precisely determined which of the wheels of the ADV contacts the lane curb. It can also detect whether the wheel is rolling onto or engaging with the lane curb or is rolling off or disengaging from the lane curb.

The sudden change of the tire pressure of a wheel proportionally represents the impact imposed on the wheel when the wheel contacts a lane curb or rolls on and/or off the lane curb. Each of the motion sensors217is configured to sense and measure an amount of motion incurred by a wheel or the ADV. The amount of sudden motion detected may be utilized to determine whether the ADV contacts a lane curb or rolls on and/or off the lane curb. In one embodiment, a motion sensor may be positioned near each wheel or a suspension joint associated with each wheel. The tire pressure data and the motion sensor data may be combined to determine whether the corresponding wheel has contacted a lane curb or rolls on and/or off the lane curb.

Some or all of the functions of autonomous vehicle101may be controlled or managed by perception and planning system110, especially when operating in an autonomous driving mode. Perception and planning system110includes the necessary hardware (e.g., processor(s), memory, storage) and software (e.g., operating system, planning and routing programs) to receive information from sensor system115, control system111, wireless communication system112, and/or user interface system113, process the received information, plan a route or path from a starting point to a destination point, and then drive vehicle101based on the planning and control information. Alternatively, perception and planning system110may be integrated with vehicle control system111.

While autonomous vehicle101is moving along the route, perception and planning system110may also obtain real-time traffic information from a traffic information system or server (TIS). Note that servers103-104may be operated by a third party entity. Alternatively, the functionalities of servers103-104may be integrated with perception and planning system110. Based on the real-time traffic information, MPOI information, and location information, as well as real-time local environment data detected or sensed by sensor system115(e.g., obstacles, objects, nearby vehicles), perception and planning system110can plan an optimal route and drive vehicle101, for example, via control system111, according to the planned route to reach the specified destination safely and efficiently.

Server103may be a data analytics system to perform data analytics services for a variety of clients. In one embodiment, data analytics system103includes data collector121and machine learning engine122. Data collector121collects driving statistics123from a variety of vehicles, either autonomous vehicles or regular vehicles driven by human drivers. Driving statistics123include information indicating the driving commands (e.g., throttle, brake, steering commands) issued and responses of the vehicles (e.g., speeds, accelerations, decelerations, directions) captured by sensors of the vehicles at different points in time. Driving statistics123may further include information describing the driving environments at different points in time, such as, for example, routes (including starting and destination locations), MPOIs, road conditions, weather conditions, etc.

Based on driving statistics123, machine learning engine122generates or trains a set of rules, algorithms, and/or predictive models124for a variety of purposes. In one embodiment, algorithms124include an algorithm to calculate angle between a moving direction of an ADV and a lane direction of a lane which the ADV is moving. The angle may be calculated in view of a physical dimension of the ADV (e.g., distance between two front or rear wheels, distance between a front wheel and a rear wheel). Such an angle is utilized to determine whether the ADV is departing from the lane and an appropriate control action can be taken to correct such lane departure. Algorithms124are then uploaded onto an ADV to be utilized in real-time to detect the potential lane departure.

FIG. 3is a block diagram illustrating an example of a perception and planning system used with an autonomous vehicle according to one embodiment of the invention. System300may be implemented as a part of autonomous vehicle101ofFIG. 1including, but is not limited to, perception and planning system110, control system111, and sensor system115. Referring toFIG. 3, perception and planning system110includes, but is not limited to, localization module301, perception module302, decision module303, planning module304, control module305, and lane departure detector or monitor306.

Based on the sensor data provided by sensor system115and localization information obtained by localization module301, a perception of the surrounding environment is determined by perception module302. The perception information may represent what an ordinary driver would perceive surrounding a vehicle in which the driver is driving. The perception can include the lane configuration (e.g., straight or curve lanes), traffic light signals, a relative position of another vehicle, a pedestrian, a building, crosswalk, or other traffic related signs (e.g., stop signs, yield signs), etc., for example, in a form of an object.

For each of the objects, decision module303makes a decision regarding how to handle the object. For example, for a particular object (e.g., another vehicle in a crossing route) as well as its metadata describing the object (e.g., a speed, direction, turning angle), decision module303decides how to encounter the object (e.g., overtake, yield, stop, pass). Decision module303may make such decisions according to a set of rules such as traffic rules or driving rules312, which may be stored in persistent storage device352.

Based on a decision for each of the objects perceived, planning module304plans a path or route for the autonomous vehicle, as well as driving parameters (e.g., distance, speed, and/or turning angle). That is, for a given object, decision module303decides what to do with the object, while planning module304determines how to do it. For example, for a given object, decision module303may decide to pass the object, while planning module304may determine whether to pass on the left side or right side of the object. Planning and control data is generated by planning module304including information describing how vehicle300would move in a next moving cycle (e.g., next route/path segment). For example, the planning and control data may instruct vehicle300to move 10 meters at a speed of 30 mile per hour (mph), then change to a right lane at the speed of 25 mph.

Based on the planning and control data, control module305controls and drives the autonomous vehicle, by sending proper commands or signals to vehicle control system111, according to a route or path defined by the planning and control data. The planning and control data include sufficient information to drive the vehicle from a first point to a second point of a route or path using appropriate vehicle settings or driving parameters (e.g., throttle, braking, and turning commands) at different points in time along the path or route.

Note that decision module303and planning module304may be integrated as an integrated module. Decision module303/planning module304may include a navigation system or functionalities of a navigation system to determine a driving path for the autonomous vehicle. For example, the navigation system may determine a series of speeds and directional headings to effect movement of the autonomous vehicle along a path that substantially avoids perceived obstacles while generally advancing the autonomous vehicle along a roadway-based path leading to an ultimate destination. The destination may be set according to user inputs via user interface system113. The navigation system may update the driving path dynamically while the autonomous vehicle is in operation. The navigation system can incorporate data from a GPS system and one or more maps so as to determine the driving path for the autonomous vehicle.

Decision module303/planning module304may further include a collision avoidance system or functionalities of a collision avoidance system to identify, evaluate, and avoid or otherwise negotiate potential obstacles in the environment of the autonomous vehicle. For example, the collision avoidance system may effect changes in the navigation of the autonomous vehicle by operating one or more subsystems in control system111to undertake swerving maneuvers, turning maneuvers, braking maneuvers, etc. The collision avoidance system may automatically determine feasible obstacle avoidance maneuvers on the basis of surrounding traffic patterns, road conditions, etc. The collision avoidance system may be configured such that a swerving maneuver is not undertaken when other sensor systems detect vehicles, construction barriers, etc. in the region adjacent the autonomous vehicle that would be swerved into. The collision avoidance system may automatically select the maneuver that is both available and maximizes safety of occupants of the autonomous vehicle. The collision avoidance system may select an avoidance maneuver predicted to cause the least amount of acceleration in a passenger cabin of the autonomous vehicle.

Lane departure detector or detection module306is configured to detect whether the ADV is departing from or drifting off a lane in which the ADV is moving. In one embodiment, lane departure detector306is coupled to one or more sensors such as tire pressure sensors216and/or motion sensors217ofFIG. 2to detect or sense whether the ADV experiences sudden bump or oscillation, for example, in response to contacting a lane curb disposed on an edge of the lane such as a lane shoulder, a lane warning area of a lane, or a lane separator between lanes. In response to such sudden bump or oscillation, lane departure detector306determines an angle between a moving direction of the ADV and a lane direction of the lane at the point in time. The angle represents how much the moving direction of the ADV is off compared to the lane direction of the lane (e.g., difference between the moving direction and the lane direction). Based on the angle, planning module304and/or control module305can decide whether a correction of moving direction is warranted and if so, a new control command is generated and issued to the ADV to correct the moving direction of the ADV.

In one embodiment, the correction of moving direction of the ADV is needed if the angle representing the difference between the moving direction and the lane direction is greater than a predetermined threshold. The predetermined threshold may be determined and configured by a data analytics system (e.g., data analytics system103) offline based on a large amount of driving statistics collected over a period of time from a variety of vehicles. Such a predetermined threshold may be determined in consideration of safety reasons and/or human drivers' driving behaviors or preferences (e.g., comfort reasons).

According to one embodiment, lane departure detector306includes motion detector or detection module321and angle calculator322. Lane departure detector306is configured to detect that an ADV is departing from the lane in which the ADV is driving based on sensor data captured when the ADV contact a lane curb. When the ADV contacts the lane curb, motion detector321of lane departure detector306detects such a sudden motion (e.g., bump, oscillation) via tire pressure sensors and/or motion sensors. Angle calculator322calculates an angle of a moving direction of the ADV vs a longitudinal direction of the lane curb.

In one embodiment, the angle may be calculated based on the timing when a wheel of the ADV rolls onto the lane curb and the timing when the wheel of the ADV rolls off the lane curb in view of the speed of the ADV. Alternatively, the angle may be calculated based on the timing when a first wheel (e.g., right front wheel) of the ADV contacts the lane curb and the timing when a second wheel (e.g., left front wheel) of the ADV contacts the lane curb in view of the speed of the ADV. Based on the angle, lane departure detector306calculates how much the moving direction of the ADV is off compared to a lane direction of the lane. The lane direction is typically substantially parallel with the longitudinal direction of the lane curb. A control command such as a speed control command and/or a steering control command is generated by planning module304and/or control module305based on the angle to correct the moving direction of the ADV.

FIG. 4is a processing flow diagram illustrating a processing flow of detecting and correcting lane departure of an autonomous driving vehicle according to one embodiment of the invention. Referring toFIGS. 3 and 4, as described above, based on perception data received from perception module303, planning module304plans a route segment and specifies a target position and the time to be at the target position, etc. Based on the planning and control data provided by planning module304, control module305determines the necessary control command or commands (e.g., speed control command, steering control command) and issues the control commands to vehicle platform405.

In addition, lane departure detector306is coupled to vehicle platform405such as tire pressure sensors216and/or motion sensors217to detect whether the ADV has contacted a lane curb (e.g., lane shoulder, lane separator, lane warning track) and the timing of such contacts. Based on the timing of the contacts by a wheel or wheels of the ADV, an angle representing a difference between a moving direction of the ADV and a lane direction of the lane is calculated. The lane departure information concerning the difference between the moving direction of the ADV and the lane direction of the lane is fed back to planning module304and/or control module305. Planning module304and/or control module305may determine whether a correction action is needed based on the lane departure information provided by lane departure detector306. Such a correction may be performed by control module305. Alternatively, planning module304may have to replan the route segment for the next planning cycle in order to correct the moving direction of the ADV. If it is determined that a correction action is needed, a control command is generated and issued to vehicle platform405to correct the moving direction of ADV.

According to one aspect of the invention, motion detector321of lane departure detector306detects at a first point in time that a wheel of an ADV rolls onto a lane curb disposed on an edge of a lane in which the ADV is moving. The motion detector321detects at a second point in time that the wheel of the ADV rolls off the lane curb of the lane. The contacts between the wheel rolling onto and rolling off the lane curb is detected using a sensor associated with the wheel such as a tire pressure sensor or a motion sensor. The wheel can be any one of the wheels of the ADV, either being a front wheel or a rear wheel. Angle calculator322of lane departure detector306calculates an angle between a moving direction of the ADV and a lane direction of the lane based on the time difference between the first point in time and the second point in time in view of a current speed of the ADV. The angle information representing the difference between the lane direction and the moving direction is provided to planning module304and/or control module305. If the difference between the lane direction and the moving direction of the ADV is above a predetermined threshold, planning module304and/or control module305then generate a control command (e.g., speed control command, steering control command) based on the angle to adjust the moving direction of the ADV in order to prevent the ADV from further drifting off the lane direction of the lane.

In calculating the angle, according to one embodiment, a distance perpendicular to the lane direction of the lane (e.g., lateral moving distance) is calculated from the first point in time to the second point in time. The angle is then calculated based on the distance and the current speed of the ADV in view of the time difference between the first point in time and the second point in time. The distance perpendicular to the lane direction may be calculated based on a wheel width of the wheel and a curb width of the lane curb. The wheel width may be determined based on the specification of the wheel. Curb width of the lane curb may be determined based on the perception data perceiving the lane curb such as an image of the lane curve captured by a camera.

According to another aspect of the invention, motion detector321detects at a first point in time that a first wheel of an ADV contacts a lane curb disposed on an edge of a lane in which the ADV is moving. The motion detector321detects at a second point in time that a second wheel of the ADV contacts the lane curb of the lane. The contact between the first wheel and the lane curb is detected using a sensor associated with the first wheel such as a tire pressure sensor or a motion sensor. The contact between the second wheel and the lane curb is detected using a sensor associated with the first wheel such as a tire pressure sensor or a motion sensor. The first wheel and the second wheel can be any of the wheels of the ADV such as a pair of front wheels or rear wheels. Angle calculator322calculates an angle between a moving direction of the ADV and a lane direction of the lane based on the time difference between the first point in time and the second point in time in view of a current speed of the ADV.

The angle information representing the difference between the lane direction and the moving direction is provided to planning module304and/or control module305. If the difference between the lane direction and the moving direction of the ADV is above a predetermined threshold, planning module304and/or control module305then generate a control command (e.g., speed control command, steering control command) based on the angle to adjust the moving direction of the ADV in order to prevent the ADV from further drifting off the lane direction of the lane.

In calculating the angle, according to one embodiment, a first distance between the first wheel and the second wheel is determined. The first distance can be the length of an axle coupled to the first wheel and the second wheel. A second distance that the ADV has moved perpendicular to the lane direction of the lane is determined based on the time difference between the first point in time and the second point in time in view of the current speed of the ADV. The angle is then calculated based on a sinusoidal relationship between the first distance and the second distance.

Note that the correction action to correct the moving direction of the ADV may be performed by planning module304and/or control module305dependent upon how far off the moving direction is from the lane direction. If the difference between the lane direction and the moving direction is significantly larger (e.g., greater than a higher predetermined threshold), planning module304may have to perform replanning; otherwise, control module305can perform the correction by modifying a previous command or generating a new command.

FIG. 5is a diagram illustrating a typical scenario when a vehicle contacts a lane curb. Referring toFIG. 5, when a wheel or wheels (e.g., a pair of front wheels or rear wheels) of ADV501contact lane curb502of lane500, the sudden motion can be detected using a tire pressure sensor and/or motion sensor associated with the wheel or wheels. In addition, the timing of the contacts of the wheel rolling on and rolling off lane curb502or the contacts between the wheels of ADV502and lane curb502can be recorded. Based on the timing of the contacts, angle505can be calculated between lane direction503of lane500and moving direction504of ADV501. Angle505represents the difference between lane direction503and moving direction504. A proper action may be performed to correct moving direction504if angle505is greater than a predetermined threshold. In this example, lane curb502is a single piece of lane curb. Alternatively, lane curb502can be an array of lane curb segments distributed along an edge of lane500, such as, for example, array of lane curb segments506.

In one embodiment, whether a correction is performed may also be dependent upon the driving circumstances or driving environment at the point in time. For example, if lane500is a narrower lane or a lane with heavy traffic, the threshold associated with angle505to trigger a correction action may be lower because of a lower error margin of lane departure. Similarly, a higher threshold may be utilized for a wider lane or a lane with less traffic because a higher error margin can be tolerated. Further, a lower threshold may be applied to a two-way traffic lane and a higher threshold may be applied to a one-way traffic lane. The rules governing the thresholds may be determined offline by a data analytics system (e.g., data analytics system103) based on the driving statistics in the past.

FIG. 6is a diagram for determining a difference between a moving direction and a lane direction according to one embodiment of the invention. Referring toFIG. 6, when wheel601of the ADV rolls onto a lane curb502, such a sudden motion is detected, for example, by a tire pressure sensor and/or a motion sensor associated with wheel601. The time of rolling on movement is recorded (referred to as T1). Subsequently, when wheel601of the ADV rolls off lane curb502, the time of the rolling off movement is recorded (referred to as T2). Based on the difference between time T1and T2, a lateral moving distance605(referred to as S) between the contacting time T1and T2can be calculated in view of a current speed (V) of the ADV:
S=Vx*|T2−T1|
where Vx refers to the current speed V projected onto the X axis: Vx=V sin(θ). Angle θ represents the angle505between moving direction504and lane direction503. Lateral moving distance S refers to a distance that is perpendicular to the lane direction503that the ADV has moved between T1and T2.

On the other hand, distance S can be determined in view of wheel width602of wheel601(referred to as W1), diameter or wheel size604of wheel601(referred to as D), and lane curb width603(referred to as W2) as follows:
S=W1*cos(θ)+D*sin(θ)+W2
The above two equations can be combined to solve angle θ as follows:
W1*cos(θ)+D*sin(θ)+W2=V*sin(θ)|T2−T1|
When angle θ is small, cos(θ) is close to one while sin(θ) is close to zero. Thus, S is approximately equal to (W1+W2). The above equation can be simplified to solve angle θ as follows:
W1+W2=V*sin(θ)|T2−T1|

Note that wheel width W1is known parameter that can be determined based on the specification of wheel601of the ADV. Lane curb width W2can be estimated based on the perception data that perceives lane curb502. For example, an image of lane curb502captured by a camera can be recognized and analyzed to determine the width of lane curb502.

FIG. 7is a flow diagram illustrating a process of operating an autonomous driving vehicle according to one embodiment of the invention. Process700may be performed by processing logic which may include software, hardware, or a combination thereof. For example, process700may be performed by lane departure detector306ofFIG. 3. Referring toFIG. 7, in operation701, processing logic detects at a first point in time that a wheel of an ADV rolls onto a lane curb disposed on an edge of a driving lane in which the ADV is moving. In operation702, processing logic detects at a second point in time that the same wheel of the ADV rolls off the lane curb. Such detections can be performed using a tire pressure sensor and/or a motion sensor associated with the wheel. In one embodiment, each of the wheels of the ADV is associated with a tire pressure sensor and/or a motion sensor. Such sensors may be disposed or mounted near the corresponding wheel, for example, near a suspension joint associated with the wheel. Thus, when a wheel of the ADV contacts a lane curb, it can be precisely determined which of the wheels of the ADV contacts the lane curb. It can also detect whether the wheel is rolling onto or engaging with the lane curb or the wheel is rolling off or disengaging from the lane curb.

In operation703, processing logic calculates an angle between a moving direction of the ADV and a lane direction of the lane based on a difference between the first point in time and the second point in time in view of a current speed of the ADV. A moving direction of the ADV is typically perpendicular to a front axle connecting a pair of front wheels or a rear axle connecting a pair of rear wheels. A lane direction of the lane is typically in parallel with a longitudinal direction of a lane curb disposed on an edge of the lane or a longitudinal distribution pattern of an array of lane curb segments. The angle represents the difference between the moving direction and the lane direction, which in turn represents how far the ADV has drifted off the lane. In operation704, processing logic generates a control command (e.g., speed control command, steering control command) based on the angle to adjust the moving direction of the ADV to prevent the ADV from further drifting off the lane direction of the lane. In one embodiment, the control command to adjust the moving direction is generated when the angle is above a predetermined threshold.

Note that the lane departure detection techniques described above are based on the detection of a single wheel of the ADV rolling on and rolling off a lane curb. According to another aspect of the invention, the lane departure of the ADV can be detected based on multiple wheels (e.g., pair of front wheels, pair of rear wheels, or a front wheel and a rear wheel in combined) of the ADV contacting a lane curb of the lane.

FIG. 8is a diagram for determining a difference between a moving direction and a lane direction according to another embodiment of the invention. Referring toFIG. 8, when wheel801of the ADV contacts or rolls onto lane curb502, such a sudden motion is detected, for example, by a tire pressure sensor and/or a motion sensor associated with wheel801. The time of the contact (T1) is recorded. Subsequently, when another wheel802of the ADV contacts or rolls onto lane curb502, the time of contact (T2) is recorded. Based on the difference between time T1and T2, a lateral moving distance (S) between the contacting time T1and T2can be calculated in view of the current speed (V) of the ADV:
S=Vx*|T2−T1|
where Vx is the current speed V projected onto X axis: Vx=V sin(θ). Angle θ represents the angle505between moving direction504and lane direction503.

On the other hand, distance S can be determined in view of wheel width (W1) of each wheel, diameter or wheel size (D) of each wheel, and lane curb width (W2) as follows:
S=W1*cos(θ)+D*sin(θ)−W2+W*cos(θ)
where W represents a length of an axle connecting wheels801-802. The above two equations can be combined to solve angle θ as follows:
W1*cos(θ)+D*sin(θ)−W2+W*cos(θ)=V*sin(θ)|T2−T1|
When angle θ is small, cos(θ) is close to one while sin(θ) is close to zero. Thus, S is approximately equal to (W1+W2+W). The above equation can be simplified to solve angle θ as follows:
W1−W2+W=V*sin(θ)|T2−T1|

Note that wheel width W1is known parameter that can be determined based on the specification of wheel601of the ADV. Lane curb width W2can be estimated based on the perception data that perceives lane curb502. For example, an image of lane curb502captured by a camera can be recognized and analyzed to determine the width of lane curb502. Similarly, the axle length W is also known based on the specification of the ADV. In one embodiment, if W is significantly longer or wider when W1and W2, the above equation can be simplified as W=V*sin(θ)|T2−T1|.

In this embodiment, wheels801and802are coupled to the same axle. In one embodiment, the above techniques can be extended to calculate the angle between the moving direction and the lane direction based on wheels that are on difference axles such as a front wheel and a rear wheel of the ADV. In such an embodiment, a distance between a front axle and a rear axle (referred to herein as R) may need to be considered if one wheel is on one side and the other wheel is on the other side of the ADV. The lateral moving distance S may further include distance R projected onto the X axis: R*sin(θ).

Thus, if the front wheel and the rear wheel are on different sides of the ADV, one on the driver side and the other one on the passenger side, lateral moving distance S can be defined as follows:
S=W1*cos(θ)+D*sin(θ)+W2+W*cos(θ)+R*sin(θ)
If angle θ is small, the distance R*sin(θ) may be ignored for simplification in calculating the angle: S=W1+W2+W. If the wheels are on the same side of the ADV, S can be defined as:
S=W1*cos(θ)+D*sin(θ)+W2+R*sin(θ)
If angle θ is small, the distance R*sin(θ) and D*sin(θ) may be ignored for simplification in calculating the angle: S=W1+W2.

FIG. 9is a flow diagram illustrating a process of operating an autonomous driving vehicle according to another embodiment of the invention. Process900may be performed by processing logic which may include software, hardware, or a combination thereof. For example, process900may be performed by lane departure detector306ofFIG. 3. Referring toFIG. 9, in operation901, processing logic detects at a first point in time that a first wheel (e.g., a right front wheel or a right rear wheel) of an ADV contacts a lane curb (e.g., lane shoulder, lane separator, lane warning track) of a lane in which the ADV is moving. The lane curb is disposed on an edge of the lane or between lanes. In operation902, processing logic detects at a second point in time that a second wheel of the ADV (e.g., a left front wheel or a left rear wheel) contacts the lane curb. In operation903, processing logic calculates an angle between a moving direction of the ADV and a lane direction of the lane based on the first point in time and the second point in time in view of a current speed of the ADV. In operation904, processing logic generates a control command to adjust the moving direction of the ADV based on the calculated angle, such that the ADV remains within the lane according to the lane direction of the lane.

FIG. 10is a block diagram illustrating an example of a data processing system which may be used with one embodiment of the invention. For example, system1500may represent any of data processing systems described above performing any of the processes or methods described above, such as, for example, data processing system110or any of servers103-104ofFIG. 1. System1500can include many different components. These components can be implemented as integrated circuits (ICs), portions thereof, discrete electronic devices, or other modules adapted to a circuit board such as a motherboard or add-in card of the computer system, or as components otherwise incorporated within a chassis of the computer system.

Note also that system1500is intended to show a high level view of many components of the computer system. However, it is to be understood that additional components may be present in certain implementations and furthermore, different arrangement of the components shown may occur in other implementations. System1500may represent a desktop, a laptop, a tablet, a server, a mobile phone, a media player, a personal digital assistant (PDA), a Smartwatch, a personal communicator, a gaming device, a network router or hub, a wireless access point (AP) or repeater, a set-top box, or a combination thereof. Further, while only a single machine or system is illustrated, the term “machine” or “system” shall also be taken to include any collection of machines or systems that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

Processing module/unit/logic1528, components and other features described herein can be implemented as discrete hardware components or integrated in the functionality of hardware components such as ASICS, FPGAs, DSPs or similar devices. In addition, processing module/unit/logic1528can be implemented as firmware or functional circuitry within hardware devices. Further, processing module/unit/logic1528can be implemented in any combination hardware devices and software components.