Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  21 1909
Hei,

Noen av dere kjenner meg fra andre deler av forumet. Ber dere om å legge til side alt det der og ta på nerdebuksene. Eller bare gå et annet sted.

Tingen er den at jeg for noe tid siden bestemte meg for å prøve open-source tilnærming for utvikling av et innovasjonsprosjekt jeg har jobbet med i snart et halvt tiår.

Så langt har jeg lykkes i å få bekreftet interesse, men det er enda ingen aktive medlemmer av ROS (Robot Operating System) sitt nettsamfunn som har tatt seg tiden til å engang prøve å se på koden. Dette overrasker meg egentlig ikke. Det er totalt uten dokumentasjon, det er teknisk sett enkel kode, det er kode som på ingen måte følger C++ ROS Style Guide eller generelle konvensjoner - det er mange grunner til at ingen gidder. Samtidig så er jo dette profesjonelle aktører som jobber med ROS og kan ROS mye bedre enn hva jeg kan - i alle fall den teoretiske delen.

Men jeg tror kanskje det er noen her som gidder - da det ikke er så mange av dere som jobber fulltid med ROS etter hva jeg har fått med meg. Hvis du lurer på hvorfor ROS: Fremfor å liste opp en haug med indikatorer så oppfordrer jeg dere til å Google det eller bare ta meg på ordet - ROS er den universelle gullstandarden innen robotikk i all overskuelig fremtid.

Og ROS er nytt. Veldig nytt - det ble vel grunnlagt i 2007 ved Stanford University. Når jeg begynte med det i 2017 var det ansett som akkurat modnet nok til å være et stabilt utgangspunkt for kommersielle roboter. Innen under 5 år vil det ihht prognoser kjøre ROS i over halvparten av verdens solgte roboter!

Etterspørselen er helt enorm, men på grunn av den unge alderen til systemet og vanskelighetsgraden ved selvlæring er det stort sett ildsjeler og akademikere som virkelig kan dette; ingen "hasbeen"'s som tar det rolig med undervisning før pensjonisttilværelsen.

Enda jeg egentlig er en noob selv så har jeg enda blitt tvungen til å lære meg akkurat nok av hver eneste berørte fagdisiplin til å få et helautonomt system til å styre seg selv basert på omgivelsene.

Jeg vil gjerne høre alle mulige forslag og innvendinger rundt hva som skal til for å øke sjansen for at noen her inne lar seg mobilisere. Det er dessverre nødvendig med erfaring fra C++, men ingen erfaring med ROS er nødvendig. Python er også mulig, men det fungerer ikke optimalt og funksjonaliteten henger alltid litt etter.

Er det noen som er interessert? Kan enten ta kontakt pr PM, eller om det er flere som melder interesse her så går det an å få til noe på direkten.

"Interessert i hva?" - tenker en gjerne; jeg lar det stå veldig åpent. Det er veldig mange deler av systemet som går an å fokusere på, fra kontroll og PID'er til bildeanalyse av høydekart eller abstraherte sensordata.
Hvis jeg skjønner deg riktig så ønsker du bidragsytere?

Er koden på git? Bruker du noen form for prosjektstyringsverktøy?
Har du noen tanker om veien videre/road map?

Link til repo?
Halvstudert røver
Myoxocephalus's Avatar
DonorCrew
Kikker gjerne på koden din, jeg. Har da noe erfaring med både python og C++, antakelig nok til å kunne gjøre noe nyttig her og der hvis det du skriver her er en noenlunde rettferdig beskrivelse av situasjonen. Jeg tar følgende forbehold:
1) Jeg lover ingenting. Ne rien, null, zilch nix og nada. Ingen forpliktelser. Jeg er busy af, jeg har mine ting å stri med på flere fronter, hvis jeg skal delta i noe free softwareutvikling, så skal jeg ha mulighet til å gjøre så lite jeg gidder og trekke meg når som helst uten gnål.
2) Koden jeg må forholde meg til er fri programvare og jeg slipper å forholde meg til lisenspiss og jus.
3) Jeg forblir anonym.

Hvis deltakelse under de premissene er interessant for deg, så er jeg villig til å gi det et forsøk. Kanskje er hele greia milevis over hodet på meg og jeg kan ikke bidra med noe. Kanskje er det for messy til at jeg orker å investere noe særlig tid til å prøve veldig hardt. Men jeg er villig til å stille med et åpent sinn, og det jeg måtte besitte av realfagskompetanse.
Jeg tror dere vil oppleve det som for messy atm. Builden som opprinnelig funket (2 install scripts som installerer ROS-dependencies og bygger workspace samt starter demo simulering) er for øyeblikket ødelagt. Linken er her. Er det noe sted det gir mening at jeg begynner å forklare?

Har aldri brukt git før. Har ikke pushet siste versjon. Legger ut video som kanskje gir noe mer mening, brb.

Hvis det er sånn at dere gir det én sjanse så vil jeg at dere venter med å se på det til jeg har forberedt det litt minimalt.

https://github.com/bjortech/tb

For å installere og kjøre korrekt versjon av ROS MÅ du begynne med en fresh install av 18.04. Ikke prøv å down/upgrade, installer desktop versjon 18.04 fra USB disk (brenn med f.eks SD-formatter eller rufus).

https://youtu.be/o8T3sQ2_7-Q

Sjekk da. Dette er et forsøk på å vise såvidt hvordan tingene fungerer. Vi får inn punktene fra sensorer, eller i vårt tilfelle, de "simulerte" sensorene. Disse er simulert av roscpp- og rospy-noder i tb_simulate. Simuleringen er basert på et høydekart hentet fra hoydedata.no. Det er ikke relevant at dataene er feil, utfordringene vi ser på er knyttet til veldig høyt nivå av abstraksjon. Altså er sensordataene filtrert, sannsynlighetsfordelt og deretter konvertert til euklidiske avstandsfelt som igjen danner setpointene en inspeksjon nødvendigvis må besøke. Utfordringen er å finne en dynamisk måte å reagere til omgivelsene som danner et forutsigbart, men enda fleksibelt atferdsmønster. Vi ønsker ikke å hardkode spesifikk atferd, men å la enkle regler definere en generisk type atferd. Akkurat som en enkelt agent i en svermintelligens. Dette har sine grunner, hirr hirr.

