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.
In these two weeks I tried to add curves by building a circular path. I found problems in tracking the reference. Probably the model I am using is not suitable for this purpose. So I started making a Simulink scheme to follow a curved line. Also in this case I have adopted an Adaptive MPC but the model considered is different (taking into account both the longitudinal and the lateral velocity).
In this week I continued to work in MATLAB adding some fundamental constraints in the MPC: in the Mixed I/O Constraints I specified an upper and a lower bound for the street limits, and also I have added a “fake” constraint if though no obstacle is detected at the nominal operating condition because it’s not possible to change the dimensions of the constraint matrices at run time. In order to complicate the simulation with N obstacles I have made changes to the CustomConstraints so that the ATLASCAR2 can avoid the obstacle by overtaking it to the right: first with only one moving car and later I generalized the algorithm for N random (with respect to the number and the position) obstacles. In the animation, ATLASCAR2 can avoid obstacles by overcoming them on the right and on the left, deciding which is the best way to go.