SlideShare a Scribd company logo
CHALMERS
Autonom lagerhantering
Lösningar för den moderna lagermiljön
Kandidatarbete inom civilingenjörsprogrammet
Victor Andersson
Gunnar Bolmvall
Daniel Eriksson
Jonathan Hasselström
Pedro Josefsson
Daniel Pettersson
Institutionen för Signaler och system
CHALMERS TEKNISKA HÖGSKOLA
Göteborg, Sverige 2015
Autonom lagerhantering
Lösningar för den moderna lagermiljön
-Kandidatarbete inom civilingenjörsprogrammet-
Victor Andersson
Gunnar Bolmvall
Daniel Eriksson
Jonathan Hasselström
Pedro Josefsson
Daniel Pettersson
Handledare: Martin Fabian
Examinator: Knut Åkesson
Kandidatarbete SSYX02-15-17
Autonom lagerhantering, lösningar för den moderna lagermiljön
c 2015 Victor Andersson, Gunnar Bolmvall, Daniel Eriksson,
Jonathan Hasselström, Pedro Josefsson, Daniel Pettersson
Chalmers tekniska högskola
SE-412 96 Göteborg, Sverige
Telefon +46(0) 31-772 1000
Fax 031-772 5944
chalmers@chalmers.se
Tryck: Signaler och system
Omslag: Foto pÄ AGV
Förord
Följande rapport beskriver kandidatarbetet Autonom lagerhantering. Syftet med
arbetet var att utveckla ett autonomt lagerhanteringssystem och att ta fram en
fungerande prototyp. Projektet har utförts pÄ Chalmers tekniska högskola vid
institutionen för Signaler och System. Projektet omfattar 15 högskolepoÀng och
genomfördes vÄrterminen 2015. Vi vill tacka alla som varit inblandade i projektet
och sÀrskilt tack riktas till vÄr handledare Martin Fabian. Stort tack riktas Àven
till Janne Bragée och Reine Nohlborg i Prototyplabbet som varit behjÀlpliga under
framtagningen av projektets prototyp.
i
Abstract
In order to create an eïŹƒcient warehouse management system and minimize the
related work injuries, systems with an ever-increasing degree of automation is
pursued.
This report adresses the development of an autonomous warehousing system and
an associated prototype with the aim to facilitate the work and reduce the economic
and social costs associated with conventional methods.
An AGV (Automated Guided Vehicle) was developed and with the help of a su-
pervisory system it’s made possible to retrieve and return warehouse furnishing
autonomously, following given orders. A grid of QR codes has been established in
a test area, which the AGV can scan and thereby obtain position feedback. The
route planning, provided by the supervisory system, is based on the A* algorithm
that calculates an optimal route for the AGV to reach its target destination. The
supervisory system also supports multiple AGVs and thereby enabling adaptation
to diïŹ€erent sizes of storage systems.
In a warehouse environment, unpredictable elements such as people and misplaced
items can appear and therefore a collision avoidance system has been implemented.
A laser sensor is placed at the forefront of the AGV, thus enabling obstacle detec-
tion in the direction of travel. In order to be able to move the warehouse furnishing
the AGV is equipped with a mechanical lifting device which makes it possible to
transport articles.
ii
Sammanfattning
För att skapa eïŹ€ektiva lagerhĂ„llningssystem och minimera de relaterade arbets-
skadorna efterstrÀvas en stÀndigt ökande automatiseringsgrad av nÀmnda system.
Rapporten behandlar utvecklingen av ett autonomt lagerhÄllningssystem och en
tillhörande prototyp med syftet att underlÀtta arbetet samt minska de ekonomiska
och sociala kostnader förknippade med konventionella metoder.
En AGV (Automated Guided Vehicle) har utvecklats, som tillsammans med ett
överordnat system klarar att hÀmta och lÀmna material autonomt efter given order.
I lagermiljön har ett rutnÀt av QR-koder upprÀttats, vilka AGV:n kan avlÀsa och
dÀrigenom bestÀmma sin position. Ruttplaneringen, som sker i det överordnande
systemet, görs med algoritmen A* som berÀknar den optimala rutten för AGV:n.
Det överordnade systemet har stöd för ïŹ‚era AGV:er och dĂ€rigenom möjliggörs
anpassning till olika storlekar pÄ lagersystem.
I en lagermiljö förekommer oförutsÀgbara element sÄsom mÀnniskor och felplacera-
de objekt, dÀrför har ett kollisonsundvikningssystem implementerats. En lasersen-
sor placeras i framkanten av AGV:n och dÀrmed möjliggörs avskanning av omrÄdet
i AGV:ns fÀrdriktning och följaktligen kan eventuella hinder upptÀckas. För att
kunna förïŹ‚ytta lagerinredningen utrustas AGV:n med en mekanisk lyftanordning.
iii
Beteckningar
AGV Automated guided vehicle.
QR-kod Quick Response-kod.
CATIA Program för att digitalt skapa kontruktioner
och ritningar.
JavaScript Prototypbaserat ScriptsprÄk som anvÀnds
frÀmst i webbtillÀmpningar.
HTML5 Senaste standarden för HTML, vilket an-
vÀnds för skapandet av webbsidor.
Kompilator Datorprogram som skapar ett lÄgnivÄpro-
gram utifrÄn en programtext.
Kommandotolk GrÀnssnitt dÀr anvÀndare kan köra komman-
don eller enkla program.
Netcat TjÀnst för att lÀsa/skriva till nÀtverksanslut-
ningar.
API SpeciïŹcerar hur olika applikationsprogram
kan anvĂ€nda speciïŹk programvara.
Full-duplex Beskriver att kommunikation kan ske i bÄda
riktningar samtidigt.
Heuristik Procedur som ger tillfredstÀllande men ofull-
stÀndiga svar.
Encoder Enhet som omvandlar information frÄn ett
format till ett annat.
iv
InnehÄll
1 Inledning 1
1.1 Bakgrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Syfte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 AvgrÀnsningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Problemformulering . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Rapportstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Lagermiljö och robot 6
2.1 Lagermiljö . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Lagerinredning . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 RutnÀt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 HĂ„rdvarubeskrivning . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Chassi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.3 myRIO 1900 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4 LiDAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.5 Batteripack . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.6 Överordnat system . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.7 Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.8 Ram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.9 Mecanumhjul . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.10 Styrmotorer . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Robotens kinematik . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Motorkontroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Navigation 13
3.1 Trilaterationsmetoder . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1 GPS och WiFi . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 Lasernavigation . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Markeringsföljning . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
v
3.2.1 Linjeföljning . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2 Magnetföljning . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.3 RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.4 QR-koder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Val av navigationsmetod . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.2 Rörelsemönster . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.3 LĂ€sning av koder . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.4 RutnÀt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.5 OïŹ€set och vinkel . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.6 Processbeskrivning . . . . . . . . . . . . . . . . . . . . . . . 25
4 Överordnat system 28
4.1 Systemuppbyggnad . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 GrÀnssnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Ruttplanering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.2 Visibility graph/Dijkstras algoritm . . . . . . . . . . . . . . 30
4.3.3 PotentialfÀlt . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.4 Flood ïŹll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Val av ruttplaneringsmetod . . . . . . . . . . . . . . . . . . . . . . 32
4.5 Implementering av överordnade systemet . . . . . . . . . . . . . . . 32
4.5.1 Beskrivning av grÀnssnittets utseende . . . . . . . . . . . . . 34
5 Kollisionsundvikning 38
5.1 Ultraljud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2 LiDAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3 Val av kollisionundvikningssystem . . . . . . . . . . . . . . . . . . . 40
5.4 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4.1 SynfÀlt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4.2 Agerande vid pĂ„trĂ€ïŹ€ande av hinder . . . . . . . . . . . . . . 43
5.4.3 Processbeskrivning . . . . . . . . . . . . . . . . . . . . . . . 44
6 Anordning för transport av material 46
6.1 Framtagande av koncept . . . . . . . . . . . . . . . . . . . . . . . . 46
6.1.1 BeïŹntlig prototyp . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Design av koncept . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2.1 ModiïŹeringar . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3 FĂ€rdigt koncept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
vi
7 Integrering av delsystem 53
7.1 FörïŹ‚yttning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.1.1 Död rÀkning . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.1.2 Matematisk modell vid förïŹ‚yttning . . . . . . . . . . . . . . 54
7.1.3 Reglering av motorer . . . . . . . . . . . . . . . . . . . . . . 58
7.2 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.2.1 Protokoll mellan myRIO och överordnat system . . . . . . . 59
7.2.2 Protokoll mellan myRIO och Arduino . . . . . . . . . . . . . 60
7.2.3 myRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.3 Initieringsprocesser . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.4 Felsökningssekvens . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.5 Systemöverblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.5.1 Uppstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.5.2 Arbetscykel . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.5.3 Avslutning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8 Resultat 67
8.1 MĂ„luppfyllnad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.3 Kollisionsundvikningssystem . . . . . . . . . . . . . . . . . . . . . . 70
8.4 Överordnat system . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.5 Anordning för transport av material . . . . . . . . . . . . . . . . . . 71
8.6 Test av system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9 Diskussion 74
9.1 ProblemomrÄden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.2 UtvecklingsomrÄden . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Referenser 80
A KravspeciïŹkation I
B OïŹ€set och vinkelberĂ€kningar III
C BerÀkningar för LiDAR VI
D BerÀkning för lyftanordning X
E Ritningar och modeller av anordning för transport för material XII
F Tester XXIII
F.1 Rörelseprecision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIII
vii
F.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV
F.3 Kollisionsundvikning . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV
F.4 Överordnat system . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV
F.4.1 Flera AGV:er . . . . . . . . . . . . . . . . . . . . . . . . . . XXV
F.5 Lyftanordning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV
F.6 Test av system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV
viii
Kapitel 1
Inledning
För att öka eïŹ€ektiviteten och sĂ€kerheten samt minska kostnaden för lagerhante-
ring har institutionen för Signaler och System pÄ Chalmers skapat kandidatarbetet
SSYX02-15-17, Autonom lagerhantering. Arbetet syftar till att skapa en prototyp
för en automatiserad lösning för materialhantering i lagermiljö. Denna rapport
redogör utförande samt resultat av nÀmnt kandidatarbete som genomförts under
vĂ„rterminen 2015. Som grund till arbetet ïŹnns tidigare Ă„rs kandidatarbeten, dĂ€r
syftet var att autonoma AGV:er skulle transportera lagerinredning Ät ett överord-
nat system [16, 12].
1.1 Bakgrund
Att hushÄlla med resurser Àr en viktig del av företagandet oavsett om det rör sig
om pengar, ytor, personal eller miljön. Inom tillverkningsindustrin tvingas företag
ofta att lagerhÄlla de producerade produkterna vilket skapar stora lager som bin-
der kapital och tar upp stor platsyta. Detta görs dels för att företag ska kunna
hÄlla höga servicenivÄer men Àven för att den stÀndigt förÀnderliga marknaden Àr
svÄr att förutspÄ. Stora svenska företag arbetar ofta aktivt med att minska dessa
kostnader genom att utarbeta eïŹ€ektiva logistiklösningar, exempelvis via ”Supply
chain management” [20]. Problemet med ”Supply chain management” Ă€r att fokus
ligger pĂ„ in- och utïŹ‚Ă¶den frĂ„n lager och fabriker som behandlas. Mindre hĂ€nsyn
tas sĂ„ledes till materialïŹ‚Ă¶dena inom lagret.
Oftast sker materialhanteringen i lagret manuellt med hjÀlpmedel som truckar,
pallastare och vagnar. Hos vissa företag anvÀnds ibland paternosterverk1
, men
1
Paternosterverk syftar hÀr till en automatiserad lagerhylla.
1
KAPITEL 1. INLEDNING
dessa Ă€r ofta inte ïŹ‚exibla gĂ€llande nya lagerlösningar och Ă€r begrĂ€nsade till mindre
artiklar [20].
Konsultbolaget Boston Consulting Group menar att det ïŹnns möjligheter att mins-
ka kostnaderna inom industrin med 16% genom en ökning av automatiseringen
under de kommande 10 Ären [14]. Med tanke pÄ den stora andelen manuellt arbete
i materialhanteringen ïŹnns det kostnadsminskningar att göra Ă€ven hĂ€r.
Utöver materialhanteringskostnaderna tillkommer ocksÄ andra sociala kostnader
i form av arbetsolyckor. NÀstan 800 personer skadas och sjukskrivs frÄn jobbet
varje Är i truckrelaterade olyckor, vilket Àr den vanligaste typen av arbetsolyckor i
Sverige [10]. Genom att minimera mÀnniskors nÀrvaro i lagerhÄllningsomrÄdet Àr
förhoppningen att arbetet blir betydligt sÀkrare Àn med konventionella lagerhÄll-
ningssystem.
En uppmÀrksammad automationslösning för lagerhantering, som projektet hÀmtat
inspiration ifrÄn, har utvecklats av företaget Kiva Systems. Det baseras pÄ ett inte-
grerat system dÀr operatörer, AGV:er och lagerhyllor samspelar. Kortfattat utgörs
systemet av ïŹ‚exibla lagerplatser dĂ€r ett överordnat system övervakar och hĂ„ller
koll pÄ inventarier. Under det överordnade systemet verkar individuella AGV:er
med uppgift att transportera lagerhyllorna mellan operatörerna och lagerplatsen.
Resultatet Àr ett lagerhanteringssystem med minimerad olycksrisk dÄ personalen
beïŹnner sig vid plockstationer och AGV:erna sköter transporten av lagerinred-
ningen. Detta system möjliggör Ă€ven en ïŹ‚exiblare anvĂ€ndning av lagerytorna dĂ„
utrymmet lÀtt kan omorganiseras [3].
1.2 Syfte
Avsikten med projektet Àr att genom vidareutveckling av föregÄende Ärs kandidat-
arbeten utarbeta och implementera en lösning för autonom materialhantering med
hjÀlp av AGV:er. Via ett överordnat system ska AGV:er koordineras till att trans-
portera förutbestÀmd lagerinredning till bestÀmda platser för att till exempel en
montör ska slippa hÀmta detta sjÀlv. Systemet ska vara möjligt att implementera
i ett lagersystem med ïŹ‚era AGV:er och varje AGV utrustas med ett kollisionsund-
vikningssystem för att undvika hinder. MĂ„let Ă€r att öka eïŹ€ektiviteten och pĂ„ ett
eïŹ€ektivt och tillförlitligt sĂ€tt minimera kostnader samt reducera personskador och
höja ergonomin i anknytning till materialhantering i lagermiljöer.
2
KAPITEL 1. INLEDNING
1.3 AvgrÀnsningar
För att kunna hÄlla projektet inom given tidsram mÄste avgrÀnsningar i projekt-
uppgiften göras. Till en början avgrÀnsas arbetet till att enbart behandla och
framstÀlla en enda AGV eftersom det Àr vad gruppen har att tillgÄ i projektet.
Detta skall dock inte begrÀnsa det överordnade systemet, som bör konstrueras för
att hantera ïŹ‚er AGV:er.
PÄ liknande sÀtt kommer lagermiljön utformas sÄ att den endast innehÄller en
operatör. Detta för att spara tid samt minimera och fokusera uppgiften pÄ att
först fÄ den huvudsakliga funktionen, hÀmta och lÀmna lagerinredning, att fun-
gera korrekt. HÀr beslutas det att fortsÀtta med föregÄende Ärs tanke med att
lagerinredningen skall ha en förutbestÀmd struktur och design.
För att optimera ruttplaneringen antas den tillgÀngliga arbetsmiljön vara kÀnd
för det överordnade systemet. Miljön avgrÀnsas ocksÄ till att verka i ett plan och
ordnas sÄ att det ej existerar hinder pÄ höjder som inte kan detekteras.
TvÄ andra omrÄden som projektet ej behandlar Àr felplacering av lagerinredning
samt lagersaldohÄllning. Felplacering av lagerinredning innebÀr alltsÄ att lager-
inredningen förïŹ‚yttas manuellt vilket gör att systemet tappar kontrollen pĂ„ var
de beïŹnner sig i lokalen. Det förutsĂ€tts hĂ€r att all personal Ă€r vĂ€l införstĂ„dd med
systembegrÀnsningen. Företag har ofta redan en extern saldohÄllningsfunktion vil-
ket gör utvecklandet av en sÄdan funktion inte innefattas i projektet.
1.4 Problemformulering
De huvudsakliga mÄlen för projektet Àr enligt följande att AGV:n skall:
‱ Autonomt navigera mellan kĂ€nda positioner.
‱ Ta order om att utföra leveranser frĂ„n ett överordnat datorsystem.
‱ Undvika att kollidera med mĂ€nniskor och annan rörlig utrustning inklusive
andra AGV:er.
‱ Utrustas med ett system för att automatiskt hĂ€mta och lĂ€mna lagerinred-
ning.
Det överordnade systemet skall ocksĂ„ hantera ïŹ‚era AGV:er. Prioritet sĂ€tts pĂ„
att primÀrt klara de nÀmnda mÄlen och dÀrefter addera ytterligare funktionalitet
samt optimering. För att fĂ„ en överblick över alla de problem som deïŹnierats har
följande delmÄl upprÀttats:
3
KAPITEL 1. INLEDNING
1. Lagerinredningen skall vara utformad sÄ att:
(a) Den kan transporteras av AGV:n utan att varor tappas eller gÄr sönder.
2. Plockstationen skall:
(a) Ge order till det överordnade systemet om vad som skall hÀmtas via ett
lÀmpligt grÀnssnitt.
(b) GodkÀnna att rÀtt order blivit plockad sÄ att AGV:n kan ÄterlÀmna
lagerhyllan.
3. Navigationssystemet skall:
(a) Möjliggöra för AGV:n att bestÀmma sin position.
(b) Vara grund till ett kommersiellt gÄngbart system.
4. AGV:n skall:
(a) Navigera till rÀtt plats.
(b) Möjliggöra transportera av lagerhyllan.
(c) Kontrollera att rÀtt lagerhylla hÀmtas.
(d) Undvika kollision med rörliga och stationÀra hinder.
(e) Placera lagerhyllan pÄ angiven plats.
5. Överordnade systemet skall:
(a) HÄlla koll pÄ vilken hylla som skall hÀmtas.
(b) Ruttplanera AGV:ns vÀg till och frÄn mÄlet.
(c) Planera AGV:ernas rutt sÄ att kollisioner undviks .
(d) TillhandahÄlla ett grÀnssnitt som möjliggör orderhantering och uppda-
tera anvÀndaren med status av orderhÀmtning.
(e) HÄlla reda pÄ lagerhyllornas position.
En kravspeciïŹkation upprĂ€ttades Ă€ven för att kvantiïŹera mĂ„len i projektet, vilken
kan hittas i appendix A. Under arbetets gÄng gjordes kontinuerlig Äterkoppling
till kravspeciïŹkationen för att sĂ€kerstĂ€lla att alla krav verkligen uppnĂ„tts.
4
KAPITEL 1. INLEDNING
1.5 Rapportstruktur
För att uppnÄ de uppsatta mÄlen delades arbetet upp i mindre, mer konkreta, del-
system. Det som föreföll mest naturligt vid projektstart var att dela upp projektet i
fyra delsystem. Dessa Àr navigering, överordnat system, kollisionsundvikning samt
anordning för transport av material och dĂ€rför Ă„terïŹnns dessa delsystem som en-
skilda kapitel i rapporten. Inledningsvis ges en inventariebeskrivning som efterföljs
av de fyra delsystemkapitlen som beskriver först det mer teoretiska underlaget för
att sedan gÄ in pÄ implementeringen av arbetet, det vill sÀga en konkretisering
av vad som gjorts. Innan resultat och diskussion, hittas ett kapitel som beskriver
hur delsystemen interagerar med varandra och ger lÀsaren en bÀttre överblick över
hela arbetet.
5
Kapitel 2
Lagermiljö och robot
Hur lagermiljön ser ut och vilken hÄrdvara som anvÀnds pÄverkar sjÀlvklart det
resultat som kan uppnÄs av projektet. För att ge lÀsaren en tydlig bild av de delar
som ingÄr i det slutgiltiga resultatet följer nedan en beskrivning av hur lagermiljön
Àr utformad samt vilka komponenter som ingÄr i AGV:n.
2.1 Lagermiljö
Som beskrivs i kapitel 1.3, har ïŹ‚era avgrĂ€nsningar gjorts med avseende pĂ„ lagermil-
jön. Utöver dessa bör lagermiljön Àven vara utformad pÄ ett standardiserat sÀtt
för att minska antalet scenarion som AGV:n kan utsÀttas för. DÀrför upprÀttas,
utöver de avgrÀnsningar som redan gjorts, riktlinjer kring hur lagret ser ut.
2.1.1 Lagerinredning
AGV:n skall transportera varor i ett lager. I kapitel 6 beskrivs den anordning
som anvÀnds för uppgiften. Lösningen liknar den som Kiva systems anvÀnder idag
[3]. I projektet anvÀnds ett kvadratiskt bord med sidan 55 cm och höjden 45 cm
som vÀger drygt 3 kg för att enkelt, snabbt och billigt efterlikna nÄgon typ av
lagerinredning med produkter, se ïŹgur 2.1.
Denna inredning anvÀnds inte vanligen i lagermiljöer men den utgör en god grund
för att testa funktionaliteten i projektet. Vid eventuell vidareutveckling ïŹnns hĂ€r
stor potential för att eïŹ€ektivisera systemet samt öka dess anvĂ€ndarvĂ€nlighet, se
kapitel 9.
6
KAPITEL 2. LAGERMILJÖ OCH ROBOT
Figur 2.1: Bordet som anvÀnds som lagerinredningen i projektet [21]
2.1.2 RutnÀt
Metoden som valts för att Äterkoppla AGV:ns position i rummet sker via ett rutnÀt
av QR-koder(Quick response) pÄ golvet, se avsnitt3.2.4. För att AGV:n ska klara
av att tolka information frÄn rutnÀtet förses den med en kamera som kan lÀsa av
QR-koder. Punkterna i rutnÀtet utgörs av QR-koder som innehÄller information
om punktens koordinater. Punkterna beïŹnner sig 80 cm frĂ„n varandra och utifrĂ„n
koderna kan Àven AGV:ns vinkel i förhÄllande till koden utlÀsas. I kapitel 3 beskrivs
beslutet av navigationssystem.
2.2 HĂ„rdvarubeskrivning
TillgĂ€ngligt för projektet ïŹnns en i ïŹgur 2.2 illustrerad Nexus 4WD mecanum wheel
mobile robot kit 10011 som Àr utrustad med fyra ultraljudssensorer, en mikrokon-
troller(Arduino), ett aluminiumchassi samt fyra mecanumhjul med tillhörande 12
V motorer [1]. Nettovikten för denna grundstomme Àr drygt 4 kg. Utöver Nexus
7
KAPITEL 2. LAGERMILJÖ OCH ROBOT
roboten och dess tillbehör anvÀnds ocksÄ i projektet en router, server, styren-
het(myRIO), kamera, batteripack, anordning för transport av material och la-
sernavigationsutrustning. En kortfattad beskrivning följer nedan för dessa delar
bortsett frÄn anordningen för transport av material som istÀllet beskrivs under
kapitel 6.
Figur 2.2: Nexus 4WD Mecanum wheel mobile robot kit 10011
2.2.1 Chassi
Chassit Àr tillverkat av aluminiumlegering och Àr bÄde lÀtt och starkt med dimen-
sionerna 380mm x 215mm x 50mm. Metallen Àr tvÄ millimeter tjock vilket anses
tillrÀckligt för att fÀsta utrustning pÄ.
2.2.2 Arduino
För att kunna lÀnka mjukvaran med hÄrdvaran anvÀnds en Arduino mikrokontrol-
ler som Àr sammankopplad med hjulmotorerna vilket gör att AGV:n kan styras
enligt önskemÄl. För att möjliggöra styrning av robotens alla fyra motorer samti-
digt Àr Arduino:n utrustad med ett Arduino IO Expansion Board. Arduino:n som
anvÀnds Àr av modellen Deumilanove 328 och den styr utöver hjulmotorerna Àven
den motor som höjer och sÀnker lyftstycket. Den största begrÀnsningen i Arduino:n
Àr att den endast har en port för seriell kommunikation. Ursprungligen anvÀndes
denna port för att interagera med ultraljudssensorerena, men för att kommunicera
8
KAPITEL 2. LAGERMILJÖ OCH ROBOT
med myRIO:n Àr seriell kommunikation den enda möjligheten. Detta innebÀr att
de ultraljudssensorer som ïŹnns förmonterade pĂ„ roboten inte kan anvĂ€ndas [33].
2.2.3 myRIO 1900
National Instruments har utvecklat en mikrokontroller, myRIO 1900, för att er-
bjuda studenter ett verktyg att konstruera avancerade system snabbt och enkelt
[28]. Enheten har bland annat inbyggd accelerometer och WiFi-mottagare. Förde-
len med nÀtverksÄtkomsten i detta projekt Àr att den ger möjlighet för anvÀndaren
att följa programmet i realtid och att den tillÄter trÄdlös kommunikation med det
överordnade systemet. Mikrokontrollern har utöver ïŹ‚ertalet I/O portar Ă€ven en
USB port som kan anvÀndas för att koppla in komponenter.
National Instruments har utvecklat programsprÄket LabVIEW som anvÀnds i
bland annat myRIO:n. Det Ă€r ett graïŹskt programmeringssprĂ„k med möjlighe-
ter att interagera med andra sprÄk sÄsom MATLAB, C, C++ och C# [42].
2.2.4 LiDAR
LiDAR (Light Detection and Ranging) Àr ett optiskt mÀtinstrument som anvÀnds
för att bestÀmma avstÄnd till objekt vilket behövs för att upptÀcka hinder innan
kollision sker. Den LiDAR som ïŹnns tillgĂ€nglig Ă€r modell URG-04LX-UG01, till-
verkad av Hokuyo, se ïŹgur 2.3. LiDAR:n drivs och kommunicerar via en USB 2.0
anslutning [36].
2.2.5 Batteripack
För att driva roboten och dess komponenter anvÀnds ett batteripack med spÀn-
ningen 12 V och kapaciteten 9500 mAh.
2.2.6 Överordnat system
Det överordnade systemet kommer köras pÄ en dator som Àr kopplad till samma
trÄdlösa nÀtverk som AGV:n. HÀr sker de huvudsakliga berÀkningarna bland an-
nat eftersom myRIO kortets processkraft inte Àr tillrÀcklig för att hantera det med
tillfredstÀllande snabbhet [16]. Efter bearbetning kan systemet sedan skicka kom-
mandon till AGV:n om vad som skall göras. Ett överordnat system krÀvs ocksÄ
om ïŹ‚era robotar skall kunna arbeta eïŹ€ektivt tillsammans.
9
KAPITEL 2. LAGERMILJÖ OCH ROBOT
Figur 2.3: LiDAR, Hokuyo modell URG-04LX-UG01 [36]
2.2.7 Kamera
För att lĂ€sa QR-koder anvĂ€nds en Logitech C930 webbkamera, se ïŹgur 2.4. Ka-
meran kan ta upp till 30 bilder per sekund i full HD 1080p (upp till 1920 x 1080
bildpunkter) och har dimensionerna 94 x 29 x 24 millimeter. All strömförsörjning
av kameran sker via dess USB 2.0 anslutning.
Figur 2.4: Logitech C930 kamera [25]
10
KAPITEL 2. LAGERMILJÖ OCH ROBOT
2.2.8 Ram
För att underlÀtta montering av exempelvis kameran och anordningen för trans-
port av material, samt minimera Ă„verkan pĂ„ Nexusroboten, ïŹnns en ram av alu-
miniumproïŹl fastsatt pĂ„ AGV:ns ovansida lĂ€ngsmed dess ytterkanter.
2.2.9 Mecanumhjul
En fördel med roboten Àr dess mecanumhjul, vars design tillÄter fÀrd i olika rikt-
ningar, det vill sÀga inte bara framÄt och bakÄt som traditionella hjul, utan Àven i
sidled. Fördelen kan vara till stor nytta i trÄnga utrymmen dÄ exempelvis roboten
kan rotera kring sin egna centrumpunkt. SkÀlet till att hjulen har nÀmnd förmÄga
Ă€r att de Ă€r uppbyggda av cylindrar vinklade mot hjulaxeln vilket kan ses i ïŹgur
2.2. Dock Ă€r precisionen vid förïŹ‚yttning inte helt exakt vilket leder till att Ă„tgĂ€rder
mÄste tas för att minimera risken för att tappa rutten, mer om detta under kapitel
3.
2.2.10 Styrmotorer
De fyra meccanumhjulen styrs individuellt av varsin motor, varje motor krÀver
en eïŹ€ekt pĂ„ 17 W och vid en belastning som ungefĂ€r motsvarar AGV:ns vikt fĂ„s
en maxhastighet runt 70 RPM. PÄ varje motor sitter ocksÄ en optisk enkoder
som mÀter varvtalshastighet vilket anvÀnds som Àr-vÀrde till PID-regulatorn i
mikrokontrollern.
2.3 Robotens kinematik
Som tidigare nÀmnts tillÄter robotens mecanumhjul fÀrd Ät olika riktningar tack
vare dess utformning. Varje hjul har en egen motor som Àr oberoende av de andra
vilket gör att ekvationer krÀvs för att bestÀmma hur varje hjul skall rotera för att
uppnÄ en sÀrskild rörelse.
Matriserna för att kunna berÀkna hjulrotationen för en önskad rotation eller rörelse
i X/Y-led av roboten har tagits fram av Doroftei, Grosu och Spinu pÄ Technical
University of Iasi, RumĂ€nien och visas i ekvation 2.1 och ïŹgur 2.5 [11].
11
KAPITEL 2. LAGERMILJÖ OCH ROBOT
ïŁź
ïŁŻ
ïŁ°
vx
vy
wz
ïŁč
ïŁș
ïŁ» =
R
4
ïŁź
ïŁŻ
ïŁ°
1 1 1 1
1 −1 −1 1
− 1
l1+l2
1
l1+l2
− 1
l1+l2
1
l1+l2
ïŁč
ïŁș
ïŁ» (2.1)
Figur 2.5: Förtydligande av de ingÄende variablerna i ekvation 2.1 [16]
2.4 Motorkontroll
Arduino:n som medföljer roboten vid inköp Ă€r modiïŹerad med ett expansions-
kort för att kunna kontrollera fyra motorer med hjÀlp av PWM (Pulse Width
Modulation). PWM möjliggör att pÄ ett snabbt sÀtt kontrollera spÀnningen över
en motor. Parametrar som Ă€ven behöver speciïŹceras Ă€r hastighet, accelerationstid
samt PID-reglering vilket förklaras mer utförligt under kapitel 7. För Nexusrobo-
ten ïŹnns det fĂ€rdiga programbibliotek som anvĂ€nds för att fĂ„ roboten att kunna
Äka i standardrörelser.
12
Kapitel 3
Navigation
För att AGV:n skall ha möjlighet att hÀmta lagerinredning autonomt krÀvs en
navigeringsmetod som hjĂ€lper AGV:n att kontinuerligt ïŹnna sin position i rum-
met. Det Àr svÄrt att skapa ett system som kan sköta lagerhanteringen utan nÄgon
form av Äterkoppling av positionen. Detta eftersom verkligheten inte alltid stÀm-
mer överens med teorin och det uppstÄr smÄ fel som med tiden ackumuleras tills
systemet inte lÀngre fungerar som tÀnkt. Exempel kan vara varierande friktion
mellan hjul och underlag.
I projektet vÀrdesÀtts precisionen hos systemet eftersom gruppens uppfattningen
Ă€r att med hög precision följer oftast hög funktionalitet och eïŹ€ektivitet. DĂ€rför
söks en navigeringsmetod som tillÄter systemet att arbeta med en hög precision
och dÄ Àr en kontinuerlig Äterkoppling en viktig komponent.
Genom att studera vad som anvÀnds kommersiellt i omrÄdet och liknande omrÄden
har ett antal olika metoder tagits fram för utvÀrdering [2, 22, 30, 29]. Krav som
stĂ€lls pĂ„ navigationen i projektet Ă„terïŹnns i den upprĂ€ttade kravspeciïŹkationen,
se appendix A. Nedan följer en sammanstÀllning av de olika navigationsmetoderna
samt motivering för valet av navigation med hjÀlp av QR-koder.
3.1 Trilaterationsmetoder
För att navigera en AGV sÄ kan man med hjÀlp av trilaterationsmetoder positions-
bestÀmma roboten, vilket Àr en mer modern version av triangulering. Trilateration
bygger pÄ avstÄndsmÀtning frÄn en position till tre andra punkter vars positioner
Àr kÀnda. DÀrifrÄn dras cirklar runt de kÀnda punkterna med en radie motsva-
rande det uppmÀtta avstÄndet och dÀr alla cirklar tangerar varandra Àr AGV:ns
13
KAPITEL 3. NAVIGATION
position [35]. Figur 3.1 visar hur trilateration fungerar för att positionsbestÀmma
en punkt P och varför det krÀvs tre kÀnda referenspositioner för att fÄ en exakt
position.
Normalt anvÀnds en elektronisk distansmÀtare som utnyttjar den kÀnda ljus- eller
radiovÄgshastigheten för att fÄ ut en distans till en punkt tack vare dess höga
precision och snabbhet. GPS Àr troligen det mest kÀnda exemplet pÄ anvÀndning
av trilateration men utöver det kan ocksÄ exempelvis WiFi eller laser anvÀndas.
Figur 3.1: En förklarande illustration pÄ hur triliterationsmetoden gÄr till
3.1.1 GPS och WiFi
GPS har överlÀgset bÀst yttÀckning men kan uteslutas i inomhusmiljöer eftersom
det inte gÄr att fÄ fri siktlinje till satelliter och dÀrmed inte heller en fungerande
navigation.
Att anvĂ€nda WiFi-navigation Ă€r i mĂ„nga fall enkelt eftersom det ofta redan ïŹnns
routrar tillgÀngligt som kan anvÀndas och det ger en relativt bra precision sÀrskilt
om ïŹ‚er Ă€n 3 routrar Ă€r tillgĂ€ngliga för mĂ€tning. Dock Ă€r precisionen som bĂ€st
cirka 1m och pÄverkas kraftigt av hinder, sÀrskilt mÀnniskor, som Àr i vÀgen för
kommunikationen vilket gör att precisionskraven inte kan uppnÄs, se appendix A
[15].
14
KAPITEL 3. NAVIGATION
3.1.2 Lasernavigation
Lasernavigation Àr en noggrann men dyr metod som anvÀnds i stor utstrÀckning
i kommersiella autonoma lagerhanteringssystem och bygger pÄ att man sÀtter ut
referenspunkter i form av reïŹ‚ektorer som en laser pĂ„ AGV:n kan detektera samt
mÀta avstÄndet till [22].
Med lasernavigation kan en mycket hög ïŹ‚exibilitet uppnĂ„s eftersom metoden inte
Àr begrÀnsad till förutbestÀmda rutter pÄ samma sÀtt som markeringsföljningsme-
toder, se kapitel 3.2. AGV:n kan teoretiskt Ă„ka vart som helst med kontinuerlig
positionsfeedback sĂ„ lĂ€nge minst tre olika reïŹ‚ektorer ïŹnns inom synfĂ€ltet. För
projektets ÀndamÄl Àr AGV:ns operationsmiljö dock sannolikt begrÀnsad. Det ef-
tersom de öppna ytorna vanligtvis Àr utformade som ett rutnÀt för att hÄlla en
hög platseïŹ€ektivitet vilket indirekt leder till förutbestĂ€mda rutter.
Tidigare kandidatarbete har anvÀnt lasernavigation och dÀrigenom visat att meto-
den fungerar. Samma arbete har Ă€ven visat att metoden krĂ€ver mĂ„nga reïŹ‚ektorer
för att ej tappa position och att den kan störas av andra reïŹ‚ektiva ytor. Detta in-
dikerar att metoden och den beïŹntliga laserutrustningen eventuellt inte Ă€r optimal
för projektet i och med den miljö AGV:n skall verka i [12].
Det kan ocksĂ„ ifrĂ„gasĂ€ttas hur vĂ€l laseravlĂ€sningen kommer fungera nĂ€r ïŹ‚era
AGV:er Àr verksamma, eftersom lasrarna kan störa ut varandras navigeringsför-
mÄga med en försÀmring av systemets precision som följd.
3.2 Markeringsföljning
Det ïŹnns ïŹ‚era olika navigationssystem som bygger pĂ„ att AGV:n följer markeringar
av nÄgot slag. Nedan följer en redogörelse för de som anses ha störst relevans för
projektet.
3.2.1 Linjeföljning
Linjeföljning Àr en relativt simpel metod som i den enklaste formen bygger pÄ att
AGV:n utrustas med lampor samt fotodioder som Àr sammankopplade med en
transistor, och att den planerade rutten mÀrks upp med exempelvis tejp. Tejpen
belyses av lamporna och det reïŹ‚ekterade ljuset tas upp av fotodioden och om det
Ă€r en hög intensitet pĂ„ det reïŹ‚ekterade ljuset ökar fotodiodens resistans. DĂ„ ökar
spĂ€nningen via transistorn som i sin tur lĂ„ter motorn driva. Är det istĂ€llet en
15
KAPITEL 3. NAVIGATION
lĂ€gre intensitet pĂ„ det reïŹ‚ekterade ljuset kommer fotodiodens motstĂ„nd minska
vilket gör att spÀnningen sjunker och dÀrmed minskar drivet i motorn. För att
linjeföljningen ska vara sÄ följsam som möjligt Àr det vanligt att varje hjul utrustas
med sin egen krets. Genom att utnyttja systemet gÄr det att kontrollera motorerna
pÄ AGV:n sÄ att den hela tiden driver lite mer pÄ det hjul som Àr pÄ vÀg att tappa
kontakten med tejpen, och dÀrmed följs rutten pÄ ett smidigt vis [24].
Fördelar med linjeföljning Àr att det Àr en relativt billig metod med en hög precision
men det kan bli problematiskt att implementera metoden nÀr det krÀvs ett rutnÀt
av linjer. Att dÄ fÄ AGV:n att följa exakt den rutt som Àr planerad samt att fÄ
nÄgon sorts positioneringsfeedback kan eventuellt visa sig svÄrt.
3.2.2 Magnetföljning
Navigation med hjÀlp av magneter Àr ett navigationssystem dÀr en AGV utrustad
med magnetsensorer utnyttjas för att följa magneter installerade i golvet. Genom
att sensorerna kan kÀnna av hur starkt magnetfÀltet Àr fÄr AGV:n information om
den följer sin rutt pÄ ett tillfredstÀllande sÀtt. Om den inte gör det kompenseras
fÀrdriktningen för att sedan Äterkopplas Àn en gÄng vid nÀsta magnet i golvet.
Ett gyroskop ïŹnns installerat pĂ„ AGV:n och det utnyttjas till att kontinuerligt
lÀmna feedback pÄ AGV:ns riktning. Vid oplanerade riktningsförÀndringar som
kan intrĂ€ïŹ€a mellan tvĂ„ magneter informerar gyroskopet AGV:n som dĂ„ korrigerar
riktningen.
Vanligtvis Àr det tillrÀckligt med en magnet i golvet var femte till tionde meter
lÀngs AGV:ns planerade rutt för att bibehÄlla en tillrÀcklig hög precision [27].
Fördelen med magnetföljning Àr att det Àr ett system med hög precision och billi-
gare utrustning Àn exempelvis laserbaserade navigationssystem.
3.2.3 RFID
Radio Frequency IdentiïŹcation (RFID) tekniken kan anvĂ€ndas genom att en RFID-
tagg placeras pÄ en plats och programmeras med information om den punkt den
Àr placerad pÄ, vilket sedan kan hÀmtas med hjÀlp av en avlÀsare. Ett RFID-
system innehÄller taggar, en avlÀsare samt mjukvara för tolkning av avlÀsning.
Med hjÀlp av avlÀsarens antennen lÀses taggarna genom antingen en induktiv
koppling eller med elektromagnetiska vÄgor. Ett sÀtt Àr att antennspolen induce-
rar ett magnetfÀlt i taggens spole och taggen anvÀnder sedan energin som skapas
för att Äterkoppla till avlÀsaren. Ett annat sÀtt Àr att avlÀsaren skapar energi som
16
KAPITEL 3. NAVIGATION
elektromagnetiska vĂ„gor och energin reïŹ‚ekterar tillbaka frĂ„n taggen till avlĂ€saren
för att Äterkoppla informationen i taggen. RFID-taggar anvÀnds ofta tillsammans
med andra system som till exempel GPS eller WiFi dÀr taggarna utgör referens-
punkter för att sÀkerstÀlla en korrekt rutt. Om en avlÀsning av en RFID-tagg sker
och referenspunkten inte stÀmmer överens med det övriga navigationssystemet sÄ
kalibreras navigationssystemet om efter RFID-taggens referenspunkt.
Den stora fördelen med RFID-avlÀsning Àr att det gÄr fort att lÀsa av taggarna
om kvalitétsprodukter anvÀnds. Att lÀsa av taggarna i AGV:ns topphastighet Àr
inget problem. Den stora nackdelen med systemet Ă€r att det inte ïŹnns möjlighet
att avlÀsa taggens orientering och korrigera för eventuella vinkelfel [6, 18].
3.2.4 QR-koder
Streckkoder Àr ett sÀtt att lagra information sÄ att den blir lÀsbar för en maskin.
De har under lÄng tid anvÀnds för att mÀrka upp varor och var ursprungligen endi-
mensionella. QR-koder Àr tvÄdimensionella streckkoder som kan innehÄlla betydlig
mer information pÄ mindre yta Àn de konventionella endimensionella streckkoder-
na. Koden Ă€r uppbygg av ljusa och mörka fĂ€lt som benĂ€mns ”moduler” dĂ€r antalet
moduler kan variera mellan 21 x 21 upp till 177 x 177 beroende pÄ mÀngden data.
AvlÀsningen görs med hjÀlp av laser eller kamera och i jÀmförelse med endimensio-
nella streckkoder kan avlÀsningen genomföras snabbare och mer tillförlitligt. Den
asymmetriska utformningen av QR-koden i kombination med möjligheten att lÀsa
av koden i 360 grader möjliggör uppskattning av storlek, position och lutning [31].
I ïŹgur 3.2 syns en bild pĂ„ en QR-kod.
Figur 3.2: En QR-kod innehĂ„llandes texten ”Autonom lagerhantering”
Det ïŹnns ïŹ‚era fördelar med att implementera QR-koder i navigationssystem, bland
annat Ă€r de Ă€r enkla och billiga att tillverka pĂ„ egen hand dĂ„ det ïŹnns mĂ€ngder av
17
KAPITEL 3. NAVIGATION
hemsidor som erbjuder dessa tjÀnster. Att avlÀsningen sker snabbt och i 360 grader
möjliggör positionsbestÀmning av en AGV i rörelse och dÀrmed kan korrigeringar
utföras för eventuella fel. Nackdelen Àr att navigeringssystemet inte blir sÀrskilt
ïŹ‚exibelt, vilket Ă€r det stora problemet med alla de olika markeringsföljningsmeto-
derna.
3.3 Val av navigationsmetod
Generellt för navigationsmetoder som följer markeringar Àr att de i utgÄngspunk-
ten Ă€r inïŹ‚exibla, dĂ„ alla markeringar mĂ„ste sĂ€ttas upp. DĂ€rigenom mĂ„ste det
omrÄde som AGV:n verkar i redan innan vara bestÀmd men i gengÀld fÄs bra
precision och snabb arbetshastighet. Trilatereringsmetoderna Àr ofta inte lika pre-
cisa men dĂ€remot smidigare och mer ïŹ‚exibla Ă€n markeringsföljningsmetoderna,
Ă€ven om uppsĂ€ttning av till exempel reïŹ‚ektorer till laseralternativet skapar en viss
inïŹ‚exibilitet dĂ„ de mĂ„ste placeras strategiskt och överallt dĂ€r AGV:n skall köra.
Tabell 3.1: Den första iterationen av en Pughmatris i projektet, med QR-kod som
referenslösning
Alternativ
Kriterier: Viktning QR-kod Laser Linje RFID Magnet WiFi GPS
Navigeringsprecision 3 Referens 0 0 -1 0 Ej Tillr. Ej Tillr.
AnvÀnds kommersiellt 1 Referens 0 0 0 0 - -
RuttïŹ‚exibilitet 2 Referens 1 -1 0 0 - -
SystemïŹ‚exibilitet 2 Referens -1 -1 0 -1 - -
ImplementeringssvÄrighet 1 Referens -1 1 -1 0 - -
Snabbhet 1 Referens 1 1 1 1 - -
Pris 2 Referens -1 0 0 -1 - -
HĂ„rdvarustorlek/Vikt 1 Referens -1 0 0 0 - -
StörningskÀnslighet 1 Referens -1 0 0 -1 - -
Genomförbarhet 2 Referens 0 0 0 0 - -
- -
Summa Referens -5 -2 -3 -5 - -
Rangordning 1 4 2 3 4 - -
Elimineras Nej Ja Nej Nej Ja - -
I tabell 3.1 visas den Pughmatris som gjorts, vilket Àr ett sÀtt att poÀngsÀtta lös-
ningar för att kvantitativt jÀmföra olika alternativ sinsemellan med avseende pÄ
olika kriterier för vad som ska Ästadkommas med alternativen. Detta görs genom
att en lösning tas som referens och de andra lösningarna vÀrderas gentemot refe-
renslösningen i ett antal olika kriterier. Varje lösning tilldelas antingen 1,0 eller -1
beroende pÄ om lösningen Àr bÀttre respektive lika bra eller sÀmre Àn referenslös-
ningen och dÀrefter multipliceras vÀrdena med viktningen för respektive kriterie
och summeras till en totalpoÀng för varje lösning. Efter att ha eliminerat de tydligt
18
KAPITEL 3. NAVIGATION
sÀmsta alternativen byts referenslösningen ut mot en annan lösning och processen
itereras med kvarvarande lösningar.
För att ge en rÀttvis vÀrdering av varje lösning bör kriterierna tÀcka alla möjliga
dimensioner, det vill sÀga allting som kan skilja lösningarna emellan och som Àr
betydelsefullt hos lösningen. UtifrÄn uppskattningar av vad som Àr viktigt för
lösningen, tillsammans med en upprĂ€ttad kravspeciïŹkation med krav och önskemĂ„l
som stÀlls pÄ det system som skall vÀljas, skapas kriterierna för Pughmatrisen,
se appendix A. Viktningen och varje lösningsvÀrdering pÄ respektive kriterie Àr
baserat pÄ uppskattningar.
Enligt Pughmatrisanalysen i ïŹgur 3.1 Ă€r magnet och laserföljning sĂ€mst vĂ€rderade
för ÀndamÄlet i jÀmförelse med QR-koder och elimineras dÀrför i urvalsprocessen
tillsammans med WiFi och GPS navigering som inte har tillrÀcklig precision som
tidigare nÀmnts. Detta innebÀr att processen itereras men med ett annat alternativ
som referens och endast QR-koder, linjeföljning samt RFID som alternativ vilket
visas nedan i tabell 3.2.
Tabell 3.2: Sista iterationen i Pughmatrisen med linjeföljning som referenslösning
Alternativ
Kriterier: Viktning Linjeföljning QR RFID
Navigeringsprecision 3 Referens 0 -1
AnvÀnds kommersiellt 1 Referens 0 0
RuttïŹ‚exibilitet 2 Referens 1 1
SystemïŹ‚exibilitet 2 Referens 1 1
ImplementeringssvÄrighet 1 Referens -1 -1
Snabbhet 1 Referens -1 0
Pris 2 Referens 0 0
HĂ„rdvarustorlek/Vikt 1 Referens 0 0
StörningskÀnslighet 1 Referens 0 0
Genomförbarhet 2 Referens 0 -1
Summa Referens 2 -2
Rangordning 2 1 3
Elimineras Ja Nej Ja
Enligt analysen i Pughmatrisen Àr QR-kod den bÀsta navigationsmetoden med
linjeföljning som nÀst bÀst och dÀrefter RFID. Detta stÀmmer relativt vÀl med
den undersökning som gjorts pÄ vad som anvÀnds kommersiellt, dÀr QR-kod, lin-
je/magnetföljning och lasernavigering verkar vara de vanligast förkommande me-
toderna.
19
KAPITEL 3. NAVIGATION
För projektet ïŹnns utrustning tillgĂ€nglig för QR-koder, laser samt linjeföljnings-
navigation vilket gör att de alternativen Àr att föredra. Eftersom QR-metoden
fĂ„r klart bĂ€ttre resultat i Pughmatrisen samt att linjeföljning Ă€r mer inïŹ‚exibelt
Àn QR-koder och laserns störningskÀnslighet Àr en oroande faktor, vÀljs metoden
med QR-koder. Svagheten i ruttïŹ‚exibilitet tros vara begrĂ€nsad pĂ„ grund av att
lagermiljön troligen Ă€ndĂ„ ordnas i ett rutmönster vilket begrĂ€nsar ïŹ‚exibiliteten
oavsett.
3.4 Implementering
Nedan följer implementeringen av navigationssystemet. För att fÄ systemet att
fungera sĂ„som uppvisas i det slutliga resultatet genomfördes en rad modiïŹeringar
pÄ hÄrdvaran med anpassade mjukvarumÀssiga implementeringar. För mjukvaru-
delen anvĂ€ndes LabVIEW vilket Ă€r ett graïŹskt programmeringssprĂ„k utvecklat
av National Instruments som har stöd för parallellexekvering samt fÀrdiga bibli-
otek som kan anvÀndas dÄ samma företag har utvecklat myRIO:n som anvÀnds i
projektet.
3.4.1 Rotation
I ett av de tidigare kandidatarbetena anvÀndes QR-koder för att navigera [16].
En tidig förbÀttring som diskuterades var placeringen av kameran pÄ AGV:n.
En centrerad placering valdes. Tanken bakom att placera kameran centrerat med
avseende pÄ hjulen var att underlÀtta navigationen, exempelvis genom att inte
behöva anvÀnda transformationsmatriser för att transformera positioner. En stor
fördel Àr ocksÄ den minskade ytan som krÀvs vid rotationen om man roterar kring
centrum istÀllet för en utomstÄende punkt. Centrerad rotation möjliggjorde Àven
att redan existerande bibliotek kunde anvÀndas.
Eftersom AGV:n Àr relativt lÄg kunde inte kameran fÄ fokus om den placerades
undertill. Som lösning gjordes ett hÄl i chassit för att den skulle kunna placeras pÄ
ett lĂ€ngre avstĂ„nd frĂ„n marken dĂ€r den ocksĂ„ ïŹck ett större synfĂ€lt att upptĂ€cka
koderna pĂ„, se ïŹgur 3.3. En enkel metallbygel gjordes för att fĂ€sta kameran ovanför
hÄlet. AvstÄndet berÀknades via chassits inre bredd, vilket Àr vad som avgör syn-
fÀltets maximala bredd. AvstÄndet som valdes var 145 mm och berÀknades sÄledes
via ekvationer 3.1 och 3.2
L =
B
2
tan (α) (3.1)
20
KAPITEL 3. NAVIGATION
Med vĂ€rdena B = 250 mm och α = 30◩
fÄs L enligt ekvation 3.2:
L = 145 mm (3.2)
En justerbar infĂ€stning utvecklades för att kunna ïŹnjustera kamerans vinkel i
förhÄllande till chassit. Detta för att pÄ ett smidigt sÀtt kunna korrigera kameran
och sÀkerstÀlla kameramÀtningarnas riktighet.
Figur 3.3: En illustration som visar kamerans placering och dess synfÀlt
3.4.2 Rörelsemönster
Nexusroboten kan via sina meccanumhjul röra sig i ett ïŹ‚ertal riktningar. För att
skapa en systematisk ordning i lagerlokalen dÀr hyllor kan placeras i lÄnga rader
valdes ett korridorförfarande. Detta innebĂ€r att AGV:erna eïŹ€ektivast rör sig i
korridorer och dĂ€rför endast behöver kunna förïŹ‚ytta sig framĂ„t, bakĂ„t, höger,
vÀnster och rotera pÄ sin plats. Dessa rörelser kom att utgöra grunden för de olika
navigationsfall som AGV:n antas kunna försÀtta sig i. Diagonala rörelser undviks
pÄ grund av begrÀnsningar i kollisionsundvikningssystemet, se kapitel 5.
3.4.3 LĂ€sning av koder
LĂ€sningen av QR-koder sker, via kameran, i myRIO:n. I LabVIEW ïŹnns fĂ€rdiga
drivrutiner, sÄ kallade block, för videoupptagning och urskiljning av QR-koder i
bilder vilket anvÀndes. Ur blocket för lÀsning av QR-koder utvinns bland annat
information som ïŹnns lagrad i koden samt placeringen av QR-kodens olika hörn.
21
KAPITEL 3. NAVIGATION
FrÄn början var tanken att bildupptagning skulle ske i rörelse sÄ att AGV:n skulle
kunna köra tills en ny QR-kod hittas och samtidigt reglera eventuell felplace-
ring. Precis som nĂ€mns i tidigare kandidatarbete pĂ„trĂ€ïŹ€ades vissa begrĂ€nsningar
i hÄrdvaran. De bilder som togs under rörelse blev suddiga och ingen kod kunde
upptÀckas. I ovan nÀmnt kandidatarbete skrivs att den maximala hastigheten som
AGV:n kunnat hÄlla för att klara av att lÀsa QR-koder i samtliga testförsök var 100
mm/sek [16]. DÄ detta ansÄgs vara en för lÄg hastighet utvÀrderades alternativa
lösningar.
TvÄ lösningsalternativ uppmÀrksammades, uppgradering av hÄrdvara eller en för-
Àndring av metodik. DÄ uppgraderingen av hÄrdvaran bÄde skulle ta tid och öka
kostnaderna föll valet pÄ en ny metodik.
IstÀllet för att försöka lÀsa koder i rörelse Àndrades metodiken sÄ att AGV:n stÄr
still över koden nÀr bilden tas. En klar fördel med detta sÀtt Àr att bildens informa-
tion, sÄsom placering och vinkel, fortfarande Àr aktuell. DÀrför behövs inga vidare
berÀkningar för att omvandla datan. Vad som Àr negativt Àr att AGV:n behöver
stanna vid varje punkt vilket leder till lÀngre tider för avlÀsning av QR-koderna.
Denna tidsförlust kompenseras dock av den ökade hastigheten och systemets ökade
precision.
3.4.4 RutnÀt
Lagermiljön behövde Àven den anpassas för systemet. QR-koder placerades över
lagerytan för att deïŹniera det globala koordinatsystemet. Punkterna i koordinat-
systemet motsvaras av en QR-kod som innehÄller information om punktens x- och
y-koordinat. För att förenkla programmeringen av ruttplaneringsalgoritmen ut-
formades rutnÀtet som en matris med de första elementet (0,0) i matrisens övre
vĂ€nstra hörn. Det globala koordinatsystemets axlar deïŹnierades sedan parallellt
med matrisen, se ïŹgur 3.4, dessa bör inte förvĂ€xlas med de vanliga vĂ€derstrecken.
För att i varje punkt kunna avlÀsa AGV:ns orientering i förhÄllande till det globala
koordinatsystemet behöver Àven QR-kodernas riktning tas hÀnsyn till. För att
utnyttja QR-kodernas asymmetri till att berÀkna vinkelfel placerades de Ät samma
hÄll.
En kortare distans mellan QR-koderna i rutnÀtet leder till en mer frekvent posi-
tionsÄterkoppling och dÀrmed ett mer precist navigationssystem. Bredden pÄ det
fyrkantiga bordet, som AGV:n skall lyfta, anvÀnds för att bestÀmma lÀngden mel-
lan QR-koder eftersom det förutsÀtts att borden ska placeras intill varandra. En
kortare distans mellan QR-koderna gör att Äterkoppling sker oftare vilket leder till
att det kommer ta lĂ€ngre tid för AGV:n att förïŹ‚ytta sig frĂ„n start till slutpunkt.
22
KAPITEL 3. NAVIGATION
Figur 3.4: En schematisk bild pÄ hur lagermiljön Àr uppbyggd
Detta rÀttfÀrdigas med att navigeringsprecision avses vara av högre prioritet Àn
snabbheten som AGV:n utför uppgiften med. En tÀt placering av hyllor ökar ocksÄ
utnyttjandet av golvet och möjliggör yteïŹ€ektiv lagring.
Om borden inte stÄr helt rÀtt kan det skapa oönskade hÀndelser vid transporten,
framförallt vid rotation dÄ ett felplacerat bord tar upp större plats Àn planerat. I
det vÀrsta fallet Àr bÄda borden vridna 45 grader sÄ att de stÄr hörn mot hörn vilket
innebÀr att det Àr en diagonalbredd mellan de tvÄ bordens mittpunkter. Denna
diagonal ges av ekvation 3.3 vilket gör att avstÄndet mellan QR-koder sÀtts till
80cm.
√
2 · 552 ≈ 77.78cm (3.3)
RutnÀtet av QR-koder som upprÀttades för projektet var i storleksordningen 4x4
eftersom platsen var begrÀnsad samt att det ansÄgs tillrÀckligt för att pÄvisa sy-
stemets funktionalitet.
23
KAPITEL 3. NAVIGATION
3.4.5 OïŹ€set och vinkel
Varje gÄng AGV:n fÄr en Äterkoppling om sin position via en bild kan felaktig posi-
tionering och avvikelse frÄn rutt kontrolleras och berÀknas. För att göra detta an-
vÀndes den information om QR-kodernas hörnpositioner som erhölls ur LabVIEW-
blocket.
Figur 3.5: En bild pĂ„ de fyra fallen för oïŹ€set som ïŹnns
För att berÀkna QR-kodens position i förhÄllande till bildens mittpunkt anvÀndes
positionerna för hörnen som ges nummer 1 och 3, se ïŹgur 3.5. FrĂ„n dessa posi-
tioner kan sedan QR-kodens mittpunkt och sÄledes antalet pixlar till kamerans
mittpunkt berÀknas. Antalet pixlar omvandlas sedan till ett avstÄnd i millimeter.
För berÀkningar, se appendix B.
Vid implementeringen upptÀcktes att dessa berÀkningar inte var tillrÀckliga ut-
an hÀnsyn behövde tas till de fyra möjliga fall som kunde uppstÄ. Beroende pÄ
QR-kodens vinkel varierade hörnens x- och y-vÀrde vilket ledde till en felaktig
mittpunkt. HĂ€nsyn togs till de olika fallen enligt ïŹgur 3.5.
För att sedan berÀkna vilken vinkel QR-koden har i förhÄllande till kameran,
anvĂ€ndes som ovan positionerna av tvĂ„ hörn. Vid detta tillfĂ€lle deïŹnierades QR-
kodernas koordinatsystem vilket sedan anvÀndes vid faststÀllandet av rutnÀtet som
nĂ€mns ovan, se ïŹgur 3.6
Det globala systemets y-axel deïŹnierades som 0◩
och QR-koderna placerades med
24
KAPITEL 3. NAVIGATION
Figur 3.6: Visar hur vinkelfelet mÀts
sidan mellan hörn 1 och 4 parallellt med y-axeln, se ïŹgur 3.6. Vinkelfelet utgörs av
den vinkel som uppstÄr mellan y-axeln (north) och den linje som uppstÄr mellan
punkterna.
Den vinkel som AGV:n avviker frÄn QR-koden kunde sedan i alla punkter berÀknas
via ekvation 3.4.
α = arctan
∆y
∆x
(3.4)
Vinkeln deïŹnierades som positiv vid högerrotation och negativ vid vĂ€nsterrotation.
NÀr AGV:n roterar och riktar sig mot south, se kapitel 5, behövde vinkeln minskas
med en radian.
3.4.6 Processbeskrivning
Nedan följer en avskÀrmad överblick över implementeringen. Denna del Àr tÀnkt
att skapa en överblick för att underlÀtta fortsatt lÀsning. För den fullstÀndiga
integreringen av systemet, se kapitel 7.
Vid varje uppstart av AGV:n kommer en bild att tas. UtifrÄn denna bild justerar
sedan AGV:n in sig i förhÄllande till det globala koordinatsystemet. HÀr anvÀnds
berĂ€kningarna som görs med avseende pĂ„ oïŹ€set och vinkel. Efter justeringen kom-
mer alltsĂ„ AGV:n att beïŹnna sig pĂ„ en utav koordinatsystemets punkter, vilket
25
KAPITEL 3. NAVIGATION
den sedan kommunicerar till det överordnade systemet. Vid injusteringen sÄ vÀn-
der sig AGV:n alltid mot det fördeïŹnierade north, se ïŹgur 3.4. VĂ€rt att nĂ€mna Ă€r
att den initierande justering inte kan göras om AGV:n inte stÄr över en kod. Om
AGV:n inte hittar en kod kommer ett felmeddelande levereras till operatören.
Eftersom hastigheten pÄ AGV:n överstiger de 100 mm/s som var den maximala
hastigheten för att klara att lÀsa av QR-koderna pÄ ett lÀmpligt sÀtt, ansÄgs
bildupptagning i rörelse som onödigt moment. DÀrför slutar bildupptagningen i
samband med att kommando för rörelse mottas och startar i samband med AGV:ns
stoppkommando. Detta frigör processorkraft till andra operationer.
QR-LĂ€sning
Ta bild
Hittad?
Ta fram
orientering
och position
Felsöknings
algoritm
Hittad?
Justera
position
Manuell
justering
krÀvs
Sök QR-kod
Nej
Ja
Nej
Initiera
END
Ja
Figur 3.7: Flödesschemat för QR-lÀsningen
Vid varje stopp börjar alltsÄ bildupptagningen och dÀrmed sökandet efter en QR-
kod. Om en QR-kod ïŹnns i bilden tar systemet sĂ„ledes tillvara pĂ„ informationen
lagrad i koden, som Ă€r oïŹ€set och vinkelfel. Direkt kommer AGV:n att sjĂ€lvmant
justera oïŹ€set och vinkelfel samt kommunicera AGV:ns position till det överordnade
26
KAPITEL 3. NAVIGATION
systemet. I ïŹgur 3.7 visar ett ïŹ‚Ă¶desschema hur processen vid lĂ€sningen av QR-
koderna gÄr till.
Om bilden som behandlas inte innehÄller en QR-kod genomförs inga berÀkningar
utan en ny bild tas direkt och analyseras. Detta förfarande upprepas tills en QR-
kod ïŹnns i bild eller tills ett förutbestĂ€mt antal bilder tagits i behandling. Utifall
ingen QR-kod hittas betyder det att AGV:n Àr ur kurs. För att hitta tillbaka
till en kÀnd position i koordinatsystemet genomför AGV:n en felsökningssekvens.
Eftersom AGV:ns förïŹ‚yttningar inte Ă€r helt exaka Ă€r sökningssekvensen en viktig
komponent i det autonoma systemet för att minimera risken för att AGV:n tappar
rutten. Felsökningssekvensen beskrivs nÀrmre i kapitel 7.3.
27
Kapitel 4
Överordnat system
Efter valet av navigeringsmetod pÄbörjades arbetet med ett överordnat system.
För att möjliggöra ett autonomt lagerhanteringssystem krÀvs ett överordnat sy-
stem som hanterar och tar emot ordrar frÄn personal, men Àven kontrollerar en
uppsĂ€ttning av AGV:er autonomt pĂ„ ett sĂ€kert och eïŹ€ektivt sĂ€tt. I detta kapi-
tel görs en genomgÄng av ruttplanering och motiveringen till varför A* vÀljs som
ruttplaneringsalgoritm samt beskrivning av grÀnssnitt och hur det överordnade
systemet angriper problemet.
4.1 Systemuppbyggnad
Systemet ska enligt kraven kunna ta emot ordrar, hantera dessa och autonomt
styra ïŹ‚era AGV:er i en lagerlokal för att frakta varor till och frĂ„n olika positioner.
Systemet mĂ„ste alltsĂ„ klara av att ha ïŹ‚era kommunikationer samt berĂ€kningar
igÄng samtidigt. Detta kan stÀlla till stora problem med integreringen mellan rutt-
planering, styrning samt kommunikation. För att lösa det mÄste alla delar dirigeras
rĂ€tt för att uppnĂ„ ett eïŹ€ektivt och responsivt system.
Operatören ska inte behöva fĂ„ vĂ€nta ïŹ‚era sekunder pĂ„ svar frĂ„n grĂ€nssnittet utan
det mÄste svara snabbt för att inte verka förvirrande eller leda till osÀkerhet. Inte
heller fÄr berÀkningarna i ruttplaneringen, styrning eller kommunikationen med
AGV:erna vara för lĂ„ngsamma, dĂ„ systemet kommer verka vĂ€ldigt ineïŹ€ektivt. Med
detta som utgĂ„ngspunkt mĂ„ste ett ïŹ‚exibelt och kraftfullt, men eïŹ€ektivt system
byggas upp.
28
KAPITEL 4. ÖVERORDNAT SYSTEM
4.2 GrÀnssnitt
Operatören mÄste pÄ ett enkelt och smidigt sÀtt kunna lÀgga till samt hantera
ordrar via grÀnssnittet. Det mÄste ocksÄ vara möjligt att via grÀnssnittet fÄ status
pĂ„ systemet, samt fĂ„ notiïŹkationer nĂ€r ovĂ€ntade eller ödesdigra hĂ€ndelser intrĂ€ïŹ€ar.
4.3 Ruttplanering
För att AGV:erna pĂ„ ett eïŹ€ektivt sĂ€tt ska hitta frĂ„n start- till slutpunkt krĂ€vs en
algoritm som rÀknar ut vilken vÀg de skall ta. För att Ästadkomma detta krÀvs
nĂ„gon form av ruttplanering och för det ïŹnns ïŹ‚era olika metoder att tillĂ€mpa.
Metoderna som valts att utvÀrderas Àr A*, Dijkstras algoritm, potentialfÀlt, och
Flood Fill. Nedan följer en utförlig utvÀrdering av varje metod samt en motivering
till varför valet föll pÄ A*.
Flera av dessa algoritmer anvÀnder sig av grafer för att representera datan i pro-
blemet. En graf G(V, E) bestĂ„r av noder V , samt kanter, E som beskriver ”vĂ€gar”
mellan noderna. En kant kan vara riktad, vilket betyder att den bara gÄr Ät ena
hĂ„llet. Detta Ă€r ett vĂ€ldigt enkelt men eïŹ€ektivt sĂ€tt att beskriva till exempel ett
rutnÀt, dÀr varje ruta dÄ Àr en nod och kanterna Àr de olika sÀtten som du kan
röra dig mellan rutorna. I ïŹgur 4.1 visas ett exempel pĂ„ en enkel graf.
s
a b
c d
Figur 4.1: En riktad graf
4.3.1 A*
A*, utlĂ€ses ”A-stjĂ€rna”, Ă€r en vanligt anvĂ€nd algoritm vid t.ex. datorspel [19]. A*
hittar vĂ€gen frĂ„n en startpunkt till ïŹ‚era slutpunkter, dĂ€r vĂ€gen gĂ„r förbi ïŹ‚era noder
och A*-algoritmen vĂ€ljer bĂ€sta vĂ€g vid varje nod. Det krĂ€vs alltsĂ„ en fördeïŹnierad
gradering av varje vĂ€g mellan varje nod för att A* skall kunna ïŹnna den bĂ€sta
29
KAPITEL 4. ÖVERORDNAT SYSTEM
vĂ€gen. Graderingen benĂ€mns ofta kostnad, olika vĂ€gar blir alltsĂ„ olika ”dyra” för
roboten. Den totala kostnaden för en vÀg bestÀms av ekvation 4.1, detta kallas
algoritmens heuristik och bestÀms utifrÄn problemets karaktÀr.
f(x) = g(x) + h(x) (4.1)
I ekvation 4.1 representerar g(x) kostnaden frÄn startpunkten till noden x och
h(x) representerar den uppskattade kostnaden frÄn noden till mÄlet. I och med
h(x) erbjuder alltsÄ A* en möjlighet för roboten att övervÀga framtida kostnader
för olika vÀgar vilket möjliggör en kostnadsavvÀgning för hela vÀgen mellan start-
och mÄlpunkt.
Det ïŹnns tvĂ„ vanliga sĂ€tt att berĂ€kna kostnaden, Manhattanmetoden och den
Euklidiska metoden [26]. Manhattanmetoden har som utgÄngspunkt i att vÀgar-
na ses som vÀgarna pÄ Manhattan, New York, alltsÄ ett rutnÀt. Den euklidiska
metoden handlar om att den kortaste vĂ€gen hittas, den sĂ„ kallade ”fĂ„gelvĂ€gen”
[17].
4.3.2 Visibility graph/Dijkstras algoritm
Visibility graph Àr inte en algoritm pÄ samma sÀtt som A*, utan den sÀtter upp en
visuell graph som sedan andra sökalgoritmer som Dijkstras algoritm kan anvÀnda
för att ruttplanera. Ett visst antal noder deïŹnieras samtidigt som Visability graph
försöker dra rÀta linjer mellan noderna dÀr AGV:n kan köra. Ifall det Àr ett hinder
för den rÀta linjen, dras den inte. DÀrefter berÀknar Dijkstras algoritm ut bÀsta
vÀgen mellan start- och slutpunkt.
Noderna utgÄr ofta frÄn fasta hinders kanter och nÄgra andra fÄ punkter. Vad som
kan bli ett problem Ă€r att vissa noder kan ïŹnnas utan att ha andra noder synliga.
Om rutten gÄr via nÄgon av dessa noder kommer systemet stanna. Detta problem
kallas för ”The art gallery problem” och grunden i det kĂ€nda problemet ligger i
att bestÀmma hur mÄnga noder som krÀvs i ett rum för att alla delar av rummet
skall vara synligt för nÄgon av noderna [39, 40, 26, 43, 9].
Skillnaden pÄ Dijkstra och A* Àr att A* lÀgger till den uppskattade kostnaden för
resterande delen av vĂ€gen. Detta gör att A* möjliggör en eïŹ€ektivare ruttplanering
eftersom A* koncentrerar sig pÄ de vÀgarna som uppskattas som bÀst, medan
Dijkstraalgoritmen utvÀrderar varje vÀg vid varje nod [26, 43].
30
KAPITEL 4. ÖVERORDNAT SYSTEM
4.3.3 PotentialfÀlt
PotentialfÀlt innebÀr att man ger vissa punkter i miljön attraherande kraft och
vissa punkter repellerande kraft. Förslagsvis gör man mÄlpunkten attraherande
kraft och fysiska hinder i miljö repellerande kraft. Detta medför att roboten alltid
dras till mÄlet och undviker hinder.
Problemet med den hÀr metoden Àr att det inte rör sig om nÄgon ruttplanering i
ordets rÀtta bemÀrkelse, utan roboten kommer röra sig nÀrmare och nÀrmare mÄlet
samtidigt som den undviker hinder succesivt nÀr de uppkommer. Det kommer
dÀrför vara svÄrt att förutsÀga vilken rutt roboten kommer ta.
Ett annat problem som kan uppkomma Àr att de repellerande krafterna tar ut
de attraherande, vilket gör att den resulterande kraften som verkar pÄ roboten
blir noll. Dessutom ïŹnns risken att roboten inte kommer ta den kortaste vĂ€gen
eftersom roboten kommer pÄverkas av ett repellerande hinder oavsett ifall den
inte hade kollisionskurs med hindret, se ïŹgur 4.2 [5, 34].
Figur 4.2: Ett exempel pÄ att AGV:n inte nödvÀndigtvis behöver ta nÀrmasta
vÀgen [12]
31
KAPITEL 4. ÖVERORDNAT SYSTEM
4.3.4 Flood ïŹll
Algoritmen Flood ïŹll bygger pĂ„ konceptet att vatten alltid fyller frĂ„n en högre
vattennivÄ. OmrÄdet som skall ruttplaneras delas in i celler som ges ett vÀrde
beroende pĂ„ hur lĂ„ngt ifrĂ„n cellen Ă€r centrum, alltsĂ„ dĂ€r vattnet ”fylls pĂ„â€. Ju
lÀngre ifrÄn centrum desto lÀgre vÀrde fÄr cellen.
Flood ïŹll Ă€r ursprungligen en labyrintlösare. VĂ€ggarna i labyrinten Ă€r fördeïŹnierade
och algoritmen upptĂ€cker dem efterhand som labyrinten löses [32]. Se ïŹgur 4.3 för
en bild av en labyrint som Ă€r löst med ïŹ‚ood ïŹll.
Figur 4.3: Labyrint löst med ïŹ‚ood ïŹll [32]
4.4 Val av ruttplaneringsmetod
I och med tidigare erfarenheter sÄ blev valet av ruttplaneringsalgoritm lÀtt. A* Àr
vĂ€ldigt ïŹ‚exibel, pĂ„ grund sin heuristik kan man skrĂ€ddarsy den för sitt problem.
Om heuristiken vÀljs rÀtt sÄ garanterar A* att den optimala vÀgen returneras,
vilket gÄr snabbt. Det realiserade rutnÀtet i projektet Àr relativt litet och A* kan
dĂ„ verka vĂ€ldigt onödig och överïŹ‚Ă¶dig, men systemets bakomliggande tanke Ă€r att
det ska fungera pÄ betydligt större lagerutrymmen Àn sÄ. DÀrför anses valet av A*
rÀttfÀrdigat.
4.5 Implementering av överordnade systemet
Med klara krav pÄ vad det överordnade systemet mÄste klara av sÄ börjades upp-
giften med att vÀlja pÄ vilket sÀtt systemet skulle byggas upp. Detta inkluderar
32
KAPITEL 4. ÖVERORDNAT SYSTEM
val av programmeringssprÄk, men Àven konceptuella och arkitekturella val.
Det ïŹnns mĂ„nga programmeringssprĂ„k som skulle passa in i projektet, men med
tanke pÄ tidigare erfarenheter samt kompetens valdes Clojure, som Àr ett dyna-
miskt programmeringssprÄk med fokus pÄ funktionell programmering. Clojure Àr
ett sprÄk som Àr en dialekt ur familjen Lisp. SprÄket valdes ocksÄ för den interakti-
va utvecklingsprocessen, stödet för parallell programmering samt interopabiliteten
med det stora programmeringssprÄket Java [7].
En stor fördel med Clojure Àr att det existerar en kompilator, ClojureScript som
har JavaScript som mÄlplattform [8]. Detta betyder att man kan exekvera Cloju-
rekod i en webblÀsare vilket gör det utmÀrkt att bygga grÀnssnittet som en web-
bapplikation i HTML5 och ClojureScript (JavaScript).
Implementeringen av systemet började med att upprÀtta och sÀkerstÀlla kommu-
nikationen till ïŹ‚era samtidiga AGV:er. Ett enkelt textbaserat protokoll över TCP
togs fram, detta beskrivs i kapitel 7.2.1. Efter manuella tester samt nÄgra iteratio-
ner sÄ existerade den funktionaliteten som behövdes för att upphÄlla realtidskom-
munikation med AGV:er. Under utvecklingsfasen sÄ anvÀndes virtuella AGV:er dÀr
bara kommunikationen fanns, detta för att underlĂ€tta utveckling och fĂ„ en eïŹ€ektiv
Ă„terkoppling till utvecklingen. De ”virtuella AGV:erna” bestod egentligen bara av
enkla skript i en kommandotolk som anvÀnder sig av ett unix-program som kallas
netcat, vilket anvÀnds för att kommunicera över TCP-anslutningar. En asynkron
tillstÄndsmodell sattes ocksÄ upp i servern, denna har koll pÄ all status för de an-
slutna AGV:erna och exponerar ett API för att kunna göra atomiska skrivningar
och pÄ sÄ sÀtt slippa problem som kan uppstÄ vid asynkrona skrivningar.
NÀr implementeringen av kommunikationen samt tillstÄndslagringen var klar pÄ-
börjades en enkel skiss pÄ grÀnssnittet. De tidigare kraven anvÀndes som en speci-
ïŹkation för vad som behövdes ïŹnnas med, en slutgiltig beskrivning av grĂ€nssnittet
Ă„terïŹnns i kapitel 4.5.1. Som tidigare nĂ€mnt utvecklades grĂ€nssnittet i Clojure och
kompilerades till JavaScript via kompilatorn ClojureScript, detta medför en stor
fördel dÄ det Àr möjligt att anvÀnda samma sorters datastrukturer bÄde i servern
och i grÀnssnittet. Datan som som skickas i realtid mellan servern och grÀnssnit-
tet faller under formatet edn (Extensible Data Notation), vilket gör det vÀldigt
smidigt att utbyta information[13]. För att skicka data i realtid mellan servern
och grÀnssnittet anvÀnds en modern webbteknik som kallas WebSockets. WebSoc-
kets fungerar i princip pÄ samma sÀtt som en vanlig TCP-socket, en tillförlitlig
full-duplex datakanal [41].
Den sista funktionaliteten att implementeras var den största och viktigaste, sjÀlva
planeringen. Som nÀmnt i teoridelen i detta kapitel sÄ valdes A*-algoritmen för
att hitta kortaste vÀgen i rutnÀtet. Vid varje steg i processen som AGV:n utför
33
KAPITEL 4. ÖVERORDNAT SYSTEM
sÄ berÀknas den kortaste vÀgen för varje AGV som Àr ansluten. Planeraren tar
övriga AGV:er, blockerade rutor samt hyllor i berÀkning i varje steg för att se till
att en vÀg inte korsar en hylla eller annan AGV, allt för att undvika kollision. En
position kan bli blockerad genom att AGV:n meddelar att den har stött pÄ ett
hinder, se kapitel 5.4.2, dÄ markeras positionen i kartsystemet som en blockerad
ruta. För att fÄ bort ett hinder krÀvs en omstart av systemet.
I ïŹgur 4.4 visas ett ïŹ‚Ă¶desschema pĂ„ hur det överordnade systemet fungerar. Det
ïŹnns tvĂ„ vĂ€gar in i schemat, antingen manipuleras en order via grĂ€nssnittet, eller
sÄ ansluts alternativt skickar en existerande AGV data till systemet. Varje gÄng
en AGV har slutfört ett steg sÄ meddelar den sin position och status till systemet,
som tar den informationen i berÀkning till vad som ska skickas tillbaka. Antingen
fortsÀtter den med en order som den hÄller pÄ att leverera, eller sÄ kollar systemet
om det ïŹnns en ny order att behandla. Detta resulterar i att antingen sĂ„ skickas
kommandon till AGV:n om vad den ska göra i nÀsta steg, eller sÄ avvaktar systemet
tills ny order inkommer.
Systemet Ă€r dynamiskt och det Ă€r fullt möjligt att ansluta ïŹ‚era AGV:er under tiden
systemet körs. Det har dÀremot valts att inte hantera nÀr en AGV försvinner dÄ
det kan betyda att batteriet tagit slut och att den dÄ stÄr mitt i lagerutrymmet
och blockerar. Valet blev dÄ istÀllet att göra operatören uppmÀrksam pÄ problemet
via grÀnssnittet och dÀrefter Àr manuell hantering nödvÀndig.
Manipulera
order
AGV login
AGV
koordinater
Ledig
AGV?
FortsÀtta
gammal
order?
Finns ny
order?
Tilldela order
Ruttplane
ring
AGV-lista
AGV-lista
Orderlista
Orderlista
AGV
Avvakta
Avvakta
NejNej
Ja
Ja
Figur 4.4: Flödesschema pÄ det överordnade systemet
4.5.1 Beskrivning av grÀnssnittets utseende
I ïŹgur 4.5 ses en bild av hur det överordnade systemets webbaserade grĂ€nssnitt
ser ut. I nedersta vÀnstra hörnet syns en karta över lagersystemet som uppdateras
34
KAPITEL 4. ÖVERORDNAT SYSTEM
Figur 4.5: SkÀrmbild pÄ ordrar i grÀnssnittet
i realtid, dÀr varje ruta motsvarar positionen av en QR-kod. Olika fÀrger i kartan
motsvarar de ingÄende delarna i systemet. En grön ruta Àr plockstationens posi-
tion, det vill sÀga AGV:ns mÄlposition, mörkblÄ motsvarar en AGV, ljusblÄ för
bord och röd indikerar pÄ ett hinder.
NÀr en AGV kopplas upp mot systemet lÀggs den in i listan till vÀnster, under
rubriken tillgÀngliga AGV. AnvÀndaren skriver in sökt artikelnummer i sökfÀltet
och dÄ lÀggs en order in i systemet. Det överordnade systemet vet var varje artikel
beïŹnner sig och ruttplanering genomförs. DĂ€refter tilldelas vald AGV information
om fÀrdriktning och dÀrmed hÀmtas artikeln, för mer ingÄende information om hur
navigeringen sker se kapitel 3.
Om ïŹ‚era order lĂ€ggs dĂ€r olika artiklar Ă„terïŹnns pĂ„ samma lagerplats sĂ„ kommer
systemet tilldela samma AGV ordern att hÀmta de bÄda artiklarna, vilket kan ses
i ïŹgur 4.5. DĂ€r har tre ordrar lagts in pĂ„ olika artiklar och eftersom artiklarna
med artikelnummer 10000 och 10002 Ă„terïŹnns pĂ„ samma lagerplats sĂ„ tilldelas
samma AGV bĂ€gge ordrarna. DĂ„ ingen AGV ïŹnns tillgĂ€nglig kommer helt enkelt
systemet invÀnta en tillgÀnglig AGV och dÀrefter tilldela den ordern. Vilken AGV
som hÀmtar vilken artikel syns tydligt i anvÀndargrÀnssnittet och om utifall en
order avbryts via knappen ”Avbryt” sĂ„ kommer ett av tvĂ„ scenarion intrĂ€ïŹ€a. Om
AGV:n inte hunnit hÀmta det aktuella bordet sÄ kommer den helt enkelt stanna
vid nÀsta QR-kod och invÀnta en ny order. Men om AGV:n redan har hÀmtat
bordet och Àr pÄ vÀg tillbaka till plockstationen sÄ kommer kommandot avbryta
35
KAPITEL 4. ÖVERORDNAT SYSTEM
innebÀra att AGV:n kör tillbaka med bordet och dÀrefter invÀnta order.
Figur 4.6: SkÀrmbild pÄ kvitterbara ordrar i grÀnssnittet
NÀr en AGV vÀl har hÀmtat en artikel och nÄtt plockstationen kommer alternativet
”Kvittera” upp i systemet, se ïŹgur 4.6. NĂ€r ”Kvittera” - kommandot ges Ă€r det
en signal till systemet att artikeln Àr avplockad frÄn bordet och AGV:n lÀmnar
dÀrefter tillbaka bordet pÄ sin ursprungliga plats för att sedan invÀnta order.
Utifall ett hinder pĂ„trĂ€ïŹ€ats av AGV:ns kollisionsundvikningssystem sĂ„ skickas
information om vilken den aktuella QR-koden Àr och det överordnade systemet
markerar följaktligen motsvarande QR-kod med rött i realtidskartan. Detta indi-
kerar pÄ att den aktuella QR-koden Àr indisponibel och en ny rutt berÀknas. En
varningsruta syns dÄ i grÀnssnittet för att göra operatören uppmÀrksam pÄ det
pĂ„trĂ€ïŹ€ade hindret, se ïŹgur 4.7.
36
KAPITEL 4. ÖVERORDNAT SYSTEM
Figur 4.7: SkÀrmbild pÄ nÀr AGV:n har skickat blockeringssignal
37
Kapitel 5
Kollisionsundvikning
För att kunna anvĂ€nda AGV:erna i en lagermiljö krĂ€vs det att det ïŹnns system för
kollisionsundvikning. Detta för att inte riskera personalens sÀkerhet men Àven för
att eïŹ€ektivisera lagerhanteringssystemet. Det överordnade systemet hĂ„ller ordning
pÄ AGV:erna i förhÄllande till varandra och pÄ sÄ vis undviker AGV:erna att
kollidera med varandra, se kapitel 4.5.
För att undvika kollisioner med objekt som inte ïŹnns loggade i det överordnade
systemet, exempelvis mÀnniskor som rör sig inne i lokalen, mÄste ett ytterligare sy-
stem implementeras. För att utreda vilket system som Àr bÀst lÀmpat för uppgiften
görs en utvÀrdering kring olika metoder som kan anvÀndas för kollisionsundvik-
ning. UtvÀrderingen har begrÀnsats till tillgÀngliga system frÄn tidigare arbeten.
Detta görs för att de tillgÀngliga systemen anses vÀl lÀmpade för uppgiften och dÀr-
med ïŹnns ingen anledning att köpa in nĂ„got ytterligare. De tillgĂ€ngliga systemen
ultraljudssensorer och en lasersensor, en sÄ kallad LiDAR.
För att möjliggöra ett eïŹ€ektivt kollisionsundvikningssystem krĂ€vs en metod för
att skanna av omgivningen för att upptÀcka eventuella hinder. Skanningen bör
ske med hög frekvens sÄ att rörliga hinder som uppkommer nÀra AGV:n kan upp-
tĂ€ckas sĂ„ fort som möjligt och ge AGV:n möjlighet att stanna i tid. I kravspeciïŹ-
kationen Ă„terïŹnns de krav som stĂ€lls pĂ„ kollisionsundvikningssystemet i projektet,
se appendix A. Nedan följer en utvÀrdering om de tillgÀngliga systemen samt en
motivering till varför LiDAR vÀljs.
38
KAPITEL 5. KOLLISIONSUNDVIKNING
5.1 Ultraljud
Sonar (Sound Navigation and Ranging) Àr en teknik som med hjÀlp av ljudets
fortplantning gör det möjligt att avstÄndsbestÀmma objekt i omgivningen. Ult-
raljudssensorer utnyttjar denna teknik och skickar ut pulser av ultraljud som re-
ïŹ‚ekteras mot ett objekt vilka sedan fĂ„ngas upp av sensorn. Genom att berĂ€kna
tiden det tar för ljudet att nÄ tillbaka kan ett objekt avstÄnd bestÀmmas [38]. Ult-
raljudssensorerna som Àr aktuella i projektet Àr av modellen Arduino Ultrasonic
Distance Sensor (RS485 interface),se ïŹgur 5.1. Fyra stycken följer med roboten
och monteras en per sida. Ultraljudssensorerna kan mÀta avstÄnd pÄ upp till fem
meter med en upplösning pÄ en centimeter[4].
Figur 5.1: Ultraljudsensorn, Arduino Ultrasonic Distance Sensor [4]
Fördelen med att tillÀmpa ultraljudssensorerna Àr att AGV:n dÄ har kollisions-
undvikningsystem som fungerar i alla fyra riktningar samt att AGV:n redan har
hĂ„rdvaran monterad. Eftersom det dock inte ïŹnns information kring hur brett ult-
raljudfĂ€ltet Ă€r för den speciïŹka sensorn, ïŹnns det risk att objekt som kommer frĂ„n
sidan inte upptÀcks. Ultraljudssensorerna drivs och kommunicerar via den seriella
anslutningen RS485 men eftersom myRIO:n redan kommunicerar via Arduino:ns
enda seriella port ïŹnns det inte möjlighet att samtidigt anvĂ€nda ultraljudssenso-
rerna. Det Àr dock möjligt att via mjukvara implementera en seriell port, men
detta lÄser upp processorn och förhindrar annan kod att exekveras korrekt vilket
i princip gör det omöjligt att tillÀmpa ultraljudssensorerna i projektet.
5.2 LiDAR
LiDAR (Light Detection and Ranging) Àr ett optiskt mÀtinstrument som kan
tillĂ€mpas för att avstĂ„ndsbestĂ€mma objekt, se ïŹgur 2.3. Den fungerar likt en sonar
men istÀllet för ljudvÄgor skickas ljusvÄgor ut och genom att mÀta tiden det tar
39
KAPITEL 5. KOLLISIONSUNDVIKNING
för dem att reïŹ‚ekteras tillbaka kan avstĂ„ndet bestĂ€mmas till det objekt som ljuset
trĂ€ïŹ€at [23]. Den klarar av att skanna 240◩
med en uppdateringsfrekvens pÄ 10
Hz, se ïŹgur 5.2. LiDAR:n kan upptĂ€cka föremĂ„l pĂ„ upp till fyra meter med en
felmarginal pÄ tre procent av uppmÀtt avstÄnd, dock minst 30 millimeter. Under
skanning görs 683 olika avstÄndsmÀtningar vilket innebÀr att mÀtpunkterna Àr
separerade med 0.36◩
[36].
Figur 5.2: Scanningsspannet för LiDAR:n [12]
Informationen som skickas frÄn LiDAR:n Àr en strÀng med 683 punkter innehÄl-
landes avstÄndsmÀtningarna. VÀrdena representerar det uppmÀttat avstÄndet för
varje vinkelintervall frĂ„n LiDAR:n till ett objekt, om inget objekt pĂ„trĂ€ïŹ€as retur-
neras en nolla.
LiDAR:n drivs via en USB 2.0 port vilket Àr fördelaktigt dÄ det Àr enkelt, med
hjÀlp av en USB-hub för att fÄ portar till bÄde LiDAR och kameran, att samman-
koppla den med myRIO:n. En nackdel Àr det faktum att LiDAR:n endast tillÄter
avskanning i 240◩
vilket innebĂ€r att om AGV:n backar ïŹnns inte möjligheten för
LiDAR:n att detektera objekt som kan vara i vÀgen.
5.3 Val av kollisionundvikningssystem
En avvÀgning görs mellan de tvÄ tillgÀngliga teknikerna och utifrÄn det vÀljs Li-
DAR:n som kollisionsundvikningssystem. BĂ„de ultraljudsensorerna och LiDAR:n
uppfyller de krav som stÀlls pÄ kollisionundvikningssystemet vilket Àr det som Àr
40
KAPITEL 5. KOLLISIONSUNDVIKNING
mest essentiellt, se appendix A. IstÀllet för att grunda beslutet pÄ en jÀmförelse
av hur vÀl kriterierna uppfylls av de olika lösningarna, likt det som gjordes för
navigationssystemet, togs ett beslut baserat pÄ det faktum att bristen pÄ seriel-
la anslutningar pÄ Arduino:n gör att det blir vÀldigt komplext att implementera
ultraljudssensorerna. Nackdelen med att vĂ€lja den beïŹntliga LiDAR:n Ă€r att den
endast kan lĂ€sa av 240◩
av omgivningen vilket dock gÄr komma runt genom att
programmera AGV:ns rörelsemönster sÄ att den aldrig tillÄts röra sig baklÀnges
utan istÀllet rör sig i framÄt samt i sidled och roterar vid behov vilket alltsÄ anses
vara lÀttare Àn att anvÀnda ultraljudssensorerna.
5.4 Implementering
För att implementera kollisionsundvikningssystemet utnyttjades LabVIEW vilket
möjliggjorde en smidig integration med styrningen av AGV:n, se kapitel 3.
5.4.1 SynfÀlt
LiDAR:n kopplades ihop med myRIO:n via USB och placerades pÄ den frÀmre
delen av AGV:n för att minimera antalet delar pÄ AGV:n som skymmde sikten.
Dock skymde benen pÄ anordningen för transport av material samt benen pÄ
bordet fortfarande LiDAR:ns synfÀltet. För att komma runt det problemet pro-
grammerades myRIO:n till att ignorera mÀtvÀrden frÄn LiDAR:n som var pÄ ett
avstÄnd kortare Àn 20 cm. Detta löste Àven de problem som tidigare arbeten har
haft med inkorrekta mÀtvÀrden pÄ korta avstÄnd.
För att undvika kollision med hinder som kan uppstÄ programmerades LiDAR:n
i LabVIEW att skanna av omgivningen i fĂ€rdriktning, se ïŹgur 5.4. NĂ€r ett objekt
pĂ„trĂ€ïŹ€ats inom ett förutbestĂ€mt omrĂ„de skickas informationen om vinkel samt
avstÄnd till myRIO:n som dÄ stoppar AGV:n.
Eftersom LiDAR:n endast kan skanna av omgivningen i 240◩
programmerades
AGV:n till att, istĂ€llet för att backa, rotera 180◩
och köra framÄt. Dock sÄ backar
AGV:n i de fall som ett fast hinder pĂ„trĂ€ïŹ€ats, mer om detta under kapitel 5.4.2.
För att förbĂ€ttra LiDAR:ns synfĂ€lt gjordes en upphöjning för LiDAR:n, se ïŹgur
5.3.
Sikten för LiDAR:n var stÀndigt delvis skymd av anordningen för transport av
material vilket ledde till en dödzon bakom benen. Detta kunde blivit en begrÀn-
sande faktor i kollisionsundvikningssystemet men tester indikerade pÄ att det inte
41
KAPITEL 5. KOLLISIONSUNDVIKNING
Figur 5.3: Bild som visar hur LiDAR:n Àr fÀst pÄ AGV:n
gjorde nÄgon skillnad i praktiken. DÄ diagonala rörelser inte tillÀmpades, minskade
problematiken med dessa dödzoner.
För att bestÀmma bredden pÄ skanningsomrÄdet frÄn LiDAR:n betraktades tvÄ
fall: nÀr AGV:n var olastad och nÀr den var lastad. NÀr AGV:n var olastad kommer
ett mindre sökfÀlt Àn vid lastat lÀge att behövas. Ett sökfÀlt motsvarande ekipa-
gets bredd utgör minimimÄttet. Ett bredare sökfÀlt kan dock komma att hindra
AGV:n frÄn att manövrera in under bordet dÄ dess ben kan tolkas som hinder.
Lösningen blev att deïŹniera start och slutpunkt till LiDAR:n sĂ„ att sökfĂ€ltet blev
smalt nog för att tillÄta AGV:n att fÀrdas in under bordet utan att bordsbenen
bryter lasern. BerÀkningarna baserades pÄ det faktum att hela AGV:ns bredd mÄs-
te inkluderas i skanningsfÀltet för att kollisionsundvikningssystemet ska fungera
pĂ„ ett tillfredstĂ€llande sĂ€tt, se appendix C och ïŹgur 5.5. NĂ€r AGV:n har lastat
bordet programmeras LiDAR:n att mÀta ett nÄgot bredare fÀlt för att dÄ Àven fÄ
med den extra bredden som bordet medför.
BerÀkningar gjordes för att bestÀmma respektive vinkel i de tvÄ fallen. I tabell 5.1
Ă„terïŹnns resultatet och för mer ingĂ„ende beskrivning av hur berĂ€kningarna görs
se appendix C.
42
KAPITEL 5. KOLLISIONSUNDVIKNING
Figur 5.4: Illustration av hur LiDAR:n skannar beroende pÄ fÀrdriktning
Tabell 5.1: VÀrdena för LiDAR:ns skanningsspann lastad och olastad, se 5.5 för
vinkelförklaring
Vinkel Lastad Olastad
A 13◩
20◩
B 11◩
16◩
C 18◩
24◩
5.4.2 Agerande vid pĂ„trĂ€ïŹ€ande av hinder
Hinder som pĂ„trĂ€ïŹ€as kategoriseras som rörliga eller fasta. För att avgöra vilken
typ av hinder som pĂ„trĂ€ïŹ€ats sĂ„ implementerades en sekvens som stannar AGV:n
vid hindret. LiDAR:n fortsÀtter skanna kontinuerligt medan AGV:n avvaktar, för-
svinner hindret inom fem sekunder fortsÀtter AGV:n pÄ sin bestÀmda rutt och
inga ytterligare ÄtgÀrder tas. Om hindret fortfarande Àr kvar efter fem sekunder
klassas det som ett fast hinder och AGV:n backar tillbaka till föregÄende QR-kod.
MyRIO:n informerar samtidigt det överordnade systemet om det fasta hindrets
position som dÄ markerar den aktuella QR-koden som indisponibel DÀrefter be-
rÀknas en ny rutt, se mer angÄende hinder och ruttplanering under kapitel 4. I de
fall som AGV:n pĂ„trĂ€ïŹ€ar ett fast hinder och backar tillbaka sker det i blindo pĂ„
grund utav begrÀnsningar i LiDAR:ns synfÀlt, se kapitel 5.2. Detta Àr ett omrÄde
med utvecklingspotential vilket diskuteras mer i kapitel 9.
Ett problem som pĂ„trĂ€ïŹ€ades under arbetet med LiDAR:n och implementeringen
43
KAPITEL 5. KOLLISIONSUNDVIKNING
Figur 5.5: Dimensionerna pĂ„ LiDAR:ns synfĂ€lt och en deïŹnition av de ingĂ„ende
vinklarna
av systemet var att begrÀnsningar i mjukvaran pÄverkade tiden det tog för Li-
DAR:n att upptÀcka hindret tills dess att AGV:n stannat. Tester indikerade pÄ
att det tog ungefĂ€r 1,5 sekunder frĂ„n det att hindret pĂ„trĂ€ïŹ€ats till att AGV:n stan-
nade, se appendix F. Detta ansÄgs vara för lÄng tid. För att komma tillrÀtta med
problemet kontaktades National Instruments för att fÄ assistans med programme-
ringen av LiDAR:n i LabVIEW 1
. Vid genomgÄng tillsammans med en anstÀlld vid
National Instruments felsöktes funktionen och begrÀnsningarna kunde kopplas till
drivrutinerna för LiDAR:n till LabVIEW utgivna av Hokuyo. Detta Àr ett tydligt
omrĂ„de dĂ€r det ïŹnns potential för vidareutveckling, se kapitel 9.
5.4.3 Processbeskrivning
Ett ïŹ‚Ă¶desschema upprĂ€ttades för att ge en överblick över hur det slutgiltiga syste-
met med LiDAR:n fungerar, se ïŹgur 5.6. LiDAR:n skannar av sin omgivning tio
gĂ„nger i sekunden och om ett hinder pĂ„trĂ€ïŹ€as inom bestĂ€mt avstĂ„nd sĂ„ skickas en
signal via myRIO:n till Arduino:n att stoppa motorerna och följaktligen stannar
AGV:n. Sekvensen för hinderupptÀckt initieras och beroende pÄ vilken typ av hin-
der det Àr sÄ Äker antingen AGV:n vidare nÀr hindret försvunnit eller sÄ backar
AGV:n tillbaka till föregÄende QR-kod.
1
Payman Tehrani, Academic ïŹeld sales engineer, National Instruments, möte den 11/5-15
44
KAPITEL 5. KOLLISIONSUNDVIKNING
LiDAR
Skanna
omrÄde
Hinder
upptÀckt
Stoppa
AGV
Hinder kvar
Nej
Ja
Kör vidare Åk tillbaka
Nej
Initiera
END
Start tid
Tid>5
Ja
Ja
Nej
Figur 5.6: Flödesschema för hur LiDAR:n arbetar
45
Kapitel 6
Anordning för transport av
material
Som ett led i utvecklingen av ett autonomt lagerhanteringssystem krÀvs det en lös-
ning för att AGV:n skall kunna förïŹ‚ytta lagerinredningen. Prototypen som framtas
i projektet ska klara av att ïŹ‚ytta bordet som ïŹnns att tillgĂ„ som lagerinredning.
Följaktligen tillkommer dÄ krav pÄ utformningen och lastvikt som anordningen
mÄste klara av, se appendix A.
Tidigare projektgrupper har konstruerat och tillverkat en lyftanordning som kan
monteras pÄ AGV:n vilket gjorde att det fanns tvÄ vÀgar att gÄ; antingen utveck-
la och konstruera en ny design eller anvĂ€nda den beïŹntliga lyftanordningen. En
utvĂ€rdering kring beïŹntligt prototyp gjordes och jĂ€mfördes med alternativa lös-
ningar vilken resulterade i avvÀgningen att utnyttja och vidareutveckla den redan
existerande lösningen.
6.1 Framtagande av koncept
För att ge en tydlig överblick av hur den redan existerande prototypen sÄg ut
beskrivs den nedan mer ingÄende tillsammans med en diskussion av för- och nack-
delar med prototypen.
46
KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL
6.1.1 BeïŹntlig prototyp
Det beïŹntliga konceptet bygger pĂ„ att en trapetsgĂ€ngad skruv roteras med hjĂ€lp av
en stegmotor som i sin tur förïŹ‚yttar ett lyftstycke, se ïŹgur 6.1. Lyftstycket Ă€r gjort
i trÀ och bestÄr av en skiva med tre stycken armar. Det Àr dessa som Àr i direktkon-
takt med objektet som ska lyftas. Stegmotorn sammankopplas med Arduino:n och
dÀrifrÄn fÄs signal för att antingen hissa eller sÀnka lyftstycket. Stegmotorn Àr fÀst
i trapetsskruven med en lÄsskruv och vid signal börjar den rotera och dÀrmed ro-
terar Ă€ven trapetsskruven. En ïŹ‚Ă€nsmutter fĂ€sts pĂ„ lyftstycket och trapetsskruven
roterar igenom muttern. Lyftstycket Àr förhindrat frÄn att rotera pÄ grund av de
tre styrstÀngerna som löper igenom lyftstycket vilket gör att nÀr stegmotorn körs
kommer lyftstycke förïŹ‚yttas uppĂ„t eller nedĂ„t lĂ€ngs trapetsskruven. Plattformen
lyftanordningen stÄr pÄ gjordes för att inte störa de sensorer som utnyttjades för
navigering och för att fĂ„ plats med ïŹ‚er komponenter pĂ„ chassits begrĂ€nsade yta.
Figur 6.1: Modell av föregÄende Ärs prototyp av anordningen för transport av
material
BerÀkningar gjordes under det föregÄende Ärets arbete vid framtagandet av proto-
typen, frÀmst för val av motor och dÄ undersöktes de vridmomentet som krÀvdes
för att hissa lyftstycket, se ekvation 6.1 och 6.2. Som det gÄr att se pÄ ekvationer-
na sÄ kommer den begrÀnsande ekvationen vara 6.1, det vill sÀga momentet som
krÀvs för upplyftningen av lyftstycket.
47
KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL
Traise =
Fdm
2
l + π”dm
πdm − ”l
(6.1)
Tlower =
Fdm
2
π”dm − l
πdm + ”l
(6.2)
‱ T: moment som krĂ€vs för jĂ€mnvikt
‱ F: kraften som ligger pĂ„ ïŹ‚Ă€nsmuttern
‱ dm: medeldiametern pĂ„ trapetsskruven
‱ l: stighöjden för ett varv pĂ„ trapetsskruven
‱ ”: friktionskoeïŹƒcienten mellan ïŹ‚Ă€nsmuttern och trapetsskruven
Alla de ingÄende variablerna i ekvationerna Àr relativt enkla att bestÀmma förutom
friktionskoeïŹƒcienten. Friktion uppkommer mellan trapetsmutter och trapetsskru-
ven men Àven mellan lyftstycket och styrstÀngerna i viss mÄn. Detta medför en
stor osÀkerhet i berÀkningarna vilket leder till att det bör tas till rejÀl sÀkerhets-
marginal vid val av motor. Eftersom tidigare arbeten inte kom lÀngre Àn vad som
teoretiskt krÀvs betyder det att tester mÄste utföras för att faststÀlla om den
beïŹntliga stegmotorn klarar av belastningen i praktiken.
Om valet görs att utnyttja den beïŹntliga anordningen erhĂ„lls en tids- och kostnads-
eïŹ€ektiv lösning vilket Ă€r av stor vikt dĂ„ tiden som ïŹnns tillgĂ€nglig för projektet Ă€r
högst begrÀnsad. Designen som konstruktionen bygger pÄ Àr relativt enkelt men
ÀndÄ lÀmpad för ÀndamÄlet. Tre kontaktpunkter med objektet som lyfts medför
stabilitet och anvÀndningen av stegmotor möjliggör vetskapen om vilket avstÄnd
lyftstycket ïŹ‚yttats samt att den bibehĂ„ller sin position. Att trapetsskruvar redan
utnyttjas i liknande anvÀndningsomrÄden, exempelvis skruvdomkrafter, visar pÄ
att metoden fungerar och Àr vÀl beprövad [37].
En jĂ€mförelse mellan den beïŹntliga lösningen och alternativa metoder gjordes, dĂ€r
bland annat domkraft, saxlyft och pneumatiskt lyftbord undersöktes för att fÄ
en bild av andra lösningar som skulle generera samma resultat. Att utveckla och
designa ett nytt koncept ansÄgs dock vara vÀldigt tidskrÀvande samtidigt som det
var högst osĂ€kert att ett bĂ€ttre resultat skulle uppnĂ„s. DĂ„ det beïŹntliga konceptet
ansÄgs vara en robust konstruktion och vÀl lÀmpad för ÀndamÄlet med tidigare
nÀmnda argument som grund för beslutet gjordes avvÀgningen att utnyttja den
existerande prototypen. NĂ„gra förbĂ€ttringsomrĂ„den identiïŹerades dock och modi-
ïŹeringar av prototypen utfördes, se nĂ€stkommande kapitel.
48
KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL
6.2 Design av koncept
Vid utvĂ€rdering av det beïŹntliga konceptet identiïŹerades förbĂ€ttringsmöjligheter
pĂ„ olika omrĂ„den och modiïŹeringar arbetades fram för att eïŹ€ektivisera och för-
bÀttra lyftanordningen.
6.2.1 ModiïŹeringar
De delar som identiïŹerades som förbĂ€ttringsomrĂ„den och modiïŹerades var följande:
‱ Lyftstycke - För att förbĂ€ttra lyftstabiliteten förlĂ€ngdes armarna sĂ„ att kon-
taktytorna med bordet förïŹ‚yttades lĂ€ngre ut frĂ„n centrum. Till följd av detta
gjordes skivan som armarna sitter pÄ större för att agera stöd och fördela
krafterna som bordets tyngd ger upphov till pÄ lyftarmarna.
‱ StyrstĂ€nger - PĂ„ det beïŹntliga konceptet gick styrstĂ€ngerna endast igenom
skivan vilken gjorde att lyftstycket blev instabilt. Genom att ïŹ‚ytta styrstĂ€ng-
erna till att gÄ igenom bÄde skivan och armarna fÄs mer styrning och dÀrmed
en stabilare lyftanordning. För att fÄ en tydlig bild av skillnaden hÀnvisas
lĂ€saren att jĂ€mföra ïŹgur 6.1 med ïŹgur 6.3.
‱ Placering av lyftstycke pĂ„ plattform - Lyftstycket var ursprungligen centrerat
pÄ plattformen men dÄ plattformen inte Àr centrerad pÄ AGV:n sÄ skedde inte
lyftet mitt under bordet samt att tyngden inte fördelades jÀmt över hjulen pÄ
AGV:n. DĂ€rför förïŹ‚yttades lyftstycket framĂ„t pĂ„ plattformen, jĂ€mför ïŹgur
6.1 med ïŹgur 6.3.
‱ SĂ€nkning av plattform - Plattformen var ursprungligen gjord för att ha plats
till lasern som anvÀndes för navigering av tidigare Ärs arbeten, vilket gjorde
att plattformen var onödig hög vid navigering med QR-koder. Höjden pÄ
plattformen ledde till att AGV:n blev instabil vid lyft och dÀrför förkortades
lyftplattformens ben vilket resulterade i en lÀgre tyngpunkt och en förbÀttrad
stabilitet.
6.3 FĂ€rdigt koncept
En förklaring av de ingÄende komponenterna och dess anvÀndningsomrÄde i det
fÀrdiga konceptet presenteras nedan.
49
KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL
Trapetsskruv
En trapetsgÀngad skruv anvÀnds för att omsÀtta den roterande rörelsen frÄn steg-
motorn till lyftstyckets linjÀra rörelse. Skruven Àr gjord i stÄl och fÀsts i motorn
med hjÀlp av en lÄsskruv.
Lyftstycke
Lyftstycket Àr den del som Àr i direkt kontakt med bordet som ska lyftas och utgörs
av tre armar som fÀsts med jÀmna mellanrum pÄ en skiva. Tre kontaktpunkter med
bordet medför ett stabilt lyft och alla ingÄende delar Àr tillverkade i trÀ för att
det Àr enkelt att bearbeta samt för att hÄlla nere vikten.
StyrstÀnger
StyrstÀnger gÄr igenom bÄde skivan och armarna pÄ lyftstycket för att minimera
instabilitet samt ta upp momentet som skapas mellan ïŹ‚Ă€nsmutter och trapets-
skruv. StyrstÀngerna Àr gjorda i solitt stÄl som Àr gÀngade i Ànden för fÀstning
med skruv.
MotorhÄllare
En motorhÄllare gjord i bockad plÄt anvÀnds för att undvika att stegmotorn utsÀtts
för kraft- och momentbelastning eftersom den inte Àr konstruerad för att hantera
detta.
Stegmotor
Vid anvÀndning av stegmotor fÄs en hög precision pÄ rotationen vilket möjliggör
att ingen Äterkoppling pÄ hur högt lyftstycket har höjts eller sÀnkts, utan den
kan förutbestĂ€mmas. NĂ€r en av de fyra elektromagneterna strömsĂ€tts ïŹ‚yttas den
kuggformade rotorn ett steg vilket ger upphov till rotation och antalet steg som
krÀvs för ett helt varv Àr beroende pÄ motortyp. Stegmotorn drivs av en separat
drivkrets som sköter strömfördelningen mellan faserna frÄn en extern spÀnnings-
kÀlla. Drivkretsen styrs i sin tur av Arduino:n som sÀtter antalet steg och riktning
som skall köras. För en principskiss över en stegmotor, se ïŹgur 6.2.
Plattform
Plattformen Àr utformad som ett bord; en platta gjord i tvÄ millimeter tjock plÄt
med fyra stycken kvadratiska ben i stÄl. Benen Àr hopsvetsade med plattan och
fÀstes pÄ ramen pÄ AGV:n.
50
KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL
Figur 6.2: Principsskiss av en stegmotor [12]
6.4 Implementering
Eftersom stora delar av den beïŹntliga lyftanordning ansĂ„gs robust och lĂ€mpad
för ÀndamÄlet förenklades tillverkningen och fokus kunde lÀggas pÄ de omrÄden
dĂ€r förbĂ€ttringsmöjligheter identiïŹerats. I CATIA konstruerades modeller och rit-
ningar upprÀttades som grund för tillverkningsprocessen, se appendix E. Tillverk-
ningen bestod av bearbetning av stĂ„l, trĂ€ och plĂ„t och ïŹ‚era tillverkningsmetoder
utnyttjades, bland annat frÀsning, bockning och borrning.
Eftersom modiïŹeringar gjorts pĂ„ lyftanordningen genomfördes tester för att un-
dersöka hur vĂ€l den modiïŹerade lösningen klarar av att utföra den givna uppgiften.
Stegmotorn, med hÄllkraften 0.098 Nm, var inte tillrÀckligt stark för att lyfta den
av kravspeciïŹkationen deïŹnierade lasten utan klarade en vikt pĂ„ ungefĂ€r ett kg,
se appendix A. För att ÄtgÀrda problemet testades först att minska friktionen ge-
nom att smörja trapetsskruven och styrstÀngerna, detta var dock inte tillrÀckligt
eïŹ€ektivt.
Med alla andra ingĂ„ende variabler kĂ€nda i ekvation 6.1, kunde friktionskoeïŹƒcien-
ten berÀknas, se appendix D. UtifrÄn berÀkningen togs ett teoretiskt momentkrav
pĂ„ en ny motor fram. En ny stegmotor införskaïŹ€ades med hĂ„llkraften 1.1 Nm
vilket innebar att den var cirka tio gÄnger starkare Àn den föregÄende stegmotorn.
Den nya stegmotorn var dock betydligt större, sett till bÄde axelns samt motor-
husets dimensioner, vilket ledde till att ytterligare modiïŹeringar var tvungna att
göras. Trapetsskruven gick inte att fÄ pÄ stegmotorns axel och dÀrför gjordes hÄlet
pÄ trapetsskruven större. De var samma problem med motorhÄllaren som hÄller
motorn pÄ plats pÄ lyftplattformen, den var för liten och en ny tillverkades. I
helhet medförde modiïŹeringen smĂ„ förĂ€ndringar och dĂ€rmed att lyftanordningens
utformning i stort sett blev som planerat.
51
KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL
ModiïŹeringarna som förklaras under kapitel 6.2.1 genomfördes under labbtimmar
i verkstaden och för att höja den estetiska upplevelsen lackades allt förutom styr-
stÀngerna svart.
NĂ€r vĂ€l nĂ€mnda modiïŹeringar var gjorda monterades lyftanordningen ihop och
sattes pÄ plats pÄ AGV:n för att integreras med resterande delsystem. Tester ut-
fördes för att undersöka hur vÀl lösningen uppfyllde de satta kraven och önskemÄlen
i kravspeciïŹkationen, resultatet redovisas under kapitel 7.
Slutligen erhölls en lyftanordning som efter modiïŹeringar tillĂ„ter ett stabilare lyft i
jĂ€mförelse med den ursprungliga prototypen. I ïŹgur 6.3 ses en bild pĂ„ det slutgiltiga
konceptet.
Figur 6.3: Det slutgiltiga konceptet
52
Kapitel 7
Integrering av delsystem
Som en avslutande del i utvecklingen av ett autonomt lagerhanteringssystem be-
höver alla delprocesser som beskrivits tidigare integreras. För att de olika delsyste-
men (navigering, överordnade systemet, kollisionsundvikning samt lyftanordning)
pĂ„ ett eïŹ€ektivt sĂ€tt ska fungera ihop mĂ„ste kommunikationen mellan de olika de-
larna utformas. Vad som skickas emellan de olika komponenterna och hur det gÄr
till beskrivs mer ingÄende och Àven de justeringarna som gjordes för att möjliggö-
ra integreringen. Nedan följer en genomgÄng av integreringsarbetet samt lite mer
ingÄende förklaringar och motiveringar till val som gjorts.
7.1 FörïŹ‚yttning
För att förïŹ‚ytta AGV:n mellan koordinatsystemets kĂ€nda positioner behövde hĂ€n-
syn tas till de olika delsystemen som skall kunna verka samtidigt och tillsammans.
Flera kompromisser krÀvdes för att möjliggöra integreringen av dessa delsystem.
7.1.1 Död rÀkning
För att förïŹ‚ytta sig mellan koderna behöver AGV:n information om antingen av-
stĂ„nd eller tid och hastighet. Arduino:n klarar att ïŹ‚ytta AGV:n en given strĂ€cka
via feedback frÄn sina encoders. Ett alternativ till detta Àr att skicka körkomman-
dot till Arduino:n och efter en viss tid skicka ett stoppkommando.
Eftersom förïŹ‚yttningen via en angiven strĂ€cka innebar att Arduino:n var tvung-
en att tolka motorenas encoders under hela förïŹ‚yttningen kunde inte eventuel-
53
KAPITEL 7. INTEGRERING AV DELSYSTEM
la stoppkommandon frÄn serieporten upptÀckas. För att kollisionsundvikningen
skulle kunna implementeras krĂ€vdes att serieporten kunde lĂ€sa under förïŹ‚yttning.
Detta gjorde att död rÀkning implementerades hos myRIO:n för att bestÀmma
förïŹ‚yttningens avstĂ„nd. Se kap 7.1.2 för utrĂ€kningar gĂ€llande tider.
För att öka systemets eïŹ€ektivitet genom att minska transporttiderna utvĂ€rderades
möjligheten för AGV:n att förïŹ‚ytta sig dubbla avstĂ„nd innan den positionsĂ„ter-
kopplar. För att lösa detta programmerades servern att vid lÀngre strÀckor skicka
en siïŹ€ra efter förïŹ‚yttningskommandot. Denna siïŹ€ra anvĂ€nds som en multipel för
den tid som AGV:n sedan fÀrdas. HÀnsyn var tvungen att tas till den förlora-
de strÀckan som AGV:n fÀrdas under acceleration och retardation varvid detta
tidsbidrag adderades till den totala tiden att fÀrdas.
7.1.2 Matematisk modell vid förïŹ‚yttning
DĂ„ funktionerna som ïŹnns implementerade i Arduino:ns programbibliotek krĂ€ver
en tid för att accelerera och retardera nĂ€r en förïŹ‚yttning utförs krĂ€vdes en ma-
tematisk modell. Modellen anvÀndes för att berÀkna tiden som rörelsen behövde
utföras för att fĂ„ roboten att förïŹ‚ytta sig en viss strĂ€cka i sidled, lĂ€ngdled och
vinkel vid rotation.
Modellen bygger pÄ ett antagande om linjÀr acceleration och retardation samt
konstant fart dĂ€r emellan, se ïŹgur 7.1. För att berĂ€kna den tid som krĂ€vs för att
förïŹ‚ytta sig en viss strĂ€cka stĂ€lldes ekvation 7.1 upp.
s(t) =
tup
v
tup
t dt +
tkonst
v dt +
tstop
v −
v
tstop
t dt (7.1)
Datan frĂ„n ïŹgur 7.1 visas i tabell 7.1
Tabell 7.1: Data frĂ„n ïŹgur 7.1
Parametrar variabel VĂ€rde Enhet
Hastighet v 200 mm/s
Up tup 0.15 s
Const tconst 0.6 s
Stop tstop 0.15 s
Distans s 150 mm
Minst dist. − 30 mm
DÄ tup = tstop kan tconst lösas ut och dÄ fÄs ekvation 7.2.
54
KAPITEL 7. INTEGRERING AV DELSYSTEM
Figur 7.1: Graf över AGV:ns generella rörelse
tconst =
s
v
− tup/stop (7.2)
För att kunna rotera en given vinkel togs Àven modell 7.2 fram, som bygger pÄ
samma modell som tidigare, men istÀllet justeras robotens vinkelfel i förhÄllande
till avlÀst QR-kod. DÄ s = α r kan ekvation 7.2 anvÀndas för att bestÀmma den
tid som krĂ€vs för att utföra en rotation av angiven vinkel. En graïŹsk illustration
Ă„terïŹnns i ïŹgur 7.2.
Figur 7.2: GraïŹsk beskrivning av rotationsmodell för AGV:n, d = 150mm
DĂ„ det alltid krĂ€vs en acceleration och retardation vid förïŹ‚yttning kommer det
uppstĂ„ en teoretiskt minsta strĂ€cka som roboten kan förïŹ‚ytta sig. Den strĂ€cka
55
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270
219270

More Related Content

Viewers also liked

Personal Finance for Engineers
Personal Finance for EngineersPersonal Finance for Engineers
Personal Finance for Engineers
Adam Nash
 
Imtiyaz_resume
Imtiyaz_resumeImtiyaz_resume
Imtiyaz_resume
Imtiyaz Ahmed
 
Proposal floodhelp
Proposal floodhelpProposal floodhelp
Proposal floodhelp
Nam Tan
 
Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues” Organized by ...
Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues”  Organized by ...Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues”  Organized by ...
Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues” Organized by ...
incucai_isodp
 

Viewers also liked (14)

IFPRI-Using new technologies to validating Crop-Cutting Experiments-Michael Mann
IFPRI-Using new technologies to validating Crop-Cutting Experiments-Michael MannIFPRI-Using new technologies to validating Crop-Cutting Experiments-Michael Mann
IFPRI-Using new technologies to validating Crop-Cutting Experiments-Michael Mann
 
Analytical paper on the economic scale and growth of the collaborative econom...
Analytical paper on the economic scale and growth of the collaborative econom...Analytical paper on the economic scale and growth of the collaborative econom...
Analytical paper on the economic scale and growth of the collaborative econom...
 
Curso de gestĂŁo de pessoal parte 1/5
Curso de gestĂŁo de pessoal   parte 1/5Curso de gestĂŁo de pessoal   parte 1/5
Curso de gestĂŁo de pessoal parte 1/5
 
PDMA 2008 World Class Web 2.0 Product Org
PDMA 2008 World Class Web 2.0 Product OrgPDMA 2008 World Class Web 2.0 Product Org
PDMA 2008 World Class Web 2.0 Product Org
 
Dribbble meetup 2016 — Flinto for Mac
Dribbble meetup 2016 — Flinto for MacDribbble meetup 2016 — Flinto for Mac
Dribbble meetup 2016 — Flinto for Mac
 
Game UX Design and Evaluation
Game UX Design and EvaluationGame UX Design and Evaluation
Game UX Design and Evaluation
 
Team7
Team7Team7
Team7
 
Team 2
Team 2Team 2
Team 2
 
Team2
Team2Team2
Team2
 
An Enterprise 2.0 case study
An Enterprise 2.0 case studyAn Enterprise 2.0 case study
An Enterprise 2.0 case study
 
Personal Finance for Engineers
Personal Finance for EngineersPersonal Finance for Engineers
Personal Finance for Engineers
 
Imtiyaz_resume
Imtiyaz_resumeImtiyaz_resume
Imtiyaz_resume
 
Proposal floodhelp
Proposal floodhelpProposal floodhelp
Proposal floodhelp
 
Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues” Organized by ...
Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues”  Organized by ...Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues”  Organized by ...
Eduardo Tanus - Argentina - Wednesday 30 - “Bioethical Issues” Organized by ...
 

Similar to 219270

Sveriges potential för elproduktion frÄn takmonterade solceller Sigrid Kamp
Sveriges potential för elproduktion frÄn takmonterade solceller Sigrid KampSveriges potential för elproduktion frÄn takmonterade solceller Sigrid Kamp
Sveriges potential för elproduktion frÄn takmonterade solceller Sigrid Kamp
Sigrid Kamp
 
Sql optimering
Sql optimeringSql optimering
Sql optimering
smb1234
 
E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...
E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...
E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...
Michael Le Duc
 
kandidatuppsats
kandidatuppsatskandidatuppsats
kandidatuppsats
Jens Nordmark
 
Narkotikaspaning pÄ Internet Projekt Nicks 2005
Narkotikaspaning pÄ Internet Projekt Nicks 2005Narkotikaspaning pÄ Internet Projekt Nicks 2005
Narkotikaspaning pÄ Internet Projekt Nicks 2005
Kim Nilvall
 
LÀnstransportplan förslag till Styrelsen
LÀnstransportplan förslag till StyrelsenLÀnstransportplan förslag till Styrelsen
LÀnstransportplan förslag till Styrelsen
Mattias Larsson
 
Using Microformats to aggregate data
Using Microformats to aggregate dataUsing Microformats to aggregate data
Using Microformats to aggregate data
Gabriel Svennerberg
 
00aab012 4637-11e8-adfa-6cae8b4eb554.data
00aab012 4637-11e8-adfa-6cae8b4eb554.data00aab012 4637-11e8-adfa-6cae8b4eb554.data
00aab012 4637-11e8-adfa-6cae8b4eb554.data
Edson Silva
 
Service Manual Hp2 Enduro 2006
Service Manual Hp2 Enduro 2006Service Manual Hp2 Enduro 2006
Service Manual Hp2 Enduro 2006
edum
 
Syn och belysning för Àldre i arbetslivet
Syn och belysning för Àldre i arbetslivetSyn och belysning för Àldre i arbetslivet
Syn och belysning för Àldre i arbetslivet
Fox Belysning AB
 

Similar to 219270 (17)

mpi_w3000-ga10_vka-lkd
mpi_w3000-ga10_vka-lkdmpi_w3000-ga10_vka-lkd
mpi_w3000-ga10_vka-lkd
 
Sveriges potential för elproduktion frÄn takmonterade solceller Sigrid Kamp
Sveriges potential för elproduktion frÄn takmonterade solceller Sigrid KampSveriges potential för elproduktion frÄn takmonterade solceller Sigrid Kamp
Sveriges potential för elproduktion frÄn takmonterade solceller Sigrid Kamp
 
Sql optimering
Sql optimeringSql optimering
Sql optimering
 
E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...
E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...
E-lÀrande för yrkesverksamma inom krisberedskap och samhÀllsskydd samt relate...
 
Diagnostik
DiagnostikDiagnostik
Diagnostik
 
kandidatuppsats
kandidatuppsatskandidatuppsats
kandidatuppsats
 
Narkotikaspaning pÄ Internet Projekt Nicks 2005
Narkotikaspaning pÄ Internet Projekt Nicks 2005Narkotikaspaning pÄ Internet Projekt Nicks 2005
Narkotikaspaning pÄ Internet Projekt Nicks 2005
 
Swedish 4.0
Swedish 4.0Swedish 4.0
Swedish 4.0
 
Det gröna manifestet
Det gröna manifestetDet gröna manifestet
Det gröna manifestet
 
LÀnstransportplan förslag till Styrelsen
LÀnstransportplan förslag till StyrelsenLÀnstransportplan förslag till Styrelsen
LÀnstransportplan förslag till Styrelsen
 
Using Microformats to aggregate data
Using Microformats to aggregate dataUsing Microformats to aggregate data
Using Microformats to aggregate data
 
00aab012 4637-11e8-adfa-6cae8b4eb554.data
00aab012 4637-11e8-adfa-6cae8b4eb554.data00aab012 4637-11e8-adfa-6cae8b4eb554.data
00aab012 4637-11e8-adfa-6cae8b4eb554.data
 
DN varumärke och grafisk plattform
DN varumärke och grafisk plattformDN varumärke och grafisk plattform
DN varumärke och grafisk plattform
 
Service Manual Hp2 Enduro 2006
Service Manual Hp2 Enduro 2006Service Manual Hp2 Enduro 2006
Service Manual Hp2 Enduro 2006
 
Syn och belysning för Àldre i arbetslivet
Syn och belysning för Àldre i arbetslivetSyn och belysning för Àldre i arbetslivet
Syn och belysning för Àldre i arbetslivet
 
Market communication 2.0
Market communication 2.0Market communication 2.0
Market communication 2.0
 
Brochure european updated s3 swedish lo
Brochure european updated s3 swedish loBrochure european updated s3 swedish lo
Brochure european updated s3 swedish lo
 

219270

  • 1. CHALMERS Autonom lagerhantering Lösningar för den moderna lagermiljön Kandidatarbete inom civilingenjörsprogrammet Victor Andersson Gunnar Bolmvall Daniel Eriksson Jonathan Hasselström Pedro Josefsson Daniel Pettersson Institutionen för Signaler och system CHALMERS TEKNISKA HÖGSKOLA Göteborg, Sverige 2015
  • 2.
  • 3. Autonom lagerhantering Lösningar för den moderna lagermiljön -Kandidatarbete inom civilingenjörsprogrammet- Victor Andersson Gunnar Bolmvall Daniel Eriksson Jonathan Hasselström Pedro Josefsson Daniel Pettersson Handledare: Martin Fabian Examinator: Knut Åkesson
  • 4. Kandidatarbete SSYX02-15-17 Autonom lagerhantering, lösningar för den moderna lagermiljön c 2015 Victor Andersson, Gunnar Bolmvall, Daniel Eriksson, Jonathan Hasselström, Pedro Josefsson, Daniel Pettersson Chalmers tekniska högskola SE-412 96 Göteborg, Sverige Telefon +46(0) 31-772 1000 Fax 031-772 5944 chalmers@chalmers.se Tryck: Signaler och system Omslag: Foto pĂ„ AGV
  • 5. Förord Följande rapport beskriver kandidatarbetet Autonom lagerhantering. Syftet med arbetet var att utveckla ett autonomt lagerhanteringssystem och att ta fram en fungerande prototyp. Projektet har utförts pĂ„ Chalmers tekniska högskola vid institutionen för Signaler och System. Projektet omfattar 15 högskolepoĂ€ng och genomfördes vĂ„rterminen 2015. Vi vill tacka alla som varit inblandade i projektet och sĂ€rskilt tack riktas till vĂ„r handledare Martin Fabian. Stort tack riktas Ă€ven till Janne BragĂ©e och Reine Nohlborg i Prototyplabbet som varit behjĂ€lpliga under framtagningen av projektets prototyp. i
  • 6. Abstract In order to create an eïŹƒcient warehouse management system and minimize the related work injuries, systems with an ever-increasing degree of automation is pursued. This report adresses the development of an autonomous warehousing system and an associated prototype with the aim to facilitate the work and reduce the economic and social costs associated with conventional methods. An AGV (Automated Guided Vehicle) was developed and with the help of a su- pervisory system it’s made possible to retrieve and return warehouse furnishing autonomously, following given orders. A grid of QR codes has been established in a test area, which the AGV can scan and thereby obtain position feedback. The route planning, provided by the supervisory system, is based on the A* algorithm that calculates an optimal route for the AGV to reach its target destination. The supervisory system also supports multiple AGVs and thereby enabling adaptation to diïŹ€erent sizes of storage systems. In a warehouse environment, unpredictable elements such as people and misplaced items can appear and therefore a collision avoidance system has been implemented. A laser sensor is placed at the forefront of the AGV, thus enabling obstacle detec- tion in the direction of travel. In order to be able to move the warehouse furnishing the AGV is equipped with a mechanical lifting device which makes it possible to transport articles. ii
  • 7. Sammanfattning För att skapa eïŹ€ektiva lagerhĂ„llningssystem och minimera de relaterade arbets- skadorna efterstrĂ€vas en stĂ€ndigt ökande automatiseringsgrad av nĂ€mnda system. Rapporten behandlar utvecklingen av ett autonomt lagerhĂ„llningssystem och en tillhörande prototyp med syftet att underlĂ€tta arbetet samt minska de ekonomiska och sociala kostnader förknippade med konventionella metoder. En AGV (Automated Guided Vehicle) har utvecklats, som tillsammans med ett överordnat system klarar att hĂ€mta och lĂ€mna material autonomt efter given order. I lagermiljön har ett rutnĂ€t av QR-koder upprĂ€ttats, vilka AGV:n kan avlĂ€sa och dĂ€rigenom bestĂ€mma sin position. Ruttplaneringen, som sker i det överordnande systemet, görs med algoritmen A* som berĂ€knar den optimala rutten för AGV:n. Det överordnade systemet har stöd för ïŹ‚era AGV:er och dĂ€rigenom möjliggörs anpassning till olika storlekar pĂ„ lagersystem. I en lagermiljö förekommer oförutsĂ€gbara element sĂ„som mĂ€nniskor och felplacera- de objekt, dĂ€rför har ett kollisonsundvikningssystem implementerats. En lasersen- sor placeras i framkanten av AGV:n och dĂ€rmed möjliggörs avskanning av omrĂ„det i AGV:ns fĂ€rdriktning och följaktligen kan eventuella hinder upptĂ€ckas. För att kunna förïŹ‚ytta lagerinredningen utrustas AGV:n med en mekanisk lyftanordning. iii
  • 8. Beteckningar AGV Automated guided vehicle. QR-kod Quick Response-kod. CATIA Program för att digitalt skapa kontruktioner och ritningar. JavaScript Prototypbaserat ScriptsprĂ„k som anvĂ€nds frĂ€mst i webbtillĂ€mpningar. HTML5 Senaste standarden för HTML, vilket an- vĂ€nds för skapandet av webbsidor. Kompilator Datorprogram som skapar ett lĂ„gnivĂ„pro- gram utifrĂ„n en programtext. Kommandotolk GrĂ€nssnitt dĂ€r anvĂ€ndare kan köra komman- don eller enkla program. Netcat TjĂ€nst för att lĂ€sa/skriva till nĂ€tverksanslut- ningar. API SpeciïŹcerar hur olika applikationsprogram kan anvĂ€nda speciïŹk programvara. Full-duplex Beskriver att kommunikation kan ske i bĂ„da riktningar samtidigt. Heuristik Procedur som ger tillfredstĂ€llande men ofull- stĂ€ndiga svar. Encoder Enhet som omvandlar information frĂ„n ett format till ett annat. iv
  • 9. InnehĂ„ll 1 Inledning 1 1.1 Bakgrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Syfte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 AvgrĂ€nsningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Problemformulering . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Rapportstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Lagermiljö och robot 6 2.1 Lagermiljö . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 Lagerinredning . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 RutnĂ€t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 HĂ„rdvarubeskrivning . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Chassi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 myRIO 1900 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.4 LiDAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.5 Batteripack . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.6 Överordnat system . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.7 Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.8 Ram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.9 Mecanumhjul . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.10 Styrmotorer . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Robotens kinematik . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Motorkontroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Navigation 13 3.1 Trilaterationsmetoder . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1 GPS och WiFi . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.2 Lasernavigation . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Markeringsföljning . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 v
  • 10. 3.2.1 Linjeföljning . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.2 Magnetföljning . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.3 RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.4 QR-koder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3 Val av navigationsmetod . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4.1 Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4.2 Rörelsemönster . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4.3 LĂ€sning av koder . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4.4 RutnĂ€t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4.5 OïŹ€set och vinkel . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4.6 Processbeskrivning . . . . . . . . . . . . . . . . . . . . . . . 25 4 Överordnat system 28 4.1 Systemuppbyggnad . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2 GrĂ€nssnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3 Ruttplanering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.1 A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.2 Visibility graph/Dijkstras algoritm . . . . . . . . . . . . . . 30 4.3.3 PotentialfĂ€lt . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.4 Flood ïŹll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4 Val av ruttplaneringsmetod . . . . . . . . . . . . . . . . . . . . . . 32 4.5 Implementering av överordnade systemet . . . . . . . . . . . . . . . 32 4.5.1 Beskrivning av grĂ€nssnittets utseende . . . . . . . . . . . . . 34 5 Kollisionsundvikning 38 5.1 Ultraljud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.2 LiDAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3 Val av kollisionundvikningssystem . . . . . . . . . . . . . . . . . . . 40 5.4 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.4.1 SynfĂ€lt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.4.2 Agerande vid pĂ„trĂ€ïŹ€ande av hinder . . . . . . . . . . . . . . 43 5.4.3 Processbeskrivning . . . . . . . . . . . . . . . . . . . . . . . 44 6 Anordning för transport av material 46 6.1 Framtagande av koncept . . . . . . . . . . . . . . . . . . . . . . . . 46 6.1.1 BeïŹntlig prototyp . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2 Design av koncept . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2.1 ModiïŹeringar . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.3 FĂ€rdigt koncept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.4 Implementering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 vi
  • 11. 7 Integrering av delsystem 53 7.1 FörïŹ‚yttning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.1.1 Död rĂ€kning . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.1.2 Matematisk modell vid förïŹ‚yttning . . . . . . . . . . . . . . 54 7.1.3 Reglering av motorer . . . . . . . . . . . . . . . . . . . . . . 58 7.2 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 7.2.1 Protokoll mellan myRIO och överordnat system . . . . . . . 59 7.2.2 Protokoll mellan myRIO och Arduino . . . . . . . . . . . . . 60 7.2.3 myRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.3 Initieringsprocesser . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.4 Felsökningssekvens . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 7.5 Systemöverblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.5.1 Uppstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.5.2 Arbetscykel . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.5.3 Avslutning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8 Resultat 67 8.1 MĂ„luppfyllnad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 8.3 Kollisionsundvikningssystem . . . . . . . . . . . . . . . . . . . . . . 70 8.4 Överordnat system . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.5 Anordning för transport av material . . . . . . . . . . . . . . . . . . 71 8.6 Test av system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 9 Diskussion 74 9.1 ProblemomrĂ„den . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 9.2 UtvecklingsomrĂ„den . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Referenser 80 A KravspeciïŹkation I B OïŹ€set och vinkelberĂ€kningar III C BerĂ€kningar för LiDAR VI D BerĂ€kning för lyftanordning X E Ritningar och modeller av anordning för transport för material XII F Tester XXIII F.1 Rörelseprecision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIII vii
  • 12. F.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV F.3 Kollisionsundvikning . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV F.4 Överordnat system . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV F.4.1 Flera AGV:er . . . . . . . . . . . . . . . . . . . . . . . . . . XXV F.5 Lyftanordning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV F.6 Test av system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV viii
  • 13. Kapitel 1 Inledning För att öka eïŹ€ektiviteten och sĂ€kerheten samt minska kostnaden för lagerhante- ring har institutionen för Signaler och System pĂ„ Chalmers skapat kandidatarbetet SSYX02-15-17, Autonom lagerhantering. Arbetet syftar till att skapa en prototyp för en automatiserad lösning för materialhantering i lagermiljö. Denna rapport redogör utförande samt resultat av nĂ€mnt kandidatarbete som genomförts under vĂ„rterminen 2015. Som grund till arbetet ïŹnns tidigare Ă„rs kandidatarbeten, dĂ€r syftet var att autonoma AGV:er skulle transportera lagerinredning Ă„t ett överord- nat system [16, 12]. 1.1 Bakgrund Att hushĂ„lla med resurser Ă€r en viktig del av företagandet oavsett om det rör sig om pengar, ytor, personal eller miljön. Inom tillverkningsindustrin tvingas företag ofta att lagerhĂ„lla de producerade produkterna vilket skapar stora lager som bin- der kapital och tar upp stor platsyta. Detta görs dels för att företag ska kunna hĂ„lla höga servicenivĂ„er men Ă€ven för att den stĂ€ndigt förĂ€nderliga marknaden Ă€r svĂ„r att förutspĂ„. Stora svenska företag arbetar ofta aktivt med att minska dessa kostnader genom att utarbeta eïŹ€ektiva logistiklösningar, exempelvis via ”Supply chain management” [20]. Problemet med ”Supply chain management” Ă€r att fokus ligger pĂ„ in- och utïŹ‚Ă¶den frĂ„n lager och fabriker som behandlas. Mindre hĂ€nsyn tas sĂ„ledes till materialïŹ‚Ă¶dena inom lagret. Oftast sker materialhanteringen i lagret manuellt med hjĂ€lpmedel som truckar, pallastare och vagnar. Hos vissa företag anvĂ€nds ibland paternosterverk1 , men 1 Paternosterverk syftar hĂ€r till en automatiserad lagerhylla. 1
  • 14. KAPITEL 1. INLEDNING dessa Ă€r ofta inte ïŹ‚exibla gĂ€llande nya lagerlösningar och Ă€r begrĂ€nsade till mindre artiklar [20]. Konsultbolaget Boston Consulting Group menar att det ïŹnns möjligheter att mins- ka kostnaderna inom industrin med 16% genom en ökning av automatiseringen under de kommande 10 Ă„ren [14]. Med tanke pĂ„ den stora andelen manuellt arbete i materialhanteringen ïŹnns det kostnadsminskningar att göra Ă€ven hĂ€r. Utöver materialhanteringskostnaderna tillkommer ocksĂ„ andra sociala kostnader i form av arbetsolyckor. NĂ€stan 800 personer skadas och sjukskrivs frĂ„n jobbet varje Ă„r i truckrelaterade olyckor, vilket Ă€r den vanligaste typen av arbetsolyckor i Sverige [10]. Genom att minimera mĂ€nniskors nĂ€rvaro i lagerhĂ„llningsomrĂ„det Ă€r förhoppningen att arbetet blir betydligt sĂ€krare Ă€n med konventionella lagerhĂ„ll- ningssystem. En uppmĂ€rksammad automationslösning för lagerhantering, som projektet hĂ€mtat inspiration ifrĂ„n, har utvecklats av företaget Kiva Systems. Det baseras pĂ„ ett inte- grerat system dĂ€r operatörer, AGV:er och lagerhyllor samspelar. Kortfattat utgörs systemet av ïŹ‚exibla lagerplatser dĂ€r ett överordnat system övervakar och hĂ„ller koll pĂ„ inventarier. Under det överordnade systemet verkar individuella AGV:er med uppgift att transportera lagerhyllorna mellan operatörerna och lagerplatsen. Resultatet Ă€r ett lagerhanteringssystem med minimerad olycksrisk dĂ„ personalen beïŹnner sig vid plockstationer och AGV:erna sköter transporten av lagerinred- ningen. Detta system möjliggör Ă€ven en ïŹ‚exiblare anvĂ€ndning av lagerytorna dĂ„ utrymmet lĂ€tt kan omorganiseras [3]. 1.2 Syfte Avsikten med projektet Ă€r att genom vidareutveckling av föregĂ„ende Ă„rs kandidat- arbeten utarbeta och implementera en lösning för autonom materialhantering med hjĂ€lp av AGV:er. Via ett överordnat system ska AGV:er koordineras till att trans- portera förutbestĂ€md lagerinredning till bestĂ€mda platser för att till exempel en montör ska slippa hĂ€mta detta sjĂ€lv. Systemet ska vara möjligt att implementera i ett lagersystem med ïŹ‚era AGV:er och varje AGV utrustas med ett kollisionsund- vikningssystem för att undvika hinder. MĂ„let Ă€r att öka eïŹ€ektiviteten och pĂ„ ett eïŹ€ektivt och tillförlitligt sĂ€tt minimera kostnader samt reducera personskador och höja ergonomin i anknytning till materialhantering i lagermiljöer. 2
  • 15. KAPITEL 1. INLEDNING 1.3 AvgrĂ€nsningar För att kunna hĂ„lla projektet inom given tidsram mĂ„ste avgrĂ€nsningar i projekt- uppgiften göras. Till en början avgrĂ€nsas arbetet till att enbart behandla och framstĂ€lla en enda AGV eftersom det Ă€r vad gruppen har att tillgĂ„ i projektet. Detta skall dock inte begrĂ€nsa det överordnade systemet, som bör konstrueras för att hantera ïŹ‚er AGV:er. PĂ„ liknande sĂ€tt kommer lagermiljön utformas sĂ„ att den endast innehĂ„ller en operatör. Detta för att spara tid samt minimera och fokusera uppgiften pĂ„ att först fĂ„ den huvudsakliga funktionen, hĂ€mta och lĂ€mna lagerinredning, att fun- gera korrekt. HĂ€r beslutas det att fortsĂ€tta med föregĂ„ende Ă„rs tanke med att lagerinredningen skall ha en förutbestĂ€md struktur och design. För att optimera ruttplaneringen antas den tillgĂ€ngliga arbetsmiljön vara kĂ€nd för det överordnade systemet. Miljön avgrĂ€nsas ocksĂ„ till att verka i ett plan och ordnas sĂ„ att det ej existerar hinder pĂ„ höjder som inte kan detekteras. TvĂ„ andra omrĂ„den som projektet ej behandlar Ă€r felplacering av lagerinredning samt lagersaldohĂ„llning. Felplacering av lagerinredning innebĂ€r alltsĂ„ att lager- inredningen förïŹ‚yttas manuellt vilket gör att systemet tappar kontrollen pĂ„ var de beïŹnner sig i lokalen. Det förutsĂ€tts hĂ€r att all personal Ă€r vĂ€l införstĂ„dd med systembegrĂ€nsningen. Företag har ofta redan en extern saldohĂ„llningsfunktion vil- ket gör utvecklandet av en sĂ„dan funktion inte innefattas i projektet. 1.4 Problemformulering De huvudsakliga mĂ„len för projektet Ă€r enligt följande att AGV:n skall: ‱ Autonomt navigera mellan kĂ€nda positioner. ‱ Ta order om att utföra leveranser frĂ„n ett överordnat datorsystem. ‱ Undvika att kollidera med mĂ€nniskor och annan rörlig utrustning inklusive andra AGV:er. ‱ Utrustas med ett system för att automatiskt hĂ€mta och lĂ€mna lagerinred- ning. Det överordnade systemet skall ocksĂ„ hantera ïŹ‚era AGV:er. Prioritet sĂ€tts pĂ„ att primĂ€rt klara de nĂ€mnda mĂ„len och dĂ€refter addera ytterligare funktionalitet samt optimering. För att fĂ„ en överblick över alla de problem som deïŹnierats har följande delmĂ„l upprĂ€ttats: 3
  • 16. KAPITEL 1. INLEDNING 1. Lagerinredningen skall vara utformad sĂ„ att: (a) Den kan transporteras av AGV:n utan att varor tappas eller gĂ„r sönder. 2. Plockstationen skall: (a) Ge order till det överordnade systemet om vad som skall hĂ€mtas via ett lĂ€mpligt grĂ€nssnitt. (b) GodkĂ€nna att rĂ€tt order blivit plockad sĂ„ att AGV:n kan Ă„terlĂ€mna lagerhyllan. 3. Navigationssystemet skall: (a) Möjliggöra för AGV:n att bestĂ€mma sin position. (b) Vara grund till ett kommersiellt gĂ„ngbart system. 4. AGV:n skall: (a) Navigera till rĂ€tt plats. (b) Möjliggöra transportera av lagerhyllan. (c) Kontrollera att rĂ€tt lagerhylla hĂ€mtas. (d) Undvika kollision med rörliga och stationĂ€ra hinder. (e) Placera lagerhyllan pĂ„ angiven plats. 5. Överordnade systemet skall: (a) HĂ„lla koll pĂ„ vilken hylla som skall hĂ€mtas. (b) Ruttplanera AGV:ns vĂ€g till och frĂ„n mĂ„let. (c) Planera AGV:ernas rutt sĂ„ att kollisioner undviks . (d) TillhandahĂ„lla ett grĂ€nssnitt som möjliggör orderhantering och uppda- tera anvĂ€ndaren med status av orderhĂ€mtning. (e) HĂ„lla reda pĂ„ lagerhyllornas position. En kravspeciïŹkation upprĂ€ttades Ă€ven för att kvantiïŹera mĂ„len i projektet, vilken kan hittas i appendix A. Under arbetets gĂ„ng gjordes kontinuerlig Ă„terkoppling till kravspeciïŹkationen för att sĂ€kerstĂ€lla att alla krav verkligen uppnĂ„tts. 4
  • 17. KAPITEL 1. INLEDNING 1.5 Rapportstruktur För att uppnĂ„ de uppsatta mĂ„len delades arbetet upp i mindre, mer konkreta, del- system. Det som föreföll mest naturligt vid projektstart var att dela upp projektet i fyra delsystem. Dessa Ă€r navigering, överordnat system, kollisionsundvikning samt anordning för transport av material och dĂ€rför Ă„terïŹnns dessa delsystem som en- skilda kapitel i rapporten. Inledningsvis ges en inventariebeskrivning som efterföljs av de fyra delsystemkapitlen som beskriver först det mer teoretiska underlaget för att sedan gĂ„ in pĂ„ implementeringen av arbetet, det vill sĂ€ga en konkretisering av vad som gjorts. Innan resultat och diskussion, hittas ett kapitel som beskriver hur delsystemen interagerar med varandra och ger lĂ€saren en bĂ€ttre överblick över hela arbetet. 5
  • 18. Kapitel 2 Lagermiljö och robot Hur lagermiljön ser ut och vilken hĂ„rdvara som anvĂ€nds pĂ„verkar sjĂ€lvklart det resultat som kan uppnĂ„s av projektet. För att ge lĂ€saren en tydlig bild av de delar som ingĂ„r i det slutgiltiga resultatet följer nedan en beskrivning av hur lagermiljön Ă€r utformad samt vilka komponenter som ingĂ„r i AGV:n. 2.1 Lagermiljö Som beskrivs i kapitel 1.3, har ïŹ‚era avgrĂ€nsningar gjorts med avseende pĂ„ lagermil- jön. Utöver dessa bör lagermiljön Ă€ven vara utformad pĂ„ ett standardiserat sĂ€tt för att minska antalet scenarion som AGV:n kan utsĂ€ttas för. DĂ€rför upprĂ€ttas, utöver de avgrĂ€nsningar som redan gjorts, riktlinjer kring hur lagret ser ut. 2.1.1 Lagerinredning AGV:n skall transportera varor i ett lager. I kapitel 6 beskrivs den anordning som anvĂ€nds för uppgiften. Lösningen liknar den som Kiva systems anvĂ€nder idag [3]. I projektet anvĂ€nds ett kvadratiskt bord med sidan 55 cm och höjden 45 cm som vĂ€ger drygt 3 kg för att enkelt, snabbt och billigt efterlikna nĂ„gon typ av lagerinredning med produkter, se ïŹgur 2.1. Denna inredning anvĂ€nds inte vanligen i lagermiljöer men den utgör en god grund för att testa funktionaliteten i projektet. Vid eventuell vidareutveckling ïŹnns hĂ€r stor potential för att eïŹ€ektivisera systemet samt öka dess anvĂ€ndarvĂ€nlighet, se kapitel 9. 6
  • 19. KAPITEL 2. LAGERMILJÖ OCH ROBOT Figur 2.1: Bordet som anvĂ€nds som lagerinredningen i projektet [21] 2.1.2 RutnĂ€t Metoden som valts för att Ă„terkoppla AGV:ns position i rummet sker via ett rutnĂ€t av QR-koder(Quick response) pĂ„ golvet, se avsnitt3.2.4. För att AGV:n ska klara av att tolka information frĂ„n rutnĂ€tet förses den med en kamera som kan lĂ€sa av QR-koder. Punkterna i rutnĂ€tet utgörs av QR-koder som innehĂ„ller information om punktens koordinater. Punkterna beïŹnner sig 80 cm frĂ„n varandra och utifrĂ„n koderna kan Ă€ven AGV:ns vinkel i förhĂ„llande till koden utlĂ€sas. I kapitel 3 beskrivs beslutet av navigationssystem. 2.2 HĂ„rdvarubeskrivning TillgĂ€ngligt för projektet ïŹnns en i ïŹgur 2.2 illustrerad Nexus 4WD mecanum wheel mobile robot kit 10011 som Ă€r utrustad med fyra ultraljudssensorer, en mikrokon- troller(Arduino), ett aluminiumchassi samt fyra mecanumhjul med tillhörande 12 V motorer [1]. Nettovikten för denna grundstomme Ă€r drygt 4 kg. Utöver Nexus 7
  • 20. KAPITEL 2. LAGERMILJÖ OCH ROBOT roboten och dess tillbehör anvĂ€nds ocksĂ„ i projektet en router, server, styren- het(myRIO), kamera, batteripack, anordning för transport av material och la- sernavigationsutrustning. En kortfattad beskrivning följer nedan för dessa delar bortsett frĂ„n anordningen för transport av material som istĂ€llet beskrivs under kapitel 6. Figur 2.2: Nexus 4WD Mecanum wheel mobile robot kit 10011 2.2.1 Chassi Chassit Ă€r tillverkat av aluminiumlegering och Ă€r bĂ„de lĂ€tt och starkt med dimen- sionerna 380mm x 215mm x 50mm. Metallen Ă€r tvĂ„ millimeter tjock vilket anses tillrĂ€ckligt för att fĂ€sta utrustning pĂ„. 2.2.2 Arduino För att kunna lĂ€nka mjukvaran med hĂ„rdvaran anvĂ€nds en Arduino mikrokontrol- ler som Ă€r sammankopplad med hjulmotorerna vilket gör att AGV:n kan styras enligt önskemĂ„l. För att möjliggöra styrning av robotens alla fyra motorer samti- digt Ă€r Arduino:n utrustad med ett Arduino IO Expansion Board. Arduino:n som anvĂ€nds Ă€r av modellen Deumilanove 328 och den styr utöver hjulmotorerna Ă€ven den motor som höjer och sĂ€nker lyftstycket. Den största begrĂ€nsningen i Arduino:n Ă€r att den endast har en port för seriell kommunikation. Ursprungligen anvĂ€ndes denna port för att interagera med ultraljudssensorerena, men för att kommunicera 8
  • 21. KAPITEL 2. LAGERMILJÖ OCH ROBOT med myRIO:n Ă€r seriell kommunikation den enda möjligheten. Detta innebĂ€r att de ultraljudssensorer som ïŹnns förmonterade pĂ„ roboten inte kan anvĂ€ndas [33]. 2.2.3 myRIO 1900 National Instruments har utvecklat en mikrokontroller, myRIO 1900, för att er- bjuda studenter ett verktyg att konstruera avancerade system snabbt och enkelt [28]. Enheten har bland annat inbyggd accelerometer och WiFi-mottagare. Förde- len med nĂ€tverksĂ„tkomsten i detta projekt Ă€r att den ger möjlighet för anvĂ€ndaren att följa programmet i realtid och att den tillĂ„ter trĂ„dlös kommunikation med det överordnade systemet. Mikrokontrollern har utöver ïŹ‚ertalet I/O portar Ă€ven en USB port som kan anvĂ€ndas för att koppla in komponenter. National Instruments har utvecklat programsprĂ„ket LabVIEW som anvĂ€nds i bland annat myRIO:n. Det Ă€r ett graïŹskt programmeringssprĂ„k med möjlighe- ter att interagera med andra sprĂ„k sĂ„som MATLAB, C, C++ och C# [42]. 2.2.4 LiDAR LiDAR (Light Detection and Ranging) Ă€r ett optiskt mĂ€tinstrument som anvĂ€nds för att bestĂ€mma avstĂ„nd till objekt vilket behövs för att upptĂ€cka hinder innan kollision sker. Den LiDAR som ïŹnns tillgĂ€nglig Ă€r modell URG-04LX-UG01, till- verkad av Hokuyo, se ïŹgur 2.3. LiDAR:n drivs och kommunicerar via en USB 2.0 anslutning [36]. 2.2.5 Batteripack För att driva roboten och dess komponenter anvĂ€nds ett batteripack med spĂ€n- ningen 12 V och kapaciteten 9500 mAh. 2.2.6 Överordnat system Det överordnade systemet kommer köras pĂ„ en dator som Ă€r kopplad till samma trĂ„dlösa nĂ€tverk som AGV:n. HĂ€r sker de huvudsakliga berĂ€kningarna bland an- nat eftersom myRIO kortets processkraft inte Ă€r tillrĂ€cklig för att hantera det med tillfredstĂ€llande snabbhet [16]. Efter bearbetning kan systemet sedan skicka kom- mandon till AGV:n om vad som skall göras. Ett överordnat system krĂ€vs ocksĂ„ om ïŹ‚era robotar skall kunna arbeta eïŹ€ektivt tillsammans. 9
  • 22. KAPITEL 2. LAGERMILJÖ OCH ROBOT Figur 2.3: LiDAR, Hokuyo modell URG-04LX-UG01 [36] 2.2.7 Kamera För att lĂ€sa QR-koder anvĂ€nds en Logitech C930 webbkamera, se ïŹgur 2.4. Ka- meran kan ta upp till 30 bilder per sekund i full HD 1080p (upp till 1920 x 1080 bildpunkter) och har dimensionerna 94 x 29 x 24 millimeter. All strömförsörjning av kameran sker via dess USB 2.0 anslutning. Figur 2.4: Logitech C930 kamera [25] 10
  • 23. KAPITEL 2. LAGERMILJÖ OCH ROBOT 2.2.8 Ram För att underlĂ€tta montering av exempelvis kameran och anordningen för trans- port av material, samt minimera Ă„verkan pĂ„ Nexusroboten, ïŹnns en ram av alu- miniumproïŹl fastsatt pĂ„ AGV:ns ovansida lĂ€ngsmed dess ytterkanter. 2.2.9 Mecanumhjul En fördel med roboten Ă€r dess mecanumhjul, vars design tillĂ„ter fĂ€rd i olika rikt- ningar, det vill sĂ€ga inte bara framĂ„t och bakĂ„t som traditionella hjul, utan Ă€ven i sidled. Fördelen kan vara till stor nytta i trĂ„nga utrymmen dĂ„ exempelvis roboten kan rotera kring sin egna centrumpunkt. SkĂ€let till att hjulen har nĂ€mnd förmĂ„ga Ă€r att de Ă€r uppbyggda av cylindrar vinklade mot hjulaxeln vilket kan ses i ïŹgur 2.2. Dock Ă€r precisionen vid förïŹ‚yttning inte helt exakt vilket leder till att Ă„tgĂ€rder mĂ„ste tas för att minimera risken för att tappa rutten, mer om detta under kapitel 3. 2.2.10 Styrmotorer De fyra meccanumhjulen styrs individuellt av varsin motor, varje motor krĂ€ver en eïŹ€ekt pĂ„ 17 W och vid en belastning som ungefĂ€r motsvarar AGV:ns vikt fĂ„s en maxhastighet runt 70 RPM. PĂ„ varje motor sitter ocksĂ„ en optisk enkoder som mĂ€ter varvtalshastighet vilket anvĂ€nds som Ă€r-vĂ€rde till PID-regulatorn i mikrokontrollern. 2.3 Robotens kinematik Som tidigare nĂ€mnts tillĂ„ter robotens mecanumhjul fĂ€rd Ă„t olika riktningar tack vare dess utformning. Varje hjul har en egen motor som Ă€r oberoende av de andra vilket gör att ekvationer krĂ€vs för att bestĂ€mma hur varje hjul skall rotera för att uppnĂ„ en sĂ€rskild rörelse. Matriserna för att kunna berĂ€kna hjulrotationen för en önskad rotation eller rörelse i X/Y-led av roboten har tagits fram av Doroftei, Grosu och Spinu pĂ„ Technical University of Iasi, RumĂ€nien och visas i ekvation 2.1 och ïŹgur 2.5 [11]. 11
  • 24. KAPITEL 2. LAGERMILJÖ OCH ROBOT ïŁź ïŁŻ ïŁ° vx vy wz ïŁč ïŁș ïŁ» = R 4 ïŁź ïŁŻ ïŁ° 1 1 1 1 1 −1 −1 1 − 1 l1+l2 1 l1+l2 − 1 l1+l2 1 l1+l2 ïŁč ïŁș ïŁ» (2.1) Figur 2.5: Förtydligande av de ingĂ„ende variablerna i ekvation 2.1 [16] 2.4 Motorkontroll Arduino:n som medföljer roboten vid inköp Ă€r modiïŹerad med ett expansions- kort för att kunna kontrollera fyra motorer med hjĂ€lp av PWM (Pulse Width Modulation). PWM möjliggör att pĂ„ ett snabbt sĂ€tt kontrollera spĂ€nningen över en motor. Parametrar som Ă€ven behöver speciïŹceras Ă€r hastighet, accelerationstid samt PID-reglering vilket förklaras mer utförligt under kapitel 7. För Nexusrobo- ten ïŹnns det fĂ€rdiga programbibliotek som anvĂ€nds för att fĂ„ roboten att kunna Ă„ka i standardrörelser. 12
  • 25. Kapitel 3 Navigation För att AGV:n skall ha möjlighet att hĂ€mta lagerinredning autonomt krĂ€vs en navigeringsmetod som hjĂ€lper AGV:n att kontinuerligt ïŹnna sin position i rum- met. Det Ă€r svĂ„rt att skapa ett system som kan sköta lagerhanteringen utan nĂ„gon form av Ă„terkoppling av positionen. Detta eftersom verkligheten inte alltid stĂ€m- mer överens med teorin och det uppstĂ„r smĂ„ fel som med tiden ackumuleras tills systemet inte lĂ€ngre fungerar som tĂ€nkt. Exempel kan vara varierande friktion mellan hjul och underlag. I projektet vĂ€rdesĂ€tts precisionen hos systemet eftersom gruppens uppfattningen Ă€r att med hög precision följer oftast hög funktionalitet och eïŹ€ektivitet. DĂ€rför söks en navigeringsmetod som tillĂ„ter systemet att arbeta med en hög precision och dĂ„ Ă€r en kontinuerlig Ă„terkoppling en viktig komponent. Genom att studera vad som anvĂ€nds kommersiellt i omrĂ„det och liknande omrĂ„den har ett antal olika metoder tagits fram för utvĂ€rdering [2, 22, 30, 29]. Krav som stĂ€lls pĂ„ navigationen i projektet Ă„terïŹnns i den upprĂ€ttade kravspeciïŹkationen, se appendix A. Nedan följer en sammanstĂ€llning av de olika navigationsmetoderna samt motivering för valet av navigation med hjĂ€lp av QR-koder. 3.1 Trilaterationsmetoder För att navigera en AGV sĂ„ kan man med hjĂ€lp av trilaterationsmetoder positions- bestĂ€mma roboten, vilket Ă€r en mer modern version av triangulering. Trilateration bygger pĂ„ avstĂ„ndsmĂ€tning frĂ„n en position till tre andra punkter vars positioner Ă€r kĂ€nda. DĂ€rifrĂ„n dras cirklar runt de kĂ€nda punkterna med en radie motsva- rande det uppmĂ€tta avstĂ„ndet och dĂ€r alla cirklar tangerar varandra Ă€r AGV:ns 13
  • 26. KAPITEL 3. NAVIGATION position [35]. Figur 3.1 visar hur trilateration fungerar för att positionsbestĂ€mma en punkt P och varför det krĂ€vs tre kĂ€nda referenspositioner för att fĂ„ en exakt position. Normalt anvĂ€nds en elektronisk distansmĂ€tare som utnyttjar den kĂ€nda ljus- eller radiovĂ„gshastigheten för att fĂ„ ut en distans till en punkt tack vare dess höga precision och snabbhet. GPS Ă€r troligen det mest kĂ€nda exemplet pĂ„ anvĂ€ndning av trilateration men utöver det kan ocksĂ„ exempelvis WiFi eller laser anvĂ€ndas. Figur 3.1: En förklarande illustration pĂ„ hur triliterationsmetoden gĂ„r till 3.1.1 GPS och WiFi GPS har överlĂ€gset bĂ€st yttĂ€ckning men kan uteslutas i inomhusmiljöer eftersom det inte gĂ„r att fĂ„ fri siktlinje till satelliter och dĂ€rmed inte heller en fungerande navigation. Att anvĂ€nda WiFi-navigation Ă€r i mĂ„nga fall enkelt eftersom det ofta redan ïŹnns routrar tillgĂ€ngligt som kan anvĂ€ndas och det ger en relativt bra precision sĂ€rskilt om ïŹ‚er Ă€n 3 routrar Ă€r tillgĂ€ngliga för mĂ€tning. Dock Ă€r precisionen som bĂ€st cirka 1m och pĂ„verkas kraftigt av hinder, sĂ€rskilt mĂ€nniskor, som Ă€r i vĂ€gen för kommunikationen vilket gör att precisionskraven inte kan uppnĂ„s, se appendix A [15]. 14
  • 27. KAPITEL 3. NAVIGATION 3.1.2 Lasernavigation Lasernavigation Ă€r en noggrann men dyr metod som anvĂ€nds i stor utstrĂ€ckning i kommersiella autonoma lagerhanteringssystem och bygger pĂ„ att man sĂ€tter ut referenspunkter i form av reïŹ‚ektorer som en laser pĂ„ AGV:n kan detektera samt mĂ€ta avstĂ„ndet till [22]. Med lasernavigation kan en mycket hög ïŹ‚exibilitet uppnĂ„s eftersom metoden inte Ă€r begrĂ€nsad till förutbestĂ€mda rutter pĂ„ samma sĂ€tt som markeringsföljningsme- toder, se kapitel 3.2. AGV:n kan teoretiskt Ă„ka vart som helst med kontinuerlig positionsfeedback sĂ„ lĂ€nge minst tre olika reïŹ‚ektorer ïŹnns inom synfĂ€ltet. För projektets Ă€ndamĂ„l Ă€r AGV:ns operationsmiljö dock sannolikt begrĂ€nsad. Det ef- tersom de öppna ytorna vanligtvis Ă€r utformade som ett rutnĂ€t för att hĂ„lla en hög platseïŹ€ektivitet vilket indirekt leder till förutbestĂ€mda rutter. Tidigare kandidatarbete har anvĂ€nt lasernavigation och dĂ€rigenom visat att meto- den fungerar. Samma arbete har Ă€ven visat att metoden krĂ€ver mĂ„nga reïŹ‚ektorer för att ej tappa position och att den kan störas av andra reïŹ‚ektiva ytor. Detta in- dikerar att metoden och den beïŹntliga laserutrustningen eventuellt inte Ă€r optimal för projektet i och med den miljö AGV:n skall verka i [12]. Det kan ocksĂ„ ifrĂ„gasĂ€ttas hur vĂ€l laseravlĂ€sningen kommer fungera nĂ€r ïŹ‚era AGV:er Ă€r verksamma, eftersom lasrarna kan störa ut varandras navigeringsför- mĂ„ga med en försĂ€mring av systemets precision som följd. 3.2 Markeringsföljning Det ïŹnns ïŹ‚era olika navigationssystem som bygger pĂ„ att AGV:n följer markeringar av nĂ„got slag. Nedan följer en redogörelse för de som anses ha störst relevans för projektet. 3.2.1 Linjeföljning Linjeföljning Ă€r en relativt simpel metod som i den enklaste formen bygger pĂ„ att AGV:n utrustas med lampor samt fotodioder som Ă€r sammankopplade med en transistor, och att den planerade rutten mĂ€rks upp med exempelvis tejp. Tejpen belyses av lamporna och det reïŹ‚ekterade ljuset tas upp av fotodioden och om det Ă€r en hög intensitet pĂ„ det reïŹ‚ekterade ljuset ökar fotodiodens resistans. DĂ„ ökar spĂ€nningen via transistorn som i sin tur lĂ„ter motorn driva. Är det istĂ€llet en 15
  • 28. KAPITEL 3. NAVIGATION lĂ€gre intensitet pĂ„ det reïŹ‚ekterade ljuset kommer fotodiodens motstĂ„nd minska vilket gör att spĂ€nningen sjunker och dĂ€rmed minskar drivet i motorn. För att linjeföljningen ska vara sĂ„ följsam som möjligt Ă€r det vanligt att varje hjul utrustas med sin egen krets. Genom att utnyttja systemet gĂ„r det att kontrollera motorerna pĂ„ AGV:n sĂ„ att den hela tiden driver lite mer pĂ„ det hjul som Ă€r pĂ„ vĂ€g att tappa kontakten med tejpen, och dĂ€rmed följs rutten pĂ„ ett smidigt vis [24]. Fördelar med linjeföljning Ă€r att det Ă€r en relativt billig metod med en hög precision men det kan bli problematiskt att implementera metoden nĂ€r det krĂ€vs ett rutnĂ€t av linjer. Att dĂ„ fĂ„ AGV:n att följa exakt den rutt som Ă€r planerad samt att fĂ„ nĂ„gon sorts positioneringsfeedback kan eventuellt visa sig svĂ„rt. 3.2.2 Magnetföljning Navigation med hjĂ€lp av magneter Ă€r ett navigationssystem dĂ€r en AGV utrustad med magnetsensorer utnyttjas för att följa magneter installerade i golvet. Genom att sensorerna kan kĂ€nna av hur starkt magnetfĂ€ltet Ă€r fĂ„r AGV:n information om den följer sin rutt pĂ„ ett tillfredstĂ€llande sĂ€tt. Om den inte gör det kompenseras fĂ€rdriktningen för att sedan Ă„terkopplas Ă€n en gĂ„ng vid nĂ€sta magnet i golvet. Ett gyroskop ïŹnns installerat pĂ„ AGV:n och det utnyttjas till att kontinuerligt lĂ€mna feedback pĂ„ AGV:ns riktning. Vid oplanerade riktningsförĂ€ndringar som kan intrĂ€ïŹ€a mellan tvĂ„ magneter informerar gyroskopet AGV:n som dĂ„ korrigerar riktningen. Vanligtvis Ă€r det tillrĂ€ckligt med en magnet i golvet var femte till tionde meter lĂ€ngs AGV:ns planerade rutt för att bibehĂ„lla en tillrĂ€cklig hög precision [27]. Fördelen med magnetföljning Ă€r att det Ă€r ett system med hög precision och billi- gare utrustning Ă€n exempelvis laserbaserade navigationssystem. 3.2.3 RFID Radio Frequency IdentiïŹcation (RFID) tekniken kan anvĂ€ndas genom att en RFID- tagg placeras pĂ„ en plats och programmeras med information om den punkt den Ă€r placerad pĂ„, vilket sedan kan hĂ€mtas med hjĂ€lp av en avlĂ€sare. Ett RFID- system innehĂ„ller taggar, en avlĂ€sare samt mjukvara för tolkning av avlĂ€sning. Med hjĂ€lp av avlĂ€sarens antennen lĂ€ses taggarna genom antingen en induktiv koppling eller med elektromagnetiska vĂ„gor. Ett sĂ€tt Ă€r att antennspolen induce- rar ett magnetfĂ€lt i taggens spole och taggen anvĂ€nder sedan energin som skapas för att Ă„terkoppla till avlĂ€saren. Ett annat sĂ€tt Ă€r att avlĂ€saren skapar energi som 16
  • 29. KAPITEL 3. NAVIGATION elektromagnetiska vĂ„gor och energin reïŹ‚ekterar tillbaka frĂ„n taggen till avlĂ€saren för att Ă„terkoppla informationen i taggen. RFID-taggar anvĂ€nds ofta tillsammans med andra system som till exempel GPS eller WiFi dĂ€r taggarna utgör referens- punkter för att sĂ€kerstĂ€lla en korrekt rutt. Om en avlĂ€sning av en RFID-tagg sker och referenspunkten inte stĂ€mmer överens med det övriga navigationssystemet sĂ„ kalibreras navigationssystemet om efter RFID-taggens referenspunkt. Den stora fördelen med RFID-avlĂ€sning Ă€r att det gĂ„r fort att lĂ€sa av taggarna om kvalitĂ©tsprodukter anvĂ€nds. Att lĂ€sa av taggarna i AGV:ns topphastighet Ă€r inget problem. Den stora nackdelen med systemet Ă€r att det inte ïŹnns möjlighet att avlĂ€sa taggens orientering och korrigera för eventuella vinkelfel [6, 18]. 3.2.4 QR-koder Streckkoder Ă€r ett sĂ€tt att lagra information sĂ„ att den blir lĂ€sbar för en maskin. De har under lĂ„ng tid anvĂ€nds för att mĂ€rka upp varor och var ursprungligen endi- mensionella. QR-koder Ă€r tvĂ„dimensionella streckkoder som kan innehĂ„lla betydlig mer information pĂ„ mindre yta Ă€n de konventionella endimensionella streckkoder- na. Koden Ă€r uppbygg av ljusa och mörka fĂ€lt som benĂ€mns ”moduler” dĂ€r antalet moduler kan variera mellan 21 x 21 upp till 177 x 177 beroende pĂ„ mĂ€ngden data. AvlĂ€sningen görs med hjĂ€lp av laser eller kamera och i jĂ€mförelse med endimensio- nella streckkoder kan avlĂ€sningen genomföras snabbare och mer tillförlitligt. Den asymmetriska utformningen av QR-koden i kombination med möjligheten att lĂ€sa av koden i 360 grader möjliggör uppskattning av storlek, position och lutning [31]. I ïŹgur 3.2 syns en bild pĂ„ en QR-kod. Figur 3.2: En QR-kod innehĂ„llandes texten ”Autonom lagerhantering” Det ïŹnns ïŹ‚era fördelar med att implementera QR-koder i navigationssystem, bland annat Ă€r de Ă€r enkla och billiga att tillverka pĂ„ egen hand dĂ„ det ïŹnns mĂ€ngder av 17
  • 30. KAPITEL 3. NAVIGATION hemsidor som erbjuder dessa tjĂ€nster. Att avlĂ€sningen sker snabbt och i 360 grader möjliggör positionsbestĂ€mning av en AGV i rörelse och dĂ€rmed kan korrigeringar utföras för eventuella fel. Nackdelen Ă€r att navigeringssystemet inte blir sĂ€rskilt ïŹ‚exibelt, vilket Ă€r det stora problemet med alla de olika markeringsföljningsmeto- derna. 3.3 Val av navigationsmetod Generellt för navigationsmetoder som följer markeringar Ă€r att de i utgĂ„ngspunk- ten Ă€r inïŹ‚exibla, dĂ„ alla markeringar mĂ„ste sĂ€ttas upp. DĂ€rigenom mĂ„ste det omrĂ„de som AGV:n verkar i redan innan vara bestĂ€md men i gengĂ€ld fĂ„s bra precision och snabb arbetshastighet. Trilatereringsmetoderna Ă€r ofta inte lika pre- cisa men dĂ€remot smidigare och mer ïŹ‚exibla Ă€n markeringsföljningsmetoderna, Ă€ven om uppsĂ€ttning av till exempel reïŹ‚ektorer till laseralternativet skapar en viss inïŹ‚exibilitet dĂ„ de mĂ„ste placeras strategiskt och överallt dĂ€r AGV:n skall köra. Tabell 3.1: Den första iterationen av en Pughmatris i projektet, med QR-kod som referenslösning Alternativ Kriterier: Viktning QR-kod Laser Linje RFID Magnet WiFi GPS Navigeringsprecision 3 Referens 0 0 -1 0 Ej Tillr. Ej Tillr. AnvĂ€nds kommersiellt 1 Referens 0 0 0 0 - - RuttïŹ‚exibilitet 2 Referens 1 -1 0 0 - - SystemïŹ‚exibilitet 2 Referens -1 -1 0 -1 - - ImplementeringssvĂ„righet 1 Referens -1 1 -1 0 - - Snabbhet 1 Referens 1 1 1 1 - - Pris 2 Referens -1 0 0 -1 - - HĂ„rdvarustorlek/Vikt 1 Referens -1 0 0 0 - - StörningskĂ€nslighet 1 Referens -1 0 0 -1 - - Genomförbarhet 2 Referens 0 0 0 0 - - - - Summa Referens -5 -2 -3 -5 - - Rangordning 1 4 2 3 4 - - Elimineras Nej Ja Nej Nej Ja - - I tabell 3.1 visas den Pughmatris som gjorts, vilket Ă€r ett sĂ€tt att poĂ€ngsĂ€tta lös- ningar för att kvantitativt jĂ€mföra olika alternativ sinsemellan med avseende pĂ„ olika kriterier för vad som ska Ă„stadkommas med alternativen. Detta görs genom att en lösning tas som referens och de andra lösningarna vĂ€rderas gentemot refe- renslösningen i ett antal olika kriterier. Varje lösning tilldelas antingen 1,0 eller -1 beroende pĂ„ om lösningen Ă€r bĂ€ttre respektive lika bra eller sĂ€mre Ă€n referenslös- ningen och dĂ€refter multipliceras vĂ€rdena med viktningen för respektive kriterie och summeras till en totalpoĂ€ng för varje lösning. Efter att ha eliminerat de tydligt 18
  • 31. KAPITEL 3. NAVIGATION sĂ€msta alternativen byts referenslösningen ut mot en annan lösning och processen itereras med kvarvarande lösningar. För att ge en rĂ€ttvis vĂ€rdering av varje lösning bör kriterierna tĂ€cka alla möjliga dimensioner, det vill sĂ€ga allting som kan skilja lösningarna emellan och som Ă€r betydelsefullt hos lösningen. UtifrĂ„n uppskattningar av vad som Ă€r viktigt för lösningen, tillsammans med en upprĂ€ttad kravspeciïŹkation med krav och önskemĂ„l som stĂ€lls pĂ„ det system som skall vĂ€ljas, skapas kriterierna för Pughmatrisen, se appendix A. Viktningen och varje lösningsvĂ€rdering pĂ„ respektive kriterie Ă€r baserat pĂ„ uppskattningar. Enligt Pughmatrisanalysen i ïŹgur 3.1 Ă€r magnet och laserföljning sĂ€mst vĂ€rderade för Ă€ndamĂ„let i jĂ€mförelse med QR-koder och elimineras dĂ€rför i urvalsprocessen tillsammans med WiFi och GPS navigering som inte har tillrĂ€cklig precision som tidigare nĂ€mnts. Detta innebĂ€r att processen itereras men med ett annat alternativ som referens och endast QR-koder, linjeföljning samt RFID som alternativ vilket visas nedan i tabell 3.2. Tabell 3.2: Sista iterationen i Pughmatrisen med linjeföljning som referenslösning Alternativ Kriterier: Viktning Linjeföljning QR RFID Navigeringsprecision 3 Referens 0 -1 AnvĂ€nds kommersiellt 1 Referens 0 0 RuttïŹ‚exibilitet 2 Referens 1 1 SystemïŹ‚exibilitet 2 Referens 1 1 ImplementeringssvĂ„righet 1 Referens -1 -1 Snabbhet 1 Referens -1 0 Pris 2 Referens 0 0 HĂ„rdvarustorlek/Vikt 1 Referens 0 0 StörningskĂ€nslighet 1 Referens 0 0 Genomförbarhet 2 Referens 0 -1 Summa Referens 2 -2 Rangordning 2 1 3 Elimineras Ja Nej Ja Enligt analysen i Pughmatrisen Ă€r QR-kod den bĂ€sta navigationsmetoden med linjeföljning som nĂ€st bĂ€st och dĂ€refter RFID. Detta stĂ€mmer relativt vĂ€l med den undersökning som gjorts pĂ„ vad som anvĂ€nds kommersiellt, dĂ€r QR-kod, lin- je/magnetföljning och lasernavigering verkar vara de vanligast förkommande me- toderna. 19
  • 32. KAPITEL 3. NAVIGATION För projektet ïŹnns utrustning tillgĂ€nglig för QR-koder, laser samt linjeföljnings- navigation vilket gör att de alternativen Ă€r att föredra. Eftersom QR-metoden fĂ„r klart bĂ€ttre resultat i Pughmatrisen samt att linjeföljning Ă€r mer inïŹ‚exibelt Ă€n QR-koder och laserns störningskĂ€nslighet Ă€r en oroande faktor, vĂ€ljs metoden med QR-koder. Svagheten i ruttïŹ‚exibilitet tros vara begrĂ€nsad pĂ„ grund av att lagermiljön troligen Ă€ndĂ„ ordnas i ett rutmönster vilket begrĂ€nsar ïŹ‚exibiliteten oavsett. 3.4 Implementering Nedan följer implementeringen av navigationssystemet. För att fĂ„ systemet att fungera sĂ„som uppvisas i det slutliga resultatet genomfördes en rad modiïŹeringar pĂ„ hĂ„rdvaran med anpassade mjukvarumĂ€ssiga implementeringar. För mjukvaru- delen anvĂ€ndes LabVIEW vilket Ă€r ett graïŹskt programmeringssprĂ„k utvecklat av National Instruments som har stöd för parallellexekvering samt fĂ€rdiga bibli- otek som kan anvĂ€ndas dĂ„ samma företag har utvecklat myRIO:n som anvĂ€nds i projektet. 3.4.1 Rotation I ett av de tidigare kandidatarbetena anvĂ€ndes QR-koder för att navigera [16]. En tidig förbĂ€ttring som diskuterades var placeringen av kameran pĂ„ AGV:n. En centrerad placering valdes. Tanken bakom att placera kameran centrerat med avseende pĂ„ hjulen var att underlĂ€tta navigationen, exempelvis genom att inte behöva anvĂ€nda transformationsmatriser för att transformera positioner. En stor fördel Ă€r ocksĂ„ den minskade ytan som krĂ€vs vid rotationen om man roterar kring centrum istĂ€llet för en utomstĂ„ende punkt. Centrerad rotation möjliggjorde Ă€ven att redan existerande bibliotek kunde anvĂ€ndas. Eftersom AGV:n Ă€r relativt lĂ„g kunde inte kameran fĂ„ fokus om den placerades undertill. Som lösning gjordes ett hĂ„l i chassit för att den skulle kunna placeras pĂ„ ett lĂ€ngre avstĂ„nd frĂ„n marken dĂ€r den ocksĂ„ ïŹck ett större synfĂ€lt att upptĂ€cka koderna pĂ„, se ïŹgur 3.3. En enkel metallbygel gjordes för att fĂ€sta kameran ovanför hĂ„let. AvstĂ„ndet berĂ€knades via chassits inre bredd, vilket Ă€r vad som avgör syn- fĂ€ltets maximala bredd. AvstĂ„ndet som valdes var 145 mm och berĂ€knades sĂ„ledes via ekvationer 3.1 och 3.2 L = B 2 tan (α) (3.1) 20
  • 33. KAPITEL 3. NAVIGATION Med vĂ€rdena B = 250 mm och α = 30◩ fĂ„s L enligt ekvation 3.2: L = 145 mm (3.2) En justerbar infĂ€stning utvecklades för att kunna ïŹnjustera kamerans vinkel i förhĂ„llande till chassit. Detta för att pĂ„ ett smidigt sĂ€tt kunna korrigera kameran och sĂ€kerstĂ€lla kameramĂ€tningarnas riktighet. Figur 3.3: En illustration som visar kamerans placering och dess synfĂ€lt 3.4.2 Rörelsemönster Nexusroboten kan via sina meccanumhjul röra sig i ett ïŹ‚ertal riktningar. För att skapa en systematisk ordning i lagerlokalen dĂ€r hyllor kan placeras i lĂ„nga rader valdes ett korridorförfarande. Detta innebĂ€r att AGV:erna eïŹ€ektivast rör sig i korridorer och dĂ€rför endast behöver kunna förïŹ‚ytta sig framĂ„t, bakĂ„t, höger, vĂ€nster och rotera pĂ„ sin plats. Dessa rörelser kom att utgöra grunden för de olika navigationsfall som AGV:n antas kunna försĂ€tta sig i. Diagonala rörelser undviks pĂ„ grund av begrĂ€nsningar i kollisionsundvikningssystemet, se kapitel 5. 3.4.3 LĂ€sning av koder LĂ€sningen av QR-koder sker, via kameran, i myRIO:n. I LabVIEW ïŹnns fĂ€rdiga drivrutiner, sĂ„ kallade block, för videoupptagning och urskiljning av QR-koder i bilder vilket anvĂ€ndes. Ur blocket för lĂ€sning av QR-koder utvinns bland annat information som ïŹnns lagrad i koden samt placeringen av QR-kodens olika hörn. 21
  • 34. KAPITEL 3. NAVIGATION FrĂ„n början var tanken att bildupptagning skulle ske i rörelse sĂ„ att AGV:n skulle kunna köra tills en ny QR-kod hittas och samtidigt reglera eventuell felplace- ring. Precis som nĂ€mns i tidigare kandidatarbete pĂ„trĂ€ïŹ€ades vissa begrĂ€nsningar i hĂ„rdvaran. De bilder som togs under rörelse blev suddiga och ingen kod kunde upptĂ€ckas. I ovan nĂ€mnt kandidatarbete skrivs att den maximala hastigheten som AGV:n kunnat hĂ„lla för att klara av att lĂ€sa QR-koder i samtliga testförsök var 100 mm/sek [16]. DĂ„ detta ansĂ„gs vara en för lĂ„g hastighet utvĂ€rderades alternativa lösningar. TvĂ„ lösningsalternativ uppmĂ€rksammades, uppgradering av hĂ„rdvara eller en för- Ă€ndring av metodik. DĂ„ uppgraderingen av hĂ„rdvaran bĂ„de skulle ta tid och öka kostnaderna föll valet pĂ„ en ny metodik. IstĂ€llet för att försöka lĂ€sa koder i rörelse Ă€ndrades metodiken sĂ„ att AGV:n stĂ„r still över koden nĂ€r bilden tas. En klar fördel med detta sĂ€tt Ă€r att bildens informa- tion, sĂ„som placering och vinkel, fortfarande Ă€r aktuell. DĂ€rför behövs inga vidare berĂ€kningar för att omvandla datan. Vad som Ă€r negativt Ă€r att AGV:n behöver stanna vid varje punkt vilket leder till lĂ€ngre tider för avlĂ€sning av QR-koderna. Denna tidsförlust kompenseras dock av den ökade hastigheten och systemets ökade precision. 3.4.4 RutnĂ€t Lagermiljön behövde Ă€ven den anpassas för systemet. QR-koder placerades över lagerytan för att deïŹniera det globala koordinatsystemet. Punkterna i koordinat- systemet motsvaras av en QR-kod som innehĂ„ller information om punktens x- och y-koordinat. För att förenkla programmeringen av ruttplaneringsalgoritmen ut- formades rutnĂ€tet som en matris med de första elementet (0,0) i matrisens övre vĂ€nstra hörn. Det globala koordinatsystemets axlar deïŹnierades sedan parallellt med matrisen, se ïŹgur 3.4, dessa bör inte förvĂ€xlas med de vanliga vĂ€derstrecken. För att i varje punkt kunna avlĂ€sa AGV:ns orientering i förhĂ„llande till det globala koordinatsystemet behöver Ă€ven QR-kodernas riktning tas hĂ€nsyn till. För att utnyttja QR-kodernas asymmetri till att berĂ€kna vinkelfel placerades de Ă„t samma hĂ„ll. En kortare distans mellan QR-koderna i rutnĂ€tet leder till en mer frekvent posi- tionsĂ„terkoppling och dĂ€rmed ett mer precist navigationssystem. Bredden pĂ„ det fyrkantiga bordet, som AGV:n skall lyfta, anvĂ€nds för att bestĂ€mma lĂ€ngden mel- lan QR-koder eftersom det förutsĂ€tts att borden ska placeras intill varandra. En kortare distans mellan QR-koderna gör att Ă„terkoppling sker oftare vilket leder till att det kommer ta lĂ€ngre tid för AGV:n att förïŹ‚ytta sig frĂ„n start till slutpunkt. 22
  • 35. KAPITEL 3. NAVIGATION Figur 3.4: En schematisk bild pĂ„ hur lagermiljön Ă€r uppbyggd Detta rĂ€ttfĂ€rdigas med att navigeringsprecision avses vara av högre prioritet Ă€n snabbheten som AGV:n utför uppgiften med. En tĂ€t placering av hyllor ökar ocksĂ„ utnyttjandet av golvet och möjliggör yteïŹ€ektiv lagring. Om borden inte stĂ„r helt rĂ€tt kan det skapa oönskade hĂ€ndelser vid transporten, framförallt vid rotation dĂ„ ett felplacerat bord tar upp större plats Ă€n planerat. I det vĂ€rsta fallet Ă€r bĂ„da borden vridna 45 grader sĂ„ att de stĂ„r hörn mot hörn vilket innebĂ€r att det Ă€r en diagonalbredd mellan de tvĂ„ bordens mittpunkter. Denna diagonal ges av ekvation 3.3 vilket gör att avstĂ„ndet mellan QR-koder sĂ€tts till 80cm. √ 2 · 552 ≈ 77.78cm (3.3) RutnĂ€tet av QR-koder som upprĂ€ttades för projektet var i storleksordningen 4x4 eftersom platsen var begrĂ€nsad samt att det ansĂ„gs tillrĂ€ckligt för att pĂ„visa sy- stemets funktionalitet. 23
  • 36. KAPITEL 3. NAVIGATION 3.4.5 OïŹ€set och vinkel Varje gĂ„ng AGV:n fĂ„r en Ă„terkoppling om sin position via en bild kan felaktig posi- tionering och avvikelse frĂ„n rutt kontrolleras och berĂ€knas. För att göra detta an- vĂ€ndes den information om QR-kodernas hörnpositioner som erhölls ur LabVIEW- blocket. Figur 3.5: En bild pĂ„ de fyra fallen för oïŹ€set som ïŹnns För att berĂ€kna QR-kodens position i förhĂ„llande till bildens mittpunkt anvĂ€ndes positionerna för hörnen som ges nummer 1 och 3, se ïŹgur 3.5. FrĂ„n dessa posi- tioner kan sedan QR-kodens mittpunkt och sĂ„ledes antalet pixlar till kamerans mittpunkt berĂ€knas. Antalet pixlar omvandlas sedan till ett avstĂ„nd i millimeter. För berĂ€kningar, se appendix B. Vid implementeringen upptĂ€cktes att dessa berĂ€kningar inte var tillrĂ€ckliga ut- an hĂ€nsyn behövde tas till de fyra möjliga fall som kunde uppstĂ„. Beroende pĂ„ QR-kodens vinkel varierade hörnens x- och y-vĂ€rde vilket ledde till en felaktig mittpunkt. HĂ€nsyn togs till de olika fallen enligt ïŹgur 3.5. För att sedan berĂ€kna vilken vinkel QR-koden har i förhĂ„llande till kameran, anvĂ€ndes som ovan positionerna av tvĂ„ hörn. Vid detta tillfĂ€lle deïŹnierades QR- kodernas koordinatsystem vilket sedan anvĂ€ndes vid faststĂ€llandet av rutnĂ€tet som nĂ€mns ovan, se ïŹgur 3.6 Det globala systemets y-axel deïŹnierades som 0◩ och QR-koderna placerades med 24
  • 37. KAPITEL 3. NAVIGATION Figur 3.6: Visar hur vinkelfelet mĂ€ts sidan mellan hörn 1 och 4 parallellt med y-axeln, se ïŹgur 3.6. Vinkelfelet utgörs av den vinkel som uppstĂ„r mellan y-axeln (north) och den linje som uppstĂ„r mellan punkterna. Den vinkel som AGV:n avviker frĂ„n QR-koden kunde sedan i alla punkter berĂ€knas via ekvation 3.4. α = arctan ∆y ∆x (3.4) Vinkeln deïŹnierades som positiv vid högerrotation och negativ vid vĂ€nsterrotation. NĂ€r AGV:n roterar och riktar sig mot south, se kapitel 5, behövde vinkeln minskas med en radian. 3.4.6 Processbeskrivning Nedan följer en avskĂ€rmad överblick över implementeringen. Denna del Ă€r tĂ€nkt att skapa en överblick för att underlĂ€tta fortsatt lĂ€sning. För den fullstĂ€ndiga integreringen av systemet, se kapitel 7. Vid varje uppstart av AGV:n kommer en bild att tas. UtifrĂ„n denna bild justerar sedan AGV:n in sig i förhĂ„llande till det globala koordinatsystemet. HĂ€r anvĂ€nds berĂ€kningarna som görs med avseende pĂ„ oïŹ€set och vinkel. Efter justeringen kom- mer alltsĂ„ AGV:n att beïŹnna sig pĂ„ en utav koordinatsystemets punkter, vilket 25
  • 38. KAPITEL 3. NAVIGATION den sedan kommunicerar till det överordnade systemet. Vid injusteringen sĂ„ vĂ€n- der sig AGV:n alltid mot det fördeïŹnierade north, se ïŹgur 3.4. VĂ€rt att nĂ€mna Ă€r att den initierande justering inte kan göras om AGV:n inte stĂ„r över en kod. Om AGV:n inte hittar en kod kommer ett felmeddelande levereras till operatören. Eftersom hastigheten pĂ„ AGV:n överstiger de 100 mm/s som var den maximala hastigheten för att klara att lĂ€sa av QR-koderna pĂ„ ett lĂ€mpligt sĂ€tt, ansĂ„gs bildupptagning i rörelse som onödigt moment. DĂ€rför slutar bildupptagningen i samband med att kommando för rörelse mottas och startar i samband med AGV:ns stoppkommando. Detta frigör processorkraft till andra operationer. QR-LĂ€sning Ta bild Hittad? Ta fram orientering och position Felsöknings algoritm Hittad? Justera position Manuell justering krĂ€vs Sök QR-kod Nej Ja Nej Initiera END Ja Figur 3.7: Flödesschemat för QR-lĂ€sningen Vid varje stopp börjar alltsĂ„ bildupptagningen och dĂ€rmed sökandet efter en QR- kod. Om en QR-kod ïŹnns i bilden tar systemet sĂ„ledes tillvara pĂ„ informationen lagrad i koden, som Ă€r oïŹ€set och vinkelfel. Direkt kommer AGV:n att sjĂ€lvmant justera oïŹ€set och vinkelfel samt kommunicera AGV:ns position till det överordnade 26
  • 39. KAPITEL 3. NAVIGATION systemet. I ïŹgur 3.7 visar ett ïŹ‚Ă¶desschema hur processen vid lĂ€sningen av QR- koderna gĂ„r till. Om bilden som behandlas inte innehĂ„ller en QR-kod genomförs inga berĂ€kningar utan en ny bild tas direkt och analyseras. Detta förfarande upprepas tills en QR- kod ïŹnns i bild eller tills ett förutbestĂ€mt antal bilder tagits i behandling. Utifall ingen QR-kod hittas betyder det att AGV:n Ă€r ur kurs. För att hitta tillbaka till en kĂ€nd position i koordinatsystemet genomför AGV:n en felsökningssekvens. Eftersom AGV:ns förïŹ‚yttningar inte Ă€r helt exaka Ă€r sökningssekvensen en viktig komponent i det autonoma systemet för att minimera risken för att AGV:n tappar rutten. Felsökningssekvensen beskrivs nĂ€rmre i kapitel 7.3. 27
  • 40. Kapitel 4 Överordnat system Efter valet av navigeringsmetod pĂ„börjades arbetet med ett överordnat system. För att möjliggöra ett autonomt lagerhanteringssystem krĂ€vs ett överordnat sy- stem som hanterar och tar emot ordrar frĂ„n personal, men Ă€ven kontrollerar en uppsĂ€ttning av AGV:er autonomt pĂ„ ett sĂ€kert och eïŹ€ektivt sĂ€tt. I detta kapi- tel görs en genomgĂ„ng av ruttplanering och motiveringen till varför A* vĂ€ljs som ruttplaneringsalgoritm samt beskrivning av grĂ€nssnitt och hur det överordnade systemet angriper problemet. 4.1 Systemuppbyggnad Systemet ska enligt kraven kunna ta emot ordrar, hantera dessa och autonomt styra ïŹ‚era AGV:er i en lagerlokal för att frakta varor till och frĂ„n olika positioner. Systemet mĂ„ste alltsĂ„ klara av att ha ïŹ‚era kommunikationer samt berĂ€kningar igĂ„ng samtidigt. Detta kan stĂ€lla till stora problem med integreringen mellan rutt- planering, styrning samt kommunikation. För att lösa det mĂ„ste alla delar dirigeras rĂ€tt för att uppnĂ„ ett eïŹ€ektivt och responsivt system. Operatören ska inte behöva fĂ„ vĂ€nta ïŹ‚era sekunder pĂ„ svar frĂ„n grĂ€nssnittet utan det mĂ„ste svara snabbt för att inte verka förvirrande eller leda till osĂ€kerhet. Inte heller fĂ„r berĂ€kningarna i ruttplaneringen, styrning eller kommunikationen med AGV:erna vara för lĂ„ngsamma, dĂ„ systemet kommer verka vĂ€ldigt ineïŹ€ektivt. Med detta som utgĂ„ngspunkt mĂ„ste ett ïŹ‚exibelt och kraftfullt, men eïŹ€ektivt system byggas upp. 28
  • 41. KAPITEL 4. ÖVERORDNAT SYSTEM 4.2 GrĂ€nssnitt Operatören mĂ„ste pĂ„ ett enkelt och smidigt sĂ€tt kunna lĂ€gga till samt hantera ordrar via grĂ€nssnittet. Det mĂ„ste ocksĂ„ vara möjligt att via grĂ€nssnittet fĂ„ status pĂ„ systemet, samt fĂ„ notiïŹkationer nĂ€r ovĂ€ntade eller ödesdigra hĂ€ndelser intrĂ€ïŹ€ar. 4.3 Ruttplanering För att AGV:erna pĂ„ ett eïŹ€ektivt sĂ€tt ska hitta frĂ„n start- till slutpunkt krĂ€vs en algoritm som rĂ€knar ut vilken vĂ€g de skall ta. För att Ă„stadkomma detta krĂ€vs nĂ„gon form av ruttplanering och för det ïŹnns ïŹ‚era olika metoder att tillĂ€mpa. Metoderna som valts att utvĂ€rderas Ă€r A*, Dijkstras algoritm, potentialfĂ€lt, och Flood Fill. Nedan följer en utförlig utvĂ€rdering av varje metod samt en motivering till varför valet föll pĂ„ A*. Flera av dessa algoritmer anvĂ€nder sig av grafer för att representera datan i pro- blemet. En graf G(V, E) bestĂ„r av noder V , samt kanter, E som beskriver ”vĂ€gar” mellan noderna. En kant kan vara riktad, vilket betyder att den bara gĂ„r Ă„t ena hĂ„llet. Detta Ă€r ett vĂ€ldigt enkelt men eïŹ€ektivt sĂ€tt att beskriva till exempel ett rutnĂ€t, dĂ€r varje ruta dĂ„ Ă€r en nod och kanterna Ă€r de olika sĂ€tten som du kan röra dig mellan rutorna. I ïŹgur 4.1 visas ett exempel pĂ„ en enkel graf. s a b c d Figur 4.1: En riktad graf 4.3.1 A* A*, utlĂ€ses ”A-stjĂ€rna”, Ă€r en vanligt anvĂ€nd algoritm vid t.ex. datorspel [19]. A* hittar vĂ€gen frĂ„n en startpunkt till ïŹ‚era slutpunkter, dĂ€r vĂ€gen gĂ„r förbi ïŹ‚era noder och A*-algoritmen vĂ€ljer bĂ€sta vĂ€g vid varje nod. Det krĂ€vs alltsĂ„ en fördeïŹnierad gradering av varje vĂ€g mellan varje nod för att A* skall kunna ïŹnna den bĂ€sta 29
  • 42. KAPITEL 4. ÖVERORDNAT SYSTEM vĂ€gen. Graderingen benĂ€mns ofta kostnad, olika vĂ€gar blir alltsĂ„ olika ”dyra” för roboten. Den totala kostnaden för en vĂ€g bestĂ€ms av ekvation 4.1, detta kallas algoritmens heuristik och bestĂ€ms utifrĂ„n problemets karaktĂ€r. f(x) = g(x) + h(x) (4.1) I ekvation 4.1 representerar g(x) kostnaden frĂ„n startpunkten till noden x och h(x) representerar den uppskattade kostnaden frĂ„n noden till mĂ„let. I och med h(x) erbjuder alltsĂ„ A* en möjlighet för roboten att övervĂ€ga framtida kostnader för olika vĂ€gar vilket möjliggör en kostnadsavvĂ€gning för hela vĂ€gen mellan start- och mĂ„lpunkt. Det ïŹnns tvĂ„ vanliga sĂ€tt att berĂ€kna kostnaden, Manhattanmetoden och den Euklidiska metoden [26]. Manhattanmetoden har som utgĂ„ngspunkt i att vĂ€gar- na ses som vĂ€garna pĂ„ Manhattan, New York, alltsĂ„ ett rutnĂ€t. Den euklidiska metoden handlar om att den kortaste vĂ€gen hittas, den sĂ„ kallade ”fĂ„gelvĂ€gen” [17]. 4.3.2 Visibility graph/Dijkstras algoritm Visibility graph Ă€r inte en algoritm pĂ„ samma sĂ€tt som A*, utan den sĂ€tter upp en visuell graph som sedan andra sökalgoritmer som Dijkstras algoritm kan anvĂ€nda för att ruttplanera. Ett visst antal noder deïŹnieras samtidigt som Visability graph försöker dra rĂ€ta linjer mellan noderna dĂ€r AGV:n kan köra. Ifall det Ă€r ett hinder för den rĂ€ta linjen, dras den inte. DĂ€refter berĂ€knar Dijkstras algoritm ut bĂ€sta vĂ€gen mellan start- och slutpunkt. Noderna utgĂ„r ofta frĂ„n fasta hinders kanter och nĂ„gra andra fĂ„ punkter. Vad som kan bli ett problem Ă€r att vissa noder kan ïŹnnas utan att ha andra noder synliga. Om rutten gĂ„r via nĂ„gon av dessa noder kommer systemet stanna. Detta problem kallas för ”The art gallery problem” och grunden i det kĂ€nda problemet ligger i att bestĂ€mma hur mĂ„nga noder som krĂ€vs i ett rum för att alla delar av rummet skall vara synligt för nĂ„gon av noderna [39, 40, 26, 43, 9]. Skillnaden pĂ„ Dijkstra och A* Ă€r att A* lĂ€gger till den uppskattade kostnaden för resterande delen av vĂ€gen. Detta gör att A* möjliggör en eïŹ€ektivare ruttplanering eftersom A* koncentrerar sig pĂ„ de vĂ€garna som uppskattas som bĂ€st, medan Dijkstraalgoritmen utvĂ€rderar varje vĂ€g vid varje nod [26, 43]. 30
  • 43. KAPITEL 4. ÖVERORDNAT SYSTEM 4.3.3 PotentialfĂ€lt PotentialfĂ€lt innebĂ€r att man ger vissa punkter i miljön attraherande kraft och vissa punkter repellerande kraft. Förslagsvis gör man mĂ„lpunkten attraherande kraft och fysiska hinder i miljö repellerande kraft. Detta medför att roboten alltid dras till mĂ„let och undviker hinder. Problemet med den hĂ€r metoden Ă€r att det inte rör sig om nĂ„gon ruttplanering i ordets rĂ€tta bemĂ€rkelse, utan roboten kommer röra sig nĂ€rmare och nĂ€rmare mĂ„let samtidigt som den undviker hinder succesivt nĂ€r de uppkommer. Det kommer dĂ€rför vara svĂ„rt att förutsĂ€ga vilken rutt roboten kommer ta. Ett annat problem som kan uppkomma Ă€r att de repellerande krafterna tar ut de attraherande, vilket gör att den resulterande kraften som verkar pĂ„ roboten blir noll. Dessutom ïŹnns risken att roboten inte kommer ta den kortaste vĂ€gen eftersom roboten kommer pĂ„verkas av ett repellerande hinder oavsett ifall den inte hade kollisionskurs med hindret, se ïŹgur 4.2 [5, 34]. Figur 4.2: Ett exempel pĂ„ att AGV:n inte nödvĂ€ndigtvis behöver ta nĂ€rmasta vĂ€gen [12] 31
  • 44. KAPITEL 4. ÖVERORDNAT SYSTEM 4.3.4 Flood ïŹll Algoritmen Flood ïŹll bygger pĂ„ konceptet att vatten alltid fyller frĂ„n en högre vattennivĂ„. OmrĂ„det som skall ruttplaneras delas in i celler som ges ett vĂ€rde beroende pĂ„ hur lĂ„ngt ifrĂ„n cellen Ă€r centrum, alltsĂ„ dĂ€r vattnet ”fylls pĂ„â€. Ju lĂ€ngre ifrĂ„n centrum desto lĂ€gre vĂ€rde fĂ„r cellen. Flood ïŹll Ă€r ursprungligen en labyrintlösare. VĂ€ggarna i labyrinten Ă€r fördeïŹnierade och algoritmen upptĂ€cker dem efterhand som labyrinten löses [32]. Se ïŹgur 4.3 för en bild av en labyrint som Ă€r löst med ïŹ‚ood ïŹll. Figur 4.3: Labyrint löst med ïŹ‚ood ïŹll [32] 4.4 Val av ruttplaneringsmetod I och med tidigare erfarenheter sĂ„ blev valet av ruttplaneringsalgoritm lĂ€tt. A* Ă€r vĂ€ldigt ïŹ‚exibel, pĂ„ grund sin heuristik kan man skrĂ€ddarsy den för sitt problem. Om heuristiken vĂ€ljs rĂ€tt sĂ„ garanterar A* att den optimala vĂ€gen returneras, vilket gĂ„r snabbt. Det realiserade rutnĂ€tet i projektet Ă€r relativt litet och A* kan dĂ„ verka vĂ€ldigt onödig och överïŹ‚Ă¶dig, men systemets bakomliggande tanke Ă€r att det ska fungera pĂ„ betydligt större lagerutrymmen Ă€n sĂ„. DĂ€rför anses valet av A* rĂ€ttfĂ€rdigat. 4.5 Implementering av överordnade systemet Med klara krav pĂ„ vad det överordnade systemet mĂ„ste klara av sĂ„ börjades upp- giften med att vĂ€lja pĂ„ vilket sĂ€tt systemet skulle byggas upp. Detta inkluderar 32
  • 45. KAPITEL 4. ÖVERORDNAT SYSTEM val av programmeringssprĂ„k, men Ă€ven konceptuella och arkitekturella val. Det ïŹnns mĂ„nga programmeringssprĂ„k som skulle passa in i projektet, men med tanke pĂ„ tidigare erfarenheter samt kompetens valdes Clojure, som Ă€r ett dyna- miskt programmeringssprĂ„k med fokus pĂ„ funktionell programmering. Clojure Ă€r ett sprĂ„k som Ă€r en dialekt ur familjen Lisp. SprĂ„ket valdes ocksĂ„ för den interakti- va utvecklingsprocessen, stödet för parallell programmering samt interopabiliteten med det stora programmeringssprĂ„ket Java [7]. En stor fördel med Clojure Ă€r att det existerar en kompilator, ClojureScript som har JavaScript som mĂ„lplattform [8]. Detta betyder att man kan exekvera Cloju- rekod i en webblĂ€sare vilket gör det utmĂ€rkt att bygga grĂ€nssnittet som en web- bapplikation i HTML5 och ClojureScript (JavaScript). Implementeringen av systemet började med att upprĂ€tta och sĂ€kerstĂ€lla kommu- nikationen till ïŹ‚era samtidiga AGV:er. Ett enkelt textbaserat protokoll över TCP togs fram, detta beskrivs i kapitel 7.2.1. Efter manuella tester samt nĂ„gra iteratio- ner sĂ„ existerade den funktionaliteten som behövdes för att upphĂ„lla realtidskom- munikation med AGV:er. Under utvecklingsfasen sĂ„ anvĂ€ndes virtuella AGV:er dĂ€r bara kommunikationen fanns, detta för att underlĂ€tta utveckling och fĂ„ en eïŹ€ektiv Ă„terkoppling till utvecklingen. De ”virtuella AGV:erna” bestod egentligen bara av enkla skript i en kommandotolk som anvĂ€nder sig av ett unix-program som kallas netcat, vilket anvĂ€nds för att kommunicera över TCP-anslutningar. En asynkron tillstĂ„ndsmodell sattes ocksĂ„ upp i servern, denna har koll pĂ„ all status för de an- slutna AGV:erna och exponerar ett API för att kunna göra atomiska skrivningar och pĂ„ sĂ„ sĂ€tt slippa problem som kan uppstĂ„ vid asynkrona skrivningar. NĂ€r implementeringen av kommunikationen samt tillstĂ„ndslagringen var klar pĂ„- börjades en enkel skiss pĂ„ grĂ€nssnittet. De tidigare kraven anvĂ€ndes som en speci- ïŹkation för vad som behövdes ïŹnnas med, en slutgiltig beskrivning av grĂ€nssnittet Ă„terïŹnns i kapitel 4.5.1. Som tidigare nĂ€mnt utvecklades grĂ€nssnittet i Clojure och kompilerades till JavaScript via kompilatorn ClojureScript, detta medför en stor fördel dĂ„ det Ă€r möjligt att anvĂ€nda samma sorters datastrukturer bĂ„de i servern och i grĂ€nssnittet. Datan som som skickas i realtid mellan servern och grĂ€nssnit- tet faller under formatet edn (Extensible Data Notation), vilket gör det vĂ€ldigt smidigt att utbyta information[13]. För att skicka data i realtid mellan servern och grĂ€nssnittet anvĂ€nds en modern webbteknik som kallas WebSockets. WebSoc- kets fungerar i princip pĂ„ samma sĂ€tt som en vanlig TCP-socket, en tillförlitlig full-duplex datakanal [41]. Den sista funktionaliteten att implementeras var den största och viktigaste, sjĂ€lva planeringen. Som nĂ€mnt i teoridelen i detta kapitel sĂ„ valdes A*-algoritmen för att hitta kortaste vĂ€gen i rutnĂ€tet. Vid varje steg i processen som AGV:n utför 33
  • 46. KAPITEL 4. ÖVERORDNAT SYSTEM sĂ„ berĂ€knas den kortaste vĂ€gen för varje AGV som Ă€r ansluten. Planeraren tar övriga AGV:er, blockerade rutor samt hyllor i berĂ€kning i varje steg för att se till att en vĂ€g inte korsar en hylla eller annan AGV, allt för att undvika kollision. En position kan bli blockerad genom att AGV:n meddelar att den har stött pĂ„ ett hinder, se kapitel 5.4.2, dĂ„ markeras positionen i kartsystemet som en blockerad ruta. För att fĂ„ bort ett hinder krĂ€vs en omstart av systemet. I ïŹgur 4.4 visas ett ïŹ‚Ă¶desschema pĂ„ hur det överordnade systemet fungerar. Det ïŹnns tvĂ„ vĂ€gar in i schemat, antingen manipuleras en order via grĂ€nssnittet, eller sĂ„ ansluts alternativt skickar en existerande AGV data till systemet. Varje gĂ„ng en AGV har slutfört ett steg sĂ„ meddelar den sin position och status till systemet, som tar den informationen i berĂ€kning till vad som ska skickas tillbaka. Antingen fortsĂ€tter den med en order som den hĂ„ller pĂ„ att leverera, eller sĂ„ kollar systemet om det ïŹnns en ny order att behandla. Detta resulterar i att antingen sĂ„ skickas kommandon till AGV:n om vad den ska göra i nĂ€sta steg, eller sĂ„ avvaktar systemet tills ny order inkommer. Systemet Ă€r dynamiskt och det Ă€r fullt möjligt att ansluta ïŹ‚era AGV:er under tiden systemet körs. Det har dĂ€remot valts att inte hantera nĂ€r en AGV försvinner dĂ„ det kan betyda att batteriet tagit slut och att den dĂ„ stĂ„r mitt i lagerutrymmet och blockerar. Valet blev dĂ„ istĂ€llet att göra operatören uppmĂ€rksam pĂ„ problemet via grĂ€nssnittet och dĂ€refter Ă€r manuell hantering nödvĂ€ndig. Manipulera order AGV login AGV koordinater Ledig AGV? FortsĂ€tta gammal order? Finns ny order? Tilldela order Ruttplane ring AGV-lista AGV-lista Orderlista Orderlista AGV Avvakta Avvakta NejNej Ja Ja Figur 4.4: Flödesschema pĂ„ det överordnade systemet 4.5.1 Beskrivning av grĂ€nssnittets utseende I ïŹgur 4.5 ses en bild av hur det överordnade systemets webbaserade grĂ€nssnitt ser ut. I nedersta vĂ€nstra hörnet syns en karta över lagersystemet som uppdateras 34
  • 47. KAPITEL 4. ÖVERORDNAT SYSTEM Figur 4.5: SkĂ€rmbild pĂ„ ordrar i grĂ€nssnittet i realtid, dĂ€r varje ruta motsvarar positionen av en QR-kod. Olika fĂ€rger i kartan motsvarar de ingĂ„ende delarna i systemet. En grön ruta Ă€r plockstationens posi- tion, det vill sĂ€ga AGV:ns mĂ„lposition, mörkblĂ„ motsvarar en AGV, ljusblĂ„ för bord och röd indikerar pĂ„ ett hinder. NĂ€r en AGV kopplas upp mot systemet lĂ€ggs den in i listan till vĂ€nster, under rubriken tillgĂ€ngliga AGV. AnvĂ€ndaren skriver in sökt artikelnummer i sökfĂ€ltet och dĂ„ lĂ€ggs en order in i systemet. Det överordnade systemet vet var varje artikel beïŹnner sig och ruttplanering genomförs. DĂ€refter tilldelas vald AGV information om fĂ€rdriktning och dĂ€rmed hĂ€mtas artikeln, för mer ingĂ„ende information om hur navigeringen sker se kapitel 3. Om ïŹ‚era order lĂ€ggs dĂ€r olika artiklar Ă„terïŹnns pĂ„ samma lagerplats sĂ„ kommer systemet tilldela samma AGV ordern att hĂ€mta de bĂ„da artiklarna, vilket kan ses i ïŹgur 4.5. DĂ€r har tre ordrar lagts in pĂ„ olika artiklar och eftersom artiklarna med artikelnummer 10000 och 10002 Ă„terïŹnns pĂ„ samma lagerplats sĂ„ tilldelas samma AGV bĂ€gge ordrarna. DĂ„ ingen AGV ïŹnns tillgĂ€nglig kommer helt enkelt systemet invĂ€nta en tillgĂ€nglig AGV och dĂ€refter tilldela den ordern. Vilken AGV som hĂ€mtar vilken artikel syns tydligt i anvĂ€ndargrĂ€nssnittet och om utifall en order avbryts via knappen ”Avbryt” sĂ„ kommer ett av tvĂ„ scenarion intrĂ€ïŹ€a. Om AGV:n inte hunnit hĂ€mta det aktuella bordet sĂ„ kommer den helt enkelt stanna vid nĂ€sta QR-kod och invĂ€nta en ny order. Men om AGV:n redan har hĂ€mtat bordet och Ă€r pĂ„ vĂ€g tillbaka till plockstationen sĂ„ kommer kommandot avbryta 35
  • 48. KAPITEL 4. ÖVERORDNAT SYSTEM innebĂ€ra att AGV:n kör tillbaka med bordet och dĂ€refter invĂ€nta order. Figur 4.6: SkĂ€rmbild pĂ„ kvitterbara ordrar i grĂ€nssnittet NĂ€r en AGV vĂ€l har hĂ€mtat en artikel och nĂ„tt plockstationen kommer alternativet ”Kvittera” upp i systemet, se ïŹgur 4.6. NĂ€r ”Kvittera” - kommandot ges Ă€r det en signal till systemet att artikeln Ă€r avplockad frĂ„n bordet och AGV:n lĂ€mnar dĂ€refter tillbaka bordet pĂ„ sin ursprungliga plats för att sedan invĂ€nta order. Utifall ett hinder pĂ„trĂ€ïŹ€ats av AGV:ns kollisionsundvikningssystem sĂ„ skickas information om vilken den aktuella QR-koden Ă€r och det överordnade systemet markerar följaktligen motsvarande QR-kod med rött i realtidskartan. Detta indi- kerar pĂ„ att den aktuella QR-koden Ă€r indisponibel och en ny rutt berĂ€knas. En varningsruta syns dĂ„ i grĂ€nssnittet för att göra operatören uppmĂ€rksam pĂ„ det pĂ„trĂ€ïŹ€ade hindret, se ïŹgur 4.7. 36
  • 49. KAPITEL 4. ÖVERORDNAT SYSTEM Figur 4.7: SkĂ€rmbild pĂ„ nĂ€r AGV:n har skickat blockeringssignal 37
  • 50. Kapitel 5 Kollisionsundvikning För att kunna anvĂ€nda AGV:erna i en lagermiljö krĂ€vs det att det ïŹnns system för kollisionsundvikning. Detta för att inte riskera personalens sĂ€kerhet men Ă€ven för att eïŹ€ektivisera lagerhanteringssystemet. Det överordnade systemet hĂ„ller ordning pĂ„ AGV:erna i förhĂ„llande till varandra och pĂ„ sĂ„ vis undviker AGV:erna att kollidera med varandra, se kapitel 4.5. För att undvika kollisioner med objekt som inte ïŹnns loggade i det överordnade systemet, exempelvis mĂ€nniskor som rör sig inne i lokalen, mĂ„ste ett ytterligare sy- stem implementeras. För att utreda vilket system som Ă€r bĂ€st lĂ€mpat för uppgiften görs en utvĂ€rdering kring olika metoder som kan anvĂ€ndas för kollisionsundvik- ning. UtvĂ€rderingen har begrĂ€nsats till tillgĂ€ngliga system frĂ„n tidigare arbeten. Detta görs för att de tillgĂ€ngliga systemen anses vĂ€l lĂ€mpade för uppgiften och dĂ€r- med ïŹnns ingen anledning att köpa in nĂ„got ytterligare. De tillgĂ€ngliga systemen ultraljudssensorer och en lasersensor, en sĂ„ kallad LiDAR. För att möjliggöra ett eïŹ€ektivt kollisionsundvikningssystem krĂ€vs en metod för att skanna av omgivningen för att upptĂ€cka eventuella hinder. Skanningen bör ske med hög frekvens sĂ„ att rörliga hinder som uppkommer nĂ€ra AGV:n kan upp- tĂ€ckas sĂ„ fort som möjligt och ge AGV:n möjlighet att stanna i tid. I kravspeciïŹ- kationen Ă„terïŹnns de krav som stĂ€lls pĂ„ kollisionsundvikningssystemet i projektet, se appendix A. Nedan följer en utvĂ€rdering om de tillgĂ€ngliga systemen samt en motivering till varför LiDAR vĂ€ljs. 38
  • 51. KAPITEL 5. KOLLISIONSUNDVIKNING 5.1 Ultraljud Sonar (Sound Navigation and Ranging) Ă€r en teknik som med hjĂ€lp av ljudets fortplantning gör det möjligt att avstĂ„ndsbestĂ€mma objekt i omgivningen. Ult- raljudssensorer utnyttjar denna teknik och skickar ut pulser av ultraljud som re- ïŹ‚ekteras mot ett objekt vilka sedan fĂ„ngas upp av sensorn. Genom att berĂ€kna tiden det tar för ljudet att nĂ„ tillbaka kan ett objekt avstĂ„nd bestĂ€mmas [38]. Ult- raljudssensorerna som Ă€r aktuella i projektet Ă€r av modellen Arduino Ultrasonic Distance Sensor (RS485 interface),se ïŹgur 5.1. Fyra stycken följer med roboten och monteras en per sida. Ultraljudssensorerna kan mĂ€ta avstĂ„nd pĂ„ upp till fem meter med en upplösning pĂ„ en centimeter[4]. Figur 5.1: Ultraljudsensorn, Arduino Ultrasonic Distance Sensor [4] Fördelen med att tillĂ€mpa ultraljudssensorerna Ă€r att AGV:n dĂ„ har kollisions- undvikningsystem som fungerar i alla fyra riktningar samt att AGV:n redan har hĂ„rdvaran monterad. Eftersom det dock inte ïŹnns information kring hur brett ult- raljudfĂ€ltet Ă€r för den speciïŹka sensorn, ïŹnns det risk att objekt som kommer frĂ„n sidan inte upptĂ€cks. Ultraljudssensorerna drivs och kommunicerar via den seriella anslutningen RS485 men eftersom myRIO:n redan kommunicerar via Arduino:ns enda seriella port ïŹnns det inte möjlighet att samtidigt anvĂ€nda ultraljudssenso- rerna. Det Ă€r dock möjligt att via mjukvara implementera en seriell port, men detta lĂ„ser upp processorn och förhindrar annan kod att exekveras korrekt vilket i princip gör det omöjligt att tillĂ€mpa ultraljudssensorerna i projektet. 5.2 LiDAR LiDAR (Light Detection and Ranging) Ă€r ett optiskt mĂ€tinstrument som kan tillĂ€mpas för att avstĂ„ndsbestĂ€mma objekt, se ïŹgur 2.3. Den fungerar likt en sonar men istĂ€llet för ljudvĂ„gor skickas ljusvĂ„gor ut och genom att mĂ€ta tiden det tar 39
  • 52. KAPITEL 5. KOLLISIONSUNDVIKNING för dem att reïŹ‚ekteras tillbaka kan avstĂ„ndet bestĂ€mmas till det objekt som ljuset trĂ€ïŹ€at [23]. Den klarar av att skanna 240◩ med en uppdateringsfrekvens pĂ„ 10 Hz, se ïŹgur 5.2. LiDAR:n kan upptĂ€cka föremĂ„l pĂ„ upp till fyra meter med en felmarginal pĂ„ tre procent av uppmĂ€tt avstĂ„nd, dock minst 30 millimeter. Under skanning görs 683 olika avstĂ„ndsmĂ€tningar vilket innebĂ€r att mĂ€tpunkterna Ă€r separerade med 0.36◩ [36]. Figur 5.2: Scanningsspannet för LiDAR:n [12] Informationen som skickas frĂ„n LiDAR:n Ă€r en strĂ€ng med 683 punkter innehĂ„l- landes avstĂ„ndsmĂ€tningarna. VĂ€rdena representerar det uppmĂ€ttat avstĂ„ndet för varje vinkelintervall frĂ„n LiDAR:n till ett objekt, om inget objekt pĂ„trĂ€ïŹ€as retur- neras en nolla. LiDAR:n drivs via en USB 2.0 port vilket Ă€r fördelaktigt dĂ„ det Ă€r enkelt, med hjĂ€lp av en USB-hub för att fĂ„ portar till bĂ„de LiDAR och kameran, att samman- koppla den med myRIO:n. En nackdel Ă€r det faktum att LiDAR:n endast tillĂ„ter avskanning i 240◩ vilket innebĂ€r att om AGV:n backar ïŹnns inte möjligheten för LiDAR:n att detektera objekt som kan vara i vĂ€gen. 5.3 Val av kollisionundvikningssystem En avvĂ€gning görs mellan de tvĂ„ tillgĂ€ngliga teknikerna och utifrĂ„n det vĂ€ljs Li- DAR:n som kollisionsundvikningssystem. BĂ„de ultraljudsensorerna och LiDAR:n uppfyller de krav som stĂ€lls pĂ„ kollisionundvikningssystemet vilket Ă€r det som Ă€r 40
  • 53. KAPITEL 5. KOLLISIONSUNDVIKNING mest essentiellt, se appendix A. IstĂ€llet för att grunda beslutet pĂ„ en jĂ€mförelse av hur vĂ€l kriterierna uppfylls av de olika lösningarna, likt det som gjordes för navigationssystemet, togs ett beslut baserat pĂ„ det faktum att bristen pĂ„ seriel- la anslutningar pĂ„ Arduino:n gör att det blir vĂ€ldigt komplext att implementera ultraljudssensorerna. Nackdelen med att vĂ€lja den beïŹntliga LiDAR:n Ă€r att den endast kan lĂ€sa av 240◩ av omgivningen vilket dock gĂ„r komma runt genom att programmera AGV:ns rörelsemönster sĂ„ att den aldrig tillĂ„ts röra sig baklĂ€nges utan istĂ€llet rör sig i framĂ„t samt i sidled och roterar vid behov vilket alltsĂ„ anses vara lĂ€ttare Ă€n att anvĂ€nda ultraljudssensorerna. 5.4 Implementering För att implementera kollisionsundvikningssystemet utnyttjades LabVIEW vilket möjliggjorde en smidig integration med styrningen av AGV:n, se kapitel 3. 5.4.1 SynfĂ€lt LiDAR:n kopplades ihop med myRIO:n via USB och placerades pĂ„ den frĂ€mre delen av AGV:n för att minimera antalet delar pĂ„ AGV:n som skymmde sikten. Dock skymde benen pĂ„ anordningen för transport av material samt benen pĂ„ bordet fortfarande LiDAR:ns synfĂ€ltet. För att komma runt det problemet pro- grammerades myRIO:n till att ignorera mĂ€tvĂ€rden frĂ„n LiDAR:n som var pĂ„ ett avstĂ„nd kortare Ă€n 20 cm. Detta löste Ă€ven de problem som tidigare arbeten har haft med inkorrekta mĂ€tvĂ€rden pĂ„ korta avstĂ„nd. För att undvika kollision med hinder som kan uppstĂ„ programmerades LiDAR:n i LabVIEW att skanna av omgivningen i fĂ€rdriktning, se ïŹgur 5.4. NĂ€r ett objekt pĂ„trĂ€ïŹ€ats inom ett förutbestĂ€mt omrĂ„de skickas informationen om vinkel samt avstĂ„nd till myRIO:n som dĂ„ stoppar AGV:n. Eftersom LiDAR:n endast kan skanna av omgivningen i 240◩ programmerades AGV:n till att, istĂ€llet för att backa, rotera 180◩ och köra framĂ„t. Dock sĂ„ backar AGV:n i de fall som ett fast hinder pĂ„trĂ€ïŹ€ats, mer om detta under kapitel 5.4.2. För att förbĂ€ttra LiDAR:ns synfĂ€lt gjordes en upphöjning för LiDAR:n, se ïŹgur 5.3. Sikten för LiDAR:n var stĂ€ndigt delvis skymd av anordningen för transport av material vilket ledde till en dödzon bakom benen. Detta kunde blivit en begrĂ€n- sande faktor i kollisionsundvikningssystemet men tester indikerade pĂ„ att det inte 41
  • 54. KAPITEL 5. KOLLISIONSUNDVIKNING Figur 5.3: Bild som visar hur LiDAR:n Ă€r fĂ€st pĂ„ AGV:n gjorde nĂ„gon skillnad i praktiken. DĂ„ diagonala rörelser inte tillĂ€mpades, minskade problematiken med dessa dödzoner. För att bestĂ€mma bredden pĂ„ skanningsomrĂ„det frĂ„n LiDAR:n betraktades tvĂ„ fall: nĂ€r AGV:n var olastad och nĂ€r den var lastad. NĂ€r AGV:n var olastad kommer ett mindre sökfĂ€lt Ă€n vid lastat lĂ€ge att behövas. Ett sökfĂ€lt motsvarande ekipa- gets bredd utgör minimimĂ„ttet. Ett bredare sökfĂ€lt kan dock komma att hindra AGV:n frĂ„n att manövrera in under bordet dĂ„ dess ben kan tolkas som hinder. Lösningen blev att deïŹniera start och slutpunkt till LiDAR:n sĂ„ att sökfĂ€ltet blev smalt nog för att tillĂ„ta AGV:n att fĂ€rdas in under bordet utan att bordsbenen bryter lasern. BerĂ€kningarna baserades pĂ„ det faktum att hela AGV:ns bredd mĂ„s- te inkluderas i skanningsfĂ€ltet för att kollisionsundvikningssystemet ska fungera pĂ„ ett tillfredstĂ€llande sĂ€tt, se appendix C och ïŹgur 5.5. NĂ€r AGV:n har lastat bordet programmeras LiDAR:n att mĂ€ta ett nĂ„got bredare fĂ€lt för att dĂ„ Ă€ven fĂ„ med den extra bredden som bordet medför. BerĂ€kningar gjordes för att bestĂ€mma respektive vinkel i de tvĂ„ fallen. I tabell 5.1 Ă„terïŹnns resultatet och för mer ingĂ„ende beskrivning av hur berĂ€kningarna görs se appendix C. 42
  • 55. KAPITEL 5. KOLLISIONSUNDVIKNING Figur 5.4: Illustration av hur LiDAR:n skannar beroende pĂ„ fĂ€rdriktning Tabell 5.1: VĂ€rdena för LiDAR:ns skanningsspann lastad och olastad, se 5.5 för vinkelförklaring Vinkel Lastad Olastad A 13◩ 20◩ B 11◩ 16◩ C 18◩ 24◩ 5.4.2 Agerande vid pĂ„trĂ€ïŹ€ande av hinder Hinder som pĂ„trĂ€ïŹ€as kategoriseras som rörliga eller fasta. För att avgöra vilken typ av hinder som pĂ„trĂ€ïŹ€ats sĂ„ implementerades en sekvens som stannar AGV:n vid hindret. LiDAR:n fortsĂ€tter skanna kontinuerligt medan AGV:n avvaktar, för- svinner hindret inom fem sekunder fortsĂ€tter AGV:n pĂ„ sin bestĂ€mda rutt och inga ytterligare Ă„tgĂ€rder tas. Om hindret fortfarande Ă€r kvar efter fem sekunder klassas det som ett fast hinder och AGV:n backar tillbaka till föregĂ„ende QR-kod. MyRIO:n informerar samtidigt det överordnade systemet om det fasta hindrets position som dĂ„ markerar den aktuella QR-koden som indisponibel DĂ€refter be- rĂ€knas en ny rutt, se mer angĂ„ende hinder och ruttplanering under kapitel 4. I de fall som AGV:n pĂ„trĂ€ïŹ€ar ett fast hinder och backar tillbaka sker det i blindo pĂ„ grund utav begrĂ€nsningar i LiDAR:ns synfĂ€lt, se kapitel 5.2. Detta Ă€r ett omrĂ„de med utvecklingspotential vilket diskuteras mer i kapitel 9. Ett problem som pĂ„trĂ€ïŹ€ades under arbetet med LiDAR:n och implementeringen 43
  • 56. KAPITEL 5. KOLLISIONSUNDVIKNING Figur 5.5: Dimensionerna pĂ„ LiDAR:ns synfĂ€lt och en deïŹnition av de ingĂ„ende vinklarna av systemet var att begrĂ€nsningar i mjukvaran pĂ„verkade tiden det tog för Li- DAR:n att upptĂ€cka hindret tills dess att AGV:n stannat. Tester indikerade pĂ„ att det tog ungefĂ€r 1,5 sekunder frĂ„n det att hindret pĂ„trĂ€ïŹ€ats till att AGV:n stan- nade, se appendix F. Detta ansĂ„gs vara för lĂ„ng tid. För att komma tillrĂ€tta med problemet kontaktades National Instruments för att fĂ„ assistans med programme- ringen av LiDAR:n i LabVIEW 1 . Vid genomgĂ„ng tillsammans med en anstĂ€lld vid National Instruments felsöktes funktionen och begrĂ€nsningarna kunde kopplas till drivrutinerna för LiDAR:n till LabVIEW utgivna av Hokuyo. Detta Ă€r ett tydligt omrĂ„de dĂ€r det ïŹnns potential för vidareutveckling, se kapitel 9. 5.4.3 Processbeskrivning Ett ïŹ‚Ă¶desschema upprĂ€ttades för att ge en överblick över hur det slutgiltiga syste- met med LiDAR:n fungerar, se ïŹgur 5.6. LiDAR:n skannar av sin omgivning tio gĂ„nger i sekunden och om ett hinder pĂ„trĂ€ïŹ€as inom bestĂ€mt avstĂ„nd sĂ„ skickas en signal via myRIO:n till Arduino:n att stoppa motorerna och följaktligen stannar AGV:n. Sekvensen för hinderupptĂ€ckt initieras och beroende pĂ„ vilken typ av hin- der det Ă€r sĂ„ Ă„ker antingen AGV:n vidare nĂ€r hindret försvunnit eller sĂ„ backar AGV:n tillbaka till föregĂ„ende QR-kod. 1 Payman Tehrani, Academic ïŹeld sales engineer, National Instruments, möte den 11/5-15 44
  • 57. KAPITEL 5. KOLLISIONSUNDVIKNING LiDAR Skanna omrĂ„de Hinder upptĂ€ckt Stoppa AGV Hinder kvar Nej Ja Kör vidare Åk tillbaka Nej Initiera END Start tid Tid>5 Ja Ja Nej Figur 5.6: Flödesschema för hur LiDAR:n arbetar 45
  • 58. Kapitel 6 Anordning för transport av material Som ett led i utvecklingen av ett autonomt lagerhanteringssystem krĂ€vs det en lös- ning för att AGV:n skall kunna förïŹ‚ytta lagerinredningen. Prototypen som framtas i projektet ska klara av att ïŹ‚ytta bordet som ïŹnns att tillgĂ„ som lagerinredning. Följaktligen tillkommer dĂ„ krav pĂ„ utformningen och lastvikt som anordningen mĂ„ste klara av, se appendix A. Tidigare projektgrupper har konstruerat och tillverkat en lyftanordning som kan monteras pĂ„ AGV:n vilket gjorde att det fanns tvĂ„ vĂ€gar att gĂ„; antingen utveck- la och konstruera en ny design eller anvĂ€nda den beïŹntliga lyftanordningen. En utvĂ€rdering kring beïŹntligt prototyp gjordes och jĂ€mfördes med alternativa lös- ningar vilken resulterade i avvĂ€gningen att utnyttja och vidareutveckla den redan existerande lösningen. 6.1 Framtagande av koncept För att ge en tydlig överblick av hur den redan existerande prototypen sĂ„g ut beskrivs den nedan mer ingĂ„ende tillsammans med en diskussion av för- och nack- delar med prototypen. 46
  • 59. KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL 6.1.1 BeïŹntlig prototyp Det beïŹntliga konceptet bygger pĂ„ att en trapetsgĂ€ngad skruv roteras med hjĂ€lp av en stegmotor som i sin tur förïŹ‚yttar ett lyftstycke, se ïŹgur 6.1. Lyftstycket Ă€r gjort i trĂ€ och bestĂ„r av en skiva med tre stycken armar. Det Ă€r dessa som Ă€r i direktkon- takt med objektet som ska lyftas. Stegmotorn sammankopplas med Arduino:n och dĂ€rifrĂ„n fĂ„s signal för att antingen hissa eller sĂ€nka lyftstycket. Stegmotorn Ă€r fĂ€st i trapetsskruven med en lĂ„sskruv och vid signal börjar den rotera och dĂ€rmed ro- terar Ă€ven trapetsskruven. En ïŹ‚Ă€nsmutter fĂ€sts pĂ„ lyftstycket och trapetsskruven roterar igenom muttern. Lyftstycket Ă€r förhindrat frĂ„n att rotera pĂ„ grund av de tre styrstĂ€ngerna som löper igenom lyftstycket vilket gör att nĂ€r stegmotorn körs kommer lyftstycke förïŹ‚yttas uppĂ„t eller nedĂ„t lĂ€ngs trapetsskruven. Plattformen lyftanordningen stĂ„r pĂ„ gjordes för att inte störa de sensorer som utnyttjades för navigering och för att fĂ„ plats med ïŹ‚er komponenter pĂ„ chassits begrĂ€nsade yta. Figur 6.1: Modell av föregĂ„ende Ă„rs prototyp av anordningen för transport av material BerĂ€kningar gjordes under det föregĂ„ende Ă„rets arbete vid framtagandet av proto- typen, frĂ€mst för val av motor och dĂ„ undersöktes de vridmomentet som krĂ€vdes för att hissa lyftstycket, se ekvation 6.1 och 6.2. Som det gĂ„r att se pĂ„ ekvationer- na sĂ„ kommer den begrĂ€nsande ekvationen vara 6.1, det vill sĂ€ga momentet som krĂ€vs för upplyftningen av lyftstycket. 47
  • 60. KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL Traise = Fdm 2 l + π”dm πdm − ”l (6.1) Tlower = Fdm 2 π”dm − l πdm + ”l (6.2) ‱ T: moment som krĂ€vs för jĂ€mnvikt ‱ F: kraften som ligger pĂ„ ïŹ‚Ă€nsmuttern ‱ dm: medeldiametern pĂ„ trapetsskruven ‱ l: stighöjden för ett varv pĂ„ trapetsskruven ‱ ”: friktionskoeïŹƒcienten mellan ïŹ‚Ă€nsmuttern och trapetsskruven Alla de ingĂ„ende variablerna i ekvationerna Ă€r relativt enkla att bestĂ€mma förutom friktionskoeïŹƒcienten. Friktion uppkommer mellan trapetsmutter och trapetsskru- ven men Ă€ven mellan lyftstycket och styrstĂ€ngerna i viss mĂ„n. Detta medför en stor osĂ€kerhet i berĂ€kningarna vilket leder till att det bör tas till rejĂ€l sĂ€kerhets- marginal vid val av motor. Eftersom tidigare arbeten inte kom lĂ€ngre Ă€n vad som teoretiskt krĂ€vs betyder det att tester mĂ„ste utföras för att faststĂ€lla om den beïŹntliga stegmotorn klarar av belastningen i praktiken. Om valet görs att utnyttja den beïŹntliga anordningen erhĂ„lls en tids- och kostnads- eïŹ€ektiv lösning vilket Ă€r av stor vikt dĂ„ tiden som ïŹnns tillgĂ€nglig för projektet Ă€r högst begrĂ€nsad. Designen som konstruktionen bygger pĂ„ Ă€r relativt enkelt men Ă€ndĂ„ lĂ€mpad för Ă€ndamĂ„let. Tre kontaktpunkter med objektet som lyfts medför stabilitet och anvĂ€ndningen av stegmotor möjliggör vetskapen om vilket avstĂ„nd lyftstycket ïŹ‚yttats samt att den bibehĂ„ller sin position. Att trapetsskruvar redan utnyttjas i liknande anvĂ€ndningsomrĂ„den, exempelvis skruvdomkrafter, visar pĂ„ att metoden fungerar och Ă€r vĂ€l beprövad [37]. En jĂ€mförelse mellan den beïŹntliga lösningen och alternativa metoder gjordes, dĂ€r bland annat domkraft, saxlyft och pneumatiskt lyftbord undersöktes för att fĂ„ en bild av andra lösningar som skulle generera samma resultat. Att utveckla och designa ett nytt koncept ansĂ„gs dock vara vĂ€ldigt tidskrĂ€vande samtidigt som det var högst osĂ€kert att ett bĂ€ttre resultat skulle uppnĂ„s. DĂ„ det beïŹntliga konceptet ansĂ„gs vara en robust konstruktion och vĂ€l lĂ€mpad för Ă€ndamĂ„let med tidigare nĂ€mnda argument som grund för beslutet gjordes avvĂ€gningen att utnyttja den existerande prototypen. NĂ„gra förbĂ€ttringsomrĂ„den identiïŹerades dock och modi- ïŹeringar av prototypen utfördes, se nĂ€stkommande kapitel. 48
  • 61. KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL 6.2 Design av koncept Vid utvĂ€rdering av det beïŹntliga konceptet identiïŹerades förbĂ€ttringsmöjligheter pĂ„ olika omrĂ„den och modiïŹeringar arbetades fram för att eïŹ€ektivisera och för- bĂ€ttra lyftanordningen. 6.2.1 ModiïŹeringar De delar som identiïŹerades som förbĂ€ttringsomrĂ„den och modiïŹerades var följande: ‱ Lyftstycke - För att förbĂ€ttra lyftstabiliteten förlĂ€ngdes armarna sĂ„ att kon- taktytorna med bordet förïŹ‚yttades lĂ€ngre ut frĂ„n centrum. Till följd av detta gjordes skivan som armarna sitter pĂ„ större för att agera stöd och fördela krafterna som bordets tyngd ger upphov till pĂ„ lyftarmarna. ‱ StyrstĂ€nger - PĂ„ det beïŹntliga konceptet gick styrstĂ€ngerna endast igenom skivan vilken gjorde att lyftstycket blev instabilt. Genom att ïŹ‚ytta styrstĂ€ng- erna till att gĂ„ igenom bĂ„de skivan och armarna fĂ„s mer styrning och dĂ€rmed en stabilare lyftanordning. För att fĂ„ en tydlig bild av skillnaden hĂ€nvisas lĂ€saren att jĂ€mföra ïŹgur 6.1 med ïŹgur 6.3. ‱ Placering av lyftstycke pĂ„ plattform - Lyftstycket var ursprungligen centrerat pĂ„ plattformen men dĂ„ plattformen inte Ă€r centrerad pĂ„ AGV:n sĂ„ skedde inte lyftet mitt under bordet samt att tyngden inte fördelades jĂ€mt över hjulen pĂ„ AGV:n. DĂ€rför förïŹ‚yttades lyftstycket framĂ„t pĂ„ plattformen, jĂ€mför ïŹgur 6.1 med ïŹgur 6.3. ‱ SĂ€nkning av plattform - Plattformen var ursprungligen gjord för att ha plats till lasern som anvĂ€ndes för navigering av tidigare Ă„rs arbeten, vilket gjorde att plattformen var onödig hög vid navigering med QR-koder. Höjden pĂ„ plattformen ledde till att AGV:n blev instabil vid lyft och dĂ€rför förkortades lyftplattformens ben vilket resulterade i en lĂ€gre tyngpunkt och en förbĂ€ttrad stabilitet. 6.3 FĂ€rdigt koncept En förklaring av de ingĂ„ende komponenterna och dess anvĂ€ndningsomrĂ„de i det fĂ€rdiga konceptet presenteras nedan. 49
  • 62. KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL Trapetsskruv En trapetsgĂ€ngad skruv anvĂ€nds för att omsĂ€tta den roterande rörelsen frĂ„n steg- motorn till lyftstyckets linjĂ€ra rörelse. Skruven Ă€r gjord i stĂ„l och fĂ€sts i motorn med hjĂ€lp av en lĂ„sskruv. Lyftstycke Lyftstycket Ă€r den del som Ă€r i direkt kontakt med bordet som ska lyftas och utgörs av tre armar som fĂ€sts med jĂ€mna mellanrum pĂ„ en skiva. Tre kontaktpunkter med bordet medför ett stabilt lyft och alla ingĂ„ende delar Ă€r tillverkade i trĂ€ för att det Ă€r enkelt att bearbeta samt för att hĂ„lla nere vikten. StyrstĂ€nger StyrstĂ€nger gĂ„r igenom bĂ„de skivan och armarna pĂ„ lyftstycket för att minimera instabilitet samt ta upp momentet som skapas mellan ïŹ‚Ă€nsmutter och trapets- skruv. StyrstĂ€ngerna Ă€r gjorda i solitt stĂ„l som Ă€r gĂ€ngade i Ă€nden för fĂ€stning med skruv. MotorhĂ„llare En motorhĂ„llare gjord i bockad plĂ„t anvĂ€nds för att undvika att stegmotorn utsĂ€tts för kraft- och momentbelastning eftersom den inte Ă€r konstruerad för att hantera detta. Stegmotor Vid anvĂ€ndning av stegmotor fĂ„s en hög precision pĂ„ rotationen vilket möjliggör att ingen Ă„terkoppling pĂ„ hur högt lyftstycket har höjts eller sĂ€nkts, utan den kan förutbestĂ€mmas. NĂ€r en av de fyra elektromagneterna strömsĂ€tts ïŹ‚yttas den kuggformade rotorn ett steg vilket ger upphov till rotation och antalet steg som krĂ€vs för ett helt varv Ă€r beroende pĂ„ motortyp. Stegmotorn drivs av en separat drivkrets som sköter strömfördelningen mellan faserna frĂ„n en extern spĂ€nnings- kĂ€lla. Drivkretsen styrs i sin tur av Arduino:n som sĂ€tter antalet steg och riktning som skall köras. För en principskiss över en stegmotor, se ïŹgur 6.2. Plattform Plattformen Ă€r utformad som ett bord; en platta gjord i tvĂ„ millimeter tjock plĂ„t med fyra stycken kvadratiska ben i stĂ„l. Benen Ă€r hopsvetsade med plattan och fĂ€stes pĂ„ ramen pĂ„ AGV:n. 50
  • 63. KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL Figur 6.2: Principsskiss av en stegmotor [12] 6.4 Implementering Eftersom stora delar av den beïŹntliga lyftanordning ansĂ„gs robust och lĂ€mpad för Ă€ndamĂ„let förenklades tillverkningen och fokus kunde lĂ€ggas pĂ„ de omrĂ„den dĂ€r förbĂ€ttringsmöjligheter identiïŹerats. I CATIA konstruerades modeller och rit- ningar upprĂ€ttades som grund för tillverkningsprocessen, se appendix E. Tillverk- ningen bestod av bearbetning av stĂ„l, trĂ€ och plĂ„t och ïŹ‚era tillverkningsmetoder utnyttjades, bland annat frĂ€sning, bockning och borrning. Eftersom modiïŹeringar gjorts pĂ„ lyftanordningen genomfördes tester för att un- dersöka hur vĂ€l den modiïŹerade lösningen klarar av att utföra den givna uppgiften. Stegmotorn, med hĂ„llkraften 0.098 Nm, var inte tillrĂ€ckligt stark för att lyfta den av kravspeciïŹkationen deïŹnierade lasten utan klarade en vikt pĂ„ ungefĂ€r ett kg, se appendix A. För att Ă„tgĂ€rda problemet testades först att minska friktionen ge- nom att smörja trapetsskruven och styrstĂ€ngerna, detta var dock inte tillrĂ€ckligt eïŹ€ektivt. Med alla andra ingĂ„ende variabler kĂ€nda i ekvation 6.1, kunde friktionskoeïŹƒcien- ten berĂ€knas, se appendix D. UtifrĂ„n berĂ€kningen togs ett teoretiskt momentkrav pĂ„ en ny motor fram. En ny stegmotor införskaïŹ€ades med hĂ„llkraften 1.1 Nm vilket innebar att den var cirka tio gĂ„nger starkare Ă€n den föregĂ„ende stegmotorn. Den nya stegmotorn var dock betydligt större, sett till bĂ„de axelns samt motor- husets dimensioner, vilket ledde till att ytterligare modiïŹeringar var tvungna att göras. Trapetsskruven gick inte att fĂ„ pĂ„ stegmotorns axel och dĂ€rför gjordes hĂ„let pĂ„ trapetsskruven större. De var samma problem med motorhĂ„llaren som hĂ„ller motorn pĂ„ plats pĂ„ lyftplattformen, den var för liten och en ny tillverkades. I helhet medförde modiïŹeringen smĂ„ förĂ€ndringar och dĂ€rmed att lyftanordningens utformning i stort sett blev som planerat. 51
  • 64. KAPITEL 6. ANORDNING FÖR TRANSPORT AV MATERIAL ModiïŹeringarna som förklaras under kapitel 6.2.1 genomfördes under labbtimmar i verkstaden och för att höja den estetiska upplevelsen lackades allt förutom styr- stĂ€ngerna svart. NĂ€r vĂ€l nĂ€mnda modiïŹeringar var gjorda monterades lyftanordningen ihop och sattes pĂ„ plats pĂ„ AGV:n för att integreras med resterande delsystem. Tester ut- fördes för att undersöka hur vĂ€l lösningen uppfyllde de satta kraven och önskemĂ„len i kravspeciïŹkationen, resultatet redovisas under kapitel 7. Slutligen erhölls en lyftanordning som efter modiïŹeringar tillĂ„ter ett stabilare lyft i jĂ€mförelse med den ursprungliga prototypen. I ïŹgur 6.3 ses en bild pĂ„ det slutgiltiga konceptet. Figur 6.3: Det slutgiltiga konceptet 52
  • 65. Kapitel 7 Integrering av delsystem Som en avslutande del i utvecklingen av ett autonomt lagerhanteringssystem be- höver alla delprocesser som beskrivits tidigare integreras. För att de olika delsyste- men (navigering, överordnade systemet, kollisionsundvikning samt lyftanordning) pĂ„ ett eïŹ€ektivt sĂ€tt ska fungera ihop mĂ„ste kommunikationen mellan de olika de- larna utformas. Vad som skickas emellan de olika komponenterna och hur det gĂ„r till beskrivs mer ingĂ„ende och Ă€ven de justeringarna som gjordes för att möjliggö- ra integreringen. Nedan följer en genomgĂ„ng av integreringsarbetet samt lite mer ingĂ„ende förklaringar och motiveringar till val som gjorts. 7.1 FörïŹ‚yttning För att förïŹ‚ytta AGV:n mellan koordinatsystemets kĂ€nda positioner behövde hĂ€n- syn tas till de olika delsystemen som skall kunna verka samtidigt och tillsammans. Flera kompromisser krĂ€vdes för att möjliggöra integreringen av dessa delsystem. 7.1.1 Död rĂ€kning För att förïŹ‚ytta sig mellan koderna behöver AGV:n information om antingen av- stĂ„nd eller tid och hastighet. Arduino:n klarar att ïŹ‚ytta AGV:n en given strĂ€cka via feedback frĂ„n sina encoders. Ett alternativ till detta Ă€r att skicka körkomman- dot till Arduino:n och efter en viss tid skicka ett stoppkommando. Eftersom förïŹ‚yttningen via en angiven strĂ€cka innebar att Arduino:n var tvung- en att tolka motorenas encoders under hela förïŹ‚yttningen kunde inte eventuel- 53
  • 66. KAPITEL 7. INTEGRERING AV DELSYSTEM la stoppkommandon frĂ„n serieporten upptĂ€ckas. För att kollisionsundvikningen skulle kunna implementeras krĂ€vdes att serieporten kunde lĂ€sa under förïŹ‚yttning. Detta gjorde att död rĂ€kning implementerades hos myRIO:n för att bestĂ€mma förïŹ‚yttningens avstĂ„nd. Se kap 7.1.2 för utrĂ€kningar gĂ€llande tider. För att öka systemets eïŹ€ektivitet genom att minska transporttiderna utvĂ€rderades möjligheten för AGV:n att förïŹ‚ytta sig dubbla avstĂ„nd innan den positionsĂ„ter- kopplar. För att lösa detta programmerades servern att vid lĂ€ngre strĂ€ckor skicka en siïŹ€ra efter förïŹ‚yttningskommandot. Denna siïŹ€ra anvĂ€nds som en multipel för den tid som AGV:n sedan fĂ€rdas. HĂ€nsyn var tvungen att tas till den förlora- de strĂ€ckan som AGV:n fĂ€rdas under acceleration och retardation varvid detta tidsbidrag adderades till den totala tiden att fĂ€rdas. 7.1.2 Matematisk modell vid förïŹ‚yttning DĂ„ funktionerna som ïŹnns implementerade i Arduino:ns programbibliotek krĂ€ver en tid för att accelerera och retardera nĂ€r en förïŹ‚yttning utförs krĂ€vdes en ma- tematisk modell. Modellen anvĂ€ndes för att berĂ€kna tiden som rörelsen behövde utföras för att fĂ„ roboten att förïŹ‚ytta sig en viss strĂ€cka i sidled, lĂ€ngdled och vinkel vid rotation. Modellen bygger pĂ„ ett antagande om linjĂ€r acceleration och retardation samt konstant fart dĂ€r emellan, se ïŹgur 7.1. För att berĂ€kna den tid som krĂ€vs för att förïŹ‚ytta sig en viss strĂ€cka stĂ€lldes ekvation 7.1 upp. s(t) = tup v tup t dt + tkonst v dt + tstop v − v tstop t dt (7.1) Datan frĂ„n ïŹgur 7.1 visas i tabell 7.1 Tabell 7.1: Data frĂ„n ïŹgur 7.1 Parametrar variabel VĂ€rde Enhet Hastighet v 200 mm/s Up tup 0.15 s Const tconst 0.6 s Stop tstop 0.15 s Distans s 150 mm Minst dist. − 30 mm DĂ„ tup = tstop kan tconst lösas ut och dĂ„ fĂ„s ekvation 7.2. 54
  • 67. KAPITEL 7. INTEGRERING AV DELSYSTEM Figur 7.1: Graf över AGV:ns generella rörelse tconst = s v − tup/stop (7.2) För att kunna rotera en given vinkel togs Ă€ven modell 7.2 fram, som bygger pĂ„ samma modell som tidigare, men istĂ€llet justeras robotens vinkelfel i förhĂ„llande till avlĂ€st QR-kod. DĂ„ s = α r kan ekvation 7.2 anvĂ€ndas för att bestĂ€mma den tid som krĂ€vs för att utföra en rotation av angiven vinkel. En graïŹsk illustration Ă„terïŹnns i ïŹgur 7.2. Figur 7.2: GraïŹsk beskrivning av rotationsmodell för AGV:n, d = 150mm DĂ„ det alltid krĂ€vs en acceleration och retardation vid förïŹ‚yttning kommer det uppstĂ„ en teoretiskt minsta strĂ€cka som roboten kan förïŹ‚ytta sig. Den strĂ€cka 55