Publisert Legg igjen en kommentar

Sensorfusjon i autonome kjøretøy: Hvordan flere sensorer skaper sikrere selvkjørende biler

En ny studie av 66 forskningsartikler avslører hvordan avansert sensorfusjon kan være nøkkelen til pålitelige selvkjørende biler. Teknologien kombinerer data fra flere sensorer for å skape et komplett bilde av omgivelsene.

Utviklingen av autonome kjøretøy har akselerert kraftig de siste årene, men en av de største utfordringene er fortsatt å oppnå pålitelig persepsjon av omgivelsene. Her kommer sensorfusjon inn som en kritisk teknologi som kombinerer data fra flere sensortyper for å skape et mer robust og nøyaktig bilde av kjøremiljøet.

Sensorteknologier i moderne autonome systemer

Dagens autonome kjøretøy benytter et arsenal av sensorer, hver med sine unike styrker og begrensninger:

Kameraer gir høyoppløselig visuell informasjon og er relativt rimelige, men sliter i dårlig lys og værforhold. Moderne RGB-kameraer opererer typisk med oppløsninger på 1920×1080 piksler eller høyere, med bildehastigheter på 30-60 fps.

LiDAR-systemer skaper detaljerte 3D-punktskyer ved å måle avstand med laserlys. Dagens LiDAR-enheter kan operere med rekkevidder på opptil 300 meter og nøyaktighet ned til få centimeter, men er fortsatt kostbare og kan påvirkes av tett regn eller snø.

Radar fungerer godt i alle værforhold og måler både avstand og hastighet til objekter, men har lavere oppløsning enn kameraer og LiDAR. Automotive-radar opererer typisk i 77-81 GHz-båndet.

Ultralydsensorer brukes primært for nærhetsdeteksjon og parkering, med rekkevidder på 0,2-8 meter. GNSS/IMU-systemer gir posisjonering og orientering med nøyaktighet ned til centimeter-nivå når RTK-korreksjon benyttes.

Fusjonsarkitekturer: Fra tidlig til avansert integrasjon

Studien identifiserer fire hovedkategorier av fusjonsarkitekturer:

Tidlig fusjon kombinerer rådata fra sensorer før prosessering, mens sen fusjon først prosesserer data fra hver sensor separat før sammenslåing.

Tidlig fusjon (Early Fusion) kombinerer rådata direkte, noe som gir maksimal informasjonsutnyttelse men krever høy prosessorkraft. Sen fusjon (Late Fusion) prosesserer hver sensor separat før beslutningsintegrasjon – enklere å implementere men kan miste viktig korrelasjonsinformasjon.

Mellomfusjon (Mid-level Fusion) kombinerer delvis prosesserte data og representerer en balanse mellom kompleksitet og ytelse. Den nyeste utviklingen er transformer-baserte arkitekturer som benytter kunstig intelligens for å automatisk lære optimal integrasjon av sensordata.

Praktiske implikasjoner og fremtidsperspektiver

For utviklere av autonome systemer åpner disse teknologiene for spennende muligheter. Moderne mikrokontrollere som ARM Cortex-A78 eller dedikerte AI-chips kan håndtere kompleks sensorfusjon i sanntid. Utviklingsplattformer som ROS2 (Robot Operating System) tilbyr standardiserte grensesnitt for sensorintegrasjon.

Utfordringer inkluderer fortsatt høye kostnader for LiDAR-systemer, beregningskapasitet for sanntidsprosessering, og behovet for robuste algoritmer som håndterer sensorfeil. Forskningen viser at hybrid-arkitekturer som kombinerer regel-baserte systemer med maskinlæring gir mest lovende resultater.

Kilde: Sensors (Basel, Switzerland)

Publisert Legg igjen en kommentar

OpenSCAD: Programmatisk 3D-modellering for ingeniorer

OpenSCAD er det kraftigste verktøyet for ingeniører som vil skape 3D-modeller med presisjon og kontroll. I stedet for å dra og slippe geometri, skriver du kode som genererer eksakte, parametriske design som kan tilpasses i sanntid.

Hva du trenger

  • OpenSCAD software (gratis nedlasting fra openscad.org)
  • Teksteditor eller OpenSCAD’s innebygde editor
  • 3D-printer for å teste design (finn utvalg hos RoboNordic)
  • Grunnleggende programmeringskunnskap (valgfritt, men nyttig)

Hvorfor velge OpenSCAD?

Der tradisjonelle CAD-programmer bruker grafiske grensesnitt, bygger OpenSCAD modeller gjennom konstruktiv solid geometri (CSG). Dette gjør det ideelt for tekniske deler hvor presise mål og parametriske endringer er kritiske. Tenk deg å kunne endre alle dimensjoner på et komplekst design ved å justere noen få variabler øverst i koden.

OpenSCAD-syntaks: Grunnleggende struktur

OpenSCAD-kode følger en funksjonsbasert struktur hvor hver operasjon returnerer et geometrisk objekt. Her er den grunnleggende syntaksen:


// Kommentarer starter med //
parameter = verdi;
operasjon() {
geometri;
}

Alle kommandoer avsluttes med semikolon, og operasjoner som påvirker underliggende geometri bruker krøllparenteser.

Primitiver: Byggesteinene

OpenSCAD har seks grunnleggende 3D-primitiver som danner basis for alle modeller:

Kubiske former


cube([20, 10, 5]); // Boks med spesifiserte dimensjoner
cube(10); // Kube med alle sider = 10
cube([10, 10, 10], center=true); // Sentrert kube

Sylindriske former


cylinder(h=20, r=5); // Sylinder: høyde 20, radius 5
cylinder(h=15, r1=8, r2=3); // Konisk: ulik radius topp/bunn
sphere(r=10); // Kule med radius 10

Tips: Bruk $fn=50 øverst i koden for å øke oppløsningen på buede overflater. Høyere verdier gir jevnere kurver, men øker renderingstiden.

Transformasjoner: Flytte og manipulere geometri

Transformasjoner lar deg posisjonere, rotere og skalere geometri i rommet:

Posisjonering og orientering


translate([10, 5, 0]) // Flytt langs x, y, z-akser
cube(5);

rotate([0, 0, 45]) // Roter 45 grader rundt z-aksen
cube(10);

scale([2, 1, 0.5]) // Skaler ulike faktorer per akse
sphere(10);

Boolean-operasjoner

Disse operasjonene kombinerer geometri på kraftige måter:


union() { // Forening (standard hvis ikke spesifisert)
cube(10);
cylinder(h=15, r=3);
}

difference() { // Subtraksjon
cube(10);
cylinder(h=12, r=4);
}

intersection() { // Kun overlappende volum
cube(10);
sphere(8);
}

Moduler: Gjenbrukbare komponenter

Moduler er OpenSCADs måte å organisere og gjenbruke kode. De fungerer som funksjoner som genererer geometri:


module skrue(lengde=20, diameter=4, hode_diameter=8) {
union() {
cylinder(h=lengde, r=diameter/2); // Skruestamme
cylinder(h=2, r=hode_diameter/2); // Skruehode
}
}

// Bruk modulen
skrue(lengde=30, diameter=5);
skrue(lengde=15, diameter=3, hode_diameter=6);

Tips: Organiser komplekse prosjekter ved å dele moduler i separate filer og bruke include <filnavn.scad> eller use <filnavn.scad> for å importere dem.

Parametrisk design: Kraften i variabler

Det virkelige potensialet i OpenSCAD ligger i parametrisk design. Ved å definere alle kritiske mål som variabler, kan du raskt tilpasse design:


// Parametere for en teknisk boks
lengde = 50;
bredde = 30;
hoyde = 20;
vegg_tykkelse = 2;
skrue_diameter = 3;
skrue_avstand = 5;

module teknisk_boks() {
difference() {
// Ytre boks
cube([lengde, bredde, hoyde]);

// Indre hulrom
translate([vegg_tykkelse, vegg_tykkelse, vegg_tykkelse])
cube([lengde-2*vegg_tykkelse,
bredde-2*vegg_tykkelse,
hoyde]);

// Skruehull i hjørner
for(x = [skrue_avstand, lengde-skrue_avstand])
for(y = [skrue_avstand, bredde-skrue_avstand])
translate([x, y, -1])
cylinder(h=vegg_tykkelse+2, r=skrue_diameter/2);
}
}

teknisk_boks();

Tips: Bruk for-løkker og matematiske funksjoner for å skape komplekse, repeterende mønstre. OpenSCAD støtter trigonometriske funksjoner, arrays og betingede uttrykk.

Avanserte teknikker

Linear og rotasjonell ekstrudering

Lag 3D-objekter fra 2D-profiler:


linear_extrude(height=10) // Trekk 2D-form oppover
circle(r=5);

rotate_extrude(angle=360) // Roter rundt z-aksen
translate([10, 0])
circle(r=2);

Minkowski-sum og hull()

Disse operasjonene gir avanserte geometriske muligheter:


minkowski() { // Avrund kanter
cube([10, 10, 1]);
sphere(r=2);
}

hull() { // Konveks form rundt objekter
translate([0, 0, 0]) sphere(r=3);
translate([10, 10, 10]) sphere(r=3);
}

Vanlige feil

  • Glemte semikolon: Alle kommandoer må ende med semikolon. Manglende semikolon gir parseringsfeil.
  • Z-fighting i boolean-operasjoner: Når flater ligger eksakt oppå hverandre, bruk små offset-verdier (±0.01) for å unngå renderingsproblemer.
  • For høy oppløsning: Store $fn-verdier gjør OpenSCAD treg. Start med $fn=20-50 under utvikling.
  • Non-manifold geometri: Sørg for at alle objekter har lukket, konsistent geometri. Bruk F12 (render) for å sjekke om modellen er gyldig for 3D-printing.
  • Manglende parenteser i moduler: Selv moduler uten parametere trenger parenteser: min_modul(); ikke min_modul;

Fra kode til fysisk objekt

Når modellen er klar, eksporter til STL-format (F6 for render, deretter File > Export > STL). Denne filen kan importeres direkte i slicer-software for 3D-printing. OpenSCADs parametriske tilnærming gjør det enkelt å justere dimensjoner basert på testutskrifter og toleransekrav.

OpenSCAD åpner en helt ny verden av presis, kodestyrt 3D-modellering. Med disse grunnleggende ferdighetene kan du skape alt fra enkle tekniske deler til komplekse, parametriske systemer som tilpasser seg automatisk til ulike krav.

