Microcontroller > Robotics

Witty self-balancing Bot

<< < (5/7) > >>

dinoi:
Hallo Zusammen

Unser Coding funktioniert. Ich habe nur noch ein paar Parameter angepasst und schon balanciert der Witty.  :)
Natürlich balanciert er noch nicht so ruhig aber immerhin funktioniert es prinzipiell. Hier ein kurzes Video:

https://youtu.be/oOQ5vPMR7Ec

Das Coding findet Ihr hier: https://git.boxtec.ch/boxtec/witty/src/branch/Reto

Zum Vorgehen. An die Werte der Parameter kp, ki, kd muss mann sich annähern.
Zudem habe bei den Test's festgestellt, dass der Spannungsunterschied zwischen
USB und Lipo recht gross ist. Daher habe ich in das Kabel vom FTDI Chip noch
ein 3.3 Volt Spannungsregler eingebaut.

Danach habe ich noch eine Routine eingebaut um über die Serielle Schnittstelle
diese Parameter verändern zu können. Wenn zum Beispiel kp=4.280 eingegeben wird
setzt er kp auf 4.280. Damit kann man sehr schnell die Parameter testen.
Natürlich hat das Kabel einen kleinen Einfluss auf das Balancieren. Daher habe ich
versucht ein sehr dünnes flexibles Kabel zusammenzubauen. Unten ein Bild.

Der Wechsel auf den Lipo war dann schon noch mit kleinen Parameter Korrekturen verbunden
aber der Unterschied ist viel kleiner.

Viel Spass
Gruss Reto


Rene:
Hallo zusammen

Ich habe die Diode überbrückt damit der Akku etwas mehr Spannnung liefert. Der Code ist von Reto, Angle_to_balance auf 0 gesetzt, damit Witty aufrecht stehen kann. Das funktioniert noch nicht so richtig, er braust nach kurzer Zeit in eine Richtung los.

Das Video:

https://youtu.be/WC2ZVXS3w2Q

Gruss
René

dinoi:
Hallo René

So schlecht sieht es aber nicht aus. Die Parameter etwas einstellen und dann funktioniert es ;-)

Ja ich habe noch etwas vergessen zu erwähnen. Die Motoren arbeiten Vor- und Rückwärts nicht gleich.
Das kannst Du mit diesen Parametern RMotor_offset_bck, LMotor_offset_bck usw. ausgleichen.
Bei war Rückwärts schwächer bei Dir scheint jetzt Rückwärts noch schwächer zu sein. Denn er fährt immer mehr Vorwärts.
Ich würde mal mit den beiden *bck Variablen spielen. Evlt. noch höher als bei mir einstellen oder auf 0 und vergleichen
ob Dein Problem sich verändert.

Hier übrigens die Anleitung für das Balancieren selber, das scheint bei Dir aber nicht schlecht zu sein:

// Tuning:
// 1. Set Ki and Kd to zero and gradually increase Kp so that the robot starts to oscillate about the zero position.
//
// 2. Increase Ki so that the response of the robot is faster when it is out of balance. Ki should be large enough so that the angle of inclination does not increase. The robot should come back to zero position if it is inclined.
//
// 3. Increase Kd so as to reduce the oscillations. The overshoots should also be reduced by now.

Viel Erfolg.
Gruss Reto

boxtec-support:
Hallo Reto,

Gratuliere, hab Deinen Code auf zwei Wittys ausprobiert, der früheste Prototyp hat zeitweise recht beeindruckend balanciert und sich sogar nach Anstubsen wieder in Balance kriegen können. Beim neueren sehe ich ähnliche Effekte wie Rene. Aber insgesamtn sicher nur eine Frage des Feintunings, die Funktion ist da!

Grüsse - Christoph

Rene:
Hallo Reto


--- Quote from: dinoi on July 09, 2019, 08:44:42 PM ---Bei war Rückwärts schwächer bei Dir scheint jetzt Rückwärts noch schwächer zu sein. Denn er fährt immer mehr Vorwärts.
Ich würde mal mit den beiden *bck Variablen spielen. Evlt. noch höher als bei mir einstellen oder auf 0 und vergleichen
ob Dein Problem sich verändert.

--- End quote ---

Leider gibt das keine Veränderung. Das Verhalten scheint ausschliesslich vom Schwerpunkt bestimmt zu werden.
Eigentlich möchte ich auch nicht einfach nur stehen bleiben. Das Ziel wäre, in jede beliebige Richtung fahren zu können und auch Kurven sollten möglich sein.
Zum Glück bleibt noch etwas Zeit bis zum nächsten Treffen.

Gruss
René

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version