Dan North har lige holdt et foredrag på YOW! konferencen i Melbourne og jeg sad på gulvet og lyttede. Som sædvanlig var det varmt, underholdende og informativt (og man sidder på gulvet, fordi der altid er så mange mennesker inde…
Stræben efter bedre software
Gamification Videngruppe på Sjælland
HTTP/2
Løse klassiske data analytics opgaver med moderne distribuerede databaser
Artem Aliev som skal lære mig at bruge Spark på torsdag, holder en præsentation om hvordan man kan overkomme NoSQLs databasers problemer med at de ikke har noget stærkt query sprog. Fra min egen erfaring kan jeg snakke om MongoDb,…
Trues det åbne web?
En snak om RavenDb
Ayende Rahien aka Oren Eini er kommet for at fortælle om RavenDb her på Goto Konference. Han fortæller at grunden til at de gik igang med at udvikle RavenDb var fordi de var trætte løse de samme trivielle problemer hver…
Interview med en Robot-professor
I forbindelse med GOTOcph, har jeg i min kapasitet af blogger kastet mig ud i et interview med Ulrik Pagh Schultz .
Giv en kort introduktion af hvem du er?
Jeg er lektor ved Mærsk Instituttet, Syddansk Universitet. Jeg forsker i programmering af robotter, med domænespecifikke sprog (DSL) som faglig tilgang, og anvendelse indenfor modulære robotter, industrielle robotter og landbrugsrobotter. Jeg underviser på vores software engineering uddannelse. Tidligere har jeg været ansat på datalogisk institut ved Århus Universitet, hvor jeg også har min kandidatuddannelse fra (jeg lavede PhD i Frankrig).
Kan du give en kort gennemgang af dit oplæg, til dem der var så uheldige og ikke se det?
Oplægget består af tre dele: (1) Hvad er modulære robotter og hvorfor er de svære at programmere; (2) Hvordan kan DSLer gøre det lettere at programmere den slags robotsystemer; (3) Hvad kan robotterne og DSLerne ellers bruges til. Ultra-korte resumeer af hver af de tre dele: (1) Modulære robotter er robotbyggesæt, som endda i nogen tilfælde kan bygge sig selv om, altså “transforme-robotter”. De er svære at programmere fordi hver enkelt del skal have intelligens, som både skal fungere enkeltvis og også skal udgøre en helhed uden at gå i baglås hvis dele af hardwaren fejler. (2) DSLer muliggør abstraktioner som ligger ud over der vi normalt ser i standard programmeringssprog, i dette tilfælde kan vi beskrive robottens handlinger på helhedsniveau og compile det til små, robuste kontrolprogrammer som udføres af det enkelte modul. (3) Robotterne kan ikke bruges til noget som helst, men de samme principper bruges nu f.eks. hos Universal Robots i deres robotarm og i vores nuværende prototype af landbrugsrobotter. DSLer er relevante for mange typer af robotter, de samme underliggene principper som jeg beskriver i mit foredrag ville også kunne bruges samarbejdende sværme af robotter, f.eks. droner.
Forklar hvad det er der sker i denne video?
Det er en demo af hvordan robotten ombygger sig selv, bl.a. fra bil-robot til slange-robot. Den er programmeret med den DSL som jeg har designet, og som gav en cirka 30x forbedring i systemets robusthed. DSLen giver ydermere muligheden for at køre programmet baglæns, hvis nu man f.eks. har lavet et bil-til-slange program, kan man køre det baglæns for at skifte form fra slange til bil. Videoen viser desuden visse aspekter af systemet robusthed ifht fejlende kommunikation og crash af moduler (simuleret ved at slukke og tænde moduler undervejs).
Det klassiske spørgsmål, hvad er der af anvendelsesmuligheder?
Som nævnt før, for den her specifikke robot er der ikke nogen anvendelsesmuligheder, den er en avanceret prototype som demonstrerer at det er muligt at lave maskiner der kan ombygge sig selv. De har dog som nævnt før givet inspiration til adskillige nuværende robotter. Derudover er der klare anvendelsesmuligheder i fremtiden: De er ideelle til situationer hvor man har brug for en specifik robot meget hurtigt (f.eks. i en nødsituation) eller hvor man kun kan medbringe en begrænset mængde dele (f.eks. på en mission til Mars). Man kan også forestille sig at de blev lavet i mikroskopiske størrelser (jeg beskriver i mit foredrag hvordan det kan gøres), i så fald har man en form for programmerbart, formskiftende stof, hvilket jo nok ville kunne bruges til mange ting…
Tilgiv mig hvis jeg spørger dumt men ville den type algoritmer og de protokoller I bruger kunne bruges til fx at lave bil-trafik-optimering
Algoritmer og protokoller til modulære robotter omhandler typisk robust, decentral kontrol af tæt koblede men fysisk adskilte enheder. Så de er relevante som inspiration for algoritmer til scenarier såsom samarbejdende robotter eller køretøjer som er koblede til hinanden et stykke tid, og muligvis generelt til processer som udføres i distribuerede systemer med dårligt netværk og lav grad af pålidelighed. Hvis biler koblede sig sammen på motorvejen eller på anden vis dynamisk skiftede mellem at være uafhængige og koblede så måske, men ellers nok ikke.
Kan man som glad amatør selv komme til at lege med den her slags?? Er der en Rasberry Pi-lignende minirobot derude?
Der findes en del modulære robotter til undervisningsbrug, se f.eks. http://www.modrobotics.com og linkbot som I selv havde på qed.dk for noget tid siden: https://qed.dk/thomas-wittenburg/2014/01/14/mit-seneste-roboteventyr
Det er ikke raketvidenskab men…
Bedre softwaretests med fuld isolation
Råbåndsknob eller kællingeknude
Rollefordeling på et team
Fokus på softwarekvalitet
Et sip Elixir
Lad brugeren vente og skab mere værdi
En af de helt grundlæggende læresætninger indenfor brugervenlighed er hastighed. Det anses af mange som næsten en dødssynd at have en langsom hjemmeside. Men hvad tænker du, hvis jeg siger, at man i nogle tilfælde faktisk kan øge brugeroplevelsen, og…
A story about a story
Hvorfor vil jeg bruge tid på at Lære Spark
Alle der er interesseret i data analytics, machine learning eller big data, har på et tidspunkt prøvet at kigge på et dataset som er så stort, at det bliver svært at arbejde med i R eller med SQL. En løsning…
Giganten inviterer indenfor
Firmaet som altid har været kendt for aldrig at følge en standard, ved altid at enten at lave sin egne proprietære teknologier som gjorde det sværere at samarbejde med andre, eller at følge en standard, men så tilføje sine egne…
Kategorisering af softwaretests
Digital Indfødte eller Digitale Analfabeter?
Never Listen to your user!
Giv dit team et sundhedstjek
Hængekøje-drevet udvikling?
Lad usability og oplevelsesdesign gå hånd i hånd
I mit seneste indlæg om ‘paradokset i User Experience’ var jeg inde på forskellen mellem usability og oplevelsesdesign. Når det kommer til stykket er de reelt hinandens modsætninger, men når de går hånd i hånd opstår den gode User Experience. Usability…
Podcast: Scrum Master Toolbox.
Kan – og skal – robotter hjælpe demente?
Man er begyndt at bruge robotter til demensterapi. Et eksempel er Paro, der er en robot udformet som en babysæl. I dag findes der mere end 100 eksemplarer af Paro på danske bo- og omsorgssteder, og Danmark er faktisk det land…
Beware of the dark patterns.
Paradokset i User Experience
User Experience er en vanskelig disciplin at arbejde med. Dels fordi at man skal kunne sætte sig i brugerens sted og ikke mindst fordi det hele tiden handler om at skabe kompromiser mellem brugervenlighedsprincipperne (Usability) og oplevelsesdesign. Det er et…