Low level control design and implementation for teledrive-control of the NAPLab autonomous car prototype
Abstract
Masterprosjektet omhandler NTNU Autonomous Perception Laboratory (NAPLab) sin prototype forskningsbil. Bilen er en elektrisk Kia Niro EV 2020 modell. Prosjektet omhandler å optimalisere den lav-nivå laterale kontrollen for teledrive-kjøring av bilen.
Underveis i prosjektet har ulike tilnærminger for lateral kontroll av bilen blitt utforsket, eksperimentert med og testet. Dette inkluderer en enkelt PID-kontroller, en adaptiv miljøbasert PID-kontroller med en adaptiv foroverkobling og bruk av maskinlæring som en foroverkobling. Dette har blitt gjort i stasjonær tilstand, men primært for tilstanden hvor bilen har hastighet større enn 0. Catboost regression maskinlæringsmodellen har blitt eksperimentelt testet som en potensiell foroverkobling i en åpen sløyfe i stasjonær tilstand. Resultatene viser til potensiale ved å bruke en maskinlæringsmodell som en foroverkobling, men også utfordringene relatert til undertilpasning av modellen grunnet for lite treningsdata. Undertilpasningen av modellen medførte uventede predikeringer til noe ny og usett data.
For den ikke-stasjonære laterale kontrollen har en adaptiv miljøbasert PID-controller blitt implementert, med en tilhørende adaptiv hastighetsbasert settpunktsstyrt foroverkobling. Polynomene ble analytisk derivert, basert på kurvetilpasning av tidligere eksperimentell data. I tillegg har den adaptive foroverkoblingen blitt implementert i C++ regimet i bilen. Foroverkoblingen kan potensielt løse problemet beskrevet i fordypningsprosjektet, hvor små vinkler ikke nås med en statisk PID-kontroller. Årsaken er at den adaptive foroverkoblingen umiddelbart skal gi nødvendig torque basert på settpunktet for å holde alle vinkler i alle hastigheter. Dette har også blitt verifisert på tidligere eksperimentell data, og ser ut til å fungere bra i ulike hastigheter og til og med under positiv og negativ akselerasjon. Dette grunnet vekting av det totale foroverkoblingspådraget basert på de individuelle hastighetsbaserte polynomene.
I tillegg har innledende forskning blitt gjort, ROS rammeverket har blitt laget og en kartlegging av alle tilgjengelige målekilder har blitt gjort, for å implementere en friksjonsestimator. Systemet i seg selv har i tillegg blitt mer pålitelig. Dette både på grunn av optimaliseringer i ROS systemet og optimalisering av CAN-2-USB adapteren. Den sistnevnte sørger for at data fra bilens egne On-Board Diagnostics II (OBD-II) CAN buss som inneholder bilens tilstander som hastighet alltid er tilgjengelig. Den førstnevnte sørger for at DriveKit er robust og ikke kutter med den nåværende konfigurasjonen. Dette er høyst relevante resultater for liknende forskningsprosjekt som opplever liknende problemer. This Master's thesis is related to the control objective of the NTNU Autonomous Perception Laboratory (NAPLab) research prototype car, which is an electric Kia Niro EV 2020 model. The project is related to optimizing the low level lateral control for teledrive-control of the car.
During the project, several approaches for lateral control of the car have been examined, experimented and tested. The methods include a single PID-controller, an adaptive environmental based PID-controller with an adaptive feedforward and machine learning as a feedforward term. This has been done for the stationary condition, but primarily for the non-stationary state of the car. For the stationary case an approach of using a CatBoost regression machine learning model as a feedforward element in an open loop has been experimentally tested. The results shows the potential of using machine learning as a feedforward term, but also showed the challenges of underfitting due to too little training data. The underfitting of the model resulted in sudden unexpected predictions to some of the new unseen data.
For non-stationary lateral control, an adaptive environmental based PID-controller has been implemented, with a resulting adaptive velocity based setpoint feedforward term. The polynomials were analytically derived, based on curve fitting prior experimental data. Furthermore, the adaptive feedforward has been implemented in the C++ regime of the car. The feedforward term would potentially solve the problem detailed in the preliminary report, of small angles not being reached. The reason being that the adaptive feedforward immediately would yield the necessary torque to hold all angles in all speeds. This has also been verified on prior experimental data and seems to work well in different velocitites, and even under positive and negative acceleration. This is due to weighting the combined feedforward output between the individual velocity based polynomials.
Additionally preliminary research has been conducted, the ROS framework has been implemented and a mapping of all available measuement sensors has been conducted, for implementing a friction estimator. The system in itself has become more reliable, due to optimizing ROS publishing as well as the CAN-2-USB adapter. The latter ensures that the system always gets all internal information from the vehicle's own On-Board Diagnostics II (OBD-II) CAN bus that contains information about vehicle states such as the car speed. The former ensures that the DriveKit is reliable and does not go into fault mode with the current setup. These are highly relevant results for researchers with similar systems facing similar issues.