hexacopter

Autonomisering av hexacopter med hjälp av modellbaserad utveckling

I och med en snabb utveckling av mikroprocessorer, sensorer, batterier och elmotorer kan man idag med relativt billiga komponenter konstruera en multirotor som kan fås att flyga stabilit med hjälp av enkel reglerteknik. Dylika system finns tillgängliga att köpa färdiga till konsumentpris och dessa kan erbjuda viss autonomitet, såsom möjligheten att flyga till en viss koordinat eller följa en förprogrammerad rutt. Det aktuella examensarbetet syftar till att bygga ut funktionaliteten hos en färdigbyggd hexacopter för att möjliggöra autonom inomhusflygning. Detta sker med hjälp av kamera- och bildbehandlingssystem och modellbaserad utveckling med MATLAB/Simulink.

Navigering utan GPS

Den aktuella hexacopterplattformen är utrustad med ett antal sensorer såsom accelerometer, gyroskop och magnetometer som alla mäter i tre axlar. Utöver det finns en GPS-mottagare som på grund av GPS-systemets natur är obrukbar inomhus. För navigering inomhus krävs ytterligare sensorer för positionsmätning och det aktuella exjobbet utökar därför systemet med en nedåtriktad kamera. Med hjälp av algoritmer för bildanalys möjliggörs positionsmätning. En regulator, utöver den befintliga regulatorn för stabilisering under flygning, designas för positionsreglering.

Utökad hårdvara

Hexacopterns styrkort ArduPilot Mega 2.5 (ofta benämnt autopilot) är hårdvarukompatibelt med Arduino Mega 2560, vilket möjliggör mjukvaruutveckling i Arduino IDE. På styrkortet körs den tillhörande mjukvaran ArduCopter. För att ansluta en kamera används ett PandaBoard-utvecklingskort. Detta stöds av Simulink för kodgenerering, vilket innebär att all mjukvara för bildbehandling, reglering och autonomt beteende kan utvecklas direkt i Simulink. För kommunikation av mätdata och styrsignaler mellan PandaBoard och ArduPilot Mega används Ethernet och för detta ett separat Ethernetkontrollkort tillsammans med modifiering av mjukvaran ArduCopter.