- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 10

Thema: Steuerung Kommandos

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645

    Steuerung Kommandos

    Hallo zusammen!

    Ich finde ich hier nichts gescheites, ein Haufen an Ergebnissen, in denen ich suchen kann, ob ich da was finde. Das kann tagelange Lesearbeit bedeuten. Deshalb hier direkt gefragt:

    Es gibt doch hier so einige Leute, die schon fahrbare Roboter gebaut haben, die sich auch normal in einer Wohnung bewegen und z.B. die Ladestation finden.
    Ich bin gerade an einem Punkt, wo ich mir Gedanken um die Steuerkommandos mache. Und das ist auch die Frage: welche Steuerkommandos benötigt man?

    Mir fallen da ein: vor, zurück, rechts, links
    Das kann ich noch verfeinern in bestimmte Strecken/Abschnitte: 10cm vor, 10cm zurück .. oder ... 15° rechts, 30° links
    Kommt man denn damit aus? Oder sogar nur mit den vier Himmelsrichtungen (theor. möglich) und einem gewissen Maß für die Strecke (in Zentimeter meinetwegen: Normalmodus; in mm: Feinmodus - wären bei mir theor. 2,513mm Auflösung)? Dann könnten die Kommandos lauten: fahre 15cm rechts, dann 30cm links (würde der Roboter dann zuerst rechts 90° drehen und 15cm fahren, dann links 90° drehen und 30cm fahren).

    Würde mich über Erfahrungen freuen und wenn noch weitere Kommandos sinnvoll sind, diese auch genannt werden.

    MfG

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    870
    - Die Grundfunktion "fahre per Joystick" (also einfach die Umrechnung der x-/y-Joystickachsen in PWM-Werte) finde ich zum Testen wichtig.

    - Synchron drehen(um einen angegebenen Winkel) oder geradeausfahren (Strecke vor-/rückwärts) sind gut für Andocken oder Ausrichten verwendbar.

    - Beim Bahnverfolgen (ein Master gibt Dir laufend Punkte vor, die Dich um die Kurven eines vorgegebenen Pfades führen) sieht's erst richtig elegant aus, wenn Kurven- und Streckenfahrt fließend ineinander übergehen.

    Komplexere Dinge setze ich üblicherweise aus einer Sequenz synchroner oder bahnverfolgender Befehle zusammen. Für das Freifahren nach einer Kollision merke ich mir z.B. in einem kleinen Ringpuffer in einem Raster (5cm?) Punkte des zuletzt gefahrenen Meters. Nach der Kollision fahre ich diese Punkte rückwärts (in der Liste und auch der Robbi fährt rückwärts) an und teste an jedem Punkt durch synchrone Drehung 45° links/rechts, bis das Gefährt wirklich frei steht (muss man bei einer kreisförmigen Grundfläche nicht machen, die habe ich aber nicht).


    Ergänzung noch:
    - Geschwindigkeitsvorgaben: Man möchte nicht unbedingt seine Ladestation im Schnellgang überfahren.
    - Beim Bahnverfolgen sollte man entscheiden können, ob die Rückwärtsfahrt erlaubt ist. (sieht einfach Panne aus, wenn der Robbi um einen spitzen Winkel geführt wird und ab da rückwärts weiter fährt.
    Geändert von Holomino (15.11.2020 um 13:50 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Zitat Zitat von Holomino Beitrag anzeigen
    .. Synchron drehen .. geradeausfahren .. Bahnverfolgen (ein Master gibt .. Punkte vor, die Dich um die Kurven eines vorgegebenen Pfades führen) ..
    Hmmm. Klingt irgendwie nach Vorgaben von bestimmten/bestimmbaren einzelnen (Teil-)Strecken "s". Kontinuierliche Vorgaben kurzer Streckenabschnitte in einem knappen Zeitraster führen dann zum fahren. Somit gilt v = ds/dt - wobei HIER ds und dt noch nicht infinit klein seien. Aber in der Realität ist so auch eine fein dosierbare Geschwindigkeit möglich - und wir kommen in die übliche Geschwindigkeitsdefinition v = ds/dt (ds, dt, ds-nach-dt infinitesimal kleine Teilstückchen).

    Irgendwie finde ich in dem (schick knappen *gg*) Thread nicht das, mit dem ich viele meiner 2rädrigen fahren lasse: jedes Rad (gleiche Raddruchmesser vorausgesetzt!!!) bekommt eine eigene Geschwindigkeitsvorgabe - also NICHT die Vorgabe eines bestimmten Zielpunktes. Geschwindigkeitsvorgaben sind bei mir üblicherweise 2-byte-signed-integer :
    Code:
      ix12 = ATSfak / tupsi12 / 10; // ix12 => Ist-Geschwindigkeit in mm/s
    ATSfak .... Antriebsstrang-faktor enthält Übersetzung(en), Raddurchmesser,
    .............. Motorzeitkonstante, *gg*Schlupf*gg* etc. etc
    tupsi ....... time units per sensor interrupt - bei mir 50µs
    ix ........... Ist-UMFANGSgeschwindigkeit EINES Rades in mm/s
    ..12 ........ Wert für den Motor 12 (Motor hat ja 2 Anschlüsse
    ...............der andere Motor heißt dann ..34 *gg*

    Bei ix12 . = .. ix34 fährt das Dingelchen gerade aus
    Bei ix12 . = . -ix34 dreht das Dingelchen um den Radstand-mittelpunkt
    Bei ix12. =|=. ix34 fährt das Dingelchen >irgendeine< Kurve (oder Turn),
    .................. deren Zentrum auf der Geraden der Radauflagen liegt,
    ...................innerhalb oder ausserhalb der Radauflagen.

    Gut, ihr fahrt (alle?) mit Omniwheel, aber gibt das DEN Unterschied? Na ich hoffe, dass das zum Thema passt oder hilft.

    - Beim Bahnverfolgen (ein Master gibt Dir laufend Punkte vor, die Dich um die Kurven eines vorgegebenen Pfades führen) sieht's erst richtig elegant aus, wenn Kurven- und Streckenfahrt fließend ineinander übergehen.
    Jaaa. Und mit entsprechenden Algorithmen kann man aus aus diesen Teilstrecken auch schöne Kurven errechnen.
    Andererseits - NUR durch Vorgabe verschiedener Geschwindigkeiten kann man auch kurvig fahren - siehe MiniD0 oder archie (zB dieses Video). Bei archie z.B. wird per IR-Fernbedienung (von altem TV) mit den Tasten [<VOL], [VOL>] jeweils eine Geschwindigkeit erhöht oder mit [OK] ix12 gleichgesetzt mit ix34. Mit [SWAP] wird das Vorzeichen beider Vorgaben geändert, mit [-/--] wird ein Vorzeichen geändert. Anm.: im autonomen Modus werden die Vorgaben "vom Gerät" selbst errechnet.
    Geändert von oberallgeier (15.11.2020 um 18:53 Uhr) Grund: Omniwheel
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Ich habe mich jetzt für vier Kommandos entschieden, um die ersten Versuche zu starten: vor, zurück, links drehen, rechts drehen. Weiteres kann ich später einbauen.
    Damit habe ich erst mal was, womit ich meine Gedanken vervollständigen kann. Als nächstes spiele ich gedanklich die Abläufe durch, die zwischen den Controllern stattfinden und auf ihnen ablaufen müssen.

    MfG

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    Bei ROS gibt es einfach nur die cmd_vel-Nachricht, die eine 6-DOF-Geschwindigkeit entgegennimmt. Bei den typischen 2-Räder-Robotern sind das dann translation/x in m/s und rotation/z in rad/s. Damit lassen sich die verschiedenen Richtungen Vorwärts/Drehen/Schrägfahren durchführen.
    Geändert von Defiant (16.11.2020 um 06:54 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Heute habe ich das noch weiter verallgemeinert. So dass ich zunächst nur Schritt Vor, Schritt Zurück, Schritt Rechts Drehen und Schritt Links Drehen habe. Ich denke, das ist der gemeinsame Nenner aller Bewegungen, die hier ausreichend sein sollen.

    Die Frage war, wofür ich mich entscheide. Eine genaue Positionierung mit Zielvorgaben oder eine Positionierung ohne genaue Vorgaben. Wenn ich einmal mit genauen Angaben anfange, laufe ich Gefahr, dass immer weiter so fortzuführen, weil es vielleicht oft die einfachste Variante in Szenarien ist. Sie ist aber aus verschiedenen Gründen nicht die Vorteilhafteste. Daher habe ich mich also gefragt, welchen Weg ich in diesem Fall gehen soll. Von genauer Positionierung zur Verallgemeinerung, oder umgekehrt. Der Weg, von einer eher allgemeinen Bewegungsangabe auszugehen, ermöglicht es, noch nicht vorhandenen Funktionen (und Sensoren) zu ermitteln und im erforderlichen Umfang nachzurüsten. Das ist der Weg, den ich gehe.

    MfG

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    ich habe noch
    - auf der stelle drehen, li/re
    - schieben seitlich li/re
    - schiebe schräg li/re/vor/rück
    aber das ist nur bei den omniwheels

    ansonsten hatte ich nur beim freifahren eine kombination rück- und rechts ausweichen, also nach rückwärts rechts drehen...
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Verschiedene Kommandos hängen auch am verwendeten Modell. Also bei meinem sind es ja nun zwei Antriebsräder. Damit kann ich entweder jeweils um ein Rad drehen, oder um einen Punkt zwischen den Rädern (normalerweise wäre das der Mittelpunkt, wenn ein Rad gleich schnell rückwärts dreht, wie das andere vorwärts dreht), das Hilfsrad würde jeweils, zusammen mit dem Chassiskörper, nachgezogen. Meine Frage zielte darauf ab, was man überhaupt benötigt, um alle notwendigen Fahrmanöver ausführen zu können. Mehr fällt mir auch nicht ein, als vor, zurück und rechts, links, und dann noch drehen links oder rechts. Ich habe mir vorgestellt, wie ich das Teil mit einer Fernbedienung steuern würde. Da wäre auch nicht mehr vorhanden. Da könnte ich mir vorstellen: Drehen in eine Richtung in Minischritten (also 5° oder 10° vielleicht) und 90° drehen. Drehen im Kreis setzt sich dann irgendwie daraus zusammen.

    Diese Omniwheels sind ein Spezialfall. Bei denen würde auch die Steuerung nach den vier Himmelsrichtungen ausreichen und das Gefährt tut das dann auch so. Schräg fahren kann da auch noch nützlich sein, ja stimmt. Bei normalen Rädern muss man erst eine Drehung vollziehen, wobei der notwendige Platz vorhanden sein muss.
    Joystick habe ich nicht. Würde ich für meinen Zweck so auch nicht benötigen, dass das in unendlich kleinen Abstufungen Kurven fahren tut. Würde meine Experimente eher komplizieren.

    Sieht so aus, als ob nicht mehr dabei heraus kommt. Einzig stellt sich mir noch die Frage, ob zwei Drehmodi sinnvoll wären. Also einmal der, wo ein Rad fest steht, dann dreht sich das Chassis um dieses Rad, das ist der Kreismittelpunkt. Und dann der Modus, wo der Kreismittelpunkt zwischen den Rädern liegt. Da kann man in eine Richtung auch noch unterschiedlicher drehen: Kreismittelpunkt ist linkes Rad, Kreismittelpunkt ist rechtes Rad und Kreismittelpunkt ist dazwischen. Vorsichtshalber sieht man die vielleicht alle drei vor? Würde ich schon so denken.

    Dann hätte ich alles, glaube ich. Danke, bis hier!


    MfG

Ähnliche Themen

  1. Parser für einfache AT-Kommandos schreiben
    Von STartmeUP im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 0
    Letzter Beitrag: 10.08.2017, 08:51
  2. [ERLEDIGT] Über Uart Kommandos auswerten
    Von daniel.weber im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 30.03.2011, 15:00
  3. AVISARO WLAN verschluckt at kommandos
    Von aphex-world im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 26.09.2008, 17:13
  4. Steuerung des Bots über Graupner RC-Steuerung
    Von Toastbrot im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 23.12.2004, 13:18
  5. GPS Steuerung mit µC
    Von Sommer im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 15
    Letzter Beitrag: 29.10.2004, 11:43

Berechtigungen

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

12V Akku bauen