ja hab ich schon verschiedenes probiert.
hc denk immer so was ich schaffe könnte der robo auch hinbekommen
wo ich dran scheiter hat der robo noch weniger chancen ^^
jetzt hatsich der nunchuck doch irgendwie mit als feher quelle heruasgestellt.
dort woi es anfängt so stark zu ruckeln bis was kaputt geht liefert der nunchuck fast utopische werte die mechanisch nicht möglich sind.
soweit kann der robo nicht umkippen.
kann es sein das der nunchuck sich von motoren beinflussen läst?
so gut scheinen die lego motoren nicht entstört geworden zu sein.
Hasst du nur die Daten von Nunchuck ? Hat der Nucnchcuk ein Gyro, oder nur Beschleunigungssensoren ? Du brauchts absolut ein Gyro, da die Beschleunigung Sensoren auch reagieren auf Lineaire Beschleunigung.
Ihre Winkelmessung soll auch schon richtig messen ohne Balancieract. Bei rein hin und her schaukelen ohne Verdrehung soll der Winkel stabil sein !!
Der eigentliche Winkelmessung (Gyro + Acc) war fur mich eigentlich das schwierigste Kapitel. Ich habe das hin bekommen ohne Kalman, aber mit festes Anteil von ACC + integration von Gyro. Meine code ist in C, bist dur deran interessiert ?
Ja wäre ich
c versteh ich nur zum schreiben ist es mir zu schwierig
ich hab mal den code von mir angehangen.
das man von nmunchuck beides winkel und beschläunigung bekommen kan weis ich den mit der lib zum arduino giung es da konnte man beides nutzen
acc und pitch und roll
nur das was in dem code rauskommt scheint ein winkel zu sein der aber irgendwie noch von der beschleunigung beeinflusst wird
so wie ich den eindruck hab.
dann tritt noch ein merkwürdes verhalten auf wenn ich den robo kippe und die räder frei drehen lassen
die räder bschleunigen und bremmsen etwas aber total unsytematisch. der winkel war gleich geblieben und die werte hatten auch gestimmt. (hab sie im terminal ausgeben lassen)
"
int readRoll() {
return (int)(atan2(readAccelX(),readAccelZ())/ M_PI * 180.0);
}
// returns pitch in degrees
int readPitch() {
return (int) (acos(readAccelY()/RADIUS)/ M_PI * 180.0); // optionally swap 'RADIUS' for 'R()'
}
"
jetzt weis ich auch wozu man das acc_z gebrauchen kann ^^
Lesezeichen