https://www.youtube.com/watch?v=iuS_t5tjIQc

Sånn ble den. God natt. Kommer tilbake om litt, når jeg har fått på plass en minimal introduksjon og fikset install-og-build scripts. Dere som ikke har det må få dere en dual-boot partisjon med Ubuntu 18.04. Det er helt rett frem å fikse, masse gode tutorials.

Det er det eneste dere må gjøre selv for å få installert og testet systemet. Lover. Og med det så kommer pointcloud library (PCL), OpenCV 3.1, tf2 osv osv. Man kan gjøre nesten alt i ROS uten å faktisk kunne kode; det viktigste er egentlig konfigurasjonen for launching av andres programvare. Men man kommer selvfølgelig fort til kort om man har spesifikke problem som må løses.

Sånn som her. Hele systemet må redefineres etter ROS2 sine prinsipper. Jeg aner ikke om det er noen andre i Norge som holder på med det, jeg skal høre litt rundt. Men ja, om noen klarer å gjøre mening ut av koden min så er det jo helt fantastisk.

La meg presisere at jeg ikke er noen abstrakt mattematiker eller phd i knotete kode. Det er ingenting mattematisk som er over videregående-nivå. Styrken til systemet er nettopp simplisiteten. Nå er riktignok filen jeg sitter å jobber i 2300 linjer lang, men som dere ser på git så har jeg gjort et heltemodig forsøk på å segmentere systemet. Det kan derfor virke ekstra "merkelig" bygd opp. Har måttet kutte noen corners.

Sitat av Myoxocephalus Vis innlegg
Kikker gjerne på koden din, jeg. Har da noe erfaring med både python og C++, antakelig nok til å kunne gjøre noe nyttig her og der hvis det du skriver her er en noenlunde rettferdig beskrivelse av situasjonen. Jeg tar følgende forbehold:
1) Jeg lover ingenting. Ne rien, null, zilch nix og nada. Ingen forpliktelser. Jeg er busy af, jeg har mine ting å stri med på flere fronter, hvis jeg skal delta i noe free softwareutvikling, så skal jeg ha mulighet til å gjøre så lite jeg gidder og trekke meg når som helst uten gnål.
2) Koden jeg må forholde meg til er fri programvare og jeg slipper å forholde meg til lisenspiss og jus.
3) Jeg forblir anonym.

Hvis deltakelse under de premissene er interessant for deg, så er jeg villig til å gi det et forsøk. Kanskje er hele greia milevis over hodet på meg og jeg kan ikke bidra med noe. Kanskje er det for messy til at jeg orker å investere noe særlig tid til å prøve veldig hardt. Men jeg er villig til å stille med et åpent sinn, og det jeg måtte besitte av realfagskompetanse.
Vis hele sitatet...
Alt er så absolutt helt ok for meg! Da ønsker jeg deg velkommen ombord, som første mann

***************Automatisk sammenslåing kommer, innlegg av tirsdag 09:00*******
God morgen!

Som tilsvar til STH's fundamentale forespørsel om roadmap:

Jeg kommer nå til å sette opp en konkret tidslinje for gjennomgang av de forskjellige pakkene systemet baseres på. Målet er å gjøre det tydelig hva som trengs for å oppnå hvilken funksjonalitet. Tenker det kan gi mening å spille inn litt forklaringer på norsk og, siden språk kan være en barriere for mange (selv uten at en grautete bergenser snakker upresist fagspråk).

Innen rimelig kort tid vil vi ha kommet dithen at de aktuelle problemstillingene kan adresseres. Den tid den glede. Enn så lenge fokuserer vi på å gi en grunnleggende innføring.

Er ikke vits at jeg sitter her og snakker om hvordan dette skal bli, jeg ser for meg at vi finner ut av ting as we go. Forslag til plattformer, samarbeidsverktøy osv mottas med et åpent sinn.

Nå lager jeg en ny branch, noe jeg ikke vet hva egentlig betyr, men jeg håper det betyr at jeg kan slette alt som ikke er nødvendig og bygge opp alt fra det grunnleggende og helt opp til det abstrakte.

Nå kan alle bare få på plass ubuntu 18.04 og vente til jeg sier fra om at den grunnleggende delen er klar for automatisk installasjon-bygging-starting (Det tar noen dager, toppen).

Med denne håndfullen pakker vil dere kunne starte robotsimulering og trykke rundt på kartet dere vil roboten skal bevege seg. Dere vil også kunne stille inn aktuatorer slik at de bevegelige delene i systemet beveger på seg. Allerede her vil dere utnytte state of the art robot funksjonalitet i form av ROS-navigation.

1) tb_robot: Dette er den mest fundamentale pakke som inneholder noen av de absolutte forutsetningene for at en robot skal utnytte ROS sin kjernefunksjonalitet.

2) tb_cmd: For å sende kommandoer til autopilot eller simulator trengs denne pakken. I denne pakken finnes også et lite triks for å utnytte en av de store fundamentale robot-byggeklossene - Move Base.

3) tb_simulate: Verdens enkleste simulator. Det denne gjør er så enkelt som å integrere hastighetskommandoene på tid og så sende ut lokalisasjon og rotasjon over samme "topic"* som DJI sitt ROS-interface gjør. I tillegg til dette utnyttes høydekartet som jeg tror jeg nevnte i går til å imiterere sensordata. Også tilstandsmelding sendt fra servoer simuleres i henhold til gitte kommandoer.

4) tb_bringup: Den viktigste pakken av dem alle - pakken som starter alt sammen. Launchfiles, konfigurasjoner etc.
Her er også hoveddelen av systemet, som tross alt ikke er utviklet av meg. Kommer til å dokumentere bedre, men kort oppsumert snakker vi om hardwaredrivere, filtere, robot_state_publisher, move_base, tf, URDF(Universal Robot Description File)(+xacro) og map_server. Innunder move_base har vi igjen et utvalg av forskjellige pathplanners- og costmap-plugns.

Oppsummert: Jeg kommer tilbake til dere så fort som mulig med en minimalistisk men dokumentert utgangspunkt-konfigurasjon.

Jeg vil også formulere litt mer konkret rundt hva jeg ser for meg i tiden fremover. Høres dette greit ut? Dere må bare skrike ut - jeg vet virkelig ikke hva som er riktig tilnærming her.


**************Automatisk sammenslåing - Tirsdag kl 11:15*************************
"Noen dager" var veldig pessimistisk.

Her har dere en ny branch - "freak". Så fort Ubuntu 18.04 er på plass skal script som laster ned og kjører demoen fungere! Alt ligger i readme på git. Si fra hvis noe er uklart.

https://github.com/bjortech/tb/tree/freak
Sist endret av Tøffetom; 4 uker siden kl. 11:17. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Halvstudert røver
Myoxocephalus's Avatar
DonorCrew
Sweet!
Bare for å presisere, så mente jeg ingenlunde å implisere at jeg gir det ett forsøk og så ditcher hele greia. Jeg er mer enn villig til å legge ting fra meg og ta det opp igjen side og alt det der. Jeg sier bare at jeg ikke orker flere *forpliktelser*. Så lenge frivilligheten er, vel, frivillig, så er jeg game.
Sitat av Myoxocephalus Vis innlegg
Sweet!
Bare for å presisere, så mente jeg ingenlunde å implisere at jeg gir det ett forsøk og så ditcher hele greia. Jeg er mer enn villig til å legge ting fra meg og ta det opp igjen side og alt det der. Jeg sier bare at jeg ikke orker flere *forpliktelser*. Så lenge frivilligheten er, vel, frivillig, så er jeg game.
Vis hele sitatet...
Den ser jeg og det var akkurat slik jeg tolket det du skrev

Det er heller ikke sånn at det er fy fy om man gir det et forsøk og lar det være med det. Håper bare den som eventuelt gjør det tar seg tid til å si en setning om hva årsaken måtte være.

https://youtu.be/leaM3FftBok

Det er det lille jeg har lagt ut i den freak-branchen. Tenker det er best at jeg flytter over alt arbeidet som trengs dit etterhvert som behovet oppstår. Det er jo enda en hel del med "grunnleggende" system som jeg har regnet som "godt nok". Dvs, det har ikke vært noen hindring som må løses før avansert og dynamisk atferd er mulig å utvikle.

Følgende deler er lagt ut og blir automatisk installert-bygget-startet om skriptet kjøres som i videoen. Det andre installscriptet må kjøres først om ikke ROS melodic er installert.

Dette er det absolutte minimum for å interface systemet med grunnleggende robot-pakker. Det å mate disse grunnleggende funksjonalitetene med inndata er jobben til samtlige av nodene jeg har skrevet. Det er også gjort noen triks for å konvertere miljøet som observeres i 3D til en brukanes format å ta beslutninger på bakgrunn av.

tb_simulate - nei jeg må legge meg nå.

*************************Automatisk sammenslåing - onsdag 11:00**************
Har nå vært helt utrolig pedagogisk og laget enda en branch - freak_del2.

Det som er nytt her er introduksjonen av enda en av de store, fundamentale "byggeklossene" i de fleste moderne roboter. "Octomap" er en virkelig genial måte å kartlegge verden på, utviklet ved universitet i Freiburg i 2014. Kort fortalt bruker man punktskyer som kommer inn til å oppdatere sannsynligheten for at punktet som befinner seg ved xyz er okkupert , ikke okkupert eller ikke registrert. (Faktisk er det ikke ved punkt xyz, men ved bladet på greinen i treet. I octomap lagres ikke punkter som euklidiske avstander, i stedet husker hver node kun sine naboer (som det er 8 av - derav octomap ). Man må derfor iterere gjennom treet for å finne dataene. ..I digress. )

Nå som vi har octomap og move base på plass er neste steg å få hentet ut dataene vi etterlyser for å oppdatere costmapet og dermed gjøre at systemet vårt ikke bare vet hvor hindringene er, men også planlegger unna dem.

Når det et gjort så er det faktisk tid for å diskutere atferd!

Skal koke sammen noen filmer med kommentar som demonstrerer.

Husk å skifte branch! Master er bare ressurser, freak og freak_del2 er hva jeg snakker om nå

*************************Automatisk sammenslåing - onsdag 11:00**************
Har nå vært helt utrolig pedagogisk og laget enda en branch - freak_del2.

Det som er nytt her er introduksjonen av enda en av de store, fundamentale "byggeklossene" i de fleste moderne roboter. "Octomap" er en virkelig genial måte å kartlegge verden på, utviklet ved universitet i Freiburg i 2014. Kort fortalt bruker man punktskyer som kommer inn til å oppdatere sannsynligheten for at punktet som befinner seg ved xyz er okkupert , ikke okkupert eller ikke registrert. (Faktisk er det ikke ved punkt xyz, men ved bladet på greinen i treet. I octomap lagres ikke punkter som euklidiske avstander, i stedet husker hver node kun sine naboer (som det er 8 av - derav octomap ). Man må derfor iterere gjennom treet for å finne dataene. ..I digress. )

Nå som vi har octomap og move base på plass er neste steg å få hentet ut dataene vi etterlyser for å oppdatere costmapet og dermed gjøre at systemet vårt ikke bare vet hvor hindringene er, men også planlegger unna dem.

Når det et gjort så er det faktisk tid for å diskutere atferd!

Skal koke sammen noen filmer med kommentar som demonstrerer.

Husk å skifte branch! Master er bare ressurser, freak og freak_del2 er hva jeg snakker om nå
Sist endret av Tøffetom; 4 uker siden kl. 11:26. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
*************natt til fredag*****

Del5 er fungerende, men nå nærmer vi oss den delen jeg trenger hjelp med.

Slik ser det ut nå. Høydekart og failsafe minimumshøyde og kollisjonssjekk.

https://youtu.be/pTIW91Nw7r0

Kommer til å begynne å legge ut skikkelig dokumentasjon og bruke video til å forklare. Ikke misforstå og tro jeg forventer at det jeg legger ut så langt lærer vekk noe som helst.

Håper dog det går an å se hva som skjer.
Har sett at du har pratet om dette opp gjennom årene. Nå har jeg mest sannsynlig skummet gjennom det meste, men jeg klarer fremdeles ikke helt å forstå hva du prøver på. Kartlegge omgivelsene ved hjelp av drone? Styre seg selv ved hjelp av omgivelsene? Dvs inni ett bygg?? I skogen? Fra a til å? Og hvor er denne oppfinnelsen nyttig?
Halvstudert røver
Myoxocephalus's Avatar
DonorCrew
Sitat av kastrertHankatt Vis innlegg
Har sett at du har pratet om dette opp gjennom årene. Nå har jeg mest sannsynlig skummet gjennom det meste, men jeg klarer fremdeles ikke helt å forstå hva du prøver på. Kartlegge omgivelsene ved hjelp av drone? Styre seg selv ved hjelp av omgivelsene? Dvs inni ett bygg?? I skogen? Fra a til å? Og hvor er denne oppfinnelsen nyttig?
Vis hele sitatet...
Hvis du går inn på repoet og leser andre setning i README'en, så finner du føglende beskrivelse:
Sitat av Tøffetom
The goal is to create a framework for totally isolated operation in threedimensional, uknown, dynamic and
GPS-denied environments.
Vis hele sitatet...
Målet, slik jeg oppfatter det i alle fall, er altså å lage et styringssystem for roboter slik at de kan navigere helt på egenhånd i ukjente og uforutsigbare omgivelser som stadig er i endring. Gressklipperroboten din forventer at underlaget stort sett er en gressplen, at hagen ikke plutselig endrer seg og at det finnes et system som avgrenser området den skal kjøre på. Tøffetom ønsker at roboter ikke skal være underlagt slike begrensninger, men i verste fall kunne fly rundt i kjelleren på en bygning mens den brenner og er i ferd med å kollapse. Det er ganske ambisiøst. Nytteverdien burde imidlertid være åpenbar.
Sist endret av Myoxocephalus; 4 uker siden kl. 18:57.
Hm okay, skjønner. Takk! Spennende.

Har litt erfaring med sensorer, visualisering av sensordata i unity og droner.

Blir å følge med, og kan kanskje(!) bidra litt etterhvert. Begynner å fatte skissa, men enda litt forvirret.
Fett!!

Har sluttet å selvmedisinere så tenker det blir litt mer aktivitet fremover. Med ferdigstillingen av denne og neste pakke er egentlig den grunnleggende funksjonen komplett.

Men det er jo bare utgangspunktet. Nå må vi benytte anledningen til å skrive om fra ROS1 til ROS2 samtidig som vi får på plass koding style ihht globale standarder, bytter ut all gjennomgående kode (alle funksjoner er copypastet inn i samme side som funksjonene og jeg er jo nærmest blasfemisk med alle globale variabler, dependencies osv.)

Hele industrien gjør denne overgangen, det betyr at det er åpning for å hale innpå, eller dra ifra, alt ettersom.

Styringsprinsippet vil bli mer i retning sverm intelligens og feks boid-algoritmen. For å gjøre disse beregningene trengs kontinuerlige normaliserte variabler som avstand til nærmeste hindring, avstand til nærmeste tidligere besøkte punkt eller radianer i offset fra nåværende hastighetsvektor.

Er sliten nå, kommer tilbake i morgen tenker jeg. Vide ligger, koden et under distansecloud pakken i branch 6. prøver såvidt å endre litt på stilen.

https://youtu.be/u1IxMQ28wjo

Bygger pakken tre ganger for å gjøre det forståelig. Så kan de gjøres til 3D og, og disse feltene må kunne redefineres etter bransje.

Slik bygger vi en atferd fremfor en prosedyre.

Og jeg skal gjøre noen ordentlige skjermopptak med forklaring. Det går garantert fortest for alle parter. På norsk
Sist endret av Tøffetom; 4 uker siden kl. 00:05. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Redpilled alfahann
bennnern's Avatar
Håper dette blir en suksess. Hadde vært tidenes Rocky historie.

Jeg lurer litt på hvordan dette skal konkurrere med kunstig intelligens? Jeg skjønner at det rent tekniske er vanskelig å formidle til en lekman, men om du kunne dommet det ned til noen enkle argumenter hadde det vært interresant å vite hvorfor dette skal være mer banebrytende enn for eksempel kunstig intelligens prosjektet til google. Hva er fordelen med din programmering kontra kunstige nevroner?
Sitat av bennnern Vis innlegg
Håper dette blir en suksess. Hadde vært tidenes Rocky historie.

Jeg lurer litt på hvordan dette skal konkurrere med kunstig intelligens? Jeg skjønner at det rent tekniske er vanskelig å formidle til en lekman, men om du kunne dommet det ned til noen enkle argumenter hadde det vært interresant å vite hvorfor dette skal være mer banebrytende enn for eksempel kunstig intelligens prosjektet til google. Hva er fordelen med din programmering kontra kunstige nevroner?
Vis hele sitatet...
Dette her kan jeg snakke om i en evighet, så jeg må bare ta kortversjonen:

Det klarte jeg selvfølgelig ikke. Så her kommer kortversjonen, så er det en lang babbling under:
AI brukes til å løse helt spesifikke oppgaver, stort sett knyttet til klassifisering av bilder, sykdommer, tekster etc. AI er enda ikke brukt i industrien til styring av roboter - men roboten kan faktisk allerede bruke AI som del av systemet. Dette er faktisk en av de tingene som snart vil bli integrert i systemet i form av klassifisering av objekter i 2D bildestrøm. Hvis AI identifisere et kjøretøy som er <row,col> i bildet, kan man med hjelp av avstandasmåling plassere kjøretøyet i 3D beslutningsgrunnlaget. Om systemet eksempelvis skal brukes til å forfølge en bil i en biljalkt, vil dette være hovedgrunnlaget for valg av rute. Men selve styringen og planleggingen for å komme dit - den vil enda være gjort av konvensjonelle deterministiske algoritmer.

