Robotikk 101 Robotikk handler om å bygge maskiner som kan sanse, bestemme og handle i den fysiske verden under usikkerhet. En mye brukt standardramme (ISO 8373) beskriver en robot som en programmert, aktivert mekanisme med en viss grad av autonomi, som beveger seg i sitt miljø for å utføre tiltenkte oppgaver. Se for deg en robot som en sløyfe som kjører tusenvis av ganger i minuttet: Det begynner med å sanse. Kameraer, LiDAR, radar, IMU-er, kodere – hver gir et delvis, støyende bilde av verden og robotens egen kropp. Roboten gjør deretter tilstandsestimering, som er en fancy måte å si på: "gitt støyende målinger, hvor er jeg, hvor fort beveger jeg meg, og hvor usikker er jeg på det?" Uten anslag er alle beslutninger nedstrøms bygget på sand. Når roboten har et brukbart estimat, gjør den persepsjon: oppdager objekter, ledig plass, hindringer og noen ganger semantiske etiketter ("dette er en pall," "dette er et menneske," "dette er en døråpning"). Persepsjon er der moderne maskinlæring hjelper mye, men det er også der robotikk blir straffet av kanttilfeller: reflekterende overflater, støv, regn, bevegelsesuskarphet, merkelig geometri. Så kommer planleggingen. Planleggingen er vanligvis lagdelt: ➤ En overordnet planlegger bestemmer hva som skal gjøres videre (gå til gang 7, velg punkt A, gå tilbake til stasjonen) ➤ En bevegelsesplanlegger bestemmer hvordan den skal bevege seg uten kollisjoner og innenfor fysiske begrensninger ➤ En banegenerator jevner ut bevegelsen slik at den faktisk er kjørbar (ingen umulige akselerasjoner eller rykk) Kontroll omdanner den planen til motoriske kommandoer. Dette er delen mange undervurderer: roboten «beveger seg ikke til et punkt», den må kontinuerlig korrigere seg selv mens verden skyver tilbake (hjulslipp, nyttelast skifter, friksjonsendringer, ledd varmes opp). Under alt dette ligger maskinvarens realitet: mekanikk, aktuatorer, strøm og termiske grenser. En robot med god programvare, men svak aktivering eller dårlig sensor, blir raskt upålitelig. Moderne roboter er sjelden en enkelt monolitt av programvare. De er systemer sammensatt av moduler som publiserer og abonnerer på datastrømmer. Dette er en av grunnene til at ROS 2 er mye brukt som et system-rammeverk: det oppmuntrer til en "graf av noder" som utveksler meldinger over temaer, med justerbar kommunikasjonspålitelighet via QoS-innstillinger.