Publisert Legg igjen en kommentar

Autonom navigasjon med LeKiwi-robot og Nav2 – komplett integrasjon av ROS2-systemer

**Foxglove har samarbeidet med robotikk-utvikler Aditya Kamath om å demonstrere autonom navigasjon på LeKiwi holonomisk robot. Prosjektet viser en imponerende integrasjon av Nav2, ros2_control, lokalisering og SLAM-teknologi. Dette eksemplet illustrerer hvordan moderne ROS2-verktøy kan kombineres for å skape sofistikerte navigasjonsløsninger.**

LeKiwi – En holonomisk robotplattform

LeKiwi-roboten representerer en elegant tilnærming til holonomisk bevegelse, hvor roboten kan bevege seg i alle retninger uten å måtte rotere først. Denne egenskapen gjør den ideell for autonom navigasjon i trange rom og komplekse miljøer.

Den holonomiske designen gir flere fordeler:

• Bevegelse i alle retninger uten rotasjon
• Økt manøvrerbarhet i trange områder
• Optimaliserte baneplaner gjennom Nav2
• Redusert tid for komplekse navigasjonsoppgaver

Nav2-integrasjon og systemarkitektur

Prosjektet demonstrerer en helhetlig tilnærming til robotnavigasjon ved å integrere flere kritiske ROS2-komponenter. ros2_control håndterer motorkontrollen og gir et standardisert grensesnitt for robotens aktuatorer. Dette muliggjør sømløs kommunikasjon mellom Nav2s planleggingsalgoritmer og robotens fysiske bevegelsessystemer.

SLAM-funksjonen (Simultaneous Localization and Mapping) lar roboten bygge kart av miljøet samtidig som den lokaliserer seg selv. Dette er fundamentalt for autonom drift i ukjente omgivelser. Lokaliseringsystemet bruker sensorfusjon for å opprettholde nøyaktig posisjonering under bevegelse.

Praktiske anvendelser og videre utvikling

Denne integrasjonen åpner for numerous praktiske bruksområder:

Industrielle applikasjoner: Automatiserte lagersystemer, materialhandling og inspeksjonsoppgaver kan dra nytte av den presise navigasjonen og holonomiske bevegelsen.

Forsknings- og utdanningsprosjekter: Prosjektet gir et solid fundament for studenter og forskere som ønsker å eksperimentere med avanserte navigasjonsalgoritmer.

Kommersielle roboter: Serviceroboter i kontormiljøer, hoteller eller helseinstitusjoner kan implementere lignende systemer for autonom navigasjon.

Kompatibiliteten med ROS2s økosystem sikrer at løsningen kan tilpasses ulike robotplattformer og sensorkonfigurasjoner. Dette gjør det mulig å skalere teknologien fra prototyper til produksjonsklar robotikk.

Samarbeidet mellom Foxglove og Aditya Kamath demonstrerer hvordan åpen kildekode-samfunnet driver innovasjon innen robotikk fremover, og gir utviklere tilgang til avanserte navigasjonskapabiliteter som tidligere kun var tilgjengelige for store forskningsinstitutter.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

Kunstig intelligens styrer autonome fartøy: Slik fungerer maskinlæring i maritime roboter

Autonome overflatefartøy (USV) blir stadig smartere takket være avansert maskinlæring. Reinforcement learning gir disse robotene evnen til å navigere trygt gjennom komplekse farvann med real-time hinderdeteksjon. La oss utforske teknologien som revolusjonerer maritim robotikk.

Hvordan fungerer intelligent ruteplanlegging?

Reinforcement learning, eller forsterkningslæring, fungerer som hjerne i moderne autonome fartøy. Teknologien lærer robotene å ta beslutninger ved å belønne riktige handlinger og straffe feil valg – akkurat som når man trener et dyr.

I praksis betyr dette at fartøyet kontinuerlig analyserer omgivelsene gjennom sensorer som:

  • LIDAR-systemer for avstandsmåling
  • Kameraer med bildegjenkjenning
  • Radar for væruavhengig deteksjon
  • GPS og IMU for posisjonering

Deep Q-Network (DQN) er en av de mest brukte algoritmene. Den kombinerer nevrale nettverk med Q-learning for å håndtere høydimensjonale problemer som kompleks navigasjon.

Praktiske anvendelser og spesifikasjoner

Moderne autonome fartøy opererer typisk med følgende tekniske krav:

Prosesseringskraft: Minimum NVIDIA Jetson Xavier eller tilsvarende ARM-basert system med GPU-akselerasjon. Minnekrav på 8-32 GB RAM avhengig av modellkompleksitet.

Systemene må håndtere real-time prosessering med oppdateringsfrekvenser på 10-50 Hz for sikker navigasjon. Dette krever optimaliserte algoritmer som kan kjøre på begrenset strøm og datakraft.

Typiske bruksområder inkluderer:

  • Havovervåking og miljøkartlegging
  • Search and rescue-operasjoner
  • Autonome ferger og lastfartøy
  • Forskningsfartøy i utilgjengelige områder

Utfordringer og fremtidsutsikter

Hovedutfordringene ligger i å håndtere dynamiske hindringer som andre fartøy, værforhold og uforutsigbare strømmer. Algoritmen må samtidig følge maritime trafikkregler og optimalisere energiforbruk.