Litt babbel:


“AI”, eller maskinlæring, er i praksis stort sett snakk om kunstige nevrale nettverk. Det finnes andre former for AI, som genetiske algoritmer og svermintelligens.Men 99% av tiden er det altså snakk om neural networks - mest populær er vel convolutional neural networks. Dette er imitasjoner av hjernen (neveroner som fyrer eller ikke fyrer, i lag etter lag). Convolutional er faktisk modellegert etter synsnervene i øyet, som vi vet ganske mye om. Når dette først ble testet ut ble helt overlegne resultater oppnådd).,

https://medium.com/machine-learning-...n-2fc4faa7bb63

Måten man bruker AI på er at man mater et slikt nettverk (som kan være skrevet i alt fra haskell til C++ - men mest populært python) med treningsdata. Man trener dermed systemet til å eksempelvis gjennkjenne bilder (input = pixler), diagnostisere sykdommer (input = kroppens variabler) - hva du enn kan tenke deg. Men enda du kan trene en AI til å gjøre hva som helst, er det enda bare denne tingen den kan gjøre. Det er en spesifikk kunstig intelligens. (Når vi utvikler en generell kunstig intelligens er det stor sannsynlighet for at det er over for oss. Det er dette Hawkin og Musk adverte og adverer mot.).

Men enn så lenge er altså AI veldig spesifikk - mest av alt brukt til å identifisere ting i et bilde, kjenne igjen annsikter, biltyper, lese skrift etc.

Det å faktisk styre noe med AI, er enda noe som er på det helt eksperimentelle stadiet. NVIdia er i bresjen der, men det er enda langt unna å bli brukt i industrien, såvidt jeg vet.

Men, uten å ta helt av her, la meg bare skyte inn at det jeg nå skal til å forklare - hvordan styringssystemet vil bli mer atferd-orientert enn prosdeyre-definert, åpner faktisk for et perfekt utgangspunkt for å down the road begynne å eksperimentere med nettopp AI til navigasjonsbeslutninger.

Det vi dog trenger for å uvikle noe sånt er treningsdata - så får AI kan implementeres må det være hundrevis av enheter i aktiv service rundtom, alltid samlende data som senere kan brukes til trening.,

Og la meg legge til en ting som er veldig fundamentalt i besvarelsen av problemstillingen din:

Systemet mitt er ikke banebrytende teknologisk!

Ingenting er i nærheten av Googles Deep Mind, f.eks. Det dette prosjektet har som gir det livets rett, etter min vurdering, er simplisiteten og dets generiske natur. Systemet kan brukes til å inspisere og senere vedlikeholde hva som helst, hvor som helst. All teknologien nødvendig ligger allerede fritt tilgjengelig for alle og enhver - det å sette det i et system som er robust og fleksibelt nok til å levere en kritisk tjeneste til eksempelvis oppdrettsnæringen eller redningstjenesten.
Sist endret av Tøffetom; 3 uker siden kl. 13:10. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Redpilled alfahann
bennnern's Avatar
Sitat av Tøffetom Vis innlegg
.

Det å faktisk styre noe med AI, er enda noe som er på det helt eksperimentelle stadiet. NVIdia er i bresjen der, men det er enda langt unna å bli brukt i industrien, såvidt jeg vet.
Vis hele sitatet...
Litt av utgangspunktet for at jeg spurte var at jeg kom over en video der en robothånd har lært seg å løse en rubixcube: https://openai.com/blog/solving-rubiks-cube/

Slik jeg forstår det har det blitt gjort en haug av simuleringer virtuelt der en simulering av robothånden løser en rubixkube i et stadig mer krevende virtuelt miljø. Dette trener opp ett nevralt netverk(?) til å kunne løse kuben i mange ulike situasjoner. Når det nevrale nettverket senere blir brukt til å styre en ekte robothånd er den i stand til løse en ekte rubixkube selv om den utsettes for en rekke miljøforandringer. Det er altså oppnådd en betydelig grad av generaliserbarhet om jeg har skjønt det riktig.

Da tenker jeg at noe av det samme prinsippet kan brukes på å løse de samme problemstillingene du forsøker å løse. Ville det ikke funket å trene opp en virtuell undervannsrobot på samme måte? Ved å utsette den for ett stort antall simuleringer av potensielle mærer, eller andre miljøer der systemet kan bli tatt i bruk? Sikkert en enorm utfordring, men jeg ser ikke intuitivt hvorfor problemstillingen skal være SÅ enormt mye mer krevende en oppgaven med å løse en rubixkube i et stort antall ulike settinger. Hvilken fordel vil isåfall ditt system ha over en slik løsning? Utelukkende at det er kommet lengre i utviklingen eller er det andre fordeler det også kan dra nytte av?


Sitat av Tøffetom Vis innlegg
Det dette prosjektet har som gir det livets rett, etter min vurdering, er simplisiteten og dets generiske natur.All teknologien nødvendig ligger allerede fritt tilgjengelig for alle og enhver - det å sette det i et system som er robust og fleksibelt nok til å levere en kritisk tjeneste til eksempelvis oppdrettsnæringen eller redningstjenesten.
Vis hele sitatet...
Systemet ditt, om jeg har skjønt det riktig, gjør det altså lettere å programmere en robot til å finne noe og utføre en handling på noe når den beveger seg gjennom tre dimensjoner sammenlignet med andre løsninger? Som lekmann blir det vanskelig å vite om det stemmer, siden jeg ikke har teknisk innsikt til å si noe om hvor enkelt systemet ditt er. Da koker det hele ned til å tro på at det du sier er sant. Om du hadde hatt enda mer konkrete resultater å vise til, eventuelt ett godt teoretisk argument for at din metode fungerte best, hadde det vært lettere å stille seg bak ideen. Jeg sliter med å forstå hvorfor akkurat din måte å programmere på gir roboten evnen til å generalisere. Om en annen oppfinner hadde hevdet at han brukte det samme prinsippet som folka som laget rubixkubeløseroboten til å løse den samme problemstillingen som deg tror jeg at jeg hadde hatt lettere for å gå god for prosjektet siden det i det minste baserer seg på teori som er nogenlunde begripelig fra mitt lekmannsperspektiv. Uansett er det et spennende prosjekt og jeg håper lykkes!
Sitat av bennnern Vis innlegg
Litt av utgangspunktet for at jeg spurte var at jeg kom over en video der en robothånd har lært seg å løse en rubixcube: https://openai.com/blog/solving-rubiks-cube/

Slik jeg forstår det har det blitt gjort en haug av simuleringer virtuelt der en simulering av robothånden løser en rubixkube i et stadig mer krevende virtuelt miljø. Dette trener opp ett nevralt netverk(?) til å kunne løse kuben i mange ulike situasjoner. Når det nevrale nettverket senere blir brukt til å styre en ekte robothånd er den i stand til løse en ekte rubixkube selv om den utsettes for en rekke miljøforandringer. Det er altså oppnådd en betydelig grad av generaliserbarhet om jeg har skjønt det riktig.

Da tenker jeg at noe av det samme prinsippet kan brukes på å løse de samme problemstillingene du forsøker å løse. Ville det ikke funket å trene opp en virtuell undervannsrobot på samme måte? Ved å utsette den for ett stort antall simuleringer av potensielle mærer, eller andre miljøer der systemet kan bli tatt i bruk? Sikkert en enorm utfordring, men jeg ser ikke intuitivt hvorfor problemstillingen skal være SÅ enormt mye mer krevende en oppgaven med å løse en rubixkube i et stort antall ulike settinger. Hvilken fordel vil isåfall ditt system ha over en slik løsning? Utelukkende at det er kommet lengre i utviklingen eller er det andre fordeler det også kan dra nytte av?



Systemet ditt, om jeg har skjønt det riktig, gjør det altså lettere å programmere en robot til å finne noe og utføre en handling på noe når den beveger seg gjennom tre dimensjoner sammenlignet med andre løsninger? Som lekmann blir det vanskelig å vite om det stemmer, siden jeg ikke har teknisk innsikt til å si noe om hvor enkelt systemet ditt er. Da koker det hele ned til å tro på at det du sier er sant. Om du hadde hatt enda mer konkrete resultater å vise til, eventuelt ett godt teoretisk argument for at din metode fungerte best, hadde det vært lettere å stille seg bak ideen. Jeg sliter med å forstå hvorfor akkurat din måte å programmere på gir roboten evnen til å generalisere. Om en annen oppfinner hadde hevdet at han brukte det samme prinsippet som folka som laget rubixkubeløseroboten til å løse den samme problemstillingen som deg tror jeg at jeg hadde hatt lettere for å gå god for prosjektet siden det i det minste baserer seg på teori som er nogenlunde begripelig fra mitt lekmannsperspektiv. Uansett er det et spennende prosjekt og jeg håper lykkes!
Vis hele sitatet...
Forstår veldig godt hvor du kommer fra, kjempegode innvendinger du kommer med.

Det er naturlig å se på dette som en mer generell utfordring - det er tross alt snakk om introduksjon av helt uforutsette handikap, mens systemet fortsetter å løse cuben. Ikke at det egentlig spiller en rolle for argumentasjonen din, men hvis du ser på abstrakten fra publiseringen se du at:

We demonstrate that models trained only in simulation can be used to solve a manipulation problem of unprecedented complexity on a real robot. This is made possible by two key components: a novel algorithm, which we call automatic domain randomization (ADR) and a robot platform built for machine learning. ADR automatically generates a distribution over randomized environments of ever-increasing difficulty. Control policies and vision state estimators trained with ADR exhibit vastly improved sim2real transfer. For control policies, memory-augmented models trained on an ADR-generated distribution of environments show clear signs of emergent meta-learning at test time. The combination of ADR with our custom robot platform allows us to solve a Rubik's cube with a humanoid robot hand, which involves both control and state estimation problems. Videos summarizing our results are available: this https URL
Vis hele sitatet...
Gjennom simuleringer er uforutsette hindringer det denne kunstige intelligensen har blitt spesifikt trent til. Enda det aldri var en giraff i simuleringen har systemet utviklet en form for intuisjon, men enda kun innen sitt svært begrensede felt - nemlig å løse rubiks cube under vanskelige omstendigheter. (Å løse en rubiks kube er ikke noe hokkus pokkus lenger - dette studiet handlet eksplisitt om å gjøre det under alle mulige miljøbelastninger)

Med det sagt; klart dette her er et faglig nivå langt over prosjektet mitt. Sannsynligvis vil første kommersielle produkt - om det noensinne kommer - heller ikke ha teknologi on par med bransjeledere innen implementerte nevrale nett. Og flaks er det - for hvis du ser på listen bidragsytere ser du en lønningsliste ingen oppstartsbedrift noensinne ville kunne makte.

Det som er viktig å forstå er at det finnes to verdener innen høyteknologi. Den ene foregår for faget sin del - forskning, utdanning etc. Den andre foregår for kommersiell utnyttelse.

ROS ble faktisk grunnlagt nettopp for å tette dette gapet, noe som på alle måter har skjedd. Men det er enda et gap igjen, og så kompetanseintensivt og ungt som ROS er så er overvekten av foregangsmiljøene ikke- eller semi-kommersielle - faget er i sentrum. Ikke kommersialiseringen. Det beste eksempelet på dette er Rethink Robotics' skjebne - de gikk konkurs i 2018 etter å ha fått over 1 milliard (dollar?)! i investormidler. De hadde rett og slett brydd seg mer om faglige visjoner enn kommersielle krefter.

Jeg hadde skrevet mye mer, men jeg synes dette er litt ubehagelig nært selvskryt. Det er veldig vanskelig å svare på spørsmål rundt hvorfor dette er verdt noe uten å nærme seg den gaten, så jeg håper du kan smøre deg med litt tålmodighet og ta en titt når jeg har en virkelig oppklarende videosnutt å dele med dere.

Enn så lenge er det bare noe improvisert ræl, men jeg må begynne et sted. Kanskje jeg prøver å svare deg muntlig også. (Fordelen med å gjøre det på Norsk er jo at ingen utenlandske aktører registrerer hvor syltynt fremført det hele er. Skal bli bedre!)

freak_del1:
(om systemet)
https://youtu.be/O9fPlX9mY20
(om koden)
https://youtu.be/jstZ09s3OJA

freak del2:
https://youtu.be/ahwUmXHa8D0
https://youtu.be/PjsRJQqXx6o

freak del3:
https://youtu.be/u_IwnpZYDpQ

https://youtu.be/tX-VYxrTLYY

(Innen noen uker vil det forøvrig være klart for neste prototypetest. Da vil det forhåpentligvis ikke være noe behov for å ta meg på ordet etterpå )
Sist endret av Tøffetom; 3 uker siden kl. 12:14. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Dette er svært interessant å lese! Jeg har drevet med C++ i noen år nå og vil svært bidra.

Jeg har gått litt gjennom prosjektet ditt, men en ting jeg ser som absolutt ville gjort susen her er å oppsummere alle funksjoner med kommentarer. Dette vil hjelpe svært med å sparke i gang noe form for oversikt generelt sett i hele arkitekturen din for min del.

Jeg kan absolutt starte med dette, men det kan bli litt dårlig beskrevet oppsummering ettersom jeg har ca 0 innsikt i betydningen av alle funksjonene her.

Jeg snakker altså om dette:
https://docs.microsoft.com/en-us/vis...s?view=vs-2019
Sist endret av Patrick; 3 uker siden kl. 15:25. Grunn: Irrelevant
Sitat av Patrick Vis innlegg
Dette er svært interessant å lese! Jeg har drevet med C++ i noen år nå og vil svært bidra.

Jeg har gått litt gjennom prosjektet ditt, men en ting jeg ser som absolutt ville gjort susen her er å oppsummere alle funksjoner med kommentarer. Dette vil hjelpe svært med å sparke i gang noe form for oversikt generelt sett i hele arkitekturen din for min del.

Jeg kan absolutt starte med dette, men det kan bli litt dårlig beskrevet oppsummering ettersom jeg har ca 0 innsikt i betydningen av alle funksjonene her.

Jeg snakker altså om dette:
https://docs.microsoft.com/en-us/vis...s?view=vs-2019
Vis hele sitatet...
Og ett klassediagram Genialt for å få oversikt og planlegge videre.
Sitat av Patrick Vis innlegg
Dette er svært interessant å lese! Jeg har drevet med C++ i noen år nå og vil svært bidra.

Jeg har gått litt gjennom prosjektet ditt, men en ting jeg ser som absolutt ville gjort susen her er å oppsummere alle funksjoner med kommentarer. Dette vil hjelpe svært med å sparke i gang noe form for oversikt generelt sett i hele arkitekturen din for min del.

Jeg kan absolutt starte med dette, men det kan bli litt dårlig beskrevet oppsummering ettersom jeg har ca 0 innsikt i betydningen av alle funksjonene her.

Jeg snakker altså om dette:
https://docs.microsoft.com/en-us/vis...s?view=vs-2019
Vis hele sitatet...
Skal gå i gang med dette med en gang jeg kommer hjem i dag!

Tenker det er på høy tid å lage et bibliotek som holder funksjonene som brukes i sånn ca alle nodene. Tipper 70% av nodene jeg skriver nå er ren copy-paste fra tidligere. Skjønner at det er idiotisk, men til enhver tid er det fortere gjort å copy paste litt til enn å gjøre dette. Dessuten har jeg ikke hatt noen til å hjelpe meg med å få det riktig

Jeg må også fikse en endelig bekreftelse på at ROS2 er veien å gå. Så gjelder det å klokke seg inn på gjeldende standard der.

https://index.ros.org/doc/ros2/Contr...veloper-Guide/

Men å samle gjengangerne med kommenterer er selvfølgelig førstepri uansett.

Det gjør vi ihht ROS, så ikke forvirringen blir total;
http://wiki.ros.org/CppStyleGuide

Angående ROS/ROS2:
Jeg tenker vi først setter ting opp ryddig og fint i ROS, slik at alle involverte kan få en felles forståelse for hvordan systemet fungerer, før vi begir oss ut på ROS2 - transformeringen.
Sist endret av Tøffetom; 3 uker siden kl. 11:47. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
***********sammenslåing 20201001kl19 ***********

sliter litt med motivasjonen. Eller rettere sagt, prioriteringene. På den ene siden er potensiell langsiktig resultatoppnåelse gjennom deling og engasjering. På den andre har vi ferdigstilling av kode for den endelige, oppsummerende testen. Den jeg har snakket om i årevis og de fleste har avskrevet som deleri. Men nå er det jo faktisk rett rundt hjørnet, enda jeg har prøvd å si til meg selv at det var «godt nok» med nest siste testen. Men det er jo ikke i nærheten, og nå har jeg faktisk tid til å fikse dette.

Samtidig så vil jo gevinsten av en slik test defineres av tilgangen på tilgjengelig kompetanse og evnen til å konvertere oppmerksomhet til utvikling. Så jeg må klare å komme i gang med dette, enda det ikke er stimulerende.

Hvis det er noen som har konkrete funksjoner som ønskes forklart, post de gjerne her. Så prøver jeg litt forskjellige tilnærminger, og dere hjelper meg med å finne en som funker? Hvilken som helst i hvilke som helst .cpp fil. Hadde vært en god måte å komme litt i gang på, fremfor å sitte alene i jungelen og gjette hva som er uklart.
Sist endret av Tøffetom; 3 uker siden kl. 20:02.
Sitat av Tøffetom Vis innlegg
***********sammenslåing 20201001kl19 ***********

sliter litt med motivasjonen. Eller rettere sagt, prioriteringene. På den ene siden er potensiell langsiktig resultatoppnåelse gjennom deling og engasjering. På den andre har vi ferdigstilling av kode for den endelige, oppsummerende testen. Den jeg har snakket om i årevis og de fleste har avskrevet som deleri. Men nå er det jo faktisk rett rundt hjørnet, enda jeg har prøvd å si til meg selv at det var «godt nok» med nest siste testen. Men det er jo ikke i nærheten, og nå har jeg faktisk tid til å fikse dette.

Samtidig så vil jo gevinsten av en slik test defineres av tilgangen på tilgjengelig kompetanse og evnen til å konvertere oppmerksomhet til utvikling. Så jeg må klare å komme i gang med dette, enda det ikke er stimulerende.

Hvis det er noen som har konkrete funksjoner som ønskes forklart, post de gjerne her. Så prøver jeg litt forskjellige tilnærminger, og dere hjelper meg med å finne en som funker? Hvilken som helst i hvilke som helst .cpp fil. Hadde vært en god måte å komme litt i gang på, fremfor å sitte alene i jungelen og gjette hva som er uklart.
Vis hele sitatet...
Dessverre mister man ofte motivasjonen på prosjekterer man har lagt x timer i. Det er helt vanlig. Da er det viktig at man beholder fokuset og selvdisiplin i sjakk, selv når alle makter stritter i mot. Selv om motivasjonen forsvinner fra tid til annen så kommer den plutselig tilbake igjen. Jeg får gjerne motivasjon ganger hundre når den kommer tilbake igjen etter "tørketiden".

Hvis du føler tvil på det du driver med nå, er det bare hjernens late side som lurer deg. Denne tråden viser at du har et enormt lidenskap for nettopp dette feltet.
Sist endret av Patrick; 3 uker siden kl. 15:15.
Sitat av Patrick Vis innlegg
Dessverre mister man ofte motivasjonen på prosjekterer man har lagt x timer i. Det er helt vanlig. Da er det viktig at man beholder fokuset og selvdisiplin i sjakk, selv når alle makter stritter i mot. Selv om motivasjonen forsvinner fra tid til annen så kommer den plutselig tilbake igjen. Jeg får gjerne motivasjon ganger hundre når den kommer tilbake igjen etter "tørketiden".

Hvis du føler tvil på det du driver med nå, er det bare hjernens late side som lurer deg. Denne tråden viser at du har et enormt lidenskap for nettopp dette feltet.
Vis hele sitatet...
Kjempehyggelig å høre, takk for motiverende ord

Det må nevnes at det er motivasjonen til å gå i gang med dokumentasjon, fremfor å ferdigstille "min siste" prototypetest, som er problemet. På den ene siden er det jo bare litt igjen, på den andre siden så har det vært "bare litt" veldig lenge. Slitt skikkelig med siste biten.

Nå ser det faktisk ut til at jeg fant en robust løsning for 30 minutter siden, i så fall er problemstillingen død.

Trenger helgen til å bekrefte, men om ting er som det ser ut, så er det tid for å finne 60k til en ny drone. Uansett hva som skjer skal jeg være ferdig med dette før jul. Foreløpig timeline (relativt romslig):

Uke#41: Ferdigstille siste pakken
Uke#42: Finne 60k til ny drone
Uke#43: Oppsett og finpuss
Uke#44: Siste test

Det er selvfølgelig mulig at ting går til helvete igjen, men jeg tviler. Hver gang det har gjort det har det vært pga impulsive på-dagen-beslutninger om å gjennomføre test med uferdig og utestet programvare. Helt forbanna idiotisk, men sånn er det når man er for dum og sta til å vite bedre. Nå vet jeg bedre, da, tror jeg. Om ikke annet så vet jeg at denne gangen er det ikke rom for feil.

************************************************

Tilbake til dokumenteringen - jeg er helt avhengig av et utgangspunkt. Jeg vet ikke hvor jeg skal begynne eller hvordan jeg skal gå frem.

Så jeg får bare prøve på noe. Prøver å legge ut en node litt senere med kommentarer her, så får dere korrigere til jeg skjønner hvordan dette kan gjøres.
▼ ... noen uker senere ... ▼
******************* 22.oktober kl 18:26*******************

Jeg må beklage til alle at jeg ikke har fulgt opp her siden starten. Grunnen til dette er at jeg ser hvor mye arbeid det faktisk er å forstå hele systemet. Har snakket med noen som har prøvd å sette seg inn i det, og jeg forstår at uten konkrete og garanterte incentiver så er dette for mye å be om.

Samtidig så har jeg hele tiden vært på et stadie der hele systemet kan forandres på veldig kort varsel, noe som ville vært umulig om vi var en samarbeidende gjeng.

Nå ser det ut til at systemet har blitt redefinert for siste gang (i bunn og grunn endringene jeg snakket om ved månedskiftet) og den "siste prototypetesten" nærmer seg med stormskritt. Så fort denne testen er et faktum er mine dager som programmeringsmaskin talte og jeg vil for alvor trenge hjelp fra dere som har meldt dere. Dere vil da få betalt pr løsning, tenker jeg, med mindre andre har bedre forslag når den tid kommer.

Som kjent mangler prosjektet alle andre dimensjoner enn den teknologiske, samtidig så skal jeg prøve å slutte på metadon etter denne testen. Med andre ord kommer det et naturlig vindu rundt eller like etter årskiftet, der folk som mener alvor gjør lurt i å ha en kveld eller to (eller hver dag hele dagen) til disp til å se ordentlig på ting. Når jeg driver å kommer meg etter metadonstopp tenker jeg det å hjelpe folk med å forstå systemet nok til å endre på det er akkurat passe type arbeid. Samtidig så forutsetter dette som nevnt at jeg har noen gullerøtter å dele ut.

Så dette er på ingen måte over, det har bare ikke begynt

Dog jeg failer når det kommer til lovnadene om test i uke 44. Det er dog mer eller mindre garantert at forsinkelsen er ubetydelig (sett med mitt 5-års perspektiv, hehe).