Ich habe mein eigenes python Modul on top auf ftrobopy gebaut und werde dort Zeug dass ich oft brauche abkapseln.
https://github.com/NathanSchmid/ftcontrol
Momentan ist es noch nicht viel aber es ist schon ziemlich nützlich wie ich finde da das Modul auf den asyncio coroutines aufbaut und es sich so recht angenehm damit arbeiten lässt. Das Grundprinzip ist das Positionable dass eine die Steuerung in einem Koordinatensystem übernimmt. Es gibt eine konkrete Implementierung für den Motor mit einem Initialisierungsschalter: PositionableMotor. Mehrere Positionables lassen sich zu einem Mehrdimensionalen Positionable zusammenschliessen. Die Navigation zu den neuen Koordinaten erfolgt dann parallel.
Im code sieht dass dann so aus:
Code: Alles auswählen
# Motor und Input zu gehören zu einer Einheit
self.motor_x = ftcontrol.PositionableMotor("x", self.txt.motor(1), self.txt.input(1))
self.motor_y = ftcontrol.PositionableMotor("y", self.txt.motor(2), self.txt.input(2))
# ...
Code: Alles auswählen
async def init(self):
# Mehrdimensionales positionable.
dim = ftcontrol.MultiPositionable((self.motor_x, self.motor_y, self.motor_z, self.motor_w))
await dim.initialize((300, 512, 512, 300))
await dim.goto((800, 70, 1800, 0))
await dim.goto((800, 70, 2200, 0))
await dim.goto((800, 70, 2200, 10))
await dim.goto((200, 20, 500, 10))
await dim.goto((200, 20, 500, 0))
Als PoC habe ich damit den 3-Achsen Roboter angesteuert:
https://youtu.be/I10mzi3wzg8
Es scheint zu funktionieren, wenn auch mit den üblichen Problemen des Counterbasierten Greifers.