- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 343

Thema: .: Vinculum :. - Hexabot

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Frage an alle die Mitlesen:

    Ich möchte die Bewegung einens Servos mathematisch invertieren.

    Folgende Situation ich habe Servos die sich nach oben bewegen wenn der Vorgabewert steigt (max 2170 Ticks) und sich senken, wenn die Vorgabe sinkt (min 810 Ticks). Nun ist es aber durch den Einbau bedingt, dass manche Servos invertiert laufen, d.h. sie sinken bei hohen werten und steigen bei niedrigen. Für die Ansteuerung wäre es aber leichter, wenn sich alle Servos gleich verhalten. Ich müsste also bei den Servos die sich invertiert verhalten im Programm eine Umrechnung implementieren die aus dem Vorgabewert hohe Werte = steigen und niedrige Werte = sinken, entsprechende Ticks generieren:
    Servo A = hoch bei 2170 und niedrig bei 810 (Mitte 1490)
    Servo B = hoch bei 810 und niedrig bei 2170 (Mitte 1490)

    Irgendwie komm ich gerade nicht drauf, wie ich das mathematisch abbilden kann.

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    32
    Beiträge
    601
    Ich hab' bei meinem Roboter die Servos einfach wie folgt kalibriert: per Taster wurden die beiden Endlagen sowie Winkel von +45° und -45° angefahren. Die jeweiligen Pulslängen bei diesen Winkeln (schließlich sind die Winkel ja das Ergebnis der IK) wurden im EEPROM gespeichert. Dann einfach eine Gerade durch diese Punkte legen (wofür ja schon 2 Punkte reichen sollten) - und fertig ist die Kalibrierung...

    Schöne Grüße

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ich würde die Servos umbauen:

    Bild hier  
    (Aus https://www.roboternetz.de/community...l=1#post426347)

    Beide Servo erhalten das selbe Signal.

    Bisher hatte ich nur Billigservos verwendet. Die drehen nicht linear. Das bedeutet, Impulsdaueränderungen auf der einen Seite bewirken einen anderen Drehwinkel als auf der anderen Seite. Dadurch wird eine rechnerische Lösung sehr kompliziert.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Hallo,

    ich würde einfach sagen z.B. bei jedem Servo 1490 mitte, dann würde ich eine Seite minus und eine plus rechnen lassen, oder nicht?

    Falls Korrekturen nötig sind würde ich die als Paramter vorher erfassen(Korr_servo1_b).
    Hier sind die Werte für um 90° gedrehte Servos direkt eingeschrieben.
    Für die Hitecs habe ich noch keine extra erstellt.

    Ich habe eine "Variablen-Pflegebereich(Geometrie und Versatz)" eingebaut, in dem legt man die kompletten "Konstanten" fest (alle festen Längen, Korrekturwerte, .....). Änderungen der Geometrie müssen/dürfen aussschliessliche dort gemacht werden.

    Das Problem trat beim mir auf als ich von RS-2 (Bein-Prototyp) auf Hitec Servos gewechselt habe. Die drehen entgegengesetzt

    Ich würde es auf jeden Fall rechnerisch lösen, nicht mechanisch durch Umbau.
    Denn dazu ist ein µC da.

    Du kommst noch drauf, geh schlafen - morgen gehts wieder

    Gute Nacht.
    Geändert von HeXPloreR (02.03.2013 um 16:14 Uhr) Grund: Code entfernt

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Eigentlich ist es ziemlich billig:

    t_Servo = tmax + tmin - t_Soll

    Wobei t_Soll der Wert ist, den der Servo einnehmen soll und t_Servo der Wert, den der Servo tatsächlich bekommt. tmax und tmin sind die obere und die untere Grenze, wobei du darauf achten solltest, dass diese auch wirklich von der Mittelstellung gleich weit entfernt sind. Obwohl, eigentlich lässt sich das mit Kalibrierung herausrechnen.

    So, wie bin ich nun auf die Formel gekommen?
    Erstmal hab ich das Signal invertiert, allerdings hat man dann nur negative Werte. Das heißt, dass man den Bereich jetzt noch geeignet verschieben muss. Zieht man den Wert tmin vom Sollwert ab, so hat man den Abstand zwischen beiden. Jetzt muss man diesen Abstand nur noch von tmax abziehen, und man hat sein Ergebnis:
    t_Servo = tmax - (t_Soll - tmin) = tmax + tmin - t_Soll

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    08.04.2005
    Beiträge
    38
    Ikarus_177 und Radbruch haben recht. Servos drehen weder linear, noch kann man sich auf Pulsbreiten wirklich verlassen. Um die Dinger relativ synchron zu bekommen, muss Du die Pulsbreiten für -45, 0 und +45 Grad notieren und in einer Kurve durch drei Punkte interpolieren. Dann hast Du eine grobe Übereinstimmung zwischen Pulslänge und Gradzahl. Die Drehrichtung ist dann auch egal - es ändert sich halt nur das Vorzeichen.

    Ansonsten: s2 = 2170 + 810 - s1

    oder die äusseren Pins am Poti im Servo tauschen.

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    oder die äusseren Pins am Poti im Servo tauschen.
    ... und natürlich auch die Motorleitungen tauschen.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. CFK Hexabot
    Von MichaF im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 14
    Letzter Beitrag: 19.08.2010, 22:03
  2. atmega und Vinculum
    Von elcomportal im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 27.05.2008, 22:47
  3. hexabot
    Von patrickgera im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 11
    Letzter Beitrag: 29.04.2008, 22:09
  4. LVProg - Linux Vinculum (USB Hostcontroller) Programmer
    Von Surveyor im Forum Open Source Software Projekte
    Antworten: 0
    Letzter Beitrag: 01.11.2007, 03:08
  5. Hexabot
    Von Derboss im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 36
    Letzter Beitrag: 22.09.2007, 11:32

Berechtigungen

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

Labornetzteil AliExpress