In these weeks I finished and submitted a Paper concerning short-term path planning with multiple moving obstacle avoidance based on adaptive MPC. I implemented also model predictive control with softening constraints for trajectory tracking. In order to improve real-time robustness of the ATLASCAR2, a linearized tracking error model is used to predict system behaviours. The code is based on the following paper adapted to our scenario (adaptive MPC, real car model): Trajectory tracking for wheeled mobile robots via model predictive control with softening constraints.
Moreover I wrote a short Report on the work done here in Aveiro during this 5 months.
This week I have modified the code related to the constraints in order to choose correctly the matrices E, F and G according to the scenario. In the case there are three vehicles that prevent overtaking, the car with velocity equal to 20 m/s, slows down and adapts its speed to the one of the obstacles (supposed to be 8 m/s) remaining always behind. If, on the other hand, one of the obstacles increases its speed, the ATLASCAR2 that had previously slowed down, waits for the necessary space between the obstacles to perform the overtaking maneuver. During the overrun, the vehicle resumes the reference speed of 20 m/s and returns in the middle of the road. To allow both of these maneuvers it was necessary to insert new constraints relative to the position with respect to the x-axis. We have inserted an upper and lower bound which depend on the position of the ATLASCAR2 and the position of the slower obstacle. By inserting this constraint the vehicle modifies its velocity respecting the restrictions on its coordinates in x and y. Finally I made the graphs for the most important components of the simulation (speed, throttle, heading and steering angles, and the lateral position).
During this week I modified the constraints so that when the car meets 3 obstacles and can not overcome them because the road is busy. The constraints were imposed both on the maximum and minimum speed that the ATLASCAR2 can have and on the deceleration to be imposed that depends on the distance and velocity of the obstacles. In the MATLAB files is it possible to find a first simulation about this scenario.
In these weeks, during the Christmas holidays, I fixed the wrong parts of the paper and I added the correct references for the models that I used. Moreover, I started doing further simulations for the Lane Following using various types of paths and assuming that the sensors are affected by different errors: the simulated curves are those for car overtaking and a circular path. The results obtained validate the relative Simulink model.
During this week I have finished writing the first version of the paper. The following paragraphs have been added: theoretical background about the adaptive Model Predictive Control, Simulation Results for the Obstacle Avoidance and Simulation Results for the Lane Following. In addition, I adapted the Lane Following parameters to make them equal to those used in the Obstacle Avoidance algorithm. I have also tried to make simulations by considering different types of errors within the dynamics of the sensors, in particular on the longitudinal velocity, on the steering angle and finally on the yaw angle. Only one part of the results obtained have been reported in the paper. Finally I started to formalize the constraints related to obstacle avoidance in order to make them generic also for a circular path. During the Christmas holidays I will try to find a solution to this last problem.
In this week I started writing a paper where I reported theoretically the models used for both methods. In the problem of the lane following I put a disturbance on the dynamics of the sensors in order to verify the correct functioning of the adaptive MPC. I have also modified the constraints for the upper and lower bound of the street: I have simulated that at each step the constraints change slightly (error of the lateral measurement). The results found are consistent therefore the error in the case of the circular path is probably due to the initialization of the constraints.
This week I designed a lane-following controller based on the Lane Keeping Assist system developed by MATLAB, in which the vehicle measures the lateral deviation and the relative yaw angle between the center line of a lane and the car. Instead of directly using Lane Keeping Assist system provided by MATLAB, I implemented an algorithm based on the Adaptive Model Predictive Control. Our scenario is depicted in the following figure:
In the previous week we had noticed that in the case of curves it was necessary to take into account both the longitudinal and the lateral velocity. A lane-following system manipulates both the longitudinal acceleration and front steering angle of the vehicle to keep the lateral deviation and relative yaw angle small but also keep the longitudinal velocity close to a driver set velocity. The idea now is to take the two controllers designed to create a system that allows path tracking with moving obstacle avoidance based on the Adaptive Model Predictive Control. Moreover in this week I started to write a paper in which I formalized the problem and the solutions adopted.