What is Ros-mobile?

ROS-Mobile: Styr Robotter Direkte Fra Din Smartphone

09/04/2022

Rating: 4.18 (4792 votes)

I en verden, hvor mobilteknologi konstant udvikler sig, og robotik bliver mere og mere integreret i vores hverdag, opstår der et behov for intuitive og tilgængelige styringsværktøjer. Traditionelt har styring af robotter ofte krævet dedikeret hardware eller komplekse computeropsætninger. Men hvad hvis du kunne styre og overvåge dine robotter direkte fra lommen? Det er præcis, hvad ROS-Mobile tilbyder – en banebrydende Android-applikation designet til dynamisk kontrol og visualisering af mobile robotsystemer, der drives af Robot Operating System (ROS).

What is Ros-mobile?
ROS-Mobile is an Android application designed for dynamic control and visualization of mobile robotic system operated by the Robot Operating System (ROS). The application uses ROS nodes initializing publisher and subscriber with standard ROS messages.

Denne artikel vil dykke ned i, hvad ROS-Mobile er, hvordan den fungerer i harmoni med ROS, og vigtigst af alt, hvordan du kan komme i gang med at bruge den til at bringe dine robotprojekter til live. Vi vil udforske dens arkitektur, installationsmuligheder og de mange funktioner, der gør den til et uundværligt værktøj for robotentusiaster og professionelle.

Indholdsfortegnelse

Hvad er Robot Operating System (ROS)?

Før vi dykker ned i ROS-Mobile, er det essentielt at forstå fundamentet: Robot Operating System (ROS). ROS er ikke et egentligt operativsystem i traditionel forstand, men snarere et robot-middleware-system. Det blev udviklet til at køre på Ubuntu Linux og tjener som en fleksibel ramme for at skrive robotsoftware. ROS muliggør en række kritiske funktioner, der er afgørende for komplekse robotsystemer:

  • Hardware-abstraktion: ROS giver et standardiseret interface til forskellig robot-hardware, hvilket gør det lettere at genbruge kode på tværs af forskellige robotplatforme.
  • Meddelelsesudveksling: Det faciliterer meddelelsesudveksling mellem individuelle processer (kaldet 'noder'). Disse noder kan køre på samme computer eller distribueres på tværs af flere computere i et netværk, hvilket skaber et distribueret system.
  • Pakkehåndtering: ROS har et robust pakkehåndteringssystem, der organiserer kode i genbrugelige moduler, hvilket fremmer samarbejde og genanvendelse af software.
  • Værktøjer og biblioteker: Systemet inkluderer en bred vifte af værktøjer og biblioteker til simulering, visualisering, navigation og manipulation.

ROS har revolutioneret feltet for robotik ved at skabe et fælles sprog og en fælles platform for udvikling. Dog har der historisk set manglet aktiv support for ROS-applikationer til mobile enheder som smartphones og tablets. Dette hul er præcis, hvad ROS-Mobile søger at udfylde.

Hvad er ROS-Mobile?

ROS-Mobile er en innovativ Android-applikation, der er specielt designet til dynamisk kontrol og visualisering af mobile robotsystemer, der opererer under ROS. Den fungerer som en bro mellem din Android-enhed og dit ROS-master, hvilket giver dig mulighed for at interagere med dine robotter på en hidtil uset måde.

Applikationen udnytter ROS-noder ved at initialisere 'publishers' og 'subscribers' med standard ROS-meddelelser. Dette betyder, at den kan sende kommandoer til robotten (f.eks. via en virtuel joystick) og modtage data fra robotten (f.eks. kamerabilleder eller kortdata). Den overordnede kode-arkitektur følger Model-View-ViewModel (MVVM) mønstret, hvilket bidrager til applikationens stabilitet og gør den yderst tilpasningsdygtig. MVVM adskiller brugergrænsefladen (View) fra forretningslogikken (Model) ved hjælp af et ViewModel, hvilket resulterer i en renere, mere testbar og lettere vedligeholdelig kodebase. For brugeren betyder dette en robust og pålidelig app, der kan tilpasses fremtidige behov.

ROS-Mobile er udviklet af Nils Rottmann, Nico Studt, Floris Ernst og Elmar Rueckert, og deres arbejde blev publiceret i 2020. Den seneste stabile version er 2.0.0, hvilket indikerer en moden og velafprøvet applikation.

Nuværende Understøttede ROS-Noder

ROS-Mobile understøtter en række vigtige ROS-noder, der dækker grundlæggende behov for robotkontrol og visualisering. Yderligere noder vil sandsynligvis blive tilføjet i fremtidige versioner, og det er også muligt at tilføje egne noder for mere specialiserede anvendelser. De aktuelt understøttede noder inkluderer:

  • Debug: Ligner `rostopic echo`, giver dig mulighed for at overvåge ROS-meddelelser.
  • Joystick (geometry_msgs/Twist): Giver en virtuel joystick til at sende bevægelseskommandoer til robotten, typisk hastighedsvektorer (lineær og vinkelhastighed).
  • GridMap (nav_msgs/OccupancyGrid): Viser besættelsesgitterkort, som er afgørende for robotnavigation og miljøkortlægning.
  • Camera (sensor_msgs/Image, sensor_msgs/CompressedImage): Tillader visning af live videofeeds fra robotkameraer.
  • GPS (sensor_msgs/NavSatFix): Modtager og viser GPS-data for robotter udstyret med navigation.
  • Button (std_msgs/Bool): Sender en simpel sand/falsk-værdi, nyttig til at udløse begivenheder eller skifte tilstande på robotten.
  • Logger (std_msgs/String): Viser tekstbaserede logbeskeder fra robotten, afgørende for fejlfinding og overvågning.

Sådan Installerer Du ROS-Mobile

Installationen af ROS-Mobile er designet til at være så ligetil som muligt, med flere metoder til at imødekomme forskellige brugerbehov og færdighedsniveauer. Den mest anbefalede og enkleste metode er at downloade appen direkte fra Google Playstore.

How do I install Ros-mobile?
Simply go to the Google Playstore Website of the ROS-Mobile app and download it. It will be installed automatically The following Nodes are currently supported by ROS-Mobile.

Installationsmetoder:

Der er tre primære måder at installere ROS-Mobile på din mobile enhed:

  1. Download fra Google Playstore (Anbefalet): Dette er den nemmeste og sikreste metode. Du skal blot gå til ROS-Mobile appens side på Google Playstore og downloade den. Appen installeres automatisk, og du vil modtage fremtidige opdateringer direkte.
  2. Installer nuværende APK: Hvis du foretrækker at installere manuelt eller ikke har adgang til Google Playstore, kan du downloade den aktuelle APK-fil (Android Package Kit) og installere den direkte.
  3. Byg fra kildekode: For udviklere og avancerede brugere er det muligt at downloade kildekoden fra GitHub og bygge appen selv ved hjælp af Android Studio. Dette giver den højeste grad af kontrol og tilpasningsmuligheder.

Trin-for-trin Installationsvejledning:

1. Download fra Google Playstore:

Den mest brugervenlige metode. Gå simpelthen til ROS-Mobile på Google Playstore (bemærk: links er ikke tilladt i det endelige output, dette er kun til min reference) og tryk på 'Installer'. Appen håndterer resten automatisk.

2. Installer nuværende APK:

  • Download den aktuelle ROS-Mobile version som en APK-fil. Gem den et sted, der er let at finde på din mobile enhed.
  • På din Android-enhed skal du tillade installation af apps fra tredjepartskilder. Dette gøres typisk ved at gå til Menu > Indstillinger > Sikkerhed og markere afkrydsningsfeltet for Ukendte Kilder. Bemærk, at placeringen kan variere lidt afhængigt af din Android-version.
  • Find derefter den downloadede APK-fil på din enhed, tryk på den, og tryk dereker på 'Installer'.

3. Byg fra Kildekode:

Denne metode er for dem, der ønsker at dykke dybere ned i koden eller tilpasse appen.

  • Installer Android Studio version 3.6.1 eller højere på din computer.
  • Download hele repository'et (Master Branch) fra ROS-Mobile's GitHub-side.
  • Åbn projektet i Android Studio.
  • Byg koden (brug 'Make Project' knappen).
  • Forbind din mobile enhed til din PC via USB. Sørg for, at du har aktiveret udviklerindstillinger og ADB (Android Debug Bridge) debugging på din mobile enhed. Du skal muligvis også installere de nødvendige drivere til USB og ADB på din PC.
  • Installer softwaren på din enhed ved at vælge 'Run app' i Android Studio.

Krav til enheden: Uanset installationsmetode, skal din mobile Android-enhed køre Android Version 5.0 (Lollipop) eller højere for at ROS-Mobile kan fungere korrekt.

Praktisk Anvendelse: Et Kort Eksempel

For at illustrere ROS-Mobiles funktionalitet kan vi tage et eksempel med kortlægning af et lejlighedsmiljø ved hjælp af en differential-drive robot. Denne opgave, der typisk kræver en betydelig opsætning, kan nu forenkles med ROS-Mobile:

  1. Forbindelse til ROS Master: Først forbindes applikationen til ROS Master, der kører differential-drive robotten, over et trådløst LAN. Dette gøres ved at indtaste den korrekte IP-adresse i appens MASTER-konfigurationsfane.
  2. Tilføjelse af ROS-noder: I DETAILS-fanen tilføjes de nødvendige ROS-noder. For dette eksempel vil vi tilføje en 'Joystick'-metode til at sende geometry_msgs/Twist til et cmd_vel-emne, hvilket muliggør kontrol af robotten. Samtidig tilføjes en 'GridMap'-metode til at abonnere på 'map'-emnet for visualisering af det genererede besættelsesgitterkort.
  3. Visualisering og Kontrol: I VIZ-fanen vises det optagne besættelsesgitterkort, og joysticken bliver tilgængelig. Joysticken kan bruges via berøring til at sende kontrolinput over cmd_vel-emnet til robotten, mens du observerer kortlægningen i realtid.

Dette eksempel viser, hvor intuitivt og effektivt ROS-Mobile gør det muligt at interagere med komplekse robotsystemer, hvilket gør det til et ideelt værktøj for både forskning og hobbyprojekter.

Hvorfor Vælge ROS-Mobile? Fordele og Anvendelsesmuligheder

ROS-Mobile udfylder et kritisk hul i ROS-økosystemet ved at bringe robust mobil kontrol og visualisering til Android-platformen. De primære fordele inkluderer:

  • Portabilitet: Styr og overvåg dine robotter fra enhver lokation med din smartphone. Du er ikke længere bundet til en stationær computer.
  • Realtidsinteraktion: Med ROS-noder, der initialiserer publishers og subscribers, muliggør appen realtidsfeedback og kontrol, hvilket er essentielt for dynamiske robotopgaver.
  • Fleksibilitet: MVVM-arkitekturen gør appen yderst tilpasningsdygtig og nem at udvide med nye funktioner og noder.
  • Visualisering: Muligheden for at visualisere data som gitterkort og kamerabilleder direkte på din telefon giver en dybere forståelse af robotens omgivelser og handlinger.
  • Tilgængelighed: Nem download fra Google Playstore gør den tilgængelig for et bredt publikum, fra studerende til professionelle ingeniører.
  • Fællesskabsstøtte: Med kildekode tilgængelig på GitHub og en detaljeret wiki, er der et fundament for fællesskabsdrevet udvikling og support.

Anvendelsesmulighederne er brede, fra uddannelse og forskning til industrielle applikationer og hobbyprojekter, hvor mobil og fleksibel robotkontrol er nødvendig.

Sammenligning af Installationsmetoder

InstallationsmetodeSværhedsgradKravFordeleUlemper
Google PlaystoreMeget NemAndroid 5.0+Automatisk installation og opdateringer, ingen teknisk viden påkrævet.Kræver adgang til Google Play Services.
Installer APK manueltNemAndroid 5.0+, Tillad 'Ukendte Kilder'Ingen Google Play Services nødvendig, hurtig manuel installation.Ingen automatiske opdateringer, kræver manuel filoverførsel og sikkerhedsindstilling.
Byg fra kildekodeAvanceretAndroid Studio 3.6.1+, Android 5.0+, PC, USB-drivere, udviklerindstillinger.Fuld kontrol over koden, mulighed for tilpasning, bidrage til udvikling.Kræver teknisk ekspertise, tidskrævende opsætning, ingen automatiske opdateringer.

Ofte Stillede Spørgsmål (FAQ) om ROS-Mobile

Hvad er minimumskravene for at køre ROS-Mobile?

Du skal have en mobil Android-enhed med Android Version 5.0 (Lollipop) eller højere.

Kan jeg bruge ROS-Mobile med enhver robot?

ROS-Mobile er designet til at fungere med mobile robotsystemer, der opererer under Robot Operating System (ROS). Din robot skal være ROS-aktiveret og konfigureret til at kommunikere via ROS-noder.

What is a Robotic Operating System (ROS)?
The Robot Operating System (ROS) was developed to act as a robotic middleware system running on Ubuntu Linux which allows, amongst others, hardware abstraction, message-passing between individual processes and package management. However, active support of ROS applications for mobile devices, such as smarthphones or tablets, are missing.

Er ROS-Mobile gratis at bruge?

Ja, ROS-Mobile er gratis og open source, licenseret under MIT-licensen. Du kan downloade den fra Google Playstore eller bygge den fra kildekode via GitHub.

Hvad betyder Model-View-ViewModel (MVVM) arkitekturen for mig som bruger?

MVVM-arkitekturen sikrer, at applikationen er stabil og højt tilpasningsdygtig. For dig som bruger betyder det en mere pålidelig oplevelse med færre fejl og potentiale for fremtidige opdateringer og funktioner.

Kan jeg tilføje mine egne noder til ROS-Mobile?

Ja, selvom appen understøtter en række standardnoder, er det designet til at tillade nem tilføjelse af yderligere noder. Detaljerede instruktioner om, hvordan du tilføjer dine egne noder, findes i ROS-Mobile wiki'en på GitHub.

Hvor kan jeg finde mere information og tutorials?

Du kan finde en detaljeret README med installationsinstruktioner på GitHub-siden, samt tutorials, eksempelapplikationer og meget mere på GitHub Wiki'en.

Hvem har udviklet ROS-Mobile?

Hovedudviklerne er Nils Rottmann og Nico Studt, med bidrag fra Marcus Davi, Dragos Circa og Sarthak Mittal.

Konklusion

ROS-Mobile repræsenterer et betydeligt fremskridt inden for mobil robotkontrol. Ved at kombinere kraften fra Robot Operating System med bekvemmeligheden ved en Android-smartphone, giver den brugere et kraftfuldt og fleksibelt værktøj til at interagere med deres robotsystemer. Uanset om du er en erfaren robotiker, der søger en bærbar kontroløsning, eller en studerende, der lige er begyndt på din robotrejse, tilbyder ROS-Mobile en intuitiv og tilgængelig platform. Dens open source-natur og veldokumenterede ressourcer på GitHub sikrer, at den vil fortsætte med at udvikle sig og imødekomme behovene i det voksende robotikfællesskab. Fremtiden for mobil robotkontrol er her, og den passer lige i din lomme.

Hvis du vil læse andre artikler, der ligner ROS-Mobile: Styr Robotter Direkte Fra Din Smartphone, kan du besøge kategorien Teknologi.

Go up