Interactieve simulatorExpert

Robotarmsimulator voor kinematica en ROS-planning

Ontdek gewrichtslimieten, voorwaartse kinematica, inverse kinematica en veilige bewegingsplanning in een browsergebaseerde robotarmsimulator.

Categorie
ROS
Tijd
3–6 uur
Platform
Browser · ROS 2
Technisch schema: Robotarmsimulator voor kinematica en ROS-planningREACHABLE WORKSPACE

01 / Begin hier

Inleiding

Robotarmen zetten commando's per gewricht om in precieze beweging van de grijper, met geometrie, terugkoppeling en planning. Deze simulator introduceert die keten zonder de moeilijke delen te verbergen. Hij toont coördinatenstelsels, bereikbare poses, gewrichtslimieten en singulariteiten, zodat ROS-gebruikers en robotica-studenten begrijpen waarom een gevraagde beweging wel of niet lukt.

Live lab / Forward & inverse kinematics · pick-and-place

Robot arm simulator

Pose the joints, drag a target and watch inverse kinematics solve it live, or set a pick-and-place task and run it — with honest reach, singularity, and limit reporting on a full 360° workspace.

Browser native
A planar robot arm kinematics simulator. Use the controls below to move the joints, drag a target, or run a pick-and-place task, or read the full theory and algorithm after this lab.

The filled dot is the base at the centre; segments are links with round joints; the tool shows a small x/y frame. The shaded ring is the reachable workspace (between the two dashed circles). In inverse mode the cross-marker is the draggable target and the faint arm is the other elbow solution. In pick-and-place mode, drag the box (pick) and the dashed square (place), then press Run.

Run

Forward mode. Drag the joint sliders to pose the arm.

Joints
Geometry & target
Tool X
0 px
Tool Y
0 px
Tool angle
0°
Status
Reachable
Reach
0 / 240 px

Keyboard: focus the workspace, then use Space to run a pick-and-place, R to reset, B to switch elbow, and F for full screen.

Bediening

De simulator biedt schuifregelaars voor de gewrichten, een versleepbaar doel voor de grijper, overlays van coördinatenstelsels en regelaars voor de koppellengtes, met de basis gecentreerd zodat het volledige bereik van 360° zichtbaar is. In voorwaartse stand berekent de simulator de pose van de grijper uit de gewrichtshoeken die je instelt. In inverse stand volgt hij een doel dat je versleept — hij berekent live de gewrichtshoeken en meldt onbereikbare of dubbelzinnige doelen in plaats van stilletjes naar een resultaat te springen. Een derde stand, pick-and-place, laat je een grijp- en een afzetpunt positioneren en voert de arm daarna de hele taak uit: hij beweegt naar het object, grijpt het, draagt het en laat het los in de afzetzone — de klassieke taak waarvoor elke echte manipulator is gebouwd.

Theorie

Elk gewricht draagt een transformatie tussen coördinatenstelsels bij. Die transformaties vanaf de basis tot aan de grijper met elkaar vermenigvuldigen levert de voorwaartse kinematische pose op. Inverse kinematica werkt de andere kant op en kan geen oplossing, één oplossing of meerdere oplossingen hebben.

Bereikbaar werkgebied van een vlakke arm met twee koppels. Een gearceerde annulus tussen een binnenste en buitenste stippellijncirkel toont elk punt dat de grijper kan bereiken. Eén enkel doel binnen de annulus wordt door twee armconfiguraties bereikt: een elleboog-omhoogoplossing en een elleboog-omlaagoplossing, beide getekend vanaf dezelfde basis.
Een doel binnen de bereikbare annulus heeft meestal twee oplossingen — elleboog omhoog en elleboog omlaag — terwijl punten buiten de buitenstraal of binnen de binnenstraal er geen hebben. SVG downloaden

Dicht bij een singulariteit kan een kleine beweging van de grijper een zeer grote gewrichtsbeweging vergen. Een planner moet daarnaast ook limieten voor positie, snelheid, versnelling, koppelmoment en botsing respecteren. Alleen geometrisch bereik maakt een traject nog niet veilig.

Algoritme

  1. Definieer koppellengtes, gewrichtsassen, hometransformaties en gewrichtslimieten.
  2. Bereken de voorwaartse kinematica voor de huidige gewrichtsstand.
  3. Vergelijk de huidige pose van de grijper met het gevraagde doel.
  4. Gebruik een analytische of numerieke solver om de posefout binnen de limieten te verkleinen.
  5. Verwerp botsende of singuliere kandidaten en kies een continue oplossing.
  6. Stuur het pad tijdgestuurd en geef gesynchroniseerde setpoints aan de gewrichtscontrollers.

Broncode

Een vlakke arm met twee koppels heeft een compact voorwaarts model:

from math import cos, sin

def forward_kinematics(theta_1, theta_2, link_1, link_2):
    elbow = (link_1 * cos(theta_1), link_1 * sin(theta_1))
    tool = (
        elbow[0] + link_2 * cos(theta_1 + theta_2),
        elbow[1] + link_2 * sin(theta_1 + theta_2),
    )
    return elbow, tool

Bij fysieke armen moet je elk gepland traject valideren in een begrensde, botsingsbewuste omgeving voordat je de actuatoren van stroom voorziet.

Aannames en hardwareverschillen

De arm is vlak met twee of drie draaibare gewrichten, volledig starre koppels, een onmiddellijke snelheidsrespons en geen zwaartekracht, dynamica of botsing — je kunt van elleboog omhoog naar elleboog omlaag zwaaien zonder limiet op het koppelmoment. Echte servo’s hebben positie- en snelheidslimieten, tandwielspeling, koppelmoment met stroombegrenzing en lastafhankelijke doorbuiging, en een arm met zes assen moet ook oriëntatie, singulariteiten en werken dicht bij de gewrichtslimieten beheersen. In dit lab leer je waarom een doel binnen de annulus twee oplossingen kan hebben en waarom een doel op de rand daarvan singulier is, voordat je de dynamica toevoegt die die poses lastig vasthoudbaar maakt.

Schakelschema

Scheid de stroomvoorziening met hoge stroom voor de actuatoren van de rekenvoorziening, en behoud daarbij de referentie- en veiligheidssignalen die de gekozen hardware vereist.

Blokschema van de regelarchitectuur van de robotarm. Een planner of ROS 2-stack stuurt gewrichtsdoelen naar een controller, die slimme servo's over een bus aanstuurt. De terugkoppeling van de gewrichtspositie gaat van de servo's terug naar de controller, en een noodstop schakelt de servo-voeding uit, onafhankelijk van het softwarepad.
De controller sluit een regelkring met terugkoppeling van de gewrichten, terwijl de noodstop de actuatorvoeding via een eigen pad uitschakelt — onafhankelijk van de software. SVG downloaden

Begeleide experimenten

Een doel rond slepen is de snelste manier om intuïtie op te bouwen voor dingen die op papier omslachtig te bewijzen zijn en op hardware duur om te ontdekken.

1. Onderzoek de vorm van het werkbereik

Sleep het doel langzaam naar buiten tot de solver onbereikbaar meldt en traceer daarna die grens helemaal rond. Sleep het nu naar binnen, richting de basis.

Bij ongelijke koppellengtes vindt je twee grenzen: een buitenste cirkel op L1 + L2 en een binnenste op |L1 − L2|. Het werkbereik is een annulus, geen schijf, en er zit een gat in het midden dat de arm fysiek niet kan bereiken.

Koppels Buiten bereik Binnen gat Vorm
100 + 90 190 10 Annulus met een klein gat
100 + 50 150 50 Annulus met een groot gat
100 + 100 200 0 Een volledige schijf — gelijke koppels kunnen over elkaar heen vouwen

Die laatste rij is een werkelijk nuttige ontwerpfact: gelijke koppellengtes nemen de dode zone volledig weg. Als jouw arm dicht bij zijn eigen basis moet werken, is dat de reden om ze te kiezen.

2. Zie de twee oplossingen samenlopen

Wissel bij een doel vlak bij het midden van het werkbereik tussen de takken elleboog omhoog en elleboog omlaag: twee duidelijk verschillende armposes die hetzelfde punt bereiken.

Sleep dat doel nu naar buiten richting de grens. De twee poses lopen samen en bij volledige strekking worden ze dezelfde pose. Dat is een singulariteit, en het is waar de arm het vermogen verliest, de grijper in één richting te bewegen, wat de gewrichten ook doen.

3. Ervaar wat een singulariteit kost

Sleep het doel langzaam en gestaag langs een rechte lijn die vlak langs de volledige strekking loopt. Kijk naar de gewrichtshoeken in plaats van naar de arm.

De grijper beweegt met constante snelheid; de gewrichten niet. Dicht bij de grens vergt een kleine beweging van de grijper een enorme gewrichtsbeweging, waardoor een vloeiend cartesiaan pad verandert in een geweldige gewrichtsbeweging. Op hardware is dat een servo die tegen zijn limiet slaat.

Houd geplande paden binnen ongeveer 95% van het maximale bereik, en dit probleem verdwijnt.

4. Steek een takgrens over en zie de omslag

Stel de solver zo in dat hij altijd elleboog omhoog kiest en sleep daarna het doel door een gebied waar die tak op een gewrichtslimiet stuit en de solver omschakelt. De arm slaat door in een grote, snelle, volledig ongeplande beweging.

Daarom is de juiste standaard minimale beweging — kies de tak die het dichtst bij de huidige pose ligt — en niet een vaste tak. Een stille takwissel halverwege het pad is op echte hardware verontrustend en kan beschadigend zijn.

Wat je moet zien

Actie Verwacht resultaat Als je iets anders ziet
Doel voorbij L1 + L2 Een zuiver “onbereikbaar” Een NaN of een vastgesprongen pose betekent dat de solver te laat op bereikbaarheid toetst
Doel binnen |L1 − L2| Ook onbereikbaar Klopt — dit is het gat, geen fout
Doel achter de basis Correct bereikt Als het spiegelt, gebruikt je atan in plaats van atan2
Wisselen van elleboogtak Zelfde grijperpositie, andere gewrichten Beide zijn geldig; kiezen is jouw beslissing
Slepen naar de grens Gewrichtssnelheden lopen scherp op Dit is de singulariteit
Heen en terug via FK en dan IK De oorspronkelijke hoeken komen terug Een afwijking betekent dat een teken- of offsetafspraak niet consistent is

Naar de hardware

De geometria gaat exact over. Al het andere niet, en dat verschil is waar een eerste armbouw zijn tijd aan besteedt:

Dit lab Een echte servoarm
Gewrichten gaan precies waar ze gebood worden Servonul is waar de servo-uitwijzer gemonteerd zit; sommige draaien de verkeerde kant op
Geen zwaartekracht De schouder zakt bij strekking — het ergst precies waar de nauwkeurigheid het slechtst is
Geen speling Enkele graden speling, die bij elke omkering van de looprichting wordt opgebruikt
Onmiddellijke beweging Een aangestuurde sprong gaat op volle snelheid, met een stroompiek
Perfecte koppellengtes Meet tussen gewrichtsassen, niet tussen de randen van de montagebeugels
Oneindig koppelmoment Een SG90 op 58% van het maximale koppelmoment houdt de positie niet nauwkeurig

Twee getallen maken het punt. Vier graden speling bij de schouder over een bereik van 190 mm is meer dan 13 mm bij de grijper — groter dan elke fout die de wiskunde introduceert. En een koppellengte die bij 95 mm 10 mm te lang is gemeten, is een systematische fout van 10% die geen enkele afstelling wegneemt.

