Jonas bygger smarta bilar med AI och maskininlärning

Under hela hösten 2019 har systemutvecklaren och Trombmedarbetaren Jonas Bergqvist labbat och experimenterat hemma.

Jonas bygger smarta bilar med AI och maskininlärning

JetBot heter bilen och den kör alldeles själv, håller sig innanför de vita strecken och stannar när trafikljuset lyser rött. Under hela hösten har systemutvecklaren och Trombmedarbetaren Jonas Bergqvist labbat och experimenterat hemma. Det har krävt en uppsjö komponenter och teknik för att lära upp den smarta bilen och att utveckla den till att bli ännu smartare.
-Jag ville lära mer om AI och maskinlärning. Jag ville göra det på ett lekfullt sätt, som samtidigt är på riktigt, säger Jonas.

Han fortsätter berätta:
– Det är visuellt och konkret att jobba med ett fysiskt objekt. Jag får återkoppling på hur teknik och kod funkar i realtid. Och det är häftigt att göra allt själv, från att samla in all data och processa den, till att sedan använda datan för att göra bilen smartare.

Det har gett mig en fördjupad förståelse, som jag redan har fått användning för på jobbet, berättar Jonas.

Jonas Bergqvist. Developer på Tromb och Substorm.

Men resan har inte varit helt spikrak, några dikeskörningar har det blivit på vägen. Bland annat har en stor utmaning varit strömförsörjningen till de många komponenterna som driver bilen. 

– En utmaning har varit att tillföra tillräckligt med kraft för att driva alla enheter, motorer och likande, och samtidigt hålla nere vikten. Jag har provat med AA batterier tillsammans med powerbanks, men det blev för klumpigt. Lösningen på problemet verkar vara att använda 18 650– batterier, som används i ficklampor och är otroligt kraftfulla. Med två sådana tillsammans med kretsar driver jag bilen utan större problem, säger Jonas.

Delar av Jonas dokumentation. Vill du se fler bilder och läsa Jonas egna kommentarer om bygget kan du ladda ner dokumentet längst ner i denna artikel.

Han fortsätter:
– Jag har också haft en del problem med att få fjärrskrivbordet och VNC Viewer att fungera stabilt, många gånger har det varit buggigt och långsamt att jobba så. Mycket av arbetet är därför gjort via SSH och konsolen.

Med billig och samtidigt bra teknik som Raspberry PI och arduino blir prislappen helt klart överkomlig för ett sånt här projekt – under 1000– lappen. Och resultatet blir kvalitativt bra. Processen har varit agil och innefattat många olika moment, som även lockat de minsta i familjen att delta.

– Min dotter har varit med och byggt vägen och miljön som bilen ska navigera i. Hon har använt star wars– gubbar i trafikmiljön, trafikljus och olika hinder. Det har varit roligt att göra det här tillsammans med barnen, berättar Jonas.

Tidsmässigt är det många timmar som sprungit iväg i projektet. Särskilt när en bil blev tre bilar.

– Jag har byggt och plockat isär, och sedan gjort om igen. Och igen. Bildigenkänningen och deep learning har tagit tid, det finns så oändligt många kombinationer. JetBot tog cirka 8 timmar att få färdig så att den rullar. Men de andra bilarna har tagit mer tid. Totalt har jag passerat 50 timmar med råge, avslutar Jonas.

Autonomous Car I & II – Robot Car:

  • 2x Chassi plates (Top & Bottom)
  • 4 DC Motors (5– 10V)
  • 4 Wheels
  • L298N Motodriver
  • Arduino Uno Rev3
  • Raspberry PI 4
  • Rapsberry PI Camera Module
  • Raspberry P Camera cable– 60cm
  • Breadboard
  • Extra cooling for Raspberry PI
  • 18650 Batteries
  • Powerbanks

Mjukvara:

  • Raspbian OS för Raspberry PI
  • Arduino IDE / Cloud IDE
  • Geany IDE (c++ / c)
  • OpenCV
  • Libjpeg
  • Wiringpi
  • Libavcodex
  • RaspiCAM
  • Remote Desktop
  • VNC Viewer

Autonomous Car I & II – Robot Car:

  • 2x Chassi plates (Top & Bottom)
  • 4 DC Motors (5– 10V)
  • 4 Wheels
  • L298N Motodriver
  • Arduino Uno Rev3
  • Raspberry PI 4
  • Rapsberry PI Camera Module
  • Raspberry P Camera cable– 60cm
  • Breadboard
  • Extra cooling for Raspberry PI
  • 18650 Batteries
  • Powerbanks

Mjukvara:

  • Raspbian OS för Raspberry PI
  • Arduino IDE / Cloud IDE
  • Geany IDE (c++ / c)
  • OpenCV
  • Libjpeg
  • Wiringpi
  • Libavcodex
  • RaspiCAM
  • Remote Desktop
  • VNC Viewer