Automatic Parking
Decibels Lab
Engaged in R&D of Electric Power-train subsystems & provide technology training services for automotive needs.
by Bharath Kumar P. Last updated on 19/Nov/2021
Posted on 19/Nov/2021
Automatic parking is an autonomous car-maneuvering system that moves a vehicle from a traffic lane into a parking spot to perform parallel, perpendicular, or angle parking. The automatic parking system aims to enhance the comfort and safety of driving in constrained environments where much attention and experience is required to steer the car. The parking maneuver is achieved by means of coordinated control of the steering angle and speed which takes into account the actual situation in the environment to ensure collision-free motion within the available space.
Car-like robot model:
The kinematic model considered is the one used to represent a car with rear-wheel driving:
Image Credits:?https://hal.inria.fr/hal-01689850/document
where v and φ˙ are the longitudinal and steering velocities.
Point M is located at the mid-distance between the passive fixed wheels (rear) axle and the distance between the rear and the front axle is described by lwb. The generalized coordinates are q = [x, y, θ, φ] T where x and y are the
Cartesian coordinates of the point M, θ is the orientation of the platform with respect to the x0 axis and the steering angle of the steerable wheel(s) is described by φ.
From the kinematic model it is possible to extract the following relation between φ and ˙θ:
Image Credits:?https://hal.inria.fr/hal-01689850/document
Image Credits:?https://hal.inria.fr/hal-01689850/document
Multi-sensor modeling:
Kinematic model: Let us consider a robotic system equipped with k sensors that provide data about the robot pose in its environment. Each sensor Si gives a signal (sensor feature) si of dimension di with ∑ di = d.
Image Credits:?https://hal.inria.fr/hal-01689850/document
Weighted error: We consider the weighted multi-sensor error signal, which is defined as:
Image Credits:?https://hal.inria.fr/hal-01689850/document
where e = s ? s? is the difference between the current sensor signal s and its desired value s? and H is a diagonal positive semi-definite weighting matrix that depends on s with its associated interaction matrix being LH = HLs. Making a distinction between task and constraints features, H = diag(Ht, Hc) and s = [st, sc] T. Each component hi of H may or may not vary in order to optimize the system behavior, ensure specific constraints, manage priorities or add or remove a sensor or a feature from the control law.
Perception:
We focus the perception on the detection of parked cars. They can be approximated by boxes considering that, when viewed from the top, have a rectangular-like shape.
Because both sensors provide information of a very similar nature, the data can be fused by simply converting the
Laser Scan data provided by the LMS151 to PointCloud2 and then transforming the point cloud from LMS151’s frame to the VLP-16’s frame so it can be added to the point cloud provided by the latter sensor.
The complete point cloud obtained from the two sensors is first filtered with a couple of crop boxes. The first crop box is keeps only the data that is close enough to the car to be relevant in a parking application and that does not represent the floor and afterwards and the second one is used to filter out the points that belong to the car’s body (self-collision sensor readings). Then, an Euclidean Cluster Extraction algorithm is used to have each obstacle represented as a cluster. The orientation of each cluster is extracted by fitting a line model to the points belonging to the contour of the cluster using a RANSAC algorithm. The orientation of the bounding box will be equal to the orientation of the fitted line. After, we proceed by finding the rotated bounding box of the cluster using the previously found orientation.?
Interaction Model:
For the interaction model, we rely on the perception of several lines Lj and points from several sensors.
As it can be seen in, points p1 to p4 correspond to the corners of the parking spot while p5 and p6 are, respectively, the midpoints between (p1, p4) and (p2, p3). L1 is a line that passes through p5 and p6, i.e. it passes through the center of the parking spot. L2 is a line that passes through p1 and p4 thus corresponding to the depth limit of the parking spot.
L3 is a line that passes through p3 and p4. All the lines are parametrized using normalized Plucker coordinates.
Image Credits:?https://hal.inria.fr/hal-01689850/document
It should be noted that the weighting and constraints required to park safely change depending on the type of parking spot (parallel, perpendicular or diagonal) and on which side the parking spot is placed with respect to the car at the beginning of the maneuver.
The control features required to perform the parking task with t = 1 for forward maneuvers and t = 2 for the reverse case.
Image Credits:?https://hal.inria.fr/hal-01689850/document
A 2nd order approximation of the form? is used for the interaction matrix.
Image Credits:?https://hal.inria.fr/hal-01689850/document
The weighting matrix Ht. The variable components hti are computed using a smooth weighting function based on the one presented in
Image Credits:?https://hal.inria.fr/hal-01689850/document
Due to space constraints, only the case of a reverse perpendicular parking maneuver with the spot placed on the right will be considered for the rest of this section.
The constraints are defined by
Image Credits:?https://hal.inria.fr/hal-01689850/document
For the constraints sensor features we are interested only in the components of related to the distance to the feature itself, therefore:
Image Credits:?https://hal.inria.fr/hal-01689850/document
with 5dym being the difference dym = ρcorner ? ρlat measured with the sensor S5, expressed in the sensor frame if φ < 0, defined as:
Image Credits:?https://hal.inria.fr/hal-01689850/document
with ρm = lwb/tan φ and, when φ ≥ 0, being simply the distance from S5 to p2 along ym measured with S5, it is defined as
Image Credits:?https://hal.inria.fr/hal-01689850/document
with 5p2 = (5x2,5y2) being the point p2 measured with S5.The corresponding interaction matrices are
Image Credits:?https://hal.inria.fr/hal-01689850/document
Since the constraints are used for collision avoidance, only one side of the interval [s?c, s+c] has to be defined for each feature
Image Credits:?https://hal.inria.fr/hal-01689850/document
Control:
When considering the constraints, a chattering problem appears if the controller is used, even with very small weights. For this reason, that controller had to be adapted to the quadratic programming form with only inequality constraint.
Image Credits:?https://hal.inria.fr/hal-01689850/document
where α is a gain constant, λ is the control gain, Hc is an identity matrix (i.e. there is no weighting on the constraints) and [s?c, s+c] is the interval in which we want to keep sc. To limit the speed of the vehicle as it approaches the parking spot, a deceleration profile, based on the velocity profile, is used. It is defined b
Image Credits:?https://hal.inria.fr/hal-01689850/document
with v0 max being the maximum desired velocity when the sixth component of the error vector e(6) tends to zero and e(6)th is a threshold value for e(6). Since the low level velocity controller is not capable of reaching very small values, v0 max = 0.2 km/h
The control signals v and φ are bounded by their respective maximum desired values as shown below
Image Credits:?https://hal.inria.fr/hal-01689850/document
To avoid large changes in the control signals at time k that may cause uncomfortable sensations for the passengers or surrounding witnesses, they are bounded by some increments with respect to the control signal at k ? 1
Image Credits:?https://hal.inria.fr/hal-01689850/document
To solve, a generic solver is used. To improve the stability and computation time, the optimization variables are [v, φ] and not vm, although inside the objective function ˙θ is computed from φ so can be solved. When using φ instead of ˙θ one can easily impose the bounds at the solving step instead of solving directly with vm as optimization variables and hope for the value of φ computed from ˙θ to fall inside the bounds
Results:
To evaluate the performance of the proposed approach, it was first tested in unconstrained cases with a sampling time Ts = 0.1. The presented technique allows to perform parking maneuvers for many different scenarios (perpendicular and parallel with either reverse or forward motions) just by adjusting the weighting parameters and the specific definition of the sensor features. The final errors for all of these cases are in the order of ×10?3 or smaller.
Perpendicular reverse parking maneuver
Image Credits:?https://hal.inria.fr/hal-01689850/document
Forward parking maneuver
Image Credits:?https://hal.inria.fr/hal-01689850/document
Parallel reverse parking maneuver
Image Credits:?https://hal.inria.fr/hal-01689850/document
Parallel forward parking maneuver
Image Credits:?https://hal.inria.fr/hal-01689850/document
Perpendicular reverse parking maneuver from far
Image Credits:?https://hal.inria.fr/hal-01689850/document
Constrained perpendicular reverse parking maneuver
Image Credits:?https://hal.inria.fr/hal-01689850/document
Constrained perpendicular reverse parking maneuver signals
Image Credits:?https://hal.inria.fr/hal-01689850/document
Real experimentation was conducted for the same parking case as with the fast prototyping environment. The weighting parameters and constraints definition remain the same.
Experimental car parking in a perpendicular spot
Image Credits:?https://hal.inria.fr/hal-01689850/document
Constrained perpendicular reverse parking maneuver signals
Image Credits:?https://hal.inria.fr/hal-01689850/document
Image Credits:?Youtube
References: