bot reaktivieren

Allgemeine c't-Bot Themen
Antworten
dehein2

bot reaktivieren

Beitrag von dehein2 » 31 Okt 2012, 01:58

Hallo,
ich habe meinen bot entdeckt und wollte mich nochmal etwas damit beschäftigen. Zwischenzeitlich bin ich total raus aus dem Thema und daher hätte ich 2-3 Fragen. Ich hoffe es gibt noch aktive Mitglieder hier ;)

1. Scheinbar habe ich keinen Programmer mehr und weiß auch nicht recht welchen ich da jetzt nehmen soll? USB sollte es schon sein.
Was ich so gefunden habe ist das:
- http://shop.myavr.de/index.php?sp=artic ... p&artID=42 mySmartUSB MK2
- http://shop.myavr.de/index.php?sp=artic ... tID=100058 mySmartUSB MK3
- http://www.watterott.com/de/Atmel-AVR-ISP-MKII-USB Atmel AVR ISP mkII Programmer
- http://www.watterott.com/de/Pololu-USB-AVR-Programmer Pololu USB AVR Programmer

Ist einer / oder alle geeignet? Wobei der 3. einfach die verpackte Version des 1. ist? ;)
Nr. 3 ist ja noch etwas teurer und 4 günstiger. Wo ist hier der Unterschied?

2. Habe aus der 1. ct hardware hacks einfach die Windows Umgebung kopiert um mir das ganze konfigurieren von eclipse/toolchain zu ersparen. Der Sim funktioniert einwandfrei und lässt sich auch mit eclipse erstellen (build).
Dann dachte ich mir testes du doch mal ein ct bot programm. Ich habe also erstmal nichts geändert und als Build Configuration "Debug W32" benutzt. Läuft sauber durch und ich erhalte eine exe. Dann auf "Debug MCU m32 W32" umgestellt und auch das läuft durch.
Für das erste Bsp im Hacks Magazin soll man nun in der Datei "include/bot-logic/available_behaviours.h" das "//#define BEHAVIOUR_SIMPLE_AVAILABLE /*!< sind die Beispielverhalten vorhanden? */" aktivieren um in "behaviour_simple.c den entsprechenden Block zu aktivieren.
Also den Kommentar entfernt. Als "Debug W32" läuft das ganze durch und ich kann die exe in den Sim laden.. der bot fährt jetzt schön im quadrat. Wenn ich aber für den Controller compilieren möchte (Hallo,
ich habe meinen bot entdeckt und wollte mich nochmal etwas damit beschäftigen. Zwischenzeitlich bin ich total raus aus dem Thema und daher hätte ich 2-3 Fragen. Ich hoffe es gibt noch aktive Mitglieder hier ;)

1. Scheinbar habe ich keinen Programmer mehr und weiß auch nicht recht welchen ich da jetzt nehmen soll? USB sollte es schon sein.
Was ich so gefunden habe ist das:
- http://shop.myavr.de/index.php?sp=artic ... p&artID=42 mySmartUSB MK2
- http://shop.myavr.de/index.php?sp=artic ... tID=100058 mySmartUSB MK3
- http://www.watterott.com/de/Atmel-AVR-ISP-MKII-USB Atmel AVR ISP mkII Programmer

Ist einer / oder alle geeignet? Wobei der 3. einfach die verpackte Version des 1. ist? ;)

2. Habe aus der 1. ct hardware hacks einfach die Windows Umgebung kopiert um mir das ganze konfigurieren von eclipse/toolchain zu ersparen. Der Sim funktioniert einwandfrei und lässt sich auch mit eclipse erstellen (build).
Dann dachte ich mir testes du doch mal ein ct bot programm. Ich habe also erstmal nichts geändert und als Build Configuration "Debug W32" benutzt. Läuft sauber durch und ich erhalte eine exe. Dann auf "Debug MCU m32 W32" umgestellt und auch das läuft durch.
Für das erste Bsp im Hacks Magazin soll man nun in der Datei "include/bot-logic/available_behaviours.h" das "//#define BEHAVIOUR_SIMPLE_AVAILABLE /*!< sind die Beispielverhalten vorhanden? */" aktivieren um in "behaviour_simple.c den entsprechenden Block zu aktivieren.
Also den Kommentar entfernt. Als "Debug W32" läuft das ganze durch und ich kann die exe in den Sim laden.. der bot fährt jetzt schön im quadrat. Wenn ich aber für den Controller compilieren möchte(Debug MCU m32 W32) läuft es nicht durch:

Code: Alles auswählen

C:/Users/dehein/Desktop/entwicklungsumgebung_ct-bot/ct-Bot/workspace/ct-Bot/include/bot-logic/available_behaviours.h:256:2: warning: #warning "GotoPos-Verhalten benoetigt SPEED_CONTROL_AVAILABLE (siehe ct-Bot.h)"
./bot-logic/behaviour_simple.o: In function `bot_simple2_behaviour':
C:\Users\dehein\Desktop\entwicklungsumgebung_ct-bot\ct-Bot\workspace\ct-Bot\Debug-MCU-m32-W32/../bot-logic/behaviour_simple.c:146: undefined reference to `bot_goto_dist'
make: *** [ct-Bot.elf] Error 1
scheinbar wird also Speed Control benötigt, aber warum nur bei der MCU Version? (Motorregeleung?) Ich habe daraufhin in der "/ct-Bot/include/bot-logic/available_behaviours.h" geguckt und da ist die Zeile

Code: Alles auswählen

#define SPEED_CONTROL_AVAILABLE		// Wenn die Regelung kalibriert werden soll, muss sie auch an sein!
aktiv.
Habe dann noch in die ctbot.h geguckt und dort war die Zeile

Code: Alles auswählen

#define SPEED_CONTROL_AVAILABLE /*!< Aktiviert die Motorregelung */
nicht aktiv.
Nach aktivierung läuft der MCU Build durch. Ich frage mich als Laie nur etwas warum das define an 2 Stellen zu finden ist... und warum das 1. nicht funktioniert!? Welche Datei ist denn die "main" Datei, also von der aus das Programm aufgebaut wird? die behavious_simple.c ist im Artikel als Starpunkt gegeben, aber diese muss ja schon irgendwo eingebunden worden sein, oder?
In der ct-Bot.c ist ja die "int main" funktion, ich denke hier setzt der compiler an, oder? aber die Datei behaviour_simple.c wird dort ja nicht aufgerufen!?!? ;)

VIELEN Dank

marvin
Wiki Master
Wiki Master
Beiträge: 415
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: bot reaktivieren

Beitrag von marvin » 31 Okt 2012, 12:12

Hallo,

einige wenige befassen sich noch mit dem c't-Bot. Schön das es noch ein paar andere gibt. Nach einigen Jahren Abstinenz habe ich den c't-Bot vor kurzem auch wieder reaktiviert. Und muß quasi auch wieder bei null anfangen, wie ich erst gestern wieder feststellen mußte.

Zu deinen Fragen:
1. Habe selbst den mySmartUSB MK2 lange benutzt. Schön daran ist die USB UART Bridge. So spart man sich den USB2Bot Adapter. Weniger schön ist, das die mySmartUSB Programmer AVR910 kompatibel sind. Es werden nur Prozessoren unterstützt, die der Hersteller in seiner Firmware unterstützt. Da fällt z.B. der ATmega644P/1284P weg, die derzeit nicht unterstützt werden.
Zum Atmel ISP kann ich wenig sagen, ich hatte nur letzte Woche wieder ein Schlüssel Erlebnis, als mein AVR JTAG Ice MKII den Dienst versagte. Nach einiger Suche stellte sich heraus, das sich auf meinem PC LibUSB als Treiber eingeschlichen hat und sich partout nicht entfernen lassen will. Dabei wollte ich nur mal schnell einen Arduino Bootloader auf den ATmega644P flashen. Blieb nur noch übrig, ein Arduino Board zu nehmen und mit dem ISP Sketch zu flashen. Damit ging es auf Anhieb. Keinen Ahnung ob der Pololu/AVR ISP auch den Jungo Treiber benötigt.
Bliebe noch der Pololu Programmer. Der ist zukunftssicher wie der AVR ISP, da STK500 kompatibel. Kann zudem noch USB UART Bridge spielen. Was will man mehr, und das zu dem Preis?

2. Entscheidend ist, welche Header Dateien eingebunden werden. Ohne jetzt 100% sicher zu sein, würde ich auf die ctbot.h tippen. Falls beide eingebunden werden, müßte es Compiler Warnungen geben, wg. Doppelt Definition usw. Aber wie gesagt, bin ich mit meinem Wissenstand wieder auf null.
Gestern abend habe ich nur damit verbracht, die AVR-Toolchan, Eclipse und SVN zu installieren. Um dann resigniert festzustellen, ich brauche wohl auch noch MSys/MinGW, weil in den Makefiles 'grep' verwendet wird. :cry:

Grüße Peter

dehein2

Re: bot reaktivieren

Beitrag von dehein2 » 31 Okt 2012, 14:16

Danke, dann werde ich den günstigsten doch einfach mal probieren.
Ich wollte jetzt erstmal den bot "ans laufen bringen".. also so, dass ich aus eclipse auch was geflasht bekomme um erstmal zu testen ob auch alles funktioniert. Mal ein paar Testprogramme laufen lassen usw.
Aber dank des komplett Paketes auf der ct DVD war der erste Teil schonmal sehr einfach.. wenn du Windows benutzt kann ich das nur empfehlen


Wenn alles klappt mal sehen ;).. erstmal wieder in das Framework einarbeiten, das ist ja schon etwas unübersichtlich.

eax
Friends of Robby
Friends of Robby
Beiträge: 765
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: bot reaktivieren

Beitrag von eax » 31 Okt 2012, 20:34

Hallo,
dehein2 hat geschrieben:

Code: Alles auswählen

C:/Users/dehein/Desktop/entwicklungsumgebung_ct-bot/ct-Bot/workspace/ct-Bot/include/bot-logic/available_behaviours.h:256:2: warning: #warning "GotoPos-Verhalten benoetigt SPEED_CONTROL_AVAILABLE (siehe ct-Bot.h)"
./bot-logic/behaviour_simple.o: In function `bot_simple2_behaviour':
C:\Users\dehein\Desktop\entwicklungsumgebung_ct-bot\ct-Bot\workspace\ct-Bot\Debug-MCU-m32-W32/../bot-logic/behaviour_simple.c:146: undefined reference to `bot_goto_dist'
make: *** [ct-Bot.elf] Error 1
Dieses (Abhängigkeits-) Problem wurde bereits vor einiger Zeit im Code gefixt, mach einfach mal ein SVN-Update, dann sollte das Ganze auch ohne weiteren Änderungen funktionieren.
dehein2 hat geschrieben:scheinbar wird also Speed Control benötigt, aber warum nur bei der MCU Version? (Motorregeleung?)
Ja richtig, in der alten Code-Version wurde für dieses Verhalten die Motorregelung benötigt (weil die zurückgelegte Strecke dann viel besser den Vorgaben entspricht). Für simulierte Bots gibt es keine Motorregelung, im Sim fahren die Bots immer "perfekt", darum trat die Abhängigkeit nur bei der MCU Version auf.
dehein2 hat geschrieben:Ich habe daraufhin in der "/ct-Bot/include/bot-logic/available_behaviours.h" geguckt und da ist die Zeile

Code: Alles auswählen

#define SPEED_CONTROL_AVAILABLE		// Wenn die Regelung kalibriert werden soll, muss sie auch an sein!
aktiv.
Habe dann noch in die ctbot.h geguckt und dort war die Zeile

Code: Alles auswählen

#define SPEED_CONTROL_AVAILABLE /*!< Aktiviert die Motorregelung */
nicht aktiv.
Nach aktivierung läuft der MCU Build durch. Ich frage mich als Laie nur etwas warum das define an 2 Stellen zu finden ist... und warum das 1. nicht funktioniert!?
Das #define in ct-Bot.h ist das richtige, um Features an- und auszuschalten (siehe auch http://www.heise.de/ct/projekte/machmit ... iki/ctBotH). In available_behaviours.h befindet sich das #define in einem #if-Block und spielt daher nur unter bestimmten Voraussetzungen eine Rolle. Dort sollte man an den #defines in den #if-Blocken (unten) nichts ändern.
dehein2 hat geschrieben:Welche Datei ist denn die "main" Datei, also von der aus das Programm aufgebaut wird? die behavious_simple.c ist im Artikel als Starpunkt gegeben, aber diese muss ja schon irgendwo eingebunden worden sein, oder?
In der ct-Bot.c ist ja die "int main" funktion, ich denke hier setzt der compiler an, oder? aber die Datei behaviour_simple.c wird dort ja nicht aufgerufen!?!? ;)
Die main()-Funktion in ct-Bot.c ist der Startpunkt des Programms zur Laufzeit, das ist richtig. Der Compiler hingegen übersetzt zur Compilezeit die .c-Dateien jedoch einzeln und parallel, auf Dateiebene gibt es daher keine sequenzielle Reihenfolge. Anschließend wird der Code aus allen .c-Dateien zu einer ausführbaren Datei (ct-Bot.exe) zusammengeführt (gelinkt). Aufgerufen werden zur Laufzeit die Funktionen, die in den .c-Dateien implementiert sind, ganz unabhängig davon, wo sie implementiert sind. Die Aufspaltung in verschiedene Dateien dient nur der besseren Übersicht für den Programmierer und ist für den Programmablauf unwichtig.

marvin hat geschrieben:Gestern abend habe ich nur damit verbracht, die AVR-Toolchan, Eclipse und SVN zu installieren. Um dann resigniert festzustellen, ich brauche wohl auch noch MSys/MinGW, weil in den Makefiles 'grep' verwendet wird.
grep wird nur für eine optisch schönere Ausgabe des Speicherverbrauchs benötigt, darauf kann man auch gut verzichten. Wenn man nur für MCU entwickeln möchte, braucht man also kein MinGW/MSys zu installieren, die AVR-Toolchain reicht dafür aus.

Viele Grüße,
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

dehein2

Re: bot reaktivieren

Beitrag von dehein2 » 31 Okt 2012, 23:40

danke für die Lange Antwort. Werde gleich mal nach gucken wie das mit eclipse so läuft. Ich habe nochmal eine doofe Frage zum vorgehen für meinen eigenen code:
Ich habe ja wie gesagt dieses komoplettpacket mit eclipse und toolchain installiert, enthalten auch ein Ordner workspace u.a. mit dem ct-bot und ct-sim code. Hier kann ich jetzt natürlich Verändungen vornehmen und kompilieren, aber wie lege ich am besten eigene projekte an. Ich will ja u.U, mehrere Projekte parallel haben um Dinge zu testen. Wie ist hier das beste vorgehen?

-----------------------------------------------------------

und dann noch eine Frage zu eclipse/svn. Ich habe ja die fertige Version und dort habe ich dann die beiden Projekte ctbot und ctsim, hinter ctbot steht ja eine Nummer 1826, ich nehme an das ist die revisionsnummer, oder?
Bild

dann bin ich auf Team - Update to Revision und habe die nueeste 1901 ausgewählt, das ganze läuft dann auch eine weile, aber die nummer bleibt wie oben zu sehen stehen. Ist das normal?

-----------------------------------------------------------

und dann noch eine Nachfrage von einem relativen Programmier anfänger:
Die main()-Funktion in ct-Bot.c ist der Startpunkt des Programms zur Laufzeit, das ist richtig. Der Compiler hingegen übersetzt zur Compilezeit die .c-Dateien jedoch einzeln und parallel, auf Dateiebene gibt es daher keine sequenzielle Reihenfolge. Anschließend wird der Code aus allen .c-Dateien zu einer ausführbaren Datei (ct-Bot.exe) zusammengeführt (gelinkt). Aufgerufen werden zur Laufzeit die Funktionen, die in den .c-Dateien implementiert sind, ganz unabhängig davon, wo sie implementiert sind. Die Aufspaltung in verschiedene Dateien dient nur der besseren Übersicht für den Programmierer und ist für den Programmablauf unwichtig.
Ich kenen bisher nur Programme die von einem Starpunkt ausgehen und dann (sequenziell?) ablaufen. Wir funktionier das denn beim ct bot genau? Welche .c Dateien werden denn compiliert? Alle im Projektordner? Woher weiß der bot dann was ablaufen soll? Läuft einfach alles ab was active ist? ;) ich muss sagen, dass ich gerade etwas auf dem Schlauch stehe... :shock:



Vielen Dank nochmal

eax
Friends of Robby
Friends of Robby
Beiträge: 765
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: bot reaktivieren

Beitrag von eax » 01 Nov 2012, 19:00

dehein2 hat geschrieben:Ich habe ja wie gesagt dieses komoplettpacket mit eclipse und toolchain installiert, enthalten auch ein Ordner workspace u.a. mit dem ct-bot und ct-sim code. Hier kann ich jetzt natürlich Verändungen vornehmen und kompilieren, aber wie lege ich am besten eigene projekte an. Ich will ja u.U, mehrere Projekte parallel haben um Dinge zu testen. Wie ist hier das beste vorgehen?
Das ist ganz einfach, du importierst das ct-Bot-Projekt einfach mehrfach in Eclipse. Das funktioniert genauso wie unter http://www.heise.de/ct/projekte/machmit ... UndEclipse beschrieben, nur musst du dann natürlich für jedes Projekt einen anderen Namen vergeben. Der Name wird von Eclipse abgefragt, da kannst du dann einfach ct-Bot-test2 oder so eingeben.
dehein2 hat geschrieben:und dann noch eine Frage zu eclipse/svn. Ich habe ja die fertige Version und dort habe ich dann die beiden Projekte ctbot und ctsim, hinter ctbot steht ja eine Nummer 1826, ich nehme an das ist die revisionsnummer, oder?
Bild

dann bin ich auf Team - Update to Revision und habe die nueeste 1901 ausgewählt, das ganze läuft dann auch eine weile, aber die nummer bleibt wie oben zu sehen stehen. Ist das normal?
Ja, das ist die Revisionsnummer. Am besten aktualisierst du über "Team" -> "Update" (oder "Update to Revision" und dann "Head Revision"), dann wird automatisch der neueste Code geholt. Das Problem mit expliziten Revisionsnummer ist, dass SVN die Revision pro Datei / Verzeichnis vergibt, d.h. eine länger nicht aktualisierte Datei behält ihre alte Revisionsnummer bei, obwohl es nach wie vor die neueste Version ist, die es gibt.
dehein2 hat geschrieben:Ich kenen bisher nur Programme die von einem Starpunkt ausgehen und dann (sequenziell?) ablaufen. Wir funktionier das denn beim ct bot genau? Welche .c Dateien werden denn compiliert? Alle im Projektordner? Woher weiß der bot dann was ablaufen soll? Läuft einfach alles ab was active ist? ;) ich muss sagen, dass ich gerade etwas auf dem Schlauch stehe... :shock:
Das ist beim ct-Bot natürlich genauso, das Programm läuft sequenziell vom Startpunkt aus (main() in ct-Bot.c) ab und führt dann den Code aus, der in main() steht, inkl. der Aufrufe von weiteren Funktionen, wie sie im Code stehen. Das bezieht sich alles auf das, was passiert, wenn der Bot läuft (Programmlaufzeit).

Völlig unabhängig davon ist das Prozedere, was abläuft, wenn der Code (auf deinem PC) compiliert wird (Compilezeit): Das Compilieren der .c-Dateien hat nichts damit zu tun, wie das Programm auf dem Bot nachher abläuft. Die Reihenfolge, in welcher .c-Dateien compiliert werden, ist völlig egal, das macht der Compiler halt irgendwie und es kann dir egal sein. Erst nach dem Compilieren, wenn eine ausführbare Datei entstanden ist (ct-Bot.exe für simulierte Bots und ct-Bot.hex für reale Bots), wird diese ausgeführt und dann natürlich in der Reihenfolge, wie es im Code steht, angefangen bei main().

Dieser "technische" Ablauf der Software ist aber umfangreicher, als das, was du wissen musst, ob Verhalten auf dem Bot auszuführen zu lassen. Die Verhalten (z.B. BEHAVIOUR_SIMPLE wie aus dem Tutorial) werden vom Framework automatisch ausgeführt, wenn sie aktiv sind. Das Prinzip ist auch unter http://www.heise.de/ct/artikel/Hohe-Schule-290392.html und http://www.heise.de/ct/artikel/Ausgang- ... 90460.html beschrieben.

Viele Grüße,
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

dehein2

Re: bot reaktivieren

Beitrag von dehein2 » 01 Nov 2012, 21:18

also ist es ok wenn ich Team->Update gemacht habe und sich die Version nicht geändert hat!? Dann ist ja gut ;)

Das mit dem Compilieren und ausführen war halbwegs klar ;) war nur etwas irritiert. Was mir noch garnicht klar ist, ist folgendes:

zur Laufzeit wird natürlich die main() gestartet und der bot vertieft sich dann in weitere Gefilde ;), was leider in keine Artikel gelesen habe ist der generelle Aufbau des Programms. Was ich mich z.B. frage ist
- wo ist definiert was ausgeführt wird
- wie wird festegelegt in welcher Reihenfolge. Wird z.B. in der Main eine Datei aufgerufen die alle aktiviereten "behaviours" in einer definierten Reihenfolge immer im loop ausführt?
- wie funktioniert das mit den Prioritäten? Wird z.B. die Abgrundkontrolle immer als erstes ausgeführt und wenn sie etwas detektiert passiert etwas bestimmtes (abbruch der Schleife oderso!?)

Was mit nicht so ganz klar ist ist der lodische Programmaufbau (ablauf) ;) ich bin nicht sicher ob ich mich verstnändlich ausrücke. Vielleicht muss ich das als Anfänger ja auch garnicht wirklich alles wissen^^... aber irgendwie interessiert es mich schon.

Vielen dank nocheinmal

marvin
Wiki Master
Wiki Master
Beiträge: 415
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: bot reaktivieren

Beitrag von marvin » 02 Nov 2012, 11:03

Hallo,

der Einstieg in das ct-Bot Framework ist nicht ohne. Im Moment geht es mir eher wie dem Schwein vor dem Uhrwerk. Ich werde erst mal einen Schritt zurückgehen, und das Bot Behaviour deaktivieren. Einfache Programme wie Sensorwerte abfragen und anzeigen sowie einfache Verhalten wie Linienfolgen und Hindernissen ausweichen. Klassisch nach dem EVA Prinzip. Das geht ja zum Glück auch mit dem bestehenden Framework.

Grüße Peter

dehein2

Re: bot reaktivieren

Beitrag von dehein2 » 02 Nov 2012, 14:07

ja das klingt doch vernünftig, dann könnte ich auch erstmal gut testen ob am bot noch alles klappt.
Wie machst du das?

eax
Friends of Robby
Friends of Robby
Beiträge: 765
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: bot reaktivieren

Beitrag von eax » 02 Nov 2012, 14:44

dehein2 hat geschrieben:zur Laufzeit wird natürlich die main() gestartet und der bot vertieft sich dann in weitere Gefilde ;), was leider in keine Artikel gelesen habe ist der generelle Aufbau des Programms. Was ich mich z.B. frage ist
- wo ist definiert was ausgeführt wird
- wie wird festegelegt in welcher Reihenfolge. Wird z.B. in der Main eine Datei aufgerufen die alle aktiviereten "behaviours" in einer definierten Reihenfolge immer im loop ausführt?
- wie funktioniert das mit den Prioritäten? Wird z.B. die Abgrundkontrolle immer als erstes ausgeführt und wenn sie etwas detektiert passiert etwas bestimmtes (abbruch der Schleife oderso!?)
Die Fragen werden eigentlich alle in dem Artikel "c’t-Bot: Programmieren leicht gemacht" beantwortet, vor allem in der zweiten Hälfte. Da hier aber scheinbar Nachholbedarf bei der Dokumentation besteht oder vielleicht nicht jeder den Artikel hat, werde ich mal versuchen diese Dinge im Wiki zusammenzufassen und zu erklären.

Viele Grüße
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

dehein2

Re: bot reaktivieren

Beitrag von dehein2 » 04 Nov 2012, 10:23

dsa werde ich mir gleich nochmal in Ruhe zu Gemüte führen.
Gestern ist der Programmieradapter schon gekommen und funktioniert auch. Ich bin allerdings nicht so recht sicher ob der bot überhaupt richtig funktioniert. Ich habe einfach das hier compiliert und geflashed:

behaviour_simple.c

Code: Alles auswählen

void bot_simple_behaviour(Behaviour_t * data) {
	switch (simple_state) {
	case 0:
		bot_drive_distance(data, 0, BOT_SPEED_MAX, 14);
		simple_state = 1;
		break;
	case 1:
		bot_turn(data, 90);
		simple_state = 0;
		break;
	default:
		return_from_behaviour(data);
		break;
	}

}	
Das ist ja das Bsp. was schon drin ist. Aber da kommt kein wirkliches Fahren bei rum. Die Motoren machen irgendwas (recht kraftlos)... und eignetlich sollte so ein Programm ja problemlos laufen, oder?

tobi
Friends of Gort
Friends of Gort
Beiträge: 63
Registriert: 28 Apr 2011, 16:45

Re: bot reaktivieren

Beitrag von tobi » 04 Nov 2012, 16:42

Hey,

hast du die Motorregelung an? Wenn ja, muss die richtig kalibriert sein, vllt liegts daran? Würde ich zum testen erstma aus lassen.

Grüße,
Tobi

dehein2

Re: bot reaktivieren

Beitrag von dehein2 » 06 Nov 2012, 00:04

das mache ich hier, oder

Code: Alles auswählen

//#define SPEED_CONTROL_AVAILABLE /*!< Aktiviert die Motorregelung */
das Problem ist dann, dass ich das Projekt nicht kompilieren kann und dauernd den Fehler

Code: Alles auswählen

C:/Users/dehein/Desktop/Tools/ct-Bot/workspace/ct-Bot/include/bot-logic/available_behaviours.h:261:2: warning: #warning "GotoPos-Verhalten benoetigt SPEED_CONTROL_AVAILABLE (siehe ct-Bot.h)"
erhalte :(

tobi
Friends of Gort
Friends of Gort
Beiträge: 63
Registriert: 28 Apr 2011, 16:45

Re: bot reaktivieren

Beitrag von tobi » 06 Nov 2012, 21:55

dehein2 hat geschrieben:das mache ich hier, oder

Code: Alles auswählen

//#define SPEED_CONTROL_AVAILABLE /*!< Aktiviert die Motorregelung */
ja genau.
dehein2 hat geschrieben:das Problem ist dann, dass ich das Projekt nicht kompilieren kann und dauernd den Fehler

Code: Alles auswählen

C:/Users/dehein/Desktop/Tools/ct-Bot/workspace/ct-Bot/include/bot-logic/available_behaviours.h:261:2: warning: #warning "GotoPos-Verhaltenv benoetigt SPEED_CONTROL_AVAILABLE (siehe ct-Bot.h)"
erhalte :(
Dann hast du nicht die neueste Version vom Code. Mach mal Team -> Update.

VG
Tobi

Antworten