Beltekjørende robotplattform: Slik kombineres Arduino, Raspberry Pi og OpenCV i et studentprosjekt

3 min lesetid

En norsk-relevant ingeniørstudent har delt et imponerende avslutningsprosjekt: en 3D-printet beltekjørende robotplattform som kombinerer mekanisk design, radiostyring og datasyn. Prosjektet er fullt dokumentert på GitHub og gir et godt utgangspunkt for alle som vil bygge egne mobile roboter.

Beltekjørende roboter er populære innen hobbyrobotikk fordi de gir god fremkommelighet på ujevnt underlag, samtidig som de er mekanisk krevende å designe riktig. Dette prosjektet viser hvordan man kan bygge en komplett plattform fra bunnen av — med alt fra CAD-modellering til sanntids bildebehandling. La oss se hva denne løsningen egentlig kan gjøre.

Mekanisk oppbygning og fremdrift

Chassiset er designet i SolidWorks og 3D-printet, noe som gjør konstruksjonen enkel å reprodusere eller tilpasse for egne behov. Roboten bruker differensiell beltestyring, altså at venstre og høyre belte styres uavhengig av hverandre for å oppnå svinger — en løsning som er robust og gir god kontroll på ulikt underlag.

Et interessant designvalg er den to-trinns girkassen, som gir mulighet til å veksle mellom hastighet og dreiemoment avhengig av bruksområdet. Dette er spesielt nyttig dersom roboten skal brukes både til rask kjøring og tyngre terrengoperasjoner.

Elektronikk og styring

Hjertet i bevegelseskontrollen er en Arduino Mega 2560, som håndterer sanntidsstyring av motorene via to BTS7960-motordrivere. Disse driverne tåler høy strøm og er godt egnet for robuste DC-motorapplikasjoner som denne.

Radiostyringen er basert på FlySky FS-i6-senderen sammen med FS-iA6B-mottakeren, som kommuniserer via iBus-protokollen. Dette gir en pålitelig og lavlatent kanal for manuell fjernstyring — en løsning mange kjenner igjen fra RC-hobbyen, men som her er integrert direkte i robotens kontrollarkitektur.

Kontrollarkitekturen er delt i to nivåer: FlySky → Arduino Mega → BTS7960 → DC-motorer, og Kamera → Raspberry Pi → Python/OpenCV → hinderdeteksjon.

Datasyn med Raspberry Pi og OpenCV

Den andre kontrolløkken håndterer bildebehandling. En Raspberry Pi 4 kjører Python-skript med OpenCV for grunnleggende hinderdeteksjon basert på kamerainput. Denne separasjonen mellom motorstyring og visuell prosessering er en fornuftig arkitektonisk beslutning — det gir bedre sanntidsytelse for de kritiske motorkommandoene, samtidig som mer regnetunge bildebehandlingsoppgaver kan kjøre uavhengig på Raspberry Pi-en.

Denne typen topartsarkitektur — hvor en mikrokontroller håndterer lavnivå motorstyring mens en enkeltkortscomputer tar seg av høynivå databehandling — er en velprøvd tilnærming i hobbyrobotikk, og gjør det enklere å feilsøke og videreutvikle hver del uavhengig.

Åpen kildekode for videre utvikling

Alt fra CAD-filer, kretsskjemaer, kildekode og en demovideo er publisert på GitHub, noe som gjør prosjektet til en fin ressurs for studenter og hobbyister som ønsker å bygge noe lignende. Prosjektet illustrerer godt hvordan man kan kombinere mekanisk design, embedded programmering og enkel maskinsyn i én sammenhengende plattform — og er et godt eksempel på hva som er mulig å oppnå med rimelig tilgjengelig maskinvare og åpne verktøy.

For de som ønsker å eksperimentere videre, gir den modulære oppbygningen rom for utvidelser — enten det er mer avansert objektgjenkjenning, autonom navigasjon eller integrasjon med rammeverk som ROS.

Kilde: ROS Discourse

Mer om sensorer og elektronikk

Se alle →