Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 18 reacties

Ontwikkelaars uit Canada hebben een programmeertaal bedacht die specifiek bedoeld is voor robots die binnen een 'zwerm' functioneren. Speciaal aan Buzz is dat het gedrag van de robots zowel 'bottom-up' als 'top-down' bepaald kan worden.

De programmeertaal, die op Github staat, leunt zwaar op bekende programmeertalen, zoals Javascript, Python en Lua. Op die manier is de leercurve om de taal te leren kort, schrijft Robohub. De Buzz-runtime is zo ontworpen dat die slechts 12kB inneemt. De runtime kan verbonden worden met andere frameworks, zoals het Robot Operating System.

Door de mogelijkheid om de algoritmes zowel bottom-up en top-down uit te drukken kunnen ontwikkelaars complex autonoom zwermgedrag coderen op een compacte wijze. De ontwikkelaars hopen zo een belangrijk onderdeel te worden van toekomstige zwermrobotica in de echte wereld.

Naast de bekende elementen, zoals loops en jump-tables, zitten er ook bepaalde elementen in de taal die specifiek bedoeld zijn voor het aansturen van zwermen. Een van die elementen is het zogenoemde zwermelement dat ontwikkelaars de mogelijkheid geeft de robots in verschillende groepen te splitsen en ze een specifieke taak toe te kennen. Zwermen kunnen zo worden gevormd, uit elkaar worden gehaald of dynamisch worden aangepast.

Een ander element is het neighbor-construct. Dit construct regelt de plaats die een robot inneemt binnen de zwerm en de locatie waar de zwerm zich bevindt. Zo kunnen signalen worden doorgegeven voor het vermijden van obstakels of juist het volgen van een leider.

Daarnaast geeft de programmeertaal ook de mogelijkheid hele robotzwermen te onderwerpen aan virtuele stigmergieStigmergie is een term uit de biologie en betekent dat er indirecte interactie en samenwerking tussen de verschillende spelers binnen een omgeving of daarvoor bedoeld platform is.

Toekomstdoelen van de ontwikkelaars zijn onder meer het integreren van de runtime in verschillende robotplatforms en het opzetten van een library met bekend zwermgedrag.

In de video worden Spiri-robots getoond die objecten moeten detecteren

Moderatie-faq Wijzig weergave

Reacties (18)

Is nou echt een nieuwe taal of gewoon een library bovenop een bestaande taal?
Het is een nieuwe taal. De syntax staat hier beschreven: http://the.swarming.buzz/...id=buzz_syntax_cheatsheet
De programmeertaal, die op Github staat, leunt zwaar op bekende programmeertalen, zoals JavaScript, Python en Lua.
Ik denk dat je het wel zo kunt noemen, maar wel bestaande uit veel elementen die overeenkomen met andere talen, zoals vernoemd. En dan hier en daar wat eigen trekjes m.b.t. het aansturen van zwermen, wat het uniek zal maken.
Ik vind het persoonlijk een beetje vreemd gekozen zin aangezien het wel een eigen taal is. Persoonlijk zou ik denk ik eerder iets hebben gezegd in de richting van: "De programmeertaal, die op Github staat, komt qua syntax trek overeen met bekende programmeertalen, zoals JavaScript, Python en Lua.".
Ze hebben de taal aangepast naar de specifieke behoeften.
Mooi staaltje herschrijven van code.
Zo efficient mogelijk zijn in de basis met een 'zelflerend vermogen'.

Trouwens een van de eerste projecten was van europese oorsprong.
http://www.swarm-bots.org/
Volgens mij is het een verzameling algoritmes om een groep kleine computers, al dan niet virtueel, dynamisch op elkaar te laten reageren.
Waar is de link met de fysieke "zwerm" waarvoor deze programmeertaal nodig zou zijn? En welke functionaliteit valt er in 12KB te proppen dat het voor een programmeertaal door kan gaan?
Ik heb laatst een zelfstandig programma gemaakt dat touchscreen data uit de USB filtert, omzet naar bruikbare coordinaten en doorpasst naar een ander programma. Allemaal hardcoded tegen een spefiek type touchscreen. Als ik nou de boel configureerbaar en gebruiksvriendelijk maak voor meerder typen schermen waarbij de gebruiker een aantal woorden kan gebruiken als instructies om mee aan te geven wat ie wil, heb ik dan een programmeertaal voor touchscreens gemaakt?

[Reactie gewijzigd door blorf op 10 augustus 2015 16:50]

En welke functionaliteit valt er in 12KB te proppen dat het voor een programmeertaal door kan gaan?
Genoeg, er zijn diverse programmeertalen die zelfs kleiner zijn, zoals een aantal Basic varianten.
Programmeertalen zijn meestal ook niet zo groot, het zijn vooral al die extra's om makkelijker te programmeren die het groot maken.
Als ik nou de boel configureerbaar en gebruiksvriendelijk maak voor meerder typen schermen waarbij de gebruiker een aantal woorden kan gebruiken als instructies om mee aan te geven wat ie wil, heb ik dan een programmeertaal voor touchscreens gemaakt?
Dat ligt aan wat je met die instructies kan maken. Als de instructies samen Turing complete is, dan heb je idd een eigen programmeertaal gemaakt.
Ik zou het een nieuwe taal noemen als de syntax anders is dan bij bestaande talen. Misschien wat kort door de bocht, maar dat zou ik verwachten. Of dat bij Buzz het geval is, geen idee. Echter zijn er redelijk wat definities van de term 'programmeertaal' als je op Wikipedia kijkt. Sommigen noemen iets een programmeertaal als je alle mogelijke algoritmen ermee kunt programmeren. Dus dat lijkt me het geval wanneer je variabelen, conditionals, loops, arrays, functies, rekenkundige operaties, etc. kunt programmeren. En dat kan met Buzz als ik even snel bekijk.

[Reactie gewijzigd door JoepD op 10 augustus 2015 16:34]

"Buzz is a novel programming language for heterogeneous robots swarms."
Ik denk een library op een bestaande taal? Het is gebaseerd op javascript lees ik
bovenaan. Tevens lees ik dat de ''buzz'' runtime gebruikt kan worden met andere frameworks.
Wat word hier precies mee bedoeld? Dat elke individu een runtime van 12 KB draait en ondertussen kan verbinden met anderen? Of is dat echt specifiek de taak van de neighbour module?

Dit deed me sterk denken aan het begin van Advanced Warfare 2 waar enorme zwermen drones samen vliegen, of wat er gebeurt in de Matrix met de sentinels. We zitten er waarschijnlijk nog wel even van af maar het zou mogelijk moeten zijn toch?
Ik denk dat niet alleen de programmeertaal belangrijk is maar ook hoe de zwerm met elkaar om gaat, echer zijn hier reeds sinds lang eerdere onderzoeken mee bezig met resultaat. Wel zal deze taal helpen met zwerm programmeren. Als je een zwerm robots hebt met...zeg machinegeweren dan wil je immers niet dat twee drones dezelfde persoon proberen neer te schieten.

Ik kan mij voorstellen dat deze taal voorziet in de mogelijkheid om doelen te 'markeren' en zo te verhinderen dat dezelfde drones achter dezelfde man aan gaan. Andere dingen die cool zouden zijn is informatie inwinning met elkaar delen; zoals doelen die geblokkeerd worden door zaken zoals muren die voor drone A niet makkelijk te omzeilen zijn (door zijn locatie of wellicht omdat deze een bepaalde sector bezet moet houden) en voor drone B een eitje zijn.

Onderzoek naar samenwerking tussen drones is een paar jaar geleden al gedaan. Wellicht dat deze taal ontwikkeld is uit het resultaat van de onderzoeken omdat de bestaande talen sub-par waren?
That said vraag ik mij af of het niet handiger was om een reeds bestaande taal uit te breiden met nieuwe instructies die specifiek zijn beodeld voor informatie delen in een soort locale cloud.

/Edit; deze programmeertaal zou dus ook goed kunnen worden ingezet voor info te delen bij het scouten of patroeilleren van een troep drones.

[Reactie gewijzigd door Auredium op 10 augustus 2015 20:47]

Ik zou toch gaan voor een wat vredelievender aanpak. Een groep autonome onderhoud robots van een grote zonne energie centrale midde in een woestijn. Of bevoorrading van een complex bouwproject. Het laden en lossen van grote container schepen versie 2.0. Of het snel 3D in kaart brengen van een beschadigd gebouw met een hand vol vliegende mini drones. Dat lijkt mij allemaal veel nuttiger dan het snel en efficiŽnt afknallen van de medemens.
Of nog een mooier, voor als er dadelijk autonoom rijdend verkeer is. Deze goed late samenwerken om een zo efficiŽnt mogelijke doorstroming te krijgen.

[Reactie gewijzigd door engibenchi op 10 augustus 2015 17:42]

Ik denk eerder dat je voor bepaalde software problemen je bij de gangbare talen een syntax brij krijgt dat het moeilijker lees baar maakt.

Je kan een taal ontwikkelen waarbij bepaalde oplossingen voor software probleem heel goed leesbaar zijn. Expressineel dat de code goed maar ook elegant leesbaar is.
Waar in C++ het brij of complexe structuren kan worden.

Waar je in C++ meer 80% bezig bent met implementatie en testen ervan.
In taal met bijna perfect fit voor de task mogelijk 20%,

Houd in dat je 80% bezig bent met specifieke AI algoritmes.
Waar je in C++ op 20% bent.

In de long run wordt je veel meer productiever. met taal dat past bij de job.
Stigmergie is het principe dat termieten - wezens met nauwelijks een centraal zenuwstelsel - toelaat om structuren te bouwen die complexer zijn dan alles wat de mens ooit heeft gebouwd. Het is razend interessant om te zien dat men dit probeert na te bootsen en verbluffend dat we daar nog niet verder in staan. Een termiet doet in principe niet veel meer dan if this than that, maar het gezamelijke resultaat van al deze acties is dermate complex dat wij dat als soort nog niet hebben kunnen evenaren. Tof om zien dat er steeds meer onderzoekgroepen mee bezig zijn. Deze video is wat dat betreft al redelijk indrukwekkend.
Michael Crichton's boek Prey handelt over dit onderwerp.
Moest bij het lezen van de titel gelijk denken aan het boek "Prey", van Michael Crichton.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True