Fremtidens systemer vil sannsynligvis integrere flere AI-teknikker:

  • Multi-agent reinforcement learning for fartøykoordinering
  • Federated learning for å dele kunnskap mellom fartøy
  • Edge computing for redusert latency

For hobbyister og studenter åpner denne teknologien for spennende muligheter. Små autonome båter kan bygges med Raspberry Pi 4 eller lignende plattformer, mens mer avanserte prosjekter krever dedikerte AI-akseleratorer.

Utviklingen peker mot en fremtid der autonome fartøy blir like vanlige som selvkjørende biler på land.

Kilde: Sensors (Basel, Switzerland)

Publisert Legg igjen en kommentar

Kabelskjerming og EMI: Beskytt signalene dine

Elektromagnetisk interferens (EMI) kan ødelegge signalintegritet og forårsake ustabil oppførsel i elektroniske prosjekter. Med riktig kabelskjerming og grunnleggende EMI-forståelse kan du sikre at prosjektene dine fungerer pålitelig i støyfulle miljøer.

Hva du trenger

  • Skjermede kabler (koaksialkabel, twisted pair med skjerm)
  • Ferrittkjerner i forskjellige størrelser
  • Jordingtilkoblinger og terminaler
  • Oscilloskop eller EMI-analysator (for testing)
  • Kabelklemmer og støttefester

EMI-grunnleggende: Forstå støykilder

Elektromagnetisk interferens oppstår når uønsket elektromagnetisk energi påvirker elektroniske kretser. EMI kan være konduktiv (forplanter seg gjennom ledere) eller radiativ (forplanter seg gjennom lufta som elektromagnetiske bølger).

De vanligste støykildene i elektronikkprosjekter inkluderer:

  • Switchende strømforsyninger: Genererer høyfrekvente harmoniske
  • Digitale kretser: Klokkefrekvenser og deres overtoner
  • Motorer og relé: Induserer transienter ved switching
  • RF-sendere: Wi-Fi, Bluetooth og andre trådløse enheter
  • Eksterne kilder: Mobiltelefoner, fluorescerende lys, industrielle maskiner

EMI påvirker særlig sensitive analogsignaler, høyfrekvente digitale signaler og lavstrøms sensorkretser. Problemet forverres i takt med økende klokkefrekvenser og reduserte signalspenninger i moderne elektronikk.

Skjermingstyper og deres anvendelser

Kabelskjerming handler om å skape en elektromagnetisk barriere rundt signalledere. La oss se på de mest effektive metodene:

Koaksialkabler

Koaks består av en senterleder omgitt av et dielektrisk materiale og en ytterleder som fungerer som skjerm. Denne konstruksjonen gir:

  • Kontrollert impedans (typisk 50Ω eller 75Ω)
  • Utmerket skjerming for høyfrekvente signaler
  • Minimal crosstalk mellom signaler

Twisted Pair med skjerm (STP)

Twisted pair-konstruksjon reduserer magnetisk kobling gjennom differensiell signalering. Med ekstra folieskjerm oppnås:

  • Reduksjon av common-mode støy
  • God beskyttelse mot elektrostatisk kobling
  • Kostnadseffektiv løsning for differensielle signaler

Overallskjerm vs. parskjerm

I flerparkabler kan du velge mellom skjerm rundt hvert par (parskjerm) eller en felles skjerm rundt alle par (overallskjerm). Parskjerm gir bedre isolasjon mellom signaler, mens overallskjerm er mer kostnadseffektiv.

EMI-støymiljø

Uskjermet signalkabel Utsatt for EMI

Signalleder Beskyttet av skjerm Metallskjerm

Jordplan – Referansepunkt – Strømretur – EMI-drenering

Skjermjording

Ferrittkjerne HF-dempning

Jording og skjermterminering

Riktig jording av kabelskjermer er kritisk for EMI-ytelse. En dårlig jordet skjerm kan faktisk forverke EMI-problemene ved å fungere som en antenne.

Skjermjordingsprinsipper

  • Enkeltpunkts jording: Skjermen jordes kun i én ende, typisk ved mottakeren. Forhindrer jordløkker, men gir begrenset HF-skjerming
  • Begge ender jordet: Maksimal skjermeffekt ved høye frekvenser, men kan skape jordløkker
  • Pigtail-terminering: Skjermen kobles til jord via en kort ledning. Enkel implementering, men redusert HF-ytelse
  • 360°-terminering: Skjermen kobles direkte til metallkapsel uten avbrudd. Optimal HF-ytelse

Tips: For signaler under 1 MHz, bruk enkeltpunkts jording. For høyere frekvenser, jord begge ender og bruk ferrittkjerner for å dempe common-mode strømmer.

Ferrittkjerner og common-mode choker

Ferrittkjerner er passive komponenter som demper høyfrekvente signaler uten å påvirke lavfrekvente signaler eller likestrøm. De fungerer ved å øke impedansen for uønskede common-mode strømmer.

Velge riktig ferritt

Ferrittkjernens materiale og geometri bestemmer frekvensresponsen:

  • Nikkel-sink ferritt: Lavere permeabilitet, effektiv 10-100 MHz
  • Mangan-sink ferritt: Høyere permeabilitet, effektiv 1-10 MHz
  • Toroidal form: Høyeste impedans per vinding
  • Kabelklemme: Enklest installasjon, moderat ytelse

Tips: For bred spektral dempning, kombiner flere ferrittkjerner med forskjellige materialer. Plasser dem så nært støykilden som mulig for maksimal effekt.

Best Practices for EMI-kontroll

Effektiv EMI-kontroll krever en systematisk tilnærming:

  1. Kilde-kontroll: Reduser støy ved kilden gjennom riktig PCB-design og komponentvalg
  2. Sti-kontroll: Bruk skjermede kabler og riktig routing
  3. Mottaker-beskyttelse: Implementer filtrering ved sensitive innganger

Kabelrouting og plassering

  • Hold signalkabler borte fra strømkabler og høystrøms kretser
  • Kryss kraftkabler og signalkabler i 90° vinkel
  • Unngå parallelle kabelløp over lengre avstander
  • Bruk separate kanaler for analog og digital signaler

Komponenter som skjermede kabler og ferrittkjerner finner du i elektronikkseksjonen, og Elfa Distrelec har et bredt utvalg av profesjonelle skjermingsløsninger.

Tips: Implementer EMI-kontroll tidlig i designfasen. Det er mye dyrere å løse EMI-problemer etter at systemet er ferdig bygget enn å bygge inn beskyttelse fra starten.

Vanlige feil ved kabelskjerming

  • Pigtail-terminering på høyfrekvente signaler: Den lille sløyfen skaper induktans som reduserer skjermeffekten betydelig over 10 MHz
  • Brutte skjermer ved koblinger: Skjermen må være kontinuerlig gjennom hele signalstien. Brudd ved kontakter ødelegger skjermingen
  • Jordløkker i skjermede systemer: Når skjermer jordes i begge ender, kan forskjeller i jordpotensial skape strømløkker som genererer EMI
  • Feil ferritt-plassering: Ferrittkjerner må plasseres på riktig side av filteret. Plasser dem nær støykilden, ikke ved det utsatte utstyret
  • Utilstrekkelig mekanisk støtte: Bevegelse i kabler kan skade skjermforbindelser og redusere langtidsytelsen

Med riktig forståelse av EMI-prinsipper og konsekvent implementering av skjermingsteknikker, kan du oppnå robust signalintegritet selv i støyfulle industrielle miljøer. Husk at EMI-kontroll er en systemdisiplin – hvert ledd i signalkjeden må vurderes for å oppnå optimal ytelse.

Norske leverandører

Publisert Legg igjen en kommentar

3D-printet fuktighetssensor revolusjonerer søvnovervåking og helseanalyse

Forskere har utviklet en banebrytende fuktighetssensor ved hjelp av 3D-printingteknologi som kan revolusjonere måten vi overvåker søvn og helse på. Den fleksible sensoren er laget av en spesiell aerogel-sammensetning som gir eksepsjonell nøyaktighet og holdbarhet.

Personalisert søvnmedisin og hjemmebasert helseovervåking har eksplodert i popularitet de siste årene, men har vært begrenset av mangelen på komfortable og pålitelige sensorer for langtidsbruk. Nå har forskere tatt et betydelig steg fremover med en innovativ tilnærming som kombinerer avanserte materialer med 3D-printingteknologi.

Revolusjonerende aerogel-teknologi

Den nye sensoren er bygget opp av en kompleks sammensetning kalt PCGM (PVA/CNF/Gr/MWCNTs), som kombinerer flere høyteknologiske materialer:

Polyvinylalkohol (PVA) som biokompatibel matrise
Nanocellulose for strukturell forsterkning
Grafen for høy elektrisk ledningsevne
Karbonnanotuber for forbedret 3D-struktur

Det som gjør denne sensoren spesiell, er den hierarkisk porøse strukturen som skapes gjennom en frysørkings-assistert 3D-printingprosess (DIW – Direct Ink Writing). Dette gir sensoren en unik evne til å absorbere fuktighet samtidig som den opprettholder elektrisk ledningsevne.

Praktiske fordeler for utviklere

For maker-miljøet og profesjonelle utviklere åpner denne teknologien for spennende muligheter. Sensoren viser eksepsjonelle egenskaper når det gjelder:

Stabilitet og holdbarhet: Hydrogenbindinger og π-π konjugering mellom materialene sikrer lang levetid og pålitelig ytelse over tid.

Fleksibilitet: Den aerogel-baserte konstruksjonen gjør sensoren fleksibel nok til å integreres i wearable-enheter uten å miste funksjonalitet.

Høy følsomhet: Den porøse strukturen gir rask responstid på fuktighetsendringer, noe som er kritisk for presis pusteovervåking.

Fremtidige anvendelser

Denne teknologien kan potensielt implementeres i en rekke prosjekter:

Søvnanalysesystemer for hjemmebruk
Wearable helseenheter for kontinuerlig overvåking
Smarte tekstiler med integrerte sensorer
IoT-baserte helseplattformer for eldre og pasienter

Selv om teknologien foreløpig er i forskningsfasen, viser den veien mot mer avanserte og komfortable sensorer som kan integreres sømløst i vårt daglige liv. For utviklere som arbeider med helseovervåking og wearable-teknologi, representerer dette et betydelig fremskritt mot mer nøyaktige og brukervennlige løsninger.

Kilde: ACS applied materials & interfaces

Publisert Legg igjen en kommentar

Nvidia-sjef spår autonom fremtid for alle edge-enheter

Nvidia-sjef Jensen Huang lanserer en revolusjonerende visjon der alle edge-enheter blir autonome. Det nye datamønsteret skal bringe sky-intelligens direkte ut i roboter og IoT-enheter.

Under en pressesamling etter sin GTC Taipei-presentasjon lanserte Nvidia-sjef Jensen Huang en ambisiøs visjon for fremtiden innen edge computing og robotikk. Hans budskap var klart: Vi står overfor et fundamentalt skifte i hvordan vi tenker om databehandling og autonomi.

«Det finnes et nytt datamønster,» forklarte Huang til forsamlede journalister, og pekte på hvordan intelligens fra skyen nå kan implementeres direkte i edge-enheter.

Fra sky til edge: Et paradigmeskifte

Det tradisjonelle mønsteret har vært at tunge AI-beregninger utføres i skyen, mens lokale enheter kun fungerer som «dumme» terminaler. Huangs visjon snur dette på hodet ved å bringe sofistikert AI-behandling direkte ut til edge-enhetene selv.

Dette åpner for spennende muligheter innen robotikk og automatisering. Tenk deg en Arduino eller Raspberry Pi-basert robot som kan ta avanserte beslutninger i sanntid, uten å være avhengig av skyoppkobling. For hobbyister og utviklere betyr dette at selv relativt enkle mikrokontrollere kan få tilgang til kraftig AI-funksjonalitet.

Praktiske konsekvenser for robotikkprosjekter

For de som arbeider med robotikkprosjekter, åpner denne utviklingen for flere interessante muligheter:

Sanntidsrespons: Eliminering av nettverkslatens gjør at roboter kan reagere øyeblikkelig på endringer i miljøet. Dette er kritisk for autonome kjøretøy, droner og industriroboter.

Offline-funksjonalitet: Edge-enheter kan fungere autonomt selv uten internettforbindelse, noe som er uvurderlig i industrielle miljøer eller avsidesliggende områder.

Reduserte kostnader: Mindre avhengighet av skybaserte tjenester kan føre til lavere driftskostnader for robotikkprosjekter.

Tekniske utfordringer og muligheter

Implementeringen av denne visjonen krever betydelige fremskritt innen flere områder. Prosessoreffektivitet må økes dramatisk for å kunne kjøre komplekse AI-algoritmer på batteridrevne enheter. Samtidig må utviklere lære å optimalisere koden for edge-arkitekturer.

For Arduino- og mikrokontroller-entusiaster betyr dette at fremtidige prosjekter kan få tilgang til maskinlæring og AI-funksjoner som tidligere kun var tilgjengelige for store datasentre. Dette demokratiserer avansert teknologi og gjør den tilgjengelig for hobbyister og mindre bedrifter.

Huangs spådom representerer ikke bare en teknisk evolusjon, men en revolusjon som kan endre hele måten vi bygger og programmerer autonome systemer på.

Kilde: Tom’s Hardware

Publisert Legg igjen en kommentar

VS Code for makers: Optimalt oppsett for embedded-utvikling

Visual Studio Code har blitt den foretrukne IDE-en for mange utviklere, og med god grunn. Med riktig oppsett blir VS Code et kraftfullt verktøy for embedded-utvikling som overgår mange tradisjonelle alternativer. La oss se på hvordan du optimaliserer VS Code for Arduino, ESP32, MicroPython og annen embedded-utvikling.

Hva du trenger:

  • PC/Mac med VS Code installert
  • USB-kabel for din mikrokontroller
  • Embedded-utviklingskort (Arduino, ESP32, Raspberry Pi Pico)
  • Stabil internettforbindelse for nedlasting av extensions

PlatformIO: Hjertet av embedded-utvikling i VS Code

PlatformIO er uten tvil den viktigste extension for embedded-utvikling. Denne kraftige plattformen støtter over 800 utviklingskort og håndterer alt fra kompilering til debugging.

Installasjon av PlatformIO

  1. Åpne VS Code og gå til Extensions (Ctrl+Shift+X)
  2. Søk etter «PlatformIO IDE» og installer den offisielle extension
  3. Start VS Code på nytt når installasjonen er ferdig
  4. PlatformIO-ikonet skal nå være synlig i Activity Bar til venstre

Første oppstart av PlatformIO kan ta noen minutter da det laster ned nødvendige verktøy og compilere i bakgrunnen. Dette er normalt.

Opprette ditt første PlatformIO-prosjekt

Klikk på PlatformIO-ikonet og velg «Create New Project». Her velger du korttype (for eksempel ESP32 Dev Module), framework (Arduino, ESP-IDF, eller Zephyr), og prosjektmappe. PlatformIO genererer automatisk en platformio.ini-fil som inneholder all konfigurasjon for prosjektet.

Tips: Bruk PlatformIO’s innebygde Library Manager i stedet for å kopiere biblioteker manuelt. Dette sikrer riktige versjoner og avhengigheter. Åpne den med Ctrl+Shift+P og søk etter «PlatformIO: Library Manager».

Arduino Extension: Enkel overgang fra Arduino IDE

For de som kommer fra Arduino IDE, tilbyr Microsoft en dedikert Arduino-extension som gir en mer kjent arbeidsflyt.

Installasjon og konfigurasjon

  1. Installer «Arduino» extension fra Microsoft
  2. Åpne Command Palette (Ctrl+Shift+P) og søk «Arduino: Initialize»
  3. Velg Arduino-installasjonsmappen hvis den ikke oppdages automatisk
  4. Konfigurer board og port i statuslinjen nederst i VS Code

Arduino-extension integrerer godt med eksisterende Arduino-biblioteker og skisser, men mangler noen av de avanserte funksjonene til PlatformIO.

MicroPython-støtte for moderne embedded Python

MicroPython har blitt stadig mer populært for rask prototyping på ESP32 og Raspberry Pi Pico. Flere extensions gjør MicroPython-utvikling smidig i VS Code.

Anbefalt MicroPython-oppsett

Installer «MicroPico» extension som gir excellent støtte for Raspberry Pi Pico, eller «Pymakr» for ESP32-basert MicroPython-utvikling. Begge tilbyr REPL-integrasjon, filsynkronisering og autocompletion.

For optimal arbeidsflyt, konfigurer en virtuell Python-environment med pip install esptool eller pip install adafruit-ampy for filoverføring til mikrokontrolleren.

Tips: Bruk VS Code’s innebygde terminal (Ctrl+`) for å kjøre MicroPython-kommandoer direkte. Dette er mer effektivt enn å bytte mellom vinduer.

Debugging: Fra print-statements til ekte debugging

En av VS Code’s største styrker er den kraftige debugging-støtten. PlatformIO tilbyr ekte hardware-debugging for mange mikrokontrollere med riktig debugger-hardware.

Oppsett av debugging

For ESP32-kort med innebygd JTAG (som ESP32-S3), legg til følgende i platformio.ini:


debug_tool = esp-builtin
debug_init_break = tbreak setup

For Arduino Uno og lignende, bruk GDB-stubbing eller en ekstern debugger som ST-Link for STM32-kort. PlatformIO konfigurerer automatisk debugging-miljøet basert på valgt verktøy.

Sett breakpoints ved å klikke i venstre marg av editoren, og start debugging med F5. VS Code viser variabler, call stack og lar deg steppe gjennom koden linje for linje.

Seriell monitor og terminalintegrasjon

Både PlatformIO og Arduino-extension tilbyr innebygd seriell monitor, men med forskjellige styrker.

PlatformIO Serial Monitor

Åpne med Ctrl+Shift+P og søk «PlatformIO: Serial Monitor». Denne støtter flere samtidige tilkoblinger og avansert filtering av meldinger. Baudrate settes automatisk basert på koden din, eller kan overstyres i platformio.ini.

Arduino Serial Monitor

Tilgjengelig via Command Palette eller statuslinjen. Enklere interface, men integrerer godt med Arduino-skisser og -biblioteker.

Tips: For avansert seriell analyse, installer «Serial Monitor» extension som tilbyr plotting av numeriske data og logging til fil. Perfekt for sensordataanalyse.

Optimalisering av arbeidsflyt

Konfigurer VS Code-settings for optimal embedded-utvikling:

  • Aktiver «Auto Save» for å unngå tap av kode under eksperimentering
  • Installer «Error Lens» for inline visning av kompileringsfeil
  • Bruk «GitLens» for versjonskontroll av embedded-prosjekter
  • Konfigurer «C/C++» extension for bedre IntelliSense i Arduino/PlatformIO-prosjekter

RoboNordic har et bredt utvalg av utviklingskort og sensorer som fungerer utmerket med dette oppsettet – fra Arduino Nano til ESP32-devkits.

Vanlige feil og løsninger

  • PlatformIO kompilerer ikke: Sjekk at firewall ikke blokkerer nedlasting av toolchains. Windows Defender kan noen ganger forårsake problemer.
  • Seriell port ikke funnet: Installer riktige USB-drivere for ditt kort. CH340- og CP2102-drivere mangler ofte på nye installasjoner.
  • IntelliSense fungerer ikke: Generer compile_commands.json med PlatformIO for bedre C++ language server-støtte.
  • Langsom oppstart: Deaktiver unødvendige extensions. VS Code kan bli treg med for mange aktive extensions.
  • Debugging virker ikke: Kontroller at debug_tool er riktig konfigurert i platformio.ini og at nødvendig hardware er tilkoblet.

Med dette oppsettet har du et kraftfullt utviklingsmiljø som støtter alt fra enkel Arduino-programmering til avansert ESP32-utvikling med MicroPython. VS Code’s fleksibilitet kombinert med PlatformIO’s bredde gjør dette til en uslåelig kombinasjon for moderne embedded-utvikling.

Publisert Legg igjen en kommentar

Slik bygger du en autonom palletruck med ROS 2 og NVIDIA Jetson

Et spennende prosjekt fra Los Angeles viser hvordan en standard 24V elektrisk palletruck kan transformeres til en fullstendig autonom enhet. Med ROS 2, NVIDIA Jetson og smart integrering kan hobbyister og profesjonelle lære av denne tilnærmingen.

Retrofitting av eksisterende industriutstyr til autonome systemer representerer en kostnadseffektiv måte å modernisere arbeidsplasser på. Dette prosjektet demonstrerer hvordan etablert teknologi kan kombineres med moderne robotikk-stacks for å skape praktiske løsninger.

Teknisk arkitektur og maskinvareintegrasjon

Kjernen i systemet bygger på NVIDIA Jetson Orin Nano som kjører Ubuntu med ROS 2 Humble. Denne kombinasjonen gir tilgang til Nav2-navigasjonsstacken og slam_toolbox for kartlegging og lokalisering.

Drive-by-wire-implementeringen løses elegant ved å bruke en Teensy-mikrokontroller som grensesnitt mot pallettruckens eksisterende motorkontroller. Systemet kan kommunisere via throttle injection eller CANopen-protokoll, avhengig av utstyrets spesifikasjoner. Dette gir kontroll over:

  • Trekkraft og retning
  • Løftemekanisme
  • Hjulencoder-avlesning for posisjonsfeedback

Mekanisk tilpasning og sikkerhet

Den mest krevende delen av integreringen er fabrikasjon og montering av styreaktuator på tiller-kolonnen. Dette krever presisjon og forståelse for pallettruckens opprinnelige design. Aktuatoren må være robust nok til å håndtere industrielle arbeidsforhold.

Sikkerhet prioriteres høyt med implementering av manuell nødstopp som fysisk avbryter all trekkraft, uavhengig av programvare.

Navigasjon og praktisk implementering

Etter maskinvareintegrasjon følger kalibrering og testing. Systemet startes i teleoperasjonsmodus for initial validering, før det kartlegger et avgrenset område ved hjelp av SLAM-algoritmer.

Nav2-implementeringen gjør det mulig for enheten å:

  • Planlegge optimale ruter
  • Navigere rundt hindringer
  • Utføre presise posisjoneringer for lasting/lossing

Prosjektets 1-2 ukers tidsramme viser at med riktig planlegging og eksisterende programvare kan komplekse autonome systemer realiseres relativt raskt. Dette åpner for skalerbare løsninger hvor flere enheter kan rulles ut basert på samme arkitektur.

For robotikk-entusiaster representerer dette et praktisk eksempel på hvordan ROS 2 og tilgjengelig maskinvare kan løse reelle industriutfordringer. Tilnærmingen kan tilpasses andre typer kjøretøy og arbeidsoppgaver.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

Ny Python-løsning for analytisk invers kinematikk i robotarmer

Personal Robotics Lab har lansert ssik 1.1, et Python-bibliotek som forenkler analytisk invers kinematikk for 6R og 7R robotarmer. Biblioteket er designet som en moderne etterfølger til IKFast og tilbyr ren Python-kode med BSD-3-lisensiering.

Invers kinematikk er en av de mest grunnleggende utfordringene i robotikk – å beregne hvilke leddvinkler som kreves for å posisjonere en robotarms endepunkt på et ønsket sted. Det nye ssik-biblioteket lover å gjøre denne komplekse oppgaven mer tilgjengelig for utviklere.

Hva gjør ssik annerledes?

ssik skiller seg ut ved å tilby analytiske løsninger i stedet for numeriske tilnærminger. Dette betyr raskere og mer pålitelige beregninger, spesielt viktig for sanntidsapplikasjoner. Biblioteket håndterer både 6R (6 rotasjonsledd) og 7R (7 rotasjonsledd) manipulatorer, inkludert utfordrende konfigurasjoner som tidligere verktøy har slitt med.

ssik returnerer alle mulige løsninger for en gitt posisjon, noe som gir utviklere full kontroll over hvilken armkonfigurasjon de ønsker å bruke.

Installasjonen er enkel med kommandoen pip install ssik. Biblioteket er skrevet i ren Python, noe som eliminerer komplekse avhengigheter og gjør det lettere å integrere i eksisterende prosjekter.

Praktiske bruksområder

ssik støtter flere populære robotarmtyper, inkludert ikke-Pieper 6R armer som Kinova JACO 2 og ikke-SRS 7R armer som Flexiv Rizon 4. Dette gjør biblioteket relevant for et bredt spekter av robotikkprosjekter – fra industriell automatisering til forskning og utdanning.

For hobbyister og studenter representerer ssik en sjanse til å eksperimentere med avansert robotikk uten å måtte implementere komplekse matematiske algoritmer fra bunnen av. Profesjonelle utviklere vil sette pris på den spesialiserte koden per arm-type og den omfattende løsningsoppramsingen.

Arven etter IKFast

ssik bygger videre på erfaringene fra Rosen Diankovs IKFast, som formet hvordan en hel generasjon robotikkutviklere tenkte om analytisk invers kinematikk. Den nye løsningen beholder de beste egenskapene – spesialisert kode per arm, analytiske grener og komplett løsningsoppramming – mens den moderniserer tilnærmingen med ren Python og forbedret kompatibilitet.

Med sin åpne BSD-3-lisens og aktive utviklerfellesskap inviterer ssik til både bruk og bidrag. Utviklerteamet tar gjerne imot spørsmål, forespørsler om støtte for spesifikke armtyper og hjelp med integrasjon i eksisterende systemer.

Kilde: ROS Discourse