LiTH, Reglerteknik Saab Dynamics. Designspecifikation Collision avoidance för autonomt fordon Version 1.0

Relevanta dokument
LiTH, Reglerteknik Saab Dynamics. Testplan Collision avoidance för autonomt fordon Version 1.0

LiTH, Reglerteknik Saab Dynamics. Hårdvaruspecifikation Collision avoidance för autonomt fordon Version 1.0

LIPs Daniel Axehill ChrKr Projektdirektiv_Saab_v3 CKr

LiTH, Reglerteknik Saab Dynamics. Teknisk Dokumentation Collision avoidance för autonomt fordon Version 1.0

Systemskiss. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Erik Andersson Version 1.0. Status

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Systemskiss. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Systemskiss. LiTH Autonom bandvagn med stereokamera Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

Projektdirektiv Oskar Ljungqvist Sida 1. Kund/Examinator: Daniel Axehill, Reglerteknik/LiU

Systemskiss. Redaktör: Anders Toverland Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Anders Toverland

LiTH Autonom styrning av mobil robot Projektplan. Martin Elfstadius & Fredrik Danielsson. Version 1.0

Testplan Autonom truck

HARALD. Systemskiss. Version 0.3 Redaktör: Patrik Johansson Datum: 20 februari Status

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Testprotokoll Autonom målföljning med quadcopter

Systemskiss Minröjningsbandvagn

Systemskiss. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Jon Månsson Version 1.0

Kravspecifikation. Oskar Törnqvist Version 1.0. Status. Granskad. Godkänd

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

LiTH Autonom styrning av mobil robot Testplan Version 1.0 TSRT71-Reglertekniskt projektkurs Anders Lindgren L IPs

Testplan. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Martin Skoglund Version 1.1. Status

LIPs Martin Lindfors ChrKr Projdir2017_sbd.doc CKr

LiTH Mobile Scout. Kravspecifikation. Redaktör: Patrik Molin Version 1.0. Status. Granskad Godkänd. TSRT71 Patrik Molin.

Projektdirektiv Hanna Nyqvist Sida 1

HARALD. Version 0.2 Redaktör: Patrik Johansson Datum: 8 maj Status. Granskad - yyyy-mm-dd Godkänd - yyyy-mm-dd

Användarhandledning. Redaktör: Patrik Molin Version 1.0. Mobile Scout. Status. LiTH Granskad Godkänd. TSRT71 Patrik Molin

Testspecifikation. Henrik Hagelin TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Testplan. Flygande Autonomt Spaningsplan. Version 1.0. Dokumentansvarig: Henrik Abrahamsson Datum: 14 mars Status.

HARALD Testprotokoll

Testprotokoll. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

Projektplan. LiTH Reglering av Avgaser, Trottel och Turbo Fredrik Petersson Version 1.0. Status. Reglerteknisk Projektkurs RATT LIPs

Testplan Autonom målföljning med quadcopter

Kravspecifikation Autonom målföljning med quadcopter

Testplan Racetrack 2015

Systemskiss Autonom målföljning med quadcopter

LIPs Fredrik Ljungberg ChrKr Projektdirektiv18_ROV.doc CKr

Kravspecifikation. Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil. Version 1.1 Joel Lejonklou 26 november 2012

LiTH Segmentering av MR-bilder med ITK Efterstudie MCIV. Anders Eklund. Status

Testplan. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

LIPs Isak Nielsen ChrKr Projektdirektiv13_ROV.doc CKr

Kravspecifikation Remotely Operated Underwater Vehicle

Projektplan. Redaktör: Patrik Molin Version 1.0. Mobile Scout. Status. LiTH Granskad Godkänd. TSRT71 Patrik Molin

Före Kravspecifikationen

Testprotokoll Racetrack 2015

Projektplan. LiTH Segmentering av MR-bilder med ITK Anders Eklund. Version 1.0. Status. Bilder och grafik projektkurs, CDIO MCIV LIPs

