auteur: Rosie Hattersleyundefined

Zoals velen van ons combineert de 33-jarige software-engineer Hendrik Ohrens graag de technische vaardigheden die hij voor zijn werk gebruikt met deskundigheid die hij via zijn hobby’s heeft opgedaan, om daarmee tot iets creatiefs te komen.

“Ik werk graag aan projecten waarin zowel elektronica, mechanica als software voorkomt”, zegt hij over zijn enthousiasme voor het knutselen aan dit soort projecten. Met een achtergrond in wetenschappelijk onderzoek en werktuigbouwkunde aan de Universiteit van Hannover plus een paar Raspberry Pi-builds op zijn naam, besloot hij dat het tijd werd voor een uitdaging: het ontwerpen van een eigen robot. Hij koos daarbij voor een robotarm, omdat dat een relatief eenvoudig ontwerp leek, maar ook “nog steeds enige flexibiliteit te bieden heeft”. Toen de huidige klok van Hendrik het niet meer deed, kwam bij hem dan ook meteen de gedachte op om dan maar met een robotarm de wijzers in de juiste positie te zetten. Bekijk deze robot-armklok in actie op Instagram: magpi.cc/robotarminsta.
 

Aanleren van posities

Hendrik verdiepte zich allereerst in inverse kinematics om te onderzoeken hoe hij de beweging van zijn robotarm kon aansturen – een scenario waarbij formules worden gebruikt om te bepalen waar het uiteinde van de arm naartoe zal zwaaien – maar realiseerde zich al snel dat dit niet de beste aanpak was. In plaats daarvan stapte hij over naar de Raspberry Pi 3B+ om daarmee, naast AI en computer vision, ook die inverse kinematics en de ikpy-library te gaan gebruiken. Hij ontdekte dat deze aanpak de beste manier was om de robot specifieke houdingen aan te leren. “Met dit aanleren van posities kan ik de arm naar een bepaalde plek bewegen (met mijn handen) en die positie dan opslaan voor verder gebruik. Dit bleek erg bruikbaar voor de taken die de robotarm daarna uitvoerde”, legt Hendrik uit.“De Raspberry Pi is het perfecte ontwikkeltool voor mij. Hij is krachtig, veelzijdig en biedt alles wat ik nodig heb om prototypes van mijn projecten te maken”, zegt hij. Hendrik heeft niet alleen aan andere Raspberry Pi-projecten gewerkt, maar heeft er in de loop der jaren zoveel gebouwd dat hij ze in een speciale Pi Box bewaart. “Het feit dat ik zowel moderne full stack-applicaties kan uitvoeren als rechtstreeks met aangesloten hardware kan communiceren, maakt de PI mijn eerste keuze bij het creëren van een nieuw ontwerp.”
 
undefined
Het toevoegen van zelfklevende googly-eyes was een pakkende manier om de robotarm een ‘klokpersoonlijkheid’ te geven


Hij besloot om een Arduino te gebruiken om (met behulp van de library van de fabrikant) de servo’s aan te sturen, en de Raspberry Pi om alle logica te verwerken en de Arduino aan te sturen, die zelf via een seriële interface en een USB-kabel is aangesloten. Hiertoe schreef hij speciale code, die hij sindsdien (en nog steeds) nog verfijnde  om de arm te besturen.
 
devdrik-3.jpg
De robotarm beweegt de minutenwijzer van de klok om zo de huidige tijd bij te werken

Concept

Hendrik maakt liever eerst een schets van z’n plannen om die dan verder aan zijn wensen aan te passen, dan dat hij meteen al begint met een exact ontwerp. Bij zijn robotarm begon hij daarom met enkele servo’s en een eenvoudig CAD-model, dat gemakkelijk in 3D kon worden geprint en waaraan kleine onderdelen konden worden toegevoegd. Pas nadat hij tevreden was met het basisontwerp dupliceerde hij dit gewoon om daarmee extra beweegbare onderdelen te verkrijgen, en sloot hij de servo’s aan met een kabel.
 
teach-thumbs-up.jpg
Om de robotarm te leren welke positie hij moest aannemen moest elke positie worden aangeleerd


De robotarm moest goed worden vastgezet om te voorkomen dat hij omviel. Dus 3D-printte Hendrik 3D klemmen die hij op Thingiverse had gevonden en bevestigde de arm daarmee aan de tafel. Vervolgens lijmde hij de kapotte klok (waarvan de wijzers door de robotarm zouden worden bewogen) op een houten kist, die hij vervolgens ook op de tafel plakte zodat deze niet uit zichzelf zou kunnen bewegen. Na wat aanpassingen aan de beweging van de arm, die piepte omdat hij sommige delen elkaar raakten, begon Hendrik aan het veel tijdrovender klus van het trainen van de robot wélke positie deze wánneer moest innemen. Na het aanmaken van de tamelijk uitgebreide motion-control-code kan de robotarm nu naar zijn overtuiging voor elk soort Raspberry Pi-project worden gebruikt waar hij zin in heeft.
 
Hendrik heeft niet alleen aan andere Raspberry Pi-projecten gewerkt, maar heeft er in de loop der jaren genoeg gebouwd, in een speciale Pi Box, om ze nu allemaal te kunnen uitvoeren
 

Aan de slag

01 Download en 3D-print de robotarmonderdelen, inclusief (indien nodig) een bevestigingsklem. Hendrik gebruikte vijf Dynamixel XL330-M288-T servo’s, samen met een Arduino-board en een Raspberry Pi 3B+ voor zijn exemplaar.
 
devdrik-build-1.jpg



02 Bevestig en installeer een Dynamixel Shield en Arduino MKR en flash vervolgens dynamixel_api van de code/arduino-map naar uw Arduino. U moet ook Python 3 en ikpy lib installeren op uw Raspberry Pi en een voeding aansluiten.
 
build2.jpg



03 Bouw de robotarm door een servo in de basis te plaatsen; schroef het basiselement erop, gevolgd door de elementen van de arm. Klem de basis vast op een tafel of iets stevigs, anders valt de arm om.
 
build3.jpg


Zie voor de volledige installatiedetails en code: github.com/devdrik/robo-arm.


De Maker - Hendrik OhrensHendrik-Ohrens.jpg
Full stack software-engineer Hendrik houdt ervan in zijn vrije tijd lacrosse te spelen en projecten te bouwen.