Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Simulink, Sensoray 626 Board und ein Roboter... (https://www.delphipraxis.net/114541-simulink-sensoray-626-board-und-ein-roboter.html)

Vitus 27. Mai 2008 03:10


Simulink, Sensoray 626 Board und ein Roboter...
 
Hallo zusammen,

wieder einmal wende ich mich mit einem grossen Fragezeichen auf der Stirn an diese feine Community. Ich arbeite derzeit an einem einfachen Roboter der das Kauverhalten eines Menschen nachbilden soll. Ich schreibe einfach weil das Problem auf lediglich eine Achse abstrahiert wurde. Als Aktuator kommen bei dem Roboter zwei pneumatische Muskeln von festo zum Einsatz welche ueber proportional Ventile (heissen die Dinger im Deutschen so?!) stufenlos und ziemlich exakt geregelt werden. Als feedback Signal soll sowohl ein optischer inkremental Sensor, als auch eine Kraftmessdose zum Einsatz kommen. Im PC ist ein Sensoray 626 board eingebaut um den I/O zu managen.

Nun zum Knackpunkt:
Der Roboter soll nicht auf dem klassischen Weg geregelt werden (PID oder aehnliches), stattdessen soll ein spezielles neurales Netzwerk zum Einsatz kommen welches in einer Matlab Simulation schon wunderpraechtig laeuft. Jedoch habe ich keinen blassen Schimmer, wie ich Daten aus Matlab in meine I/O Karte und aus der I/O Karte in Matlab bekommen soll. Urspruenglich wollte ich das Matlab Echtzeit Betriebssystem (XPC) einsetzen, allerdings bin ich mir nicht sicher ob ich von dort aus die benoetigten Treiber fuer das board laden kann. Waere es eventuell sinnvoller das Board ueber Delphi anzusprechen und von dort aus eine Verbindung zu Matlab aufzubauen?? Fragezeiche, Fragezeichen.

Irgendwelche guten Ideen?
Beste Gruesse von Downunder
Vitus

sx2008 27. Mai 2008 05:01

Re: Simulink, Sensoray 626 Board und ein Roboter...
 
Ich gehe mal davon aus, dass man aus MathLab jede ActiveX DLLs einbinden und ansteuern kann.
http://www.mathworks.com/access/help...l/bqdwu3j.html
Man könnte in Delphi eine AxtiveX DLL schreiben, die die Ansteuerung des Roboters komplett kapselt.

Vorgehensweise:
man entwickelt Schritt für Schritt eine ActiveX DLL (Automatisierungsserver).

Hier mal ganz grob die Schnittstelle:
Delphi-Quellcode:
IRoboter = interface(IDispatch)
  procedure SetAktuatorA(value:integer); safecall;
  procedure SetAktuatorB(value:integer); safecall;
  function GetDrehwinkel:integer; safecall;
  function GetKraft:integer; safecall;
end;
Parallel dazu wird ein Client zum Testen der DLL und der Roboter Mechanik/Elektronik entwickelt.
Man kann den Client in Delphi entwickeln oder sogar nur ein VB-Script verwenden.

Wenn der Roboter sich bewegt und seine Sensoren melden kann, wird die ActiveX DLL in Matlab intergriert.

Man man jetzt noch Lust hat, kann man das Spiel noch weitertreiben:
Es wird eine Delphi Anwendung (EXE) entwickelt, mit der genau gleichen ActiveX Schnittstelle.
Diese Anwendung simuliert den Roboter nur.
Jetzt kann man in MatLab mir einem simplen Schalter entscheiden, ob man den echten Roboter oder die Simulation ansteuern möchte.

Vitus 28. Mai 2008 00:10

Re: Simulink, Sensoray 626 Board und ein Roboter...
 
Klingt nach einer guten Idee! Doch in wie weit laesst sich dann noch das Echtzeit Betriebssystem nutzen? Falls das naemlich grundsaetzlich nicht geht, ist es eventuell sogar sinnvoller das ganze umzudrehen, also nicht etwa ein Delphi Objekt in Matlab einzubinden, sondern eher das Simulink Modell als COM Objekt zu kapseln und in Delphi einzubinden.
In der zwischenzeit spiele ich ein wenig mit meinen pneumatischen Muskeln herum 8)

Beste Gruesse von Janz-weit-wech
Vitus

TurboMartin 28. Mai 2008 03:50

Re: Simulink, Sensoray 626 Board und ein Roboter...
 
Es gibt auch Informationen auf der Seite des Boardherstellers (Software and Manuals"


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz