>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Jupyter

Robotica en Computer Vision in Python Zonder Betaalde MATLAB-licenties

Waarom Robotica-ingenieurs Zo Lang Met MATLAB Bleven Werken

Als je vijf tot tien jaar geleden robotica studeerde of werkte, herinner je je waarschijnlijk de Robotics Toolbox voor MATLAB. Peter Corke creëerde deze in de jaren negentig. Lange tijd bleef deze bibliotheek de standaard voor academia en technische laboratoria. Moest je een ruimtelijke transformatiematrix bouwen, een manipulator-traject plotten, of inverse kinematica berekenen—je opende meteen MATLAB.

Het belangrijkste nadeel is direct duidelijk: licentiekosten. Het integreren van MATLAB-code in moderne productiepipelines brengt ook aanzienlijke uitdagingen met zich mee. Enkele jaren geleden heeft de auteur de tools volledig herschreven in Python, en in 2023 verscheen de derde editie van het boek Robotics, Vision & Control samen met de open RVC3-python repository.

Wat Er Inzit

De repository bevat voorbeelden en een uniforme wrapper voor vier gespecialiseerde bibliotheken:

  • Robotics Toolbox behandelt kinematica, dynamica en manipulator-trajecten.
  • Machine Vision Toolbox pakt beeldverwerking, feature-puntdetectie en stereo-vision aan.
  • Spatial Maths Toolbox verzorgt 3D-transformatiemath, quaternionen en Lie-groepen SE(3)/SO(3).
  • BDSim helpt bij het simuleren van dynamische systemen en blokdiagrammen.

Alle broncode wordt gedistribueerd onder de MIT-licentie. Om handmatig afhankelijkheidsbeheer te elimineren, heeft de maker alles gebundeld in één pakket.

Snelle Start Via Interactieve Console

De ontwikkelaars hebben een handige CLI-hulpprogramma rvctool gemaakt. Het start een IPython-sessie op met alle noodzakelijke modules, wiskundefuncties en kant-en-klare modellen van populaire hardware, vooraf geïmporteerd.

De installatie kost één commando:

pip install rvc3python

Start vervolgens de werkomgeving:

rvctool

De console neemt aanwijzingen over van MATLAB's syntaxis-ervaring. Als je de puntkomma aan het einde van een regel weglaat, wordt het expressieresultaat onmiddellijk naar de terminal afgedrukt. Tegelijkertijd heb je volledige toegang tot reguliere Python met al zijn gemakken.

Manipulatorkinematica In Enkele Regels

Laten we een model definiëren van de Franka Emika Panda industriële robot, de flange-pose berekenen, en het inverse kinematica-probleem oplossen.

panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))

De fkine methode berekent forward kinematica en retourneert een SE3 starre transformatiematrix. De ikine_LM methode vindt gewrichtshoeken met behulp van het Levenberg-Marquardt-algoritme.

Het aanroepen van de panda.teach(panda.qz) methode opent een grafisch venster waar je gewricht-schuifregelaars kunt verplaatsen en de poses van de robot kunt zien veranderen.

Panda robot model

Beeldverwerking En Computer Vision

Voor basistaken op het gebied van computer vision is het niet nodig om logge externe frameworks aan te sluiten. SIFT keypoint-matching op twee frames ziet er bijvoorbeeld zo uit:

sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")

Onder de motorkap maakt het gebruik van beproefde NumPy en SciPy. Als je deep learning-voorbeelden uit Hoofdstuk 11 van het boek nodig hebt (zoals neuraal netwerk segmentatie), wordt PyTorch apart binnengehaald met een aparte vlag:

pip install rvc3python[pytorch]

Regelsysteemsimulatie

Het bdsim pakket verdient speciale vermelding. Het is een poging om een Simulink-alternatief te creëren zonder de logge ontwikkelomgeving.

Blokdiagrammen worden direct in Python-code gemaakt of visueel samengesteld via de grafische editor bdedit. Gegevens worden opgeslagen in reguliere JSON-bestanden met de .bd extensie. De repository bevat al 25 kant-en-klare tutorial-modellen uit het boek, die je direct kunt uitvoeren vanuit rvctool.

Dingen Om Te Onthouden Voordat Je Begint

Voordat je begint, zijn er drie punten die het vermelden waard zijn:

  1. Python 3.8 of hoger is vereist vanwege actief gebruik van type-annotaties.
  2. Apple Silicon-chips (M1/M2/M3) kunnen weergaveproblemen hebben met Open3D. De project wiki heeft een aparte pagina met workarounds.
  3. Code werkt in Jupyter Notebook en Google Colab, maar complexe 3D-animatie kan achterlopen door de specifieke manier van frame-overdracht naar de webinterface.

Wie Vindt Deze Repository Nuttig

Als je robotica doceert, bezig bent met een scriptie, navigatie-algoritmen onderzoekt, of snel een hypothese wilt testen zonder zware omgevingen zoals ROS 2 in te stellen, zal RVC3-python je veel tijd besparen. Het project elimineert de noodzaak om aangepaste wrappers voor transformatiematrices te schrijven en biedt een kant-en-klare basis voor prototyping.

Gerelateerde projecten