Hexapodgeometrie

Parametrierbares Hexapodmodell:

Da eines der Projektziele darin besteht, die bestehende Firmeware der Sandbox auszulagern bzw. zu entsorgen, muss unsere Hexapod Server Applikation 2012 eine Möglichkeit anbieten, die Geometriedaten des Hexapods in Form einer Datei zu definieren. Ziel war es dieses Definition - File so flexibel wie möglich zu halten, um den Benutzer nur geringfügig einzuschränken. Dabei musste jedoch auch auf den Grenznutzen Acht genommen werden, da die Komplexität des Parsers exponentiell anwächst.

Ein weiterer Vorteil ist, dass der Parser mit den gegebenen Definition - File Objekte erzeugt, die die Informationen über die Beine und den Korpus enthalten, welche in weiterer Folge in fast jeder Klasse heran gezogen werden (LegCTRL, InverseKinematic, RobotModel mit KollisionsDedektion, Koordination, ServoCTRL ).

Ansichten und Achsenbeschriftung

 

 

 

 

Bemaßung eines Beingliedes

 

 

 

 

 

Bemaßung zweier Beinglieder

 

 

 

 

LegCtrl:

Diese Klasse dient grundsätzlich zum Berechnen der einzelnen Winkel für die Servos.  Die Klasse LegCtrl erzeugt gemäß dem Definition - File eine gewisse Anzahl von Objekten vom Typ HexapodLeg, welche mit den Parametern aus dem Definition - File initialisiert werden und für die Berechnung der inversen Kinematik zuständig sind.

Schlussendlich ist es möglich, der Klasse LegCtrl einen Satz von Positionen zu übergeben, um daraus einen Satz von Winkeln zu berechnen, welche im Objekt vom Typ ServoCtrl i linearisiert und in Winkelwerte (entspricht der tatsächlichen Pulsbreite für den Servomotor) umgerechnent werden.

 

 

ICoordination:

Diese Klasse bietet ein Interface, um verschiedene Gangarten zu implementieren und diese zur Laufzeit auszutauschen. Zur Zeit wird die Gangart "tripod gate" implementiert, welche möglichst felexibel und anspruchsvoll gehalten wird.

Berechnung der Schräglage des Hexapods

 

 

 

InputCtrl:

Diese Klasse bietet die Möglichkeit, mehrere Inputs hinzuzufügen, welche bei der Berechnung der Koordination herangezogen werden können. Das Interface "IInput" bietet eine möglichst abstrakte Schnittstelle,  mit der man die Koordination beinflussen kann.