benx
05.01.2009, 16:31
Hallo,
ich habe ein kleines Progi geschrieben das den RP6 2 Meter nach vorne fahren lässt, danach soll er sich um 180 Grad nach rechts drehen. Der RP6 dreht sich leider nicht genau um 180 Grad, sondern um ca. 20 - 40 Grad weniger. Ich schätze ca. 140 bis 160 Grad.
Woran kann das liegen? Die Encoder-Kalibrierung (0,228mm) hat nichts gebracht. Die Kurven der Drehgeber (Poti-Einstellungen) scheinen meiner Meinung nach auch relativ ok.
Habt ihr vielleicht eine Idee?
mfg
ben
#include "RP6RobotBaseLib.h"
void bumpersStateChanged(void)
{
if(bumper_left || bumper_right)
{
moveAtSpeed(0,0); // stop moving!
setLEDs(0b010000);
}
}
int main(void)
{
initRobotBase();
setLEDs(0b111111); // alle LEDs an
mSleep(1500); // warte 1,5 sek.
// Bumpers state changed event handler (überwacht die Bumper auf Auflösung)
BUMPERS_setStateChangedHandler(bumpersStateChanged );
powerON(); // Turn Encoders, Motor Current Sensors (sonst nix gehen...:))
move(100, FWD, DIST_MM(1000), true); // 1m Vorwärts fahren
rotate(50, RIGHT, 180, true); // um 180° nach rechts drehen
while(true)
{
task_RP6System();
}
return 0;
}
ich habe ein kleines Progi geschrieben das den RP6 2 Meter nach vorne fahren lässt, danach soll er sich um 180 Grad nach rechts drehen. Der RP6 dreht sich leider nicht genau um 180 Grad, sondern um ca. 20 - 40 Grad weniger. Ich schätze ca. 140 bis 160 Grad.
Woran kann das liegen? Die Encoder-Kalibrierung (0,228mm) hat nichts gebracht. Die Kurven der Drehgeber (Poti-Einstellungen) scheinen meiner Meinung nach auch relativ ok.
Habt ihr vielleicht eine Idee?
mfg
ben
#include "RP6RobotBaseLib.h"
void bumpersStateChanged(void)
{
if(bumper_left || bumper_right)
{
moveAtSpeed(0,0); // stop moving!
setLEDs(0b010000);
}
}
int main(void)
{
initRobotBase();
setLEDs(0b111111); // alle LEDs an
mSleep(1500); // warte 1,5 sek.
// Bumpers state changed event handler (überwacht die Bumper auf Auflösung)
BUMPERS_setStateChangedHandler(bumpersStateChanged );
powerON(); // Turn Encoders, Motor Current Sensors (sonst nix gehen...:))
move(100, FWD, DIST_MM(1000), true); // 1m Vorwärts fahren
rotate(50, RIGHT, 180, true); // um 180° nach rechts drehen
while(true)
{
task_RP6System();
}
return 0;
}