Projektdirektiv Christian Andersson Naesseth Sida 1

Systemskiss. LiTH Kamerabaserat Positioneringssystem för Hamnkranar Mikael Ögren Version 1.0. Status

Systemskiss. Michael Andersson Version 1.0: Status. Platooning Granskad DOK, PL Godkänd Erik Frisk

Projektplan. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Johan Hallenberg Version 1.0

LiTH Golfspelande industrirobot Designspecifikation. Designansvarig: Mikaela Waller Version 1.0. Status. Granskad Martin

Kravspecifikation. Flygande Autonomt Spaningsplan. Version 1.2. Dokumentansvarig: Henrik Abrahamsson Datum: 29 april Status.

Systemskiss. Vidareutveckling Optimal Styrning av Radiostyrd Racerbil. Version 1.0 Simon Eiderbrant. Granskad Erik Olsson 20 September 2012

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

Kravspecifikation Autonom Bandvagn

Testplan. Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil. Version 1.1 Fredrik Karlsson 26 november Granskad JL, FK 26 november 2012

Systemkonstruktion Z3

Kravspecifikation. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Erik Andersson Version 1.3. Status

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

No Oscillations Corporation. Efterstudie. Optimal Styrning av Autonom Racerbil. Version 0.1 Författare: Sofia Johnsen Datum: 20 december 2013

Per-Emil Eliasson, Claes Fälth, Manne Gustafson, Andreas Gustafsson

Kravspecifikation. Estimering och övervakning av avgasmottryck i en dieselmotor. Version 1.2 Dokumentansvarig: Gustav Hedlund Datum: 24 april 2008

LiTH Autonom bandvagn med stereokamera Användarhandledning. Gustav Hanning Version 0.1. Status. Granskad. Godkänd.

LiTH Utveckling och implementering av regulator för styrning av gimbalmonterade sensorer i UAV:er. Kravspecifikation.

Prestandautvärdering samt förbättringsförslag

LiTH 7 december Optimering av hjullastare. Testplan. Per Henriksson Version 1.0. LIPs. TSRT10 testplan.pdf WHOPS 1. tsrt10-vce@googlegroups.

Efterstudie. Redaktör: Jenny Palmberg Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Jenny Palmberg

Testprotokoll Följning av djur Kolmården djurpark

Designspecifikation. LiTH Autonom styrning av mobil robot Martin Elfstadius. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs

LiTH Modellering av helikopterdynamik Kravspecifikation. David Johansson Version 1.1

Systemskiss. Remotely Operated Underwater Vehicle. Version 1.0. Simon Lindblom. 22 september Status

Systemskiss. Självetablerande sensornätverk med 3G och GPS. Version 0.2. Christian Östman Datum: 15 maj 2008

Bilen som inte kan krocka

Projektdirektiv. Rikard Falkeborn Sida 1

Digitala projekt - Radiostyrd bil

Uppdrag för LEGO projektet Hitta en vattensamling på Mars

Kravspecifikation. LiTH AMASE Accurate Multipoint Acquisition from Stereo vision Equipment. John Wood Version 1.0.

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

Kravspecifikation21.pdf. Diagnos av elkraftsystem

TSRT09 Reglerteori. Sammanfattning av Föreläsning 3. Sammanfattning av Föreläsning 3, forts. Sammanfattning av Föreläsning 3, forts.

Projektplan. Flygande Autonomt Spaningsplan. Version 1.0. Dokumentansva Datum: 13 februari Dokumentansvarig: Henrik Abrahamsson.

Kravspecifikation Fredrik Berntsson Version 1.1

Projektplan Autonom målföljning med quadcopter

Styr- och informationssystem

Projektplan Autonom Bandvagn

Reglerteknisk projektkurs TSRT10

TESTPLAN. Markus Vilhelmsson. Version 1.3. Status Detektion och felisolering i förbränningsmotor

Projektplan. Modellbaserad diagnos av motortestcell Fredrik Johansson Version 1.0. Status. TSRT71 Modellbaserad diagnos av motortestcell IPs

Reglerteori, TSRT09. Föreläsning 4: Kalmanfiltret & det slutna systemet. Torkel Glad. Reglerteknik, ISY, Linköpings Universitet

Kravspecifikation Autonom styrning av gaffeltruck

LIPs Andreas Bergström ChrKr Projektdirektiv16_Toyota_v2.0.doc CKr

Projektplan Autonomstyrning av gaffeltruck

Rapportering som krävs utöver LIPS-dokumenten: poster föredrag där projektets genomförande och resultat beskrivs hemsida som beskriver projektet

Goda råd till de som ska utföra ett liknande projekt (från KMM 2016)

Efterstudie. LIPs. LiTH Autonom styrning av mobil robot Martin Elfstadius. Version 1.0. Status. TSRT71-Reglertekniskt projektkurs

Systemskiss Optimal Styrning av Autonom Racerbil

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

Kravspecifikation. LIPs. LiTH Reglering av Avgaser, Trottel och Turbo Niclas Lerede Version 1.2. Status. Reglerteknisk Projektkurs

Transkript:

LiTH, Reglerteknik Saab Dynamics Designspecifikation Collision avoidance för autonomt fordon Version 1.0 Erik Nordlander 3 maj 2005 Granskad Godkänd

Collision avoidance för autonomt fordon i Sammanfattning Designspecifikation för projektet Collision avoidance för autonomt fordon i kursen TSRT71 - Reglerteknisk projektkurs. I dokumentet definieras gränsnitten och lösningar för implementering beskrivs samt vilken prestanda som krävs för konstruktion. Projektidentitet Kund: Saab Dynamics Kontaktperson: Torbjörn Crona, torbjorn.crona@dynamics.saab.se, 013-186642 Kursansvarig: Anders Hansson, hansson@isy.liu.se, 013-281681 Beställare: Daniel Axehill, daniel@isy.liu.se, 013-281311 Handledare, ISY: Henrik Tidefelt, tidefelt@isy.liu.se, 013-281311 Handledare, Saab: Torbjörn Crona, torbjorn.crona@dynamics.saab.se, 013-186642 Hemsida: http://engdahl.no-ip.com/tsrt71 Namn Ansvarsområde E-mail Mobil Erik Nordlander Projektledare erino982 070-9616455 Henrik Engdahl Dokument henen254 070-2533230 Haider Shareef Kvalité haish292 070-4824543 Sixten Johansson Kund sixjo602 070-8187422 Torbjörn Lindström Test torli350 070-3076966 Johan Kjelsson Hårdvara johkj382 073-0624648 Tomas Hallenberg Mjukvara tomha219 073-0504265 Tommy Fransson Simulering tomfr281 070-4156747 Dokumenthistorik Version Datum Utförda förändringar Utfört av Granskat av 0.1 2005-02-23 Första utkastet erino982 HE 1.0 2005-03-07 SJ,HE

Collision avoidance för autonomt fordon ii Innehåll 1 Inledning 1 2 Översikt av systemet 1 3 Gemensam programvara 1 4 Mjukvara för fordonskontroll 3 5 Mjukvara för fordonssimulering 5 6 Grafikmotor 7 7 Fyskiskt fordon 7 A Headerfiler B Kommandoformat mellan dator och anpassningselektronik C Sensorlista I I II Tabeller 1 Gränssnitt: Positioneringsalgoritm till Annan enhet........ 3 2 Gränssnitt: Annan enhet till Positioneringsalgoritm........ 3 3 Gränssnitt: Planeringsalgoritm till Annan enhet.......... 4 4 Gränssnitt: Annan enhet till Planeringsalgoritm.......... 4 5 Gränssnitt: Styr- till Mätmodul till Annan enhet......... 5 6 Gränssnitt: Annan enhet till Styr- & Mätmodul.......... 5 7 Gränssnitt: Annan enhet till Miljömodell.............. 6 8 Gränssnitt: Simuleringsmotor till Annan enhet.......... 6 9 Gränssnitt: Annan enhet till Simuleringsmotor.......... 7 10 Kommandolista............................ II 11 Sensorlista med ID.......................... II Figurer 1 Blockschema för autonomt fordon samt simulering........ 2 2 Blockschema för simuleringsmotor................. 7

Collision avoidance för autonomt fordon 1 1 Inledning 1.1 Bakgrundsinformation När ett autonomt fordon ska förflytta sig krävs att dess bana på något sätt planeras. Ett första fall att betrakta är då omgivningen är helt känd. Då blir problemet är rent banplaneringsproblem. Detta problem förekommer även i andra tillämpningar, som t.ex. robottillämpningar. Utöver det rena banplaneringsproblemet kommer det att finnas behov av att snabbt kunna planera om banan under gång om nya, tidigare okända hinder, påträffas. I den här applikationen detekteras sådana hinder med hjälp av avståndssensorer. 1.2 Parter Kund: Saab Dynamics Beställare: Avdelningen för reglerteknik vid LiTH Tillverkare: Studenter i kursen TSRT71 - Reglerteknisk projektkurs vid LiTH 2 Översikt av systemet 2.1 Delsystem (moduler) Systemet delas upp i flera delsystem för att kunna utvecklas parallellt och oberoende av varandra. Viss programvara kommer att ingå i flera delsystem. Varje delsystem beskrivs mer ingående i respektiva kapitel. Ett blockdiagram för hur modulerna är sammankopplade återfinns nedan. Större delen av kommunikationen kommer att ske via TCP. RS232 utnyttjas vid kommunikation mellan PC och hårdvara. 2.2 Tid Vid simulering kommer tiden att skickas som stafettpinne mellan modulerna. Då slipper man problem med flera moduler som exekveras samtidig och kan orsaka konflikter. En förutsättning för att detta ska fungera är att en modul ej har tillåtelse att skicka stafettpinnen vidare till mer än en och endast en annan modul. 3 Gemensam programvara Vissa delar av koden kommer att utnyttjas av fler än en modul. 3.1 TCP Stora delar av kommunikationen mellan modulerna kommer att ske över TCP. Eftersom kommunikationen i sig är ganska likartad kommer samma TCP-modul att användas. Modulen har funktioner för att starta en TCP-server samt att initera kommunikation med en eller flera andra enheter. Tanken är att överföringen av data ska ske genom ett enkelt funktionsanrop. Då all TCP-kommunikation är värdefull vid felsökning kommer modulen att kunna startas i log-mode. Då sparas all kommunikation till fil. Modulen används av:

Collision avoidance för autonomt fordon 2 Figur 1: Blockschema för autonomt fordon samt simulering Miljömodell Fordonsmodell Simuleringsmotor Styr- & Mätmodul Positioneringsmodul Planeringsmodul All kod skrivs i C++ och kompileras med g++ i linuxmiljö. Headerfiler för ovanstående funktioner återfinns i appendix A. 3.2 Sensormodell Modellerna för sensorerna används både vid simulering och vid verklig drift. I simuleringen måste den användas för att ge en realistisk bild av vad sensorerna presterar i verkligheten. Det exakta mätvärdet kommer modifieras map vissa olinjäriteter och brus kommer att adderas. I verklig drift kan inverkan av vissa olinjära fenomen mildras genom modellbaserad filtrering. Modulen används av: Fordonsmodell Styr- & Mätmodul

Collision avoidance för autonomt fordon 3 All kod skrivs i C++ och kompileras med g++ i linuxmiljö. Headerfiler för ovanstående funktioner återfinns i appendix A. 4 Mjukvara för fordonskontroll 4.1 Positioneringsalgoritm Positioneringsalgoritmens uppgift är att skatta fordonets position mha av den information som kan fås från sensorerna. Denna information matchas mot kartan. I slutändan kommer det att handla om ett kalmanfilter för att skatta tillstånden hos fordonsmodellen. 4.1.1 Gränssnitt Positioneringsalgoritm ska kunna kommunicera med önskade moduler med TCP. Skicka karta Skicka sensorprioritering Mot enhet Planeringsalgoritm Styr & Mätmodul Beskrivning Skickar initial eller uppdaterad karta till planeringsalgoritmen. Skickar en lista över de sensorer algoritmen behöver mätvärden från för att göra en bra positionsskattning. Tabell 1: Gränssnitt: Positioneringsalgoritm till Annan enhet Begäran om minska osäkerhet Från enhet Planeringsalgoritm Ta emot mätvärde Styr & Mätmodul Beskrivning Planeringsalgoritmen skickar ett önskemål om minskad osäkerhet i en viss riktning. För att lösa uppgiften måste positioneringsalgoritmen antagligen begära mer mätdata från Styr & Mät-modulen. Positioneringsalgoritmen tar emot ett eller flera nya mätvärden från Styr & Mät-modulen. Tabell 2: Gränssnitt: Annan enhet till Positioneringsalgoritm 4.2 Planeringsalgoritm Planeringsalgoritmen används för att hitta en den bästa vägen mellan två punkter. Den algoritm som ligger till grund för planeringen kallas A*, i vilken man använder kostnader för att finna en optimal väg. Totala kostnaden betecknas som F = G+H där G beror på avståndet från startpunkten utefter den undersökta vägen och H beror på avståndet till målet. Planeringsalgoritmen uppdateras först i början då den planerar hela vägen från en startpunkt till en slutpunkt. Därefter planerar den endast om del av vägen när ett tidigare okänt

Collision avoidance för autonomt fordon 4 hinder detekteras av sensorerna. Vid önskemål om mindre osäkerhet kommer planeringsalgoritmen kalla på positioneringsalgoritmen för att den ska ta fram bättre noggrannhet om position och kartmiljö 4.2.1 Gränssnitt Planeringsalgoritmen ska kunna kommunicera med önskade moduler med TCP. Begäran om minska osäkerhet Mot enhet Positioneringsalgoritm Beskrivning Planeringsalgoritmen skickar ett önskemål om minskad osäkerhet i en viss riktning. Planeringsalgoritmen ger ifrån sig en riktning och ett avstånd dit fordonet ska bege sig. Tabell 3: Gränssnitt: Planeringsalgoritm till Annan enhet Positionsskattning Körinstruktioner Styr & Mätmodul Från enhet Positioneringsmodul Beskrivning Skickar ny positionsskattning och kartuppdatering som planeringsalgoritmen använder. Tabell 4: Gränssnitt: Annan enhet till Planeringsalgoritm 4.3 Styr och mätmodul Styr- & Mätmodulens uppgift är att aktualisera planeringsalgoritmens beslut om förflyttning. För att göra detta är måste styrkommandon konverteras och skickas till hårdvaran. Modulen har också som uppgift att filtrera mätvärden från givarna för att de ska ge en så korrekt avståndsskattning till positioneringsalgoritmen som möjligt. 4.3.1 Gränssnitt Styr och mätmodulen ska kunna kommunicera både med TCP och RS232. Informationen som skickas kommer att vara densamma. Kommunikation initierad Styr- & Mätmodul: Kommunikation initierad av annan enhet: 4.3.2 Funktioner Regulator: Här bestäms med vilken hastighet bilen ska framföras samt hur den ska svänga. Sensorkompensering: Olinjäriteter i sensorerna kompenseras mha sensormodellen. Eventuellt medelvärdesbildas fler mätvärden. Sensorprioritering: Utgående från positioneringsalgoritmens och regulatorns önskemål om mätdata skapas en turordning för sensormätningen.

Collision avoidance för autonomt fordon 5 Skicka styrkommando Skicka mätvärde Hämta mätdata Till enhet Simuleringsmotor / Hårdvara Positioneringsmodul Simuleringsmotor / Hårdvara Beskrivning Skickar kommando som simulatorn/hårdvaran ska reagera på. Skicka mätvärde till positioneringsalgoritmen för denna ska kunna göra positionsskattningar. Hämtar information från simuleringsmotor/hårdvara. Tabell 5: Gränssnitt: Styr- till Mätmodul till Annan enhet Sensorprioritering Körinstruktioner Från enhet Beskrivning Positioneringsmoduning kan positioneringsalgoritmen begära För att minska osäkerheten i en viss rikt- fler mätvärden från sensorer i denna riktning. Planeringsalgoritm Planeringsalgoritmen ger ifrån sig en riktning och ett avstånd dit fordonet ska bege sig. Tabell 6: Gränssnitt: Annan enhet till Styr- & Mätmodul All kod skrivs i C++ och kompileras med g++ i linuxmiljö. Headerfiler för ovanstående funktioner återfinns i appendix A. 5 Mjukvara för fordonssimulering 5.1 Fordonsmodell Fordonsmodellen används vid simuleringen för att simulera hur fordonet beter sig. Fordonsmodellen består egentligen av två delar. Dels finns sensordelen som genom att interagera med miljömodellen simulerar vilka värden fordonet mäter från de olika sensorerna, och dels finns en modell som från motorernas styrsignaler och robotens tidigare tillstånd bestämmer ett nytt tillstånd för modellen. De tillstånd som används är: Position Hastighet Vinkel Vinkelhastighet 5.2 Miljömodell Miljömodellens uppgift är att agera omvärld vid simulering av systemet. Den ska kunna leverera avståndet i en given riktning från en punkt till närmaste vägg. Kartan ska kunna exporteras för att grafikmotorn ska kunna presentera resultaten på ett tillfredsställande sätt.

Collision avoidance för autonomt fordon 6 5.2.1 Gränssnitt Från enhet Beskrivning Skicka karta Simuleringsmotor Skickar en kopia av kartan till simuleringsmotorn för export till fil. Filen ska kunna användas för presentation. Skicka mätvärde Simuleringsmotor Skickar avståndet till närmsta vägg givet positionen att mäta ifrån och vinkel för mätningen. Bör kunna mäta närmsta avtåndet för en cirkelsektor för att kunna simulera ultraljudssensorerna. Tabell 7: Gränssnitt: Annan enhet till Miljömodell 5.3 Simuleringsmotor Simuleringsmotorn sköter själva simuleringen och kopplar samman fordonsmodell och miljömodell med Styr- och mätmodulen. Resultaten från simuleringen exporteras för efterbehandling i lämpligt program t.ex. Matlab. 5.3.1 Gränssnitt Kommunikation initierad av simuleringsmotorn: Mot enhet Beskrivning Mätförfrågan Miljömodell Skickar en mätförfrågan till miljömodellen och får tillbaka det exakta avståndet till närmaste vägg. Kartförfrågan Miljömodell Skickar efter aktuell karta från miljömodellen för eventuell export till andra program. Uppdatera fordonstillstånd Fordonsmodell Skickar in styrsignaler till fordonsmodellen och får tillbaka det aktuella tillståndet. Simulera sensor Fordonsmodell Simulerar eventuella olinjäriteter och störningar som finns i våra verkliga sensorer. Tabell 8: Gränssnitt: Simuleringsmotor till Annan enhet Kommunikation initierad av annan enhet: 5.3.2 Funktioner Atmelemulator: För att göra omkopplingen mellan simulering och verklig drift så enkel som möjligt behövs en enkel emulator för Atmelprocessorns. Dess uppgift är att emulera det program som körs i processorn. Tidsfördröjningar kommer

Collision avoidance för autonomt fordon 7 styrkom- Skicka mando Från enhet Styr & mät Beskrivning Tar emot kommando som simulatorn ska reagera på. Tabell 9: Gränssnitt: Annan enhet till Simuleringsmotor helt att försummas eller representeras av en konstant fördröjning så fort emuleringen används. Då programkoden för Atmelprocessorn ska skrivas i C kommer den att utgöra grunden för emulatorn. Exportmodul:Innan data skrivs till fil kan det eventuellt vara intressant att förbehandla den. Tex kan det vara trevligt att integrera hastigheten hos fordonet för att få ut en position. Här finns även funktioner för att exportera data till fil. Signal-hub: Funktionens uppgift är att dirigera signalerna runt för att utföra en lyckad simulering. Signalvägarna specificeras enligt blockschema nedan. Figur 2: Blockschema för simuleringsmotor All kod skrivs i C++ och kompileras med g++ i linuxmiljö. Headerfiler för ovanstående funktioner återfinns i appendix A. 6 Grafikmotor Som grafikmotor kommer vi till en början att använda oss av Matlab. De filer som exporteras från simuleringsmotorn importeras varvid den kan efterbehandlas och plottas med de verktyg som finns tillgängliga där. 7 Fyskiskt fordon Det fysiska fordonet ska vara en plattform för att testa och utvärdera projektets övriga delar under realistiska former. Den fysiska formen på fordonet kravställs främst av det faktum att det ska rymmas en bärbar dator, elektronik samt ett batteri av större typ. En enkel rektangulär form är att föredra, men vassa hörn och kanter måste undvikas. Det bör vara en ram av metall med plats för att fästa

Collision avoidance för autonomt fordon 8 motorerna i samt en plan yta ovanpå. Möjlighet att fästa sensorer, elektronik samt batteri inuti ramen är önskvärd. Fordonet är endast tänkt att användas inomhus på ett plant underlag. 7.1 Bärbar dator Den bärbara datorn är den enhet på fordonet som ska se till att fordonet uppfyller de krav på funktion och autonomitet som finns i [Kravspecifikation för projektet Collision avoidance]. 7.1.1 Gränssnitt Den bärbara datorn kommunicerar via ett w-lan mot omvärlden och via ett seriellt RS232-gränssnitt mot elektroniken på fordonet. Exempel på kommandoformat för kommunikation mot elektroniken finns i appendix B. 7.1.2 Funktioner I den bärbara dator som placeras på fordonet kommer mjukvara för fordonskontroll (avsnitt 3) att finnas implementerad tillsammans med modeller för fordonets olika delar(avsnitt 4.1). Dessutom kommer en funktion för kommunikation med omvärlden att finnas implementerad. 7.2 Anpassningselektronik Anpassningselektronikens uppgift är att sköta kommunikationen mellan den bärbara datorn och de övriga modulerna på det fysiska fordonet. Modulen implementeras lämpligen i någon form av mikroprocessor som ger hög grad av integration och funktion i en krets. 7.2.1 Gränssnitt Kommunikation med den bärbar dator sker seriellt med RS232. Kommandon skickas från datorn till anpassningselektroniken. Exempel på kommandoformat ges i appendix B. Kommunikation mot sensorerna sker med lämpligt protokoll, t.ex. I2C, eller direkt via mikroprocessorns I/O-portar. 7.2.2 Funktioner Anpassningselektroniken ska ha funktioner för att styra hastighet och riktning på motorerna var för sig, samt att hämta data från specifika sensorer. 7.3 Styrelektronik Styrelektroniken levererar ström via ett batteri direkt till motorerna enligt de styrsignaler som kommer från anpassningselektroniken.

Collision avoidance för autonomt fordon 9 7.4 Sensorer och aktuatorer Syftet med sensorerna är att leverera information från omgivningen till systemet. Systemet genererar signaler till fordonets motorer som aktuerar styrsignalerna. Motorerna bör via pulsgivare leverera feedback till systemet, likt en sensor, för göra det möjligt att reglera hastigheten. En lämplig maxhastighet och maxacceleration måste beaktas. 7.4.1 Gränssnitt Sensorerna kommunicerar direkt med anpassningselektroniken via lämpliga gränssnitt. Motorernas pulsgivare lämnar ett visst antal pulser per hjulvarv till anpassningselektroniken. Aktuatorerna får en pulsbreddsmodulerad spänning in som direkt bestämmer motorns effekt.

Referenser [Projektmodellen LIPS] Tomas Svensson och Christian Krysander, Version 1.01, 2003 [Projektdirektiv] Daniel Axehill, 2005 [Kravspecifikation för projektet Collision avoidance] Henrik Engdahl, 2005 [Tidplan för projektet Collision avoidance] Erik Nordlander, 2005 [Systemskiss för projektet Collision avoidance] Henrik Engdahl, 2005 [Projektplan för projektet Collision avoidance] Erik Nordlander, 2005

Collision avoidance för autonomt fordon I A Headerfiler A.1 Tcp.h void StartServer(int Port); void StartServer(int Port, char[] LogFile); bool SendDouble(double Value, int ToUnit); bool SendInt(int Value, int ToUnit); A.2 Sensor.h double MapValueToSensor(double Measurment, int SensorID); double AddNoise(double Value, int SensorID); void ListenForMessage(); A.3 SimulationEngine.h double GetMeasurment(double Angle, double PositionX, double PositionY); map GetMap(double Resolution); state UpdateStateModel(double VoltageLeft, double VoltageRight); double SimulateSensor(double ExactMeasurment, int SensorID); int AtmelProgram(char[] Message,timestamp CurrentTime); double SignalRoute(int RequestType, double Argument); void ExportToFile(timestamp CurrentTime, state CurrentState); void ExportToFile(map Map); void ListenForMessage(); A.4 ControlAndMeasure.h double ControlEngine(double Angle, double Distance); double[] GetMeasurment(); double FilterMeasurement(int SensorID, double Measurement); int[] CreateSensorList(int[] PositionList, int[] ControlList); int SendMeasurment(double Measurment, int SensorID, timestamp CurrentTime); void ListenForMessage(); B Kommandoformat mellan dator och anpassningselektronik För att den bärbara datorn ska kunna kommunicera med anpassningselektroniken behöver man kunna skicka kommandon och data med varierande format. Formaten ska implementeras så att första byten från datorn alltid är ett kommando och eventuellt efterföljande byte(s) är data. Från anpassningselektroniken skickas inga kommandon utan enbart data. Beroende på vilket kommando som skickats vet datorn hur många byte som anpassningselektroniken kommer att svara med. Ingen felkorrigering kommer att utföras av anpassningselektroniken utan systemen i den bärbara datorn får kontrollera relevansen i de data som mottas. Exempel på kommandosekvens:

Collision avoidance för autonomt fordon II Kommando: [Motor 1, stopp] Kommando + 1 byte data: [Motor 0, fram] [Hastighet: 5] Kommando + 2 byte data: [Mät sensorer] [01101001][11110000] B.1 Lista över kommando mellan PC och anpassningselektronik Kommando Argument Byte från PC Byte till PC Vänster motor framåt Hastighet 1 + 1 - Vänster motor bak Hastighet 1 + 1 - Höger motor fram Hastighet 1 + 1 - Höger motor bak Hastighet 1 + 1 - Hämta n sensordata Sensorlista 1 + 2 2*n Hämta alla sensordata 1 2*k Hämta avståndssensorer 1 2*l Hämta motorsensorer 1 2*m System Check 1 1 Tabell 10: Kommandolista k är det totala antalet sensorer på fordonet. l är antalet avståndssensorer på fordonet. m är antalet sensorer associerade med motorerna. C Sensorlista Sensor ID Tachometer Vänster 1 Tachometer Höger 2 Ampermeter Vänster 3 Ampermeter Höger 4 Ultraljudssensor Framåt 5 Ultraljudssensor Bakåt 6 Ultraljudssensor Vänster 7 Ultraljudssensor Höger 8 IR-sensor HögerFram 9 IR-sensor VänsterFram 10 IMU 11 Kompass 12 Tabell 11: Sensorlista med ID