NIBObee: Unterschied zwischen den Versionen
Alois (Diskussion | Beiträge) |
Alois (Diskussion | Beiträge) |
||
| Zeile 47: | Zeile 47: | ||
== Software == | == Software == | ||
Die Aufgaben der Software sollen in möglichst unabhängigen Modulen realisiert werden um das Testen einfacher zu gestalten. | Die Aufgaben der Software sollen in möglichst unabhängigen Modulen realisiert werden um das Testen einfacher zu gestalten. Die einzelnen Module sind im Folgenden beschrieben. | ||
=== Gerade fahren === | |||
Das Problem beim geradeaus fahren ist dass der Roboter von der Spur abweichen kann und dann neu ausgerichtet werden muss. Üblicherweise erfolgt das mit Hilfe der Liniensensoren indem, sobald einer der seitlichen Sensoren die Linie erkennt, durch Beschleunigen oder bremesen eines Rades in diese Richtung korrigierend gelent wird. | |||
In unseren Fall müssen wir diese Korrektur solange verzögern bis der seitliche Liniensensor eine mögliche Kreuzung passiert hat. Erst danach können wir feststellen ob wir nur die schwarze Linie einer Kreuzung überfahren sind oder ob tatsächlich eine Abweichung vorliegt. | |||
=== Kreuzung fahren === | |||
An einer Kreuzung wird abgebogen indem der NIBObee zuerst unbeirrt geradeaus fährt bis die Achse genau auf dem Mittelpunkt der Kreuzung zu stehen kommt. Danach wird eine Drehung nach rechts oder links durchgeführt bis sich die Linie wieder genau unter dem mittleren Sensor befindet. | |||
Die Sensoren sind von der Achse 10,4 cm entfernt, eine Radumdrehung bewegt den NIBObee um 11,8 cm weiter und bei dieser Umdrehung werden vom Odometriesensor 20 Impulse abgegeben. Die Linienbreite wird 2 cm betragen. Daher errechnet sich die Strecke die nach Erkennen der Kreuzung gefahren werden muss folgendermassen: | |||
<Impulse pro Radumdrehung> / <Radumfang> * (<Achsabstand> - <halbe Linienbreite>) = | |||
20 / 11,8 * (10,4 - 1) = 15,9322034 | |||
Nach passieren der Kreuzung muss der NIBObee also noch 16 Impulse über den Odometriesensor empfangen bevor er stoppt. | |||
=== Kalibrierung === | |||
Zur Kalibrierung fährt der NIBObee ein Viereck entlang dass genau die Seitenlänge eines der Felder des Labyrinths hat. Dies ist notwendig um relativ einfach die Karte des Labyrinths erstellen zu können. | |||
== Open Issues == | == Open Issues == | ||
Version vom 7. März 2011, 13:08 Uhr
NIBObee ist der Roboter der im Projekt RoLoMa verwendet wird.
Technische Daten
| Art | Typ | Bemerkung |
|---|---|---|
| Mikrocontroller | ATMEL ATMega16, , 15 MHz | Integrierter UART wird verwendet um den Bluetooth Modul anzubinden.
Sollte die Leistung nicht ausreichen kann entweder der Erweiterungssatz von Nicai-Systems verwendet werden oder nur der Controller wird gegen einen Pinkompatiblen Typ ausgetauscht (z.B. ATMega32, ATMega644, ATMega1284) |
| Flash: 16 kB | ||
| ... | ||
| ... | ... | ... |
| ... | ... | ... |
| Maße | Radumfang: 11,8 cm | Diese Maße sind wichtig um den NIBObee so exakt wie möglich am Mittelpunkt des Labyrinthfeldes positionieren zu können. |
| Abstand Liniensensor zu Radachse: 10,4 cm | ||
| Impulse pro Umdrehung: 20 |
Ports
Über den UART wird der Bluetooth Modul BTM-222 angebunden. Am NIObee ist diese Schnittstelle am Port X5 verfügbar
Aufgaben
Folgende Aufgaben sind im Rahmen des Projekts RoLoMa vom NIBObee Team zu lösen:
- Herstellung der Bluetooth Hardware-Erweiterung
- Softwaremodul zum Bedienen der Bluetooth-Schnittstelle via RS232
- Softwaremodul zum Erkennen der Linie im Labyrinth und im speziellen der unterschiedlichen Kreuzungstypen
- Messen des zurückgelegten Weges
- Steuerung, die den Abstand des Sensors zur Radachse berücksichtigt um den Roboter an der korrekten Stelle um die eigene Achse zu drehen
- Erstellen eines Abbilds des Labyrinths im Speicher und navigieren bis der Roboter wieder am Startpunkt gelandet ist (z.B. immer Links abbiegen)
- Implementieren des MaDeCo Protokolls
Software
Die Aufgaben der Software sollen in möglichst unabhängigen Modulen realisiert werden um das Testen einfacher zu gestalten. Die einzelnen Module sind im Folgenden beschrieben.
Gerade fahren
Das Problem beim geradeaus fahren ist dass der Roboter von der Spur abweichen kann und dann neu ausgerichtet werden muss. Üblicherweise erfolgt das mit Hilfe der Liniensensoren indem, sobald einer der seitlichen Sensoren die Linie erkennt, durch Beschleunigen oder bremesen eines Rades in diese Richtung korrigierend gelent wird.
In unseren Fall müssen wir diese Korrektur solange verzögern bis der seitliche Liniensensor eine mögliche Kreuzung passiert hat. Erst danach können wir feststellen ob wir nur die schwarze Linie einer Kreuzung überfahren sind oder ob tatsächlich eine Abweichung vorliegt.
Kreuzung fahren
An einer Kreuzung wird abgebogen indem der NIBObee zuerst unbeirrt geradeaus fährt bis die Achse genau auf dem Mittelpunkt der Kreuzung zu stehen kommt. Danach wird eine Drehung nach rechts oder links durchgeführt bis sich die Linie wieder genau unter dem mittleren Sensor befindet.
Die Sensoren sind von der Achse 10,4 cm entfernt, eine Radumdrehung bewegt den NIBObee um 11,8 cm weiter und bei dieser Umdrehung werden vom Odometriesensor 20 Impulse abgegeben. Die Linienbreite wird 2 cm betragen. Daher errechnet sich die Strecke die nach Erkennen der Kreuzung gefahren werden muss folgendermassen:
<Impulse pro Radumdrehung> / <Radumfang> * (<Achsabstand> - <halbe Linienbreite>) = 20 / 11,8 * (10,4 - 1) = 15,9322034
Nach passieren der Kreuzung muss der NIBObee also noch 16 Impulse über den Odometriesensor empfangen bevor er stoppt.
Kalibrierung
Zur Kalibrierung fährt der NIBObee ein Viereck entlang dass genau die Seitenlänge eines der Felder des Labyrinths hat. Dies ist notwendig um relativ einfach die Karte des Labyrinths erstellen zu können.
Open Issues
- Es muss noch überprüft werden ob die NIBObee Hardware ausreichend Leistungsfähig ist oder ein Upgrade gemacht werden muss.
- Werden die Signale am UART mit Bordspannung erzeugt/erwartet oder wird RS232-Level (12V) verwendet?
- Wie kann das verlassen der Spur von dem Überfahren einer Kreuzung unterschieden werden? Wenn es hier zu Problemen kommt könnten zwei zusätzliche lichtempfindliche Sensoren rechts und links oder noch ein Element mit drei zusätzlichen Sensoren auf Höhe der Achsen angebracht werden -> Mehraufwand!
- Soll Aktivierung der BT-Schnittstelle manuell erfolgen?
- Soll der Betriebsmodus gewählt werden können?