De praktische gevolgtrekking is dat nauwkeurigheid op hardware voortkomt uit kalibratie en een consistente naderingsrichting, niet uit betere kinematica. Nader een doel altijd van dezelfde kant aan en de speling wordt een reproduceerbare offset die je kunt aftrekken. De volledige solver, met elke foutsituatie afgehandeld, staat in inverse kinematica voor een arm met twee koppels.

Hardwarechecklist

Componenten

  • Robotarm met drie assen of meer
  • Controller die gesynchroniseerde gewrichtsupdates aankan
  • Gewrichtsterugkoppeling of slimme servo's
  • Sterke basis en een gedefinieerd TCP (tool center point)
  • Noodstop en stroombegrensde voeding

Verken de graaf

Waar deze simulator wordt gebruikt

De projecten, leerroutes en tutorials die op dit lab voortbouwen.

Verder bouwen

Hulpmiddelen downloaden

Gebruik deze naslag op de pagina terwijl je het project doorwerkt. Downloadbare projectpakketten komen er pas bij nadat hun broncode en versie zijn gepubliceerd.

Veelgestelde vragen

Veelgestelde vragen

Wat is het verschil tussen voorwaartse en inverse kinematica?

Voorwaartse kinematica berekent de pose van de grijper uit bekende gewrichtswaarden. Inverse kinematica start bij een gewenste pose van de grijper en zoekt een of meerdere gewrichtsconfiguraties die die kunnen opleveren.

Waarom heeft een arm met twee koppels twee oplossingen (elleboog omhoog en elleboog omlaag)?

Voor de meeste bereikbare doelen kan de elleboog beide kanten op buigen en de grijper nog steeds op hetzelfde punt plaatsen, wat een elleboog-omhoog- en een elleboog-omlaagconfiguratie oplevert. De twee oplossingen komen voort uit het plus-of-minteken in de hoek volgens de cosinusregel voor het tweede gewricht. Ze vallen alleen samen bij een singulariteit, waar de arm volledig gestrekt of volledig opgevouwen is.

Hoe kies ik tussen elleboog omhoog en elleboog omlaag?

Kies de configuratie die voor de taak het veiligst en het efficiëntst is: een die de gewrichten bij hun limieten weghoudt, zo weinig mogelijk beweegt ten opzichte van de huidige pose of obstakels vermijdt. Deze simulator laat je tussen takken wisselen en toont de alternatieve oplossing als spook zodat de afweging zichtbaar wordt.

Wat is een singulariteit in een robotarm?

Een singulariteit is een configuratie waarin de arm het vermogen verliest om de grijper in een bepaalde richting te bewegen — meestal wanneer hij volledig gestrekt of volledig opgevouwen is. Dicht bij een singulariteit kan een kleine beweging van de grijper een zeer grote gewrichtsbeweging vergen, waardoor planners vertagen of om die poses heen routeren. Het is ook waar de elleboog-omhoog- en elleboog-omlaagoplossing in één oplossen.

Wanneer heeft inverse kinematica geen oplossing?

Een vlak doel met twee koppels is alleen bereikbaar binnen de ringvormige zone tussen het kleinste bereik (het verschil van de koppellengtes) en het grootste bereik (hun som). Een punt buiten die ring is bij geen enkele gewrichtshoek bereikbaar. Een pose kan ook onbereikbaar zijn omdat er een verboden gewrichtshoek nodig is, omdat de beschikbare gewrichten een oriëntatie niet kunnen aannemen, of omdat de arm met zichzelf bots.

Waarom analytische inverse kinematica in plaats van een numerieke solver?

Voor een vlakke arm met twee of drie koppels heeft de geometrie een gesloten vorm (analytische oplossing), dus kun je de exacte gewrichtshoeken rechtstreeks, deterministisch en snel berekenen — ideaal om te leren en te testen. Numerieke solvers zijn nodig voor redundante of ruimtelijke armen waar geen gesloten vorm bestaat, maar ze itereren, kunnen oplossingen missen en zijn lastiger te doorrekenen.

Verder lezen

Bronnen

Gezaghebbende bronnen om dieper te gaan dan het afgebakende leermodel van deze simulator.