Absender: Torsten Evers
Datum: Mo, 20.03.2006 22:09:01
Hallo, für einige Algorithmen ist die Funktion bot_drive() selbst bei Angabe des maximalen Krümmungswerts (127) zu harmlos, was die Kurvenfahrt angeht. Das liegt daran, dass nur ein Rad für den Bogen genutzt wird, das andere jedoch in der angegebenen Geschwindigkeit weiterfährt. Für enge Kurven reicht dies nicht aus. Ich schlage daher vor, eine weitere Funktion aufzunehmen, die das ganze etwas "radikaler" angeht: void bot_drive_agressive(int8 curve, int speed){ // Wenn etwas ausgewichen wurde, bricht das Verhalten hier ab, sonst wuerde es evtl. die Handlungsanweisungen von bot_avoid_harm() stoeren. if(bot_avoid_harm()) return; if(curve < 0) { speedWishLeft = speed * (1.0 + 2.0*((float)curve/127)); speedWishRight = -speed * (1.0 + 2.0*((float)curve/127)); } else if (curve > 0) { speedWishRight = -speed * (1.0 - 2.0*((float)curve/127)); speedWishLeft = speed * (1.0 - 2.0*((float)curve/127)); } else { speedWishLeft = speed; speedWishRight = speed; } } Schöne Grüße, Torsten Evers