- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: Mehrere Motoren koordinieren

  1. #1

    Frage Mehrere Motoren koordinieren

    Anzeige

    Powerstation Test
    Hallo liebe Leute und Roboter!

    Ich möchte mehrere Motoren möglichst bequem koordinieren. Sie sollen vor allem Kameras, Lichtquellen und Dinge bewegen bewegen, Ziel ist Tabletop-Film, also Filmen von Produkten. Es geht dabei vermutlich um höchstens 10kg Traglast.

    Ich kann Motortreiber an Arduinos hängen und darüber die Motoren steuern, klappt, aber:

    Wenn ich nun 4 oder 5 Motoren habe, die choreografiert etwas machen sollen, dann brauche ich ja eine Art Oberfläche, um das zu planen. Ich denke da an etwas, das mit Kurven Zeitpunkte, Beschleunigungen, Geschwindigkeiten planen lässt, Stopppunkte ermöglicht etc. Die Software Dragonframe scheint so etwas zu haben, wie hier zu sehen ist.

    Ich könnte das auch selber programmieren, frage mich aber, ob hier jemand eine gute Idee dazu hat, die ich kennen müsste?

    Kurz: Wie würde man am besten ein Motion Control System angehen?

    Vielen Dank!

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.197
    Also 10 Kilo ist schon ne ganz schöne Hausnummer,
    Meine DSLR kommt, mitsamt nem mehr als ausreichenden Objektiv, auf nicht mal 3....da man für sowas eher keine Tele-Objektive braucht, frag ich mich, woher so ein Gewicht kommen soll...

    Unabhängig davon: schau dir mal die üblichen 3D-Drucker-Boards an. Die können teilweise sechs oder mehr Stepper (ich würd gar nicht in Erwägung ziehen, was anderes als Stepper zu benutzen) ansteuern.
    Im Grunde könnte man wahrscheinlich sogar die Firmware von sowas gebrauchen, denn 3D-Drucker tun den ganzen Tag nichts anderes, als Dinge hin und her zu fahren..da hat man auch gleich das Problem mit Beschleunigungs-und Bremsrampen gelöst dabei.

    Was Dragonframe da genau macht, weiss ich nicht, womöglich wird dort sogar G-Code erzeugt (ist ja quasi Industriestandard)....das müsstest du halt mal rausfinden.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Hier gibts ein interessantes Video zu dem Thema.

  4. #4
    Hallo und vielen Dank!

    Die 10 Kilo könnten kommen, wenn beispielsweise ein Eimer Wasser ausgekippt werden soll oder so. Aber du hast recht, ich würde sicher auch mit weniger klarkommen.

    Ich habe leider keine Erfahrung mit 3D-Drucker-Boards, aber ja, klingt logisch. Das Video, das Gnom67 verlinkt hat (danke) zeigt ja, dass die Motoren choreografiert werden, indem im Arduino-Code programmiert wird, das würde ich auch hinkriegen. Mir geht es darum, das eben zentral unter einer grafischen Oberfläche zu vereinen.

    Warum? Sagen wir, ich will eine Erdbeere in die Luft werfen (Stepper mit Wurfarm), die soll dann in der Luft eine Kirsche treffen (noch ein Stepper mit Wurfarm) durch eine Wolke aus Kakao fliegen (Gebläse) und im Hintergrund soll ein Licht von links nach rechts fahren (Stepper). Wenn ich nun feststelle, dass einer der Parameter (z.B. Beschleunigung oder Zeitpunkt) einer Komponente geändert werden muss, dann kann das eine Kaskade an weiteren Veränderungen nach sich ziehen. Dann müssten mehrere Sketche neu programmiert werden, das macht das Arbeiten sehr mühselig.

    Cool wäre es deshalb, das alles mit Kurven darstellen und dann mittels Wegpunkten mit drag&drop verschieben zu können.

    Dragonframe hat ein Breakout-Gerät, das ermöglicht das wohl, hier ist das Ding. Es liefert Bewegungsanweisungen für bis zu 32 Motoren. Was haltet ihr davon? Bevor ich das kaufe, würde mich jedenfalls sehr interessieren, wie man das sonst noch lösen könnte.

    Denn ich könnte durchaus eine Desktop-Anwendung programmieren, die Kurven darstellt, mit Handles für Be-/Entschleunigung etc. und die dann die Parameter per COM an verschiedene Arduinos schickt, die das dann wiederum durch ein möglichst generalisiertes, aber parametrisierbares Skript umsetzen.

    Der Aufwand ist aber doch heftig. Deshalb frage ich mich, ob da nicht was bereits vorhandenes genutzt werden kann. Das mit den 3D-Druckern scheint jedenfalls ein guter Weg... Da werde ich mal weiter forschen.

    Also ich bin dankbar für jeden Hinweis. Danke!

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.197
    Zumindest die bekannteste Firmware für 3D-Drucker, nämlich Marlin, ist openSource.
    Du kannst dir also den Code besorgen, und rausfinden, wie die Bewegungssteuerung gemacht wird.
    Im Grunde müsstest du dir dann die Slicer-Software (das ist die, die aus nem Objekt, was gedruckt werden soll, den G-Code erzeugt), selber schreiben.
    Auch da gibts open-source-Lösungen, Slic3r z.B.
    https://slic3r.org/
    Da hättest du wenigstens schonmal einen Ansatz.

    Zu Dragonframe weiss ich nix...
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Zitat Zitat von clockdivider Beitrag anzeigen
    .. mehrere Motoren .. koordinieren. Sie sollen vor allem Kameras, Lichtquellen und Dinge bewegen ..
    Scheint doch ziemlich aufwendig zu sein. Vor knapp zehn Jahren hatte das MPI für biologische Kybernetik in Tübingen (?Katharina Mülling) dran gearbeitet. Und vor fünf Jahren gabs ne Messevorführung zum gleichen Thema von Omron - aber die Kameras standen still, nur der Roboter"arm" bewegte das Objekt. Sehr sichere Koordination.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Zitat Zitat von clockdivider Beitrag anzeigen
    Ich kann Motortreiber an Arduinos hängen und darüber die Motoren steuern
    Welche denn? Was für Motoren? 4 oder 5 ist noch im Rahmen des möglichen, denke ich, mit einer Arduino-CPU. Bei 5 Schrittmotoren (angenommen das sollen welche sein) braucht man 2 Steuerleitungen pro Motortreiber. "Dir" für Richtung und "Step" für das erzeugen der Schritte. So würde ich das versuchen zu lösen. Allerdings tatsächlich mit einer CPU. Ich habe das mal mit zweien gemacht, die müssen dann untereinander synchronisiert werden, was es nicht einfacher macht. Dann würde ich eine gemeinsame Timerbasis suchen, aufgrund dessen dann alle Motoren gesteuert werden. Dann laufen aber alle Motoren gleich schnell. Soll jeder Motor eine andere Geschwindigkeit haben, braucht man dann für jeden Motor einen eigenen Timer. Der Arduino Mega müsste da genug haben. Allerdings könnte man vermutlich auch mehrere Arduinos nehmen, wegen der Anzahl der Timer und müsste die dann synchronisieren. Wenn das nicht drauf an kommt, ob ein Motor exakt mit dem nächsten Motor zusammen startet, sondern ein paar Millisekunden Unterschied keine Rolle spielen (was ich bei der geplanten Anwendung annehmen würde).
    Allerdings fände ich den Weg über eine Planungssoftware etwas aufwendig oder umständlich. Hier hätte ich keine Idee, wie man das miteinander zusammenbringen könnte. Ich kann mir eine programmierbare Steuerung vorstellen, wo jeder Motor allein gestartet und gestoppt werden kann und die Position mit einem Tastendruck gespeichert wird. Trotzdem würde es so oder so nicht so einfach, das mal eben selber zu machen. Es sind pro Motor drei Parameter wichtig: Zielposition, die relative Ankunftszeit an Zielposition und die Drehrichtung. Alle drei Parameter müssten eingegeben werden. Ich hatte das so (ähnlich) mit 18 Motoren für einen Hexapod gemacht, programmierbar war das über eine Art Eingabeaufforderung und war im Grunde dieselbe Problemstellung, die Motoren über den zeitlichen Verlauf zu synchronisieren. Das war etwas aufwendig einzugeben, hat aber gut funktioniert. Das war mit nur einem Atmega328P - allerdings Servos (was das etwas vereinfachte, weil die Position vom Motor selber angefahren wird).

    Freundlichen Gruß
    Mit freundlichem Gruß
    Moppi

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Ist das nicht in erster Linie eine Frage deiner Bedienoberfläche? Wenn du grafisch die Bewegung der Motoren modellieren willst, brauchst du doch eigentlich "nur" einen Zeitstrahl und eine Möglichkeit, auf diesem Zeitstrahl die Position mit Kurven so hinzupfriemeln, wie du es brauchst. Lineare Bewegungen wären einfach, für komplexere Bewegungen könntest du Exponentialfunktionen oder Bezier-Kurven verwenden. Die Matehematik hinter Bezier-Kurven ist sicher etwas komplizerter, aber dafür kannst du direkt am Anfangs- und Endpunkt einer Bewegung ansetzen. Wenn du die Kurven hast, hast du somit ja auch die Motorposition zu jedem beliebigen Zeitpunkt oder andersrum, du kannst die Zeitpunkte für jeden Motorschritt berechnen. Wenn das in Echtzeit zu lange dauert, musst du halt ggf. die Schrittzeiten vorab berechnen, in Arrays speichern und dann abfahren.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.197
    Das Reprap-Ramps-Board kann fünf Stepper ansteuern. Das Ding wird einfach aufn Arduino Mega2560 aufgesteckt.
    Das Board in meinem Drucker funktioniert ebenfalls mit Arduino, kann aber sechs Stepper (und natürlich, genau wie das Ramps, noch'n paar andere Sachen wie Lüfter, Heizungen....das kann man alles mit Treibern auch auf Motoren oder Scheinwerfer anwenden).
    Meins ist zudem 24V-fähig. Wenn man bissel Leistung braucht (und "10 Kilo" klingt danach) eventuell ganz nützlich.
    Das grösste Board, was ich mal irgendwo gesehen hatte, kann 8 Stepper- erinnere mich aber nicht mehr daran, welches das war (vermutlich eins der neueren 32bit-Boards).
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Ähnliche Themen

  1. Mehrere RC Signale einlesen und mehrere Servos ausgeben
    Von R2D2 Bastler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 74
    Letzter Beitrag: 10.01.2022, 09:35
  2. AMG-Motoren: E-Motoren retten Mercedes-Produktionsstandort in Berlin
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 18.11.2021, 23:30
  3. Ein Schrittmotortreiber für mehrere Motoren?
    Von Modellbauer im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 26.03.2019, 21:57
  4. mehrere motoren an einem PWM port??
    Von raptor_79 im Forum Motoren
    Antworten: 10
    Letzter Beitrag: 27.06.2005, 14:01
  5. mehrere Kameras und Motoren
    Von Crash32 im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 18
    Letzter Beitrag: 29.03.2005, 11:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus