Kunstig Intelligens og robotteknologi

Her er nogle af mine noter og tanker fra følgende kunstig intelligens online kursus: Artificial Intelligence for Robotics – Programming a robotic car – Learn how to program self-driving cars. Grunden til jeg skriver denne tekst, er for at få en bedre forståelse af de koncepter, som jeg lærer i kurset.  Jeg kan godt lide at have nogle noter, som jeg kan gå tilbage til, hvis jeg glemmer noget ikke hvis det er noget jeg ikke helt forstår.

Dette kursus om kunstig intelligens var en del af mit robotteknologi selvstudie.

Hvis du hellere vil læse på engelsk, kan du læse det hele på min engelske blog: http://thomasbonderup.com/artificial-intelligence-for-robotics/

Lektion 1 – Robot lokalisering

Den første lektion er omkring lokalisering af selvkørende biler, og hvordan man læser dette problem. En selvkørende bil har brug for at vide, hvor den er i forhold til sine omgivelser, så den kan kører sikkert uden at den skader sig selv og omgivelserne omkring. Vi kan tage en selvkørende bil på en motorvej som eksempel.

Den selvkørende bil har brug for at vide hvor den er på motorvejen. Er den fx midt i sin vejbane, eller er den ved at overskride vejbanemarkeringen på motorvejen. En standard løsning på dette problem er ved at bruge satellitter, som sender signaler til bilen. Det er det vi kender som GPS(global positioning system). Problemet med GPS er at det ikke er særlig præcist. Det kan være en fejlmargin på 2-10 meter i forbindelse med lokalisering via GPS, og det kan skabe store problemer for en selvkørende bil på motorvejen(fx at den kører af vejen eller ind i autoværnet). Det vil være langt bedre, hvis den selvkørende bil havde noget lokalisering med en fejlmargin på 2-10 cm. Så vil den selvkørende bil have en langt større chance for at blive på vejen.

Google’s selvkørende bil løser fx lokaliserings problemet ved at bruge laser sensor, radar sensor og kamera sensor + en masse matematik til at forudsige hvor den er på vejen. På den måde kan Google’s selvkørende bil blive på vejen med en fejlmargin på få cm – også hvis de hvide vejbanemarkører mangler. Det er rimelig vildt ikke?

Sandsynlighedsregning(probability)

En anden stor del af selvkørende biler er sandsynlighedsregning, hvilket betyder beregning af synligheden for at en hændelse vil forekomme.

Kurset giver et eksempel med Total Probability – eksemplet starter med at der er en robot, som ikke har nogen ide om hvor den er (se billedet længere nede). I toppen ser du en funktion med sandsynligheden for alle lokationer i verden på y-aksen og alle lokationer i verdenen på x-aksen. Robottens nuværende tro hvor den er – er forvirring hvor der er ligevægt på alle lokationer i verdenen. Den røde streg på billedet bliver kaldt Maximum confusion(max forvirring).

I toppen af billedet er der 3 grønne døre. Måling af en dør tranformerer belief funktionen defineret af alle mulige lokationer til en ny funktion. Det er så posterior belief. Posterior betyder efter at en måling er blevet foretaget. De 3 røde bump på billedet er det bedste nuværende bud på hvor robotten er. Robotten bevæger sig så en bestemt distance til højre. Posterior belief bliver så skubbet til højre i forhold til bevægelsen. Det kaldes convolution. Robotten måler så igen en dør, og det er her magien sker. The belief(troen) bliver ganget med den tidligere funktion, så belief bliver højere. Det er den sidste funktion, hvor der er det højeste peak. På dette tidspunkt har robotten lokaliseret sig selv. Video med Total Probability.

probability

Leksion 2 – Kalman Filters

Når en selvkørende bil kører på vejen, er den nød til at registrere de andre biler, så den ikke kører ind i dem. Radar og laser sensorer er gode til at spore ting, og de bliver derfor brugt på selvkørende biler til at registrere distance og hastighed af de andre biler på vejen. De to typer af sensorer giver en masse data til den selvkørende bil, og her bruger man Kalman Filters til at få dataen til at give mening. Det anslår en kontinuerlig tilstand og giver en unimodal fordeling. Gaussians er en stor del af Kalman Filters, da fordelingen er givet i Gaussians. En Gaussian er en kontinuerlig funktion over rummet af steder. Der er mange øvelser med Gaussians i leksion 2.

Kalman-Filters

Leksion 3 – Particle Filters

Particle filters anslår en kontinuerlig tilstand og giver en multimodal fordeling og er nemmere at programmere i forhold til Histogram Filtre, Kalman filtre. Denne video viser et godt eksempel på partikelfiltre og forklarer, hvordan det fungerer.

Leksion 4 – Search

Lektion 4 handler om planlægning af bevægelse for selvkørende biler. Det handler om, hvordan selvkørende biler planlægger det at komme fra A til B på den mest optimale måde. Et eksempel kunne være en selvkørende bil som kører fra San Francisco til Los Angeles. Der er en mange forskellige veje at tage på denne rute, og planlægning af bevægelse hjælper den selvkørende bil med at finde den mest optimale rute. A * søgealgoritme og dynamisk programmering anvendes i Lektion 4 at løse ruteplanlægning problemet. A * søgealgoritme beregner den korteste vej og bruger en heuristisk funktion, som er lidt ekstra information, som hjælper søge algoritmen i den rigtige retning. Dynamisk programmering i ruteplanlægningen er forklaret meget godt i denne video.

Leksion 5 – PID Control

Lektion 5 handler om Robot bevægelse – går i dybden med at generere en smooth path, når robotten bevæger sig – læs mere om PID control.

Leksion 6 – SLAM

Lektion 6 handler om samtidig lokalisering og kortlægning – går i dybden med at bygge kort over miljøet.

Du kan læse mere om fordele og ulemper ved brug af kunstig intelligens og selvkørende biler her.


Skriv et svar