Publisert Legg igjen en kommentar

Fra reaktiv unngåelse til intelligent navigasjon: Oppgradering til ROS Nav2 SLAM

Å ta steget fra enkel hinderunnvikelse til sofistikert målrettet navigasjon er et naturlig neste trinn for mange hobbyrobotikere. Med ROS Nav2 og SLAM-teknologi kan hjemmeroboten din lære seg å kjenne igjen omgivelsene og navigere presist til spesifikke mål.

Mange som bygger hjemmerobotikk-prosjekter starter med reaktive systemer som enkelt unngår hindre. Men når du vil ha en robot som kan navigere intelligent gjennom hjemmet og huske hvor den har vært, er det på tide å utforske SLAM (Simultaneous Localization and Mapping) med ROS Nav2.

Utfordringen: Navigasjon uten hjulenkodere

Et vanlig problem mange møter er å implementere presis navigasjon på chassis uten hjulenkodere. Tradisjonelle differensialrobotikk-oppsett benytter servo-motorer med innebygde enkodere for å måle hjulrotasjoner, men mange hobbyprosjekter bruker enklere motorer uten denne funksjonaliteten.

Uten pålitelige hjulenkodere må roboten stole på alternative metoder for å beregne sin posisjon og bevegelse gjennom miljøet. Dette fører oss til to hovedalternativer: Visual-Inertial Odometry (VIO) eller 2D LIDAR-basert SLAM.

Visual-Inertial Odometry: Kamerabasert posisjonering

VIO kombinerer data fra dybdesensorer som Intel RealSense D435 eller lignende hp60c-sensorer med IMU-data (Inertial Measurement Unit). Denne løsningen analyserer visuelle referansepunkter i miljøet samtidig som den kompenserer for robotens bevegelser gjennom akselerometer- og gyroskopdata.

Fordeler med VIO:

  • Relativt rimelig implementasjon med moderne dybdesensorer
  • Fungerer godt i strukturerte innendørsmiljøer
  • Gir 6DOF-posisjonering (alle seks frihetsgrader)

Utfordringer:

  • Kan slite i dårlig belysning eller monotone omgivelser
  • Krever betydelig prosessorkraft for sanntidsbearbeiding
  • Drift over tid kan akkumulere posisjoneringsfeil

2D LIDAR: Den pålitelige klassikeren

LIDAR-sensorer som RPLIDAR A1M8 eller Hokuyo-serien har lenge vært gullstandarden for robotnavigasjon. Disse måler avstander ved å sende ut laserpulser og beregne refleksjonstid.

«For presise målrettede bevegelser i kjente miljøer er LIDAR fortsatt vanskelig å slå når det gjelder pålitelighet og nøyaktighet.»

Fordeler med 2D LIDAR:

  • Eksepsjonell nøyaktighet og konsistens
  • Fungerer uavhengig av lysforhold
  • Moden teknologi med omfattende ROS Nav2-støtte
  • Lavere krav til prosessorkraft

Ulemper:

  • Høyere innkjøpskostnad enn kameraløsninger
  • Kun 2D-kartlegging (kan misse hengslede hindre)

Anbefaling for hobbyprosjekter

For de fleste hjemmerobotikk-entusiaster anbefales å starte med 2D LIDAR hvis budsjettet tillater det. Teknologien er moden, godt dokumentert, og Nav2-økosystemet har utmerkede tutorials og eksempler tilgjengelig.

Dersom kostnaden er en begrensning, kan VIO være et interessant alternativ, men vær forberedt på mer feilsøking og kalibrering. Moderne Jetson-plattformer håndterer VIO-beregninger godt, og løsningen kan gi imponerende resultater i riktige omgivelser.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

Kalman-filter forklart: Sensordata uten stoy

Kalman-filteret er kanskje det mest elegante verktøyet vi har for å få orden på støyete sensordata. La oss demystifisere denne kraftige algoritmen og se hvordan du kan implementere den i dine egne prosjekter.

Hva du trenger

  • Python 3.6+ med NumPy og Matplotlib
  • Grunnleggende forståelse av lineær algebra
  • Sensor for testing (akselerometer, gyro eller liknende)
  • Arduino eller Raspberry Pi for datainnsamling

Intuisjonen bak Kalman-filteret

Kalman-filteret fungerer som en intelligent balanse mellom to informasjonskilder: din prediksjon av hvor systemet burde være, og målingen av hvor sensoren sier det faktisk er. Tenk på det som å navigere i tåke – du har et kart (modellen) og et kompass (sensoren), men begge kan ha feil.

Filterets genialitet ligger i at det kontinuerlig vurderer hvor mye det skal stole på hver kilde. Er sensoren unøyaktig? Filteret legger mer vekt på prediksjonene. Er modellen usikker? Da får sensor-målingene større innflytelse.

De fem kjernelikningene

Kalman-filteret bygger på fem matematiske ligninger som håndterer to faser: predict og update. Ikke la matematikken skremme deg – vi skal se hvordan dette oversettes til Python-kode.

Predict-Update syklusen

Hver iterasjon av Kalman-filteret består av to distinkte faser:

1. Predict-fasen

Her bruker vi systemmodellen til å predikere neste tilstand basert på forrige estimat. Vi beregner også usikkerheten som akkumuleres over tid.


x_pred = F * x_prev + B * u
P_pred = F * P_prev * F.T + Q

2. Update-fasen

Når vi får nye sensormålinger, oppdaterer vi estimatet vårt ved å veie prediksjon mot måling.


K = P_pred * H.T / (H * P_pred * H.T + R)
x_new = x_pred + K * (z - H * x_pred)
P_new = (I - K * H) * P_pred

Start

Predict x_pred, P_pred

Få sensormåling z

Update x_new, P_new

Flere data?

Ja

Nei

Slutt

Tips: Start alltid med å definere din tilstandsvektor (hva vil du estimere?) og målevektoren (hva kan sensorene dine måle?). Dette er grunnmuren i implementasjonen din.

Python-implementasjon

La oss implementere et enkelt 1D Kalman-filter for å spore posisjonen til et objekt:


import numpy as np
import matplotlib.pyplot as plt

class KalmanFilter:
    def __init__(self, F, H, Q, R, P, x):
        self.F = F # Tilstandsovergangsmatrise
        self.H = H # Observasjonsmatrise
        self.Q = Q # Prosessstøy
        self.R = R # Målestøy
        self.P = P # Kovariansmatrise
        self.x = x # Tilstandsvektor

    def predict(self):
        self.x = self.F @ self.x
        self.P = self.F @ self.P @ self.F.T + self.Q

    def update(self, z):
        S = self.H @ self.P @ self.H.T + self.R
        K = self.P @ self.H.T @ np.linalg.inv(S)
        y = z - self.H @ self.x
        self.x = self.x + K @ y
        self.P = self.P - K @ self.H @ self.P

Praktisk eksempel: Temperatursensor

La oss bruke filteret på en støyete temperatursensor. Vi antar at temperaturen endres sakte over tid:


# Initialiser filter for temperatur
dt = 1.0 # Tidssteg
F = np.array([[1]]) # Temperatur endres ikke
H = np.array([[1]]) # Vi måler temperaturen direkte
Q = np.array([[0.1]]) # Liten prosessstøy
R = np.array([[1.0]]) # Målestøy fra sensor
P = np.array([[1.0]]) # Inicial usikkerhet
x = np.array([[20.0]]) # Start temperatur

kf = KalmanFilter(F, H, Q, R, P, x)

# Simuler støyete målinger
true_temp = 22.0
measurements = true_temp + np.random.normal(0, 1, 100)
estimates = []

for z in measurements:
    kf.predict()
    kf.update(np.array([[z]]))
    estimates.append(kf.x[0, 0])

Tips: Bruk RoboNordic sine sensorer som DHT22 eller DS18B20 for å teste implementasjonen din med ekte data. Sammenlign filtrerte og ufiltrerte målinger for å se effekten.

Tuning av parametere

Suksessen til Kalman-filteret avhenger sterkt av korrekt tuning av støyparameterne Q og R:

Prosessstøy (Q)

Representerer hvor mye systemet kan endre seg mellom målinger. For høy Q gjør filteret nervøst, for lav gjør det tregt.

Målestøy (R)

Beskriver hvor nøyaktige sensorene dine er. Høy R betyr at filteret stoler mindre på sensormålingene.

Tips: Start med å karakterisere sensoren din ved å ta mange målinger av en konstant verdi. Standardavviket gir deg et godt estimat for R.

Automatisk tuning

Du kan bruke innovasjonssekvensen til å adaptivt justere parameterne:


def adaptive_tuning(self, innovation, window_size=10):
    if len(self.innovations) > window_size:
        innovation_var = np.var(self.innovations[-window_size:])
        expected_var = self.H @ self.P @ self.H.T + self.R
        if innovation_var > 1.5 * expected_var:
            self.Q *= 1.1 # Øk prosessstøy

Vanlige feil

  • Feil dimensjoner på matriser: Dobbeltsjekk at F, H, Q, R og P har kompatible dimensjoner. NumPy gir ofte kryptiske feilmeldinger hvis dimensjonene ikke stemmer.
  • For lav prosessstøy: Filteret blir «låst» til første estimat og reagerer ikke på endringer. Øk Q-verdiene gradvis.
  • Numerisk ustabilitet: Bruk Joseph-formen for kovariansoppdateringen: P = (I - KH)P(I - KH)' + KRK' for bedre numerisk stabilitet.
  • Glemmer å kalle predict(): Mange glemmer predict-steget når det ikke er kontrollinngang. Dette er likevel nødvendig for å oppdatere usikkerheten.
  • Feil initialisering: Start med høy initial usikkerhet (P) hvis du er usikker på startverdien. Filteret vil konvergere raskt.

Videre utvikling

Når du mestrer det lineære Kalman-filteret, kan du utforske Extended Kalman Filter (EKF) for ikke-lineære systemer, eller Unscented Kalman Filter (UKF) for enda bedre håndtering av ikke-lineariteter.

For sensorfusjon av flere sensorer, som kombinasjon av akselerometer og gyro, blir Kalman-filteret et uvurderlig verktøy for å få stabile og nøyaktige estimater av orientering og posisjon.

Publisert Legg igjen en kommentar

Revolusjonerende AI-styring gjør marine roboter motstandsdyktige mot havets krefter

Forskere har utviklet et banebrytende kontrollsystem som gjør marine roboter langt bedre til å navigere i urolige havforhold. Den nye teknologien kombinerer domenekunnskap med avansert maskinlæring for å kompensere for uforutsigbare vind-, bølge- og strømeffekter i sanntid.

Utfordringene i marin robotikk

Marine roboter, enten det er overflatefartøy eller undervannsvehicler, har lenge slitt med å opprettholde presis navigasjon i havets komplekse miljø. Kombinasjonen av vind, bølger og strøm skaper uforutsigbare forstyrrelser som kan true både sikkerhet og presisjon i autonome operasjoner.

Tradisjonelle modellbaserte kontrollsystemer har sine begrensninger når de møter havets uberegnelige krefter. De klarer ofte ikke å tilpasse seg raskt nok til skiftende forhold, noe som kan føre til unøyaktig posisjonering eller i verste fall farlige situasjoner.

Domenekunnskap møter kunstig intelligens

Den nye tilnærmingen representerer et paradigmeskifte i hvordan vi tenker på marin robotstyring. Forskerne har utviklet et rammeverk som:

Integrerer spesialiserte basisfunksjoner fra domenekunnskap inn i et Kolmogorov-Arnold nettverk, og ekstraherer kontrollkunnskap derfra for å trene en maskinlæringsbasert kontroller.

Dette er ikke bare vanlig maskinlæring – systemet er designet spesifikt for marine miljøer. Ved å bygge inn kunnskap om hvordan havkrefter oppfører seg, kan AI-en lære mer effektivt og treffe bedre beslutninger under press.

Praktiske fordeler og anvendelser

Systemet opererer modellfritt, hvilket betyr at det ikke er avhengig av forhåndsdefinerte matematiske modeller av havforhold. I stedet observerer og kompenserer det for miljøforstyrrelser i sanntid.

De praktiske fordelene inkluderer:

  • Bedre banefølging: Mer nøyaktig navigasjon langs planlagte ruter
  • Økt sikkerhet: Raskere respons på uventede havforhold
  • Større robusthet: Fungerer under et bredere spekter av miljøforhold
  • Forbedret tilpasningsevne: Lærer kontinuerlig fra nye situasjoner

Teknologien er særlig relevant for anvendelser som havovervåking, offshore-operasjoner, søk og redning, og miljøkartlegging. For utviklere av marine robotsystemer åpner dette for nye muligheter innen presisjonsstyring under krevende forhold.

At systemet er validert under reelle forhold gjør det særlig interessant for praktiske implementeringer. Dette er ikke bare teoretisk forskning, men teknologi som kan integreres i eksisterende marine robotplattformer.

Kilde: Communications engineering

Publisert Legg igjen en kommentar

Forbedret navigasjon for autonome kjøretøy uten GPS-signal

**Forskere har utviklet en revolusjonerende løsning som lar autonome kjøretøy navigere presist selv når GPS-signalet er borte. Ved å kombinere LIDAR, kamera og flere billige bevegelsessensorer oppnås imponerende nøyaktighet under krevende forhold.**

Autonome kjøretøy på nivå 3 og høyere står overfor en kritisk utfordring: Hvordan opprettholde presis navigasjon når GPS-signalet forsvinner? I tunneler, parkeringshus og tettbebygde områder blir tradisjonelle satellittbaserte systemer utilgjengelige, og kjøretøyet må stole på alternative navigasjonsmetoder.

Tre sensorer jobber sammen

Den nye tilnærmingen kombinerer tre komplementære teknologier til ett robust system:

Visual Inertial Odometry (VIO) bruker kameraer kombinert med bevegelsessensorer for å spore kjøretøyets posisjon ved å analysere hvordan omgivelsene endrer seg. Dette fungerer utmerket når det er god sikt og tydelige visuelle referansepunkter.

LIDAR Inertial Odometry (LIO) benytter laserskanning til å bygge detaljerte 3D-kart av omgivelsene i sanntid. LIDAR-teknologien er mindre påvirket av lysforhold og kan fungere både dag og natt.

Redundant IMU (RIMU) kombinerer flere billige bevegelsessensorer (IMU-er) i stedet for én dyr sensor. Dette reduserer støy betydelig og øker påliteligheten – dersom én sensor feiler, kan systemet fortsette å fungere.

Imponerende nøyaktighet i praksis

Forskerne testet systemet i et underjordisk parkeringshus hvor GPS-signalet var helt utilgjengelig i 7 minutter. Dette er et ekstremt krevende scenario som simulerer forhold autonome kjøretøy vil møte i virkeligheten.

Systemkalibreringen oppnådde en rotavvik på bare 0,04 grader, som er eksepsjonelt presist for denne typen applikasjon.

Den mest innovative delen av løsningen er kalibreringsprosessen som justerer alle sensorene i forhold til hverandre. Ved å bruke både stillestående og bevegelige tester kan systemet automatisk beregne de eksakte posisjonene og vinklene mellom sensorer.

Praktiske anvendelser

Teknologien har umiddelbare anvendelser innen:

Autonome kjøretøy – Fra personbiler til industrielle transportroboter
Drone-navigasjon – Især for inspeksjon innendørs eller under broer
Mobile roboter – I lagerhaller, gruver og andre GPS-utfordrende miljøer
Redningsoperasjoner – Hvor GPS kan være utilgjengelig eller upålitelig

Det mest lovende med denne tilnærmingen er bruken av rimelige, industrielle MEMS-baserte sensorer i stedet for dyre militære systemer. Dette gjør teknologien tilgjengelig for et bredere marked og åpner for kommersialisering av avanserte navigasjonsløsninger.

Kilde: Sensors (Basel, Switzerland)

Publisert Legg igjen en kommentar

Claude for koding: Slik bruker du AI som programmeringsassistent

Claude har revolusjonert måten vi kan få hjelp med programmering på. Denne AI-assistenten kan hjelpe deg med alt fra enkle kodespørsmål til komplekse prosjekter, men bare hvis du vet hvordan du skal bruke den.

Hva du trenger

  • Tilgang til Claude (claude.ai eller API)
  • En teksteditor eller utviklingsmiljø (f.eks. VS Code)
  • Grunnleggende forståelse av hva programmering er
  • Et konkret kodeprosjekt å jobbe med

Hva er Claude og hvorfor er den god til koding?

Claude er en AI-assistent utviklet av Anthropic som er spesielt god på å forstå og generere kode. I motsetning til vanlige søkemotorer, kan Claude ha en dialog med deg om koden din, forklare komplekse konsepter på en enkel måte, og hjelpe deg å løse problemer steg for steg.

Det som gjør Claude spesielt nyttig for programmering er evnen til å:

  • Kontekstuell forståelse: Den forstår sammenhengen i koden din
  • Forklaringer: Den kan forklare hvorfor kode fungerer eller ikke fungerer
  • Tilpasning: Den kan tilpasse svarene til ditt ferdighetsnivå
  • Flere språk: Den behersker de fleste programmeringsspråk

Effektive prompts: Kunsten å stille gode spørsmål

Et prompt er spørsmålet eller instruksjonen du gir til Claude. Kvaliteten på svaret avhenger i stor grad av hvor godt du formulerer spørsmålet.

Strukturer spørsmålene dine

I stedet for å skrive «hjelp med kode», prøv denne strukturen:

  1. Kontekst: Hva jobber du med?
  2. Problem: Hva fungerer ikke eller hva vil du oppnå?
  3. Kode: Vis relevant kode
  4. Forventet resultat: Hva ønsker du at skal skje?

Dårlig eksempel:
"Python kode fungerer ikke"

Godt eksempel:
"Jeg lager en temperaturlogger for Arduino med Python. Koden min skal lese data fra en sensor og lagre den i en fil, men jeg får feilmeldingen 'FileNotFoundError'. Her er koden: [din kode]. Jeg forventer at den lager en ny fil hvis den ikke finnes."

Tips: Vær spesifikk om programmeringsspråket, bibliotekene du bruker, og feilmeldinger du får. Claude kan gi mye mer presise svar når den vet nøyaktig hva du jobber med.

Kodegjennomgang: La Claude være din andre øyne

Kodegjennomgang betyr å la noen andre se over koden din for å finne feil, forbedringsmuligheter eller sikkerhetsproblemer. Claude er utmerket til dette.

Slik ber du om kodegjennomgang

  1. Lim inn koden din
  2. Forklar hva koden skal gjøre
  3. Spør om spesifikke ting du er usikker på

Eksempel på god forespørsel:


"Kan du gjennomgå denne Python-funksjonen som beregner gjennomsnitt? Jeg er spesielt usikker på om jeg håndterer tomme lister riktig og om det er mer effektive måter å gjøre dette på:

def beregn_gjennomsnitt(tall_liste):
return sum(tall_liste) / len(tall_liste)"

Claude vil da kunne påpeke at funksjonen krasjer hvis listen er tom, og foreslå forbedringer som feilhåndtering.

Debugging: Finn og fiks feil sammen med Claude

Debugging er prosessen med å finne og rette feil i kode. Dette er en av Claudes sterkeste sider.

Steg-for-steg debugging med Claude

  1. Del feilmeldingen: Kopier hele feilmeldingen, ikke bare deler av den
  2. Vis relevant kode: Inkluder koden som forårsaker feilen
  3. Beskriv hva som skjedde: Hva gjorde du da feilen oppstod?
  4. Følg opp: Test foreslåtte løsninger og rapporter resultatet tilbake

Tips: Ikke nøl med å fortelle Claude hvis den foreslåtte løsningen ikke fungerte. AI-assistenter lærer av tilbakemeldinger i samtalen og kan justere tilnærmingen sin.

Dokumentasjon: La Claude forklare koden

Dokumentasjon er tekst som forklarer hvordan kode fungerer. Claude kan både hjelpe deg forstå andres kode og skrive forklaringer til din egen kode.

Be om forklaringer

Hvis du støter på kode du ikke forstår:

"Kan du forklare hva denne koden gjør, linje for linje? Jeg er nybegynner i JavaScript:

for (let i = 0; i < array.length; i++) { if (array[i] % 2 === 0) { console.log(array[i]); } }"

Generer kommentarer

Claude kan også hjelpe deg å skrive gode kommentarer (forklarende tekst i koden):

"Kan du legge til kommentarer i denne funksjonen som forklarer hva hver del gjør?"

Komplekse prosjekter: Bryt ned problemet

For større prosjekter, bruk Claude til å:

  • Planlegge arkitektur: "Hvordan bør jeg strukturere en webapp som logger sensordata?"
  • Dele opp oppgaver: "Hvilke deler bør jeg kode først i dette prosjektet?"
  • Velge verktøy: "Hvilket Python-bibliotek anbefaler du for å lage grafer?"

Tips: Start med de grunnleggende funksjonene først. Claude kan hjelpe deg å bygge prosjektet ditt i logiske steg i stedet for å prøve å løse alt på en gang.

Begrensninger: Hva Claude ikke kan

Det er viktig å forstå Claudes begrensninger:

  • Ikke oppdatert informasjon: Claude vet ikke om de aller nyeste oppdateringene i programmeringsspråk
  • Kan ikke kjøre kode: Du må selv teste forslagene
  • Ikke feilfri: Claude kan foreslå kode som ikke fungerer
  • Mangler kontekst: Den ser bare det du deler, ikke hele prosjektet ditt

Vanlige feil å unngå

  • Å stole blindt på svarene: Test alltid koden Claude foreslår
  • For vage spørsmål: "Fiks denne koden" gir dårligere svar enn spesifikke problembeskrivelser
  • Ikke dele feilmeldinger: Claude trenger å se hele feilmeldingen for å hjelpe effektivt
  • Hoppe over forklaringene: Les ikke bare koden Claude gir, men forstå forklaringene
  • Ikke bygge på samtalen: Bruk samme samtale for relaterte spørsmål så Claude husker konteksten

Konklusjon

Claude kan være en kraftig programmeringspartner når den brukes riktig. Start med enkle spørsmål, vær spesifikk i forespørslene dine, og husk at Claude er en assistent - ikke en erstatning for å lære programmering selv. Med riktig tilnærming kan Claude gjøre deg til en mer effektiv og selvsikker programmerer.

Publisert Legg igjen en kommentar

Ny algoritme løser komplekse robotbevegelser med Jacobian-styrt partikkelsvermoptimering

Forskere har utviklet en forbedret partikkelsvermoptimering (PSO) som løser komplekse bevegelsesberegninger for robotarmer som mangler analytiske løsninger. Den nye metoden kombinerer ikke-lineære treghetsvekter med Jacobian-veiledning for å oppnå mer presise og jevne robotbevegelser.

Inverse kinematikk er et av de mest utfordrende problemene innen robotikk – å beregne hvilke leddvinkler en robotarm trenger for å nå en ønsket posisjon og orientering. Mens enkle roboter har matematiske formler som gir eksakte svar, må komplekse robotarmer (såkalte ikke-Pieper roboter) løse dette gjennom iterative beregningsmetoder.

Utfordringene med tradisjonell PSO

Partikkelsvermoptimering har lenge vært en populær metode for å løse inverse kinematikk, men konvensjonelle PSO-algoritmer sliter med flere problemer:

Algoritmene konvergerer ofte for tidlig mot suboptimale løsninger, presterer ustabilt nær singulære konfigurasjoner, og gir begrenset jevnhet i robotbanene.

Dette fører til rykkerige bevegelser og redusert nøyaktighet – spesielt problematisk for presisjonskrevende oppgaver som montasje eller kirurgiske inngrep.

Den nye løsningen: Jacobian-styrt PSO

Forskerne har utviklet en forbedret ramme som adresserer disse utfordringene gjennom to hovedinnovasjoner:

To-fase treghetsvektstrategi: Algoritmen tilpasser seg dynamisk – den utforsker bredt i starten for å unngå lokale minimumer, før den fokuserer på fininnstilling når den nærmer seg den optimale løsningen.

Jacobian pseudo-invers veiledning: Ved å integrere gradientbasert retningsinformasjon fra Jacobian-matrisen, får algoritmen bedre «sans» for hvilken retning den skal søke i. Dette gjør konvergensen raskere og mer robust, særlig i utfordrende singulære konfigurasjoner.

Praktiske fordeler og bruksområder

Den nye metoden bruker kvaternion-basert poserepresentasjon kombinert med en «joint continuity penalty» som sikrer jevne overganger mellom bevegelser. Dette er særlig verdifullt for:

Industriroboter: Bedre presisjon i pick-and-place operasjoner
Kollaborative roboter: Jevnere bevegelser som er tryggere rundt mennesker
Forskningsroboter: Håndtering av komplekse geometrier som redundante eller ikke-standard konfigurasjoner
Utdanningsformål: Mer pålitelige resultater for studenter som jobber med robotikksimuleringer

Metoden er kompatibel med eksisterende robotkontrollsystemer og kan implementeres på standard datamaskinvare. For hobbyister og studenter som jobber med Arduino eller Raspberry Pi-baserte robotarmer, kan denne tilnærmingen gi betydelig forbedrede resultater sammenlignet med tradisjonelle metoder.

Kilde: Scientific reports

Publisert Legg igjen en kommentar

Bygg din egen DualSense-adapter for PC med Raspberry Pi Pico for bare 200 kroner

En kreativ PC-entusiast har utviklet DS5Dongle – en selvbygd adapter som gir Windows-brukere full tilgang til alle PlayStation DualSense-kontrollerens avanserte funksjoner trådløst. Prosjektet koster bare rundt 200 kroner å bygge med en Raspberry Pi Pico som hjerne.

Sony DualSense-kontrolleren har revolusjonert spillopplevelsen med sine adaptive triggere og avanserte haptiske tilbakemeldinger. Problemet for PC-spillere har vært at disse funksjonene ikke fungerer optimalt når kontrolleren brukes trådløst på Windows-maskiner. Her kommer DS5Dongle-prosjektet inn som en elegant løsning.

Hva gjør DS5Dongle så spesiell?

DS5Dongle er en open source-løsning som fungerer som en mellommann mellom DualSense-kontrolleren og PC-en. Den lille adapteren, bygget rundt en Raspberry Pi Pico, oversetter kontrollerens Bluetooth-signaler slik at Windows fullt ut kan utnytte:

  • Adaptive triggere med variabel motstand
  • Høyoppløselig haptisk feedback
  • Gyrosensor og akselerometer
  • Touchpad-funksjonalitet
  • RGB-belysning

Adapteren kobles til PC-en via USB og kommuniserer trådløst med kontrolleren gjennom Bluetooth. Dette eliminerer behovet for kabler mens alle avanserte funksjoner beholdes.

Tekniske spesifikasjoner og kompatibilitet

Prosjektet er bygget rundt en Raspberry Pi Pico mikrokontroller, som koster rundt 50-70 kroner. I tillegg trengs noen få ekstra komponenter for Bluetooth-kommunikasjon, noe som bringer totalkostnaden opp til cirka 200 kroner.

DS5Dongle er kompatibel med Windows 10 og Windows 11, og fungerer med alle spill som støtter DualSense-funksjoner. Siden det er et open source-prosjekt, kan utviklere også tilpasse koden for spesifikke behov eller forbedringer.

Perfekt for hobbyprosjekter og læring

Dette prosjektet representerer mer enn bare en praktisk løsning – det er et fremragende læringsverktøy for alle som ønsker å forstå hvordan moderne spillkontrollere fungerer. Koden gir innsikt i Bluetooth-kommunikasjon, USB HID-protokoller og sansordata-behandling.

For hobbyister som allerede har erfaring med Raspberry Pi, er dette et naturlig neste steg. Prosjektet kombinerer programvare og maskinvare på en måte som viser kraften i moderne mikrokontrollere.

Selv om kommersielle alternativer finnes, gir en selvbygd løsning full kontroll over funksjonaliteten og mulighet for fremtidige tilpasninger. Det er også en kostnadseffektiv måte å utforske avanserte konsepter innen spillteknologi.

Kilde: Tom’s Hardware

Publisert Legg igjen en kommentar

Aluminium for prototyper: Kjop og bearbeiding i Norge

Aluminium er et av de mest allsidige og tilgjengelige metallene for makere og prototypeutviklere i Norge. Med riktig kunnskap om legeringer, bearbeiding og leverandører kan du skape profesjonelle prototyper hjemme i garasjen eller på makerspace.

Hva du trenger:

  • Aluminiumsprofiler eller plater (6061 eller 6082 anbefales for nybegynnere)
  • Kutteutstyr (metallsag, kappsag eller CNC-maskin)
  • Bormaskin og metallbor
  • Sandpapir og putseutstyr
  • Sikkerhetsutstyr (briller, hansker, støvmaske)

Hvilken aluminiumslegering skal du velge?

Aluminiumslegeringer er blandinger av aluminium med andre metaller som gir forskjellige egenskaper. For prototyper er det tre hovedlegeringer du bør kjenne til:

6061-T6: Den universelle favoritt

6061-T6 er den mest populære legeringen blant makere. «T6» betyr at metallet er varmebehandlet for maksimal styrke. Den har god styrke, er lett å bearbeide og kan anodiseres (få en beskyttende overflate) uten problemer.

6082-T6: Det europeiske alternativet

6082-T6 er tilsvarende 6061, men mer vanlig i Europa. Den har noe høyere styrke og brukes ofte i strukturelle applikasjoner som bilrammer og broer.

2024-T4: For høy styrke

2024-T4 brukes i luftfartsindustrien og har svært høy styrke, men er vanskeligere å bearbeide og kan ikke anodiseres like lett som 6000-serien.

Tips: Start med 6061-T6 eller 6082-T6 for dine første prosjekter. Disse er mest tilgjengelige hos norske leverandører og gir best læring-til-pris forhold.

Profiler og plater: Hva finnes på det norske markedet?

Standard profiler

Aluminiumprofiler kommer i mange former:

  • Firkantprofiler: Populære for rammestrukturer
  • Runde stenger: Perfekt for akser og spindler
  • L-profiler: Utmerket for hjørneforsterkning
  • T-spor profiler: Ideell for modulære system som 3D-printere

Plater og ark

Aluminiumsplater fås i tykkelser fra 0,5mm til 100mm+. For prototyper er 3-10mm mest praktisk. Standardark er ofte 1000x2000mm eller 1250x2500mm.

Kjøp aluminium i Norge: Dine beste alternativer

Norge har flere gode leverandører av aluminium til makere:

Profesjonelle leverandører

Astrup AS (astrup.no) er en av Norges ledende leverandører av aluminiumprofiler og har bred erfaring med levering til både industri og privatpersoner. De tilbyr kutting og bearbeiding av profiler.

Norsk Staal (norskstaal.no) leverer et bredt spekter av metaller inkludert aluminium, med mulighet for spesialtilpasning og kutting.

Lokale alternativer

Mange lokale jernvareforretninger og verksteder selger standardprofiler. Ring rundt i ditt område – ofte får du bedre priser på mindre kvantum enn hos de store leverandørene.

Tips: Spør alltid om restmaterialer. Mange verksteder har korte lengder som er perfekte for prototyper til reduserte priser.

Bearbeiding av aluminium: Steg-for-steg

Kutting

  1. Mål og marker: Bruk en god linjal og marker tydelig hvor du skal kutte
  2. Fest materialet: Bruk skrustikke eller klemmer for å holde aluminium fast
  3. Velg riktig sagblad: Metallsagblad med 10-14 tenner per tomme fungerer best
  4. Kutt sakte og jevnt: La sagbladet gjøre jobben, ikke press for hardt
  5. Puss kantene: Bruk fil eller sandpapir for å fjerne skarpe kanter

Boring

  1. Marker borepunktet: Bruk senter-punch for å lage en liten fordypning
  2. Bruk riktige bor: HSS (høyhastighets stål) bor fungerer best i aluminium
  3. Lav hastighet: Bor med lav hastighet og jevnt trykk
  4. Bruk smøremiddel: WD-40 eller spesiell bor-olje reduserer varme og slitasje

Tips: Aluminium kan «smelte seg fast» i boret ved høy hastighet. Hold hastigheten lav og ta pauser for å la boret kjøle seg ned.

Anodisering: Få profesjonell finish

Anodisering er en elektrokjemisk prosess som skaper en hard, korrosjonsbestandig overflate på aluminium. Prosessen kan også gi farge til komponenten.

Hjemmeanodisering

Du kan anodisere små deler hjemme med:

  • Svovelsyre (batterisyre)
  • DC strømforsyning
  • Karbonelektroder
  • Sikkerhetsutstyr

Profesjonell anodisering

For beste resultat anbefaler vi å bruke profesjonelle anodiserversteder. De fleste større byer har verksteder som tilbyr denne tjenesten.

Verktøy og utstyr

For å komme i gang med aluminiumsbearbeiding trenger du ikke dyre maskiner. Du finner mye av det grunnleggende utstyret i vår kategorier for utstyr på RoboNordic, eller hos lokale verktøyforhandlere.

Vanlige feil og hvordan unngå dem

1. Bruker feil hastighet ved boring

For høy hastighet smelter aluminiumsspon og setter seg fast i boret. Bruk lav hastighet (200-400 RPM for 6mm bor).

2. Glemmer smøring

Tørr bearbeiding skaper mye varme og dårlig finish. Bruk alltid passende smøremiddel.

3. Velger feil sagblad

Treblade har for få tenner og river opp overflaten. Bruk metallsagblad med riktig tannstørrelse.

4. Klemmer for hardt

Aluminium deformeres lett. Bruk myke bakker i skrustikka eller legg en klut mellom.

5. Ignorerer sikkerhet

Aluminiumsspon er skarpt og kan skade øynene. Bruk alltid sikkerhetsutstyr.

Videre læring

Aluminium er en fantastisk inngangsport til metallbearbeiding. Start med enkle prosjekter som rammer eller fester, og bygg gradvis opp ferdighetene dine. Med riktig kunnskap og litt øvelse kan du skape profesjonelle prototyper som konkurrerer med industriproduksjon.

Husk at practice makes perfect – hver kutt og hvert hull gjør deg bedre til neste prosjekt!

Norske leverandører

Publisert Legg igjen en kommentar

Bambu Lab stenger tredjepartsutvikling med juridiske trusler

**Den uavhengige utvikleren Pawel Jarczak har lagt ned sitt populære «OrcaSlicer-BambuLab»-prosjekt etter juridiske trusler fra Bambu Lab. Konflikten handler om gjeninnføring av funksjoner som produsenten bevisst hadde deaktivert i den tredjepartsbaserte slicer-programvaren.**

Saken illustrerer en økende spenning mellom 3D-skriver-produsenter og det åpne utviklermiljøet. OrcaSlicer, en populær fork av PrusaSlicer, har blitt foretrukket av mange brukere på grunn av sine avanserte funksjoner og fleksibilitet sammenlignet med Bambu Labs egen Bambu Studio.

Hva var OrcaSlicer-BambuLab-prosjektet?

Jarczaks prosjekt fokuserte på å gjeninnføre direktekontroll-funksjoner som Bambu Lab hadde valgt å deaktivere i OrcaSlicer. Disse funksjonene ga brukere mulighet til å styre sine Bambu Lab-skrivere direkte gjennom den tredjepartsbaserte programvaren, noe som mange hobbyister og profesjonelle brukere ønsket.

OrcaSlicer bygger på den åpne kildekoden til PrusaSlicer og tilbyr forbedrede algoritmer for støttestrukturer, bedre fylling-mønstre og mer avanserte kalibreringsfunksjoner. For mange representerer den en mer kraftfull løsning enn produsentenes egne slicer-programmer.

Bambu Labs respons og juridiske trusler

Da Jarczak publiserte sin modifikasjon, reagerte Bambu Lab raskt med juridiske trusler. Selskapet hevdet at prosjektet krenket deres rettigheter, selv om OrcaSlicer i utgangspunktet er basert på åpen kildekode med GPL-lisens.

Denne saken reiser viktige spørsmål om balansen mellom produsentenes kontroll og brukernes frihet til å modifisere åpen kildekode-programvare.

Jarczak valgte å nedlegge prosjektet frivillig framfor å risikere en kostbar juridisk strid. Dette har skapt debatt i 3D-print-miljøet om hvorvidt slike trusler er berettigede når det gjelder programvare under åpne lisenser.

Konsekvenser for 3D-print-miljøet

Nedleggelsen av prosjektet sender et signal om at selv store aktører i 3D-print-bransjen er villige til å bruke juridiske midler for å beskytte sin programvare-økosystem. Dette kan ha en avskrekende effekt på fremtidige utviklingsprosjekter.

For brukere av Bambu Lab-skrivere betyr dette at de må forholde seg til de begrensningene produsenten setter, selv når teknisk sett mer avanserte alternativer finnes. Saken understreker viktigheten av å forstå lisensvilkårene rundt både maskinvare og programvare før man investerer i et 3D-print-økosystem.

Utviklingen viser også hvordan 3D-print-industrien modnes og blir mer kommersiell, der åpenheten som preget de tidlige årene gradvis gir plass for mer restriktive forretningsmodeller.

Kilde: Tom’s Hardware

Publisert Legg igjen en kommentar

Bygg en linjefølgerobot: Komplett prosjektguide

En linjefølgerobot er det perfekte første robotikk-prosjektet! Denne roboten bruker sensorer til å følge en svart linje på gulvet, og kombinerer grunnleggende elektronikk, programmering og mekanikk på en morsom måte.

I denne guiden bygger vi en enkel men effektiv linjefølgerobot fra bunnen av. Du lærer å koble sammen IR-sensorer, kontrollere motorer og programmere intelligent robotadferd.

Hva du trenger

  • Arduino Uno – mikrokontrollen som styrer roboten
  • L298N motordriver – for å kontrollere DC-motorene
  • 2x DC-motorer med hjul – for fremdrift
  • 2-3x IR-sensorer (TCRT5000) – for linjedeteksjon
  • Chassis/ramme – kan være akryl, tre eller 3D-printet
  • Batteripakke (6-9V) – strømforsyning
  • Koblingskabler og breadboard
  • Skruer, bolter og monteringsutstyr
  • Svart tape – for å lage testbane

Slik fungerer en linjefølgerobot

Prinsippet er enkelt: IR-sensorer (infrarød) sender ut lys og måler hvor mye som reflekteres tilbake. Hvite overflater reflekterer mye lys, mens mørke overflater absorberer det. Roboten justerer retning basert på disse målingene.

IR-sensorer består av en IR-LED som sender ut lys, og en fototransistor som mottar det reflekterte lyset. TCRT5000 er en populær modul som gir både analog og digital utgang.

Tips: Start med å teste sensorene på forskjellige overflater før du begynner byggingen. Hold dem 3-10mm fra underlaget for best resultat.

Steg 1: Bygg chassiset

Chassiset er robotens «skjelett» som holder alle komponenter på plass. Du kan bruke:

  • Ferdig chassis – enklest å komme i gang med
  • Akrylplate – lett å bore hull i og tilpasse
  • 3D-printet ramme – full kontroll over design

Plasser motorene i front eller bak, avhengig av design. Arduino og motordriver monteres oppå, mens sensorer festes under chassiset, 5-10mm fra bakken.

Steg 2: Monter sensorene

Sensorplassering er kritisk for god ytelse:

  1. To sensorer: Plasser en på hver side av hvor linjen skal gå
  2. Tre sensorer: En i midten, to på sidene – gir bedre presisjon
  3. Avstand: 2-3 cm mellom sensorene
  4. Høyde: 3-8mm fra bakken

Fest sensorene solid – vibrasjon kan forstyrre målingene.

Steg 3: Koble sammen elektronikken

L298N motordriver er hjertet i motorstyringen. Den tar lave strømssignaler fra Arduino og forsterker dem til å drive motorene.

Arduino Uno D2-PWM D3-PWM A0-A2

L298N IN1-IN4 ENA-ENB OUT1-OUT4

Motor L

Motor R

IR-sensor

Batteri

+12V

GND

Viktige tilkoblinger:

  • Arduino pin 2,3: Til L298N IN1, IN2 (venstre motor)
  • Arduino pin 4,5: Til L298N IN3, IN4 (høyre motor)
  • Arduino A0-A2: Til IR-sensorenes analoge utganger
  • L298N +12V: Til batteriets pluss
  • Felles jord: Koble alle GND sammen

Tips: Bruk forskjellige farger på kablene – rød for strøm (+), svart for jord (GND), og andre farger for signaler. Dette gjør feilsøking mye enklere!

Steg 4: Programmering

Her er grunnkoden for å komme i gang:


// Definer pins
const int sensorLeft = A0;
const int sensorCenter = A1;
const int sensorRight = A2;

const int motorLeftA = 2;
const int motorLeftB = 3;
const int motorRightA = 4;
const int motorRightB = 5;

void setup() {
  pinMode(motorLeftA, OUTPUT);
  pinMode(motorLeftB, OUTPUT);
  pinMode(motorRightA, OUTPUT);
  pinMode(motorRightB, OUTPUT);
}

void loop() {
  int left = analogRead(sensorLeft);
  int center = analogRead(sensorCenter);
  int right = analogRead(sensorRight);

  if (center > 500) {
    // Kjør rett frem
    moveForward();
  } else if (left > 500) {
    // Sving venstre
    turnLeft();
  } else if (right > 500) {
    // Sving høyre
    turnRight();
  }
}

Introduksjon til PID-kontroll

PID (Proportional-Integral-Derivative) er en avansert styringsmetode som gir mykere og mer presise bevegelser. I stedet for brå svinger, justerer PID motorhastigheten gradvis basert på hvor langt roboten er fra ønsket posisjon.

PID beregner en feil (hvor langt fra linjen) og justerer motorene proporsjonalt. Dette gir mindre oscillasjon og raskere kjøring.

Tips: Start med enkel on/off-logikk først. Når roboten følger linjen greit, kan du implementere PID for bedre ytelse.

Vanlige feil og løsninger

  • Roboten reagerer ikke: Sjekk batteriets spenning og alle jordforbindelser
  • Motorene går bare en vei: Bytt om på motortilkoblingene til L298N
  • Sensorene gir rare verdier: Juster høyden og kalibrer grenseverdiene
  • Roboten oscillerer voldsomt: Reduser motorhastigheten eller implementer PID
  • Mister linjen i svinger: Legg til flere sensorer eller øk bredden mellom dem

Neste steg

Når grunnroboten fungerer, kan du utvide med:

  • Hastighetsregulering med PWM
  • LCD-display for debugging
  • Trådløs kommunikasjon
  • Mer avanserte sensorer

Alle komponenter du trenger finner du i nettbutikken vår – fra Arduino-boards til sensorer og motorkomponenter. Lykke til med byggingen!