Choregraphe (Programm): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 127: Zeile 127:
<br>  
<br>  
===Bibliothek der verschieden Bausteine (In Bearbeitung)===
===Bibliothek der verschieden Bausteine (In Bearbeitung)===
[[Datei:Choregraphe Overview Blockbibliothek.jpg|zentriert]]  
[[Datei:Choregraphe Overview Blockbibliothek.jpg|200px|rechts]]  


Standartmäßig enthält die Block-Bibliothek eine Suchfunktion und die drei Bibiliotheken „standard“, „advanced“ und „tablet“.
Standartmäßig enthält die Block-Bibliothek eine Suchfunktion und die drei Bibiliotheken „standard“, „advanced“ und „tablet“.
Zeile 160: Zeile 160:
|}
|}


[[Datei:Choregraphe Overview Workspace.JPG |rechts|gerahmt|100px| 'Workspace']]
[[Datei:Choregraphe Overview Workspace.JPG |mini|rechts|300px| Workspace]]


Für weitere Blöcke steht der Artikel Blockbibiliothek zu verfügung:  
Für weitere Blöcke steht der Artikel Blockbibiliothek zu verfügung:  
Zeile 175: Zeile 175:
Der Workspace ist der wohl wichtigste Bereich in ihm werden alle Blöcke aus der Blocke integriert und verbunden. Der gesamte Programmablauf wird hier dargestellt. Dabei kann sowohl grafisch als auch quellcodebasiert programmiert werden.
Der Workspace ist der wohl wichtigste Bereich in ihm werden alle Blöcke aus der Blocke integriert und verbunden. Der gesamte Programmablauf wird hier dargestellt. Dabei kann sowohl grafisch als auch quellcodebasiert programmiert werden.


===Time-Line (in Bearbeitung)===
===Time-Line===
[[Datei:Choregraphe Overview Zeitleiste1.jpg|600px|zentriert|]]
Die Timeline gibt zwei wesentliche Dinge an:
Die Timeline gibt zwei wesentliche Dinge an:
*Der Ebene in der man sich befindet. Dies dient der Orientierung bei einem Verschachtelten Programm
*Der Ebene in der man sich befindet. Dies dient der Orientierung bei einem Verschachtelten Programm
Zeile 181: Zeile 182:


Das erste Element (auch als „oberstes Element“ gennant), ist immer „root“. Hier beginnt das Programm.
Das erste Element (auch als „oberstes Element“ gennant), ist immer „root“. Hier beginnt das Programm.
[[Datei:Choregraphe Overview Zeitleiste2.jpg|600px|zentriert|]]
   
   
'''Verschachtelung'''
'''Verschachtelung'''
Diese Funktion ist besonders bei komplexen Programmen wichtig. Mit dem „Diagramm“-Block können neue Ebenen erzeugt werden um das Hauptprogram in funktionale Einheiten zu teilen. Auch eine Vielzahl an Standartblöcken besitzt Verschachtelte Elementen.
Diese Funktion ist besonders bei komplexen Programmen wichtig. Mit dem „Diagramm“-Block können neue Ebenen erzeugt werden um das Hauptprogram in funktionale Einheiten zu teilen. Auch eine Vielzahl an Standartblöcken besitzt Verschachtelte Elementen.
[[Datei:Choregraphe Overview Zeitleiste3.jpg|600px|zentriert|]]
   
   
'''Zeitlicher Ablauf'''
'''Zeitlicher Ablauf'''
Zeile 189: Zeile 194:




=== Zustand des Roboters (in Bearbeitung)===
=== Zustand des Roboters ===
   
   
[[Datei:Choregraphe Overview Zustandsleiste.jpg|zentriert]]
[[Datei:Choregraphe Overview Zustandsleiste.jpg|zentriert]]
Zeile 222: Zeile 227:
|}
|}
===Kommandobereich (in Bearbeitung)===
===Kommandobereich===
 
Der Kommandobereich teilt sich in zwei Bereiche auf. Diese können durch Klicken auf den unteren Tab gewechselt werden.
* Die Postionsbibliothek
* Videoübertragung
 
'''Positionsbibliothek'''
 
Mit der Positionsbibliothek können dem Roboter direkt Posen übergeben werden. Dabei sollte bedacht werden dass einige Positionen nicht lange gehalten werden können. Für virtuelle NAO die mit Webbots erstellt wurden gilt dies nicht. Sie können jede Pose beliebig lange halten.
 
[[Datei:Choregraphe Overview Poselibrary.jpg|zentriert|]]
 
{| class="wikitable"
|-
! Symbol !!Name !!Funktion/Bedeutung
|-
| [[Datei:Video monitor export.png |zentriert|]]|| openLibray || Öffnet eine Bibliothek mit bereits gespeicherten Posen
|-
| [[Datei:Chore bluebuttons openProjekt.png|zentriert|]]|| exportLibrary || Speichert die aktuellen Posen
|-
| [[Datei:Chore pose library add.png|zentriert|]] || newPosition || Neue Pose erstellen <br>Hinweis: man kann Screenshots von der aktuellen Position machen
|}
 
'''Videoüberwachung'''


Der Kommandobereich Teilt sich in zwei Bereiche auf.
{| class="wikitable"
|-
! Symbol !!Name !!Funktion/Bedeutung
|-
| [[ Datei:Beginning play button.png|zentriert|]]|| videoPlay || Startet die Aufnahme
|-
| [[ Datei:Video monitor pause.png |zentriert|]]||videoStop || Stoppt die Aufnahme
|-
| [[ Datei:Video monitor learn.png |zentriert|]]|| videoLearn || Lasst den NAO Objekte speichern. Nach drücken des Knopfes startet ein 4-Sekunden-Countdown nachdem die Konturen eines Objektes erkannt werden. Das erkannte Objekt wird in Zukunft im Raum wieder erkannt.
|-
| [[ Datei:Video monitor import.png|zentriert|]]||importData || Importiert eine Datenbank von gespeicherten Objekt von dem PC nach Choregraphe
|-
| [[ Datei:Video monitor export.png|zentriert|]]|| exportData || Speichert die Datenbank von gespeicherten Objekt (.vrd)
|-
| [[ Datei:Video monitor new.png |zentriert|]]||clearData || Dieser Knopf löscht die Datenbank der erkannten Objekte. Es wird empfohlen die Datenbank zu sichern bevor man sie löscht.
|-
| [[ Datei:Video monitor send.png|zentriert|]]||sendData || Übergibt eine gespeicherte Datenbank mit erkannten Objekten an den NAO
|}
 
=== Applikationen und Simulation===
 
Der Bereich „Applikationen und Simulation“ teilt sich in zwei Bereiche auf. Diese können ähnlich wie beim Komandobereich durch Klicken auf den unteren Tab gewechselt werden.
 
[[Datei:Choregraphe Overview RobotApplication.jpg|zentriert|]]
{| class="wikitable"
|-
! Symbol !!Name !!Funktion/Bedeutung
|-
| [[Datei:Behavior manager open.png |zentriert|]]||installProg || Installiert das derzeit geöffnete Projekt auf den NAO.
|-
| [[Datei:Behavior manager delete.png |zentriert|]]|| removeProg || Löscht die ausgewählten Verhalte.
|-
| [[Datei:Behavior manager default.png |zentriert|]] || defaultBehavior || Setzt das ausgewählte Verhalten als Standardverhalten.
|-
| [[Datei:Behavior manager stop all.png |zentriert]] || stopAll || Stoppt alle Verhalten die derzeit auf dem Roboter laufen.
|}
 
Ausführungsstatus
{| class="wikitable"
|-
! Symbol !!Name !!Funktion/Bedeutung
|-
| [[Datei:Behavior manager play one.png|zentriert|]]||behavNRun || Das Verhalten läuft nicht. Durch Klicken wird es gestartet.
|-
| [[Datei:Behavior manager loading.png|zentriert|]] || behavLoad ||Das Verhalten wird geladen.
|-
| [[Datei:Behavior manager stop one.png|zentriert|]] || behavRun || Das Verhalten läuft. Durch Klicken wird es gestoppt.
|-
| [[Datei:Behavior manager unloading.png|zentriert|]] || behavNLoad || Das Verhalten wird gelöscht.
|}


=== Applikationen und Simulation (in Bearbeitung)===
[...]



Version vom 29. Februar 2016, 14:02 Uhr


Choregraphe ist ein Programm zur Steuerung des NAO-Roboters . Das Programm verfügt üb er eine graphische Programmierschnittstelle, kann aber auch in Python oder C++ programmiert werden. Die Firmware-Version des NAO und die Version von Choregraphe müssen übereinstimmen.

Funktionen

  • Choregraphe ist ein Programm welches die Verbindung mit dem NAO und seiner eigenen Betriebssystem NAOqi herstellt. Dabei werden Netzwerkeinstellungen wie die IP-Adresse des NAO angezeigt.
  • Es können aber auch grundlegende Parameter verstellt werden, wie beispielsweise die Lautstärken, der Sprach- und Ton-Ausgabe des Roboters.
  • Neben der Programmierung können auch direkt Befehle an den NAO übermittelt werden. So gibt es vorgefertigte Elemente wie „aufstehen“ oder „hinsetzen“
  • Es können die Bilder der Kamera die im Kopf verbaut ist, übertragen werden.
  • Das Programm beinhaltet eine Funktion zum Simulieren des Programmablaufs in einer leeren Welt. Diese ist jedoch vereinfacht und beinhaltet nicht so viele simulierte Effekte wie Webots.

Installation

Das Programm ist ohne Lizenz für 90 Tage kostenfrei nutzen. Danach ist der Erwerb einer kostenpflichtigen Lizenz erforderlich.

Die Installation ist für Windows, Linux und Mac verfügbar und ist unter folgendem Link zu finden:

https://community.aldebaran.com/en/resources/software/language/en-gb

Die Installation beinhaltet das Programm Monitor. Monitor ermöglicht die Bilder der Kamera und die Sensorwerte eines NAO auszulesen.  

Anwendung

Übersicht der einzelnen Bereiche
Übersicht der einzelnen Bereiche


Das Hauptprogramm von Choregraphe teilt sich in folgende Bereiche

  1. Funktionsleiste
  2. Projektcontainer
  3. Bibliothek der verschieden Bausteine
  4. Workspace
  5. Time-Line
  6. Zustand des Roboters
  7. Kommandobereich
  8. Applikationen und Simulation

Funktionsleiste


Symbol Name Funktion/Bedeutung
newProjekt erstellt ein neues Projekte.
openProjekt öffnet ein bereits erstelltes Projekt.
saveProjekt speichert das aktuelle Projekt.
undo macht den letzten Schritt rückgängig.
undoDisable erster Schritt in der Schrittliste erreicht.
redo wiederholt einenrückgängig gemachten Schritt.
redoDisable letzter Schritt in der Schrittliste erreicht.
connect verbindet Choregraphe mit den NAO oder einer Simulation. (dazu später noch mehr)
connectTry die Verbindung mit den NAO oder einer Simulation wird aufgebaut.
connectDown die Verbindung mit den NAO oder einer Simulation ist abgebrochen. Prüfen Sie, ob der NAO und das Netzwerk noch aktiv sind.
disconnect bricht die aktuelle Verbindung ab.
noConnect es besteht keine Verbindung, daher kann keine Verbindung abgebrochen werden.
upload+Play läd das im Workspace erstellte Programm auf den NAO und spielt es ab
uploadDisable es besteht keine Verbindung, daher kann kein Programm auf den NAO geladen werden.
stopProgram stoppt das aktuelle Programm auf den NAO
stopDisable es besteht keine Verbindung, daher kann kein Programm auf den NAO gestoppt werden, oder das Programm ist bereits terminiert
Debug Zeigt die Syntaxfehler im Programm. Ist nur aktiviert wenn sich Syntaxfehler im Programm befinden.
noDebug Es gibt keine Syntaxfehler
behavior Zeigt die Übertragungsleistung/Rechenleistung des Programms zum Nao. Das Programm wird nicht ausgeführt.
behaviorRun Zeigt die Übertragungsleistung/Rechenleistung des Programms zum Nao. Das Programm wird übertragen / läuft.
behaviorBusy Zeigt die Übertragungsleistung/Rechenleistung des Programms zum Nao. Das Programm ist vollständig ausgelastet.



Verbindung mit dem NAO oder einer Simulation aufbauen

Nachdem der -Knopf angeklickt wurde, öffnet sich das Verbindungsfenster. Hier wird eine Liste mit allen verfügbaren NAO-Robotern im Netzwerk angezeigt. Mit dem Stern können bevorzugte Roboter markiert werden. Mit einem Rechtsklick auf die Spalte eines Roboters öffnet man ein Pop-Up, welches eine direkten Link zu Webpage des jeweiligen NAO anzeigt. Zudem können die LED getestet werden und die IP-Adresse aktualisiert werden. Sollte ein NAO nicht automatisch erkannt werden, so kann er manuell durch seinen Port oder seine IP-Adresse nachgetragen werden. Man kann die IP-Adresse erfahren, indem man bei einem angeschalteten NAO für eine Sekunde auf seine Brusttaste drückt.

Symbol Bedeutung
Funktionsfähiger NAO
Der NAO hat noch keinen Befehl erhalten.
Man kann eine Verbindung zu ihm aufbauen.
Aktiver NAO
Der NAO ist grade beschäftigt. (z.B. durch den Boot-Prozess oder einen anderen PC)
Es ist nicht möglich eine Verbindung zu dem NAO auf zubauen.
Virtueller NAO
Hierbei handelt es sich um Simulation oder eine veraltete Simulationsadresse im Netzwerk. Achten Sie darauf mögliche Simulationen nach beenden des Projektes zu schließe, da diese immer noch angezeigt werden, jedoch keine Verbindung zu Ihnen möglich ist


Projektcontainer

Im Projektcontainer befinden sich alle Dateien auf die das Programm zugreift. Hier können auch externe Dateien integriert werden um den Funktionsumfang von Choregraphe zu erhöhen. So können beispielsweise Tonspuren eingefügt werden. Dabei sollten die Datei in komplexeren Programmen in Ordnern angelegt werden um eine Übersicht zu gewährleisten.

Symbol Name Funktion
contentImport Importiert neue Dateien
contentExport Exportiert eingebundene Daten
RemoveSelection Entfernt eingebundene Daten aus dem Projektcontainer
createFolder Legt einen neuen Ordner an


Bibliothek der verschieden Bausteine (In Bearbeitung)

Standartmäßig enthält die Block-Bibliothek eine Suchfunktion und die drei Bibiliotheken „standard“, „advanced“ und „tablet“.


In den einzelnen Bibliotheken findet man Unterordner die die verschiedenen Blöcke beinhalten.

Symbol Name Funktion
newLibrary Legt eine neue Bibliothek in der Blöcke eingefügt werden können.
openLibrary Öffnet eine bereits gespeicherte Bibliothek.
saveLibrary Speichert die aktuell bearbeitete Bibliothek.
saveLibraryAs Speichert die aktuell bearbeitete Bibliothek mit der Möglichkeit Eigenschaften zu ändern.
saveAllLibrarys Speichert alle aktuell bearbeiteten Bibliotheken

Die drei elementaren Blöcke sind

Symbol Name Funktion
Diagram Diagram ist der Standartblock in dem ohne Bearbeitung nichts passiert.
Man kann alle Eingänge und Ausgänge nach belieben bearbeiten. Alle anderen Blöcke können hier integriert werden.
Timeline Die Timeline ermöglicht das Verwenden einer Zeitachse. Dadurch können Befehle in Abhängigkeit der Zeit reagieren.
Python Script Ermöglich das Einbinden eines Quellcode basierten Elementes. Dieses Element enthält nur das Grundgerüst und hat wie der Diagrammblock ohne eine Änderung keinen Einfluss auf das Programm
Workspace

Für weitere Blöcke steht der Artikel Blockbibiliothek zu verfügung:

http://193.175.248.52/wiki/index.php/Choregraphe_-_Blockbibiliothek

Für mehr Informationen und Tutorals zum Thema Python gibt es unter:

http://193.175.248.52/wiki/index.php/Python

Workspace

Hauptartikel: Choregraphe Workspace


Der Workspace ist der wohl wichtigste Bereich in ihm werden alle Blöcke aus der Blocke integriert und verbunden. Der gesamte Programmablauf wird hier dargestellt. Dabei kann sowohl grafisch als auch quellcodebasiert programmiert werden.

Time-Line

Die Timeline gibt zwei wesentliche Dinge an:

  • Der Ebene in der man sich befindet. Dies dient der Orientierung bei einem Verschachtelten Programm
  • Der Zeitliche Ablauf. Dieser erscheint nachdem ein „Timeline“-Block eingefügt wurde

Das erste Element (auch als „oberstes Element“ gennant), ist immer „root“. Hier beginnt das Programm.

Verschachtelung Diese Funktion ist besonders bei komplexen Programmen wichtig. Mit dem „Diagramm“-Block können neue Ebenen erzeugt werden um das Hauptprogram in funktionale Einheiten zu teilen. Auch eine Vielzahl an Standartblöcken besitzt Verschachtelte Elementen.

Zeitlicher Ablauf Diese Funktion ist besonders bei zeitabhängigen Funktionen wichtig. Hier kann eingestellt werden, wann und wie lange eine bestimmte Aktion ausgeführt werden sollte. Oft ist es wünschenswert Sensoren und Aktoren bis zu einem bestimmten Zeitpunkt anzusprechen. Dies kann bei parallelen Arbeiten hilfreich sein.


Zustand des Roboters

Symbol Name Funktion/Bedeutung
volume Durch klicken erscheint ein Schieder der die Lautstärke regelt.
volumeMute Der NAO ist lautlos/ keine Verbindung zum Roboter
AnimationOn Der NAO verliert nachdem er eine Position erreicht hat langsam seine Kraft. Das schont die Motoren.
AnimationTurn Der NAO bewegt sich nur bedingt oder ist im Wechsel zwischen den Modi
AnimationOff Der NAO bleibt starr. Dieser Modus ist sehr anspruchsvoll für die Motoren und sollte daher vermieden werden.
autoLifeOn Der NAO steht um schnell reagieren zu können.
autoLifeOff Der NAO kniet um Energie zu sparen.
modeWake Der Roboter ist einsatzbereit. Durch klicken auf den Knopf mit dem Mond wechselt der Roboter in einen Energiesparmodus.
modeRest Der Roboter ist im Energiesparmodus. Durch klicken auf den Knopf mit der Sonne ist der Roboter wieder einsatzbereit
batteryGreen Batterie über 60% geladen
battaryOrange Batterie unter 60% geladen
BatteryRed Batterie unter 20% geladen, Vorsicht!

Kommandobereich

Der Kommandobereich teilt sich in zwei Bereiche auf. Diese können durch Klicken auf den unteren Tab gewechselt werden.

  • Die Postionsbibliothek
  • Videoübertragung

Positionsbibliothek

Mit der Positionsbibliothek können dem Roboter direkt Posen übergeben werden. Dabei sollte bedacht werden dass einige Positionen nicht lange gehalten werden können. Für virtuelle NAO die mit Webbots erstellt wurden gilt dies nicht. Sie können jede Pose beliebig lange halten.

Symbol Name Funktion/Bedeutung
openLibray Öffnet eine Bibliothek mit bereits gespeicherten Posen
exportLibrary Speichert die aktuellen Posen
newPosition Neue Pose erstellen
Hinweis: man kann Screenshots von der aktuellen Position machen

Videoüberwachung

Symbol Name Funktion/Bedeutung
videoPlay Startet die Aufnahme
videoStop Stoppt die Aufnahme
videoLearn Lasst den NAO Objekte speichern. Nach drücken des Knopfes startet ein 4-Sekunden-Countdown nachdem die Konturen eines Objektes erkannt werden. Das erkannte Objekt wird in Zukunft im Raum wieder erkannt.
importData Importiert eine Datenbank von gespeicherten Objekt von dem PC nach Choregraphe
exportData Speichert die Datenbank von gespeicherten Objekt (.vrd)
clearData Dieser Knopf löscht die Datenbank der erkannten Objekte. Es wird empfohlen die Datenbank zu sichern bevor man sie löscht.
sendData Übergibt eine gespeicherte Datenbank mit erkannten Objekten an den NAO

Applikationen und Simulation

Der Bereich „Applikationen und Simulation“ teilt sich in zwei Bereiche auf. Diese können ähnlich wie beim Komandobereich durch Klicken auf den unteren Tab gewechselt werden.

Symbol Name Funktion/Bedeutung
installProg Installiert das derzeit geöffnete Projekt auf den NAO.
removeProg Löscht die ausgewählten Verhalte.
defaultBehavior Setzt das ausgewählte Verhalten als Standardverhalten.
stopAll Stoppt alle Verhalten die derzeit auf dem Roboter laufen.

Ausführungsstatus

Symbol Name Funktion/Bedeutung
behavNRun Das Verhalten läuft nicht. Durch Klicken wird es gestartet.
behavLoad Das Verhalten wird geladen.
behavRun Das Verhalten läuft. Durch Klicken wird es gestoppt.
behavNLoad Das Verhalten wird gelöscht.

Häufige Probleme

Im Choregraphe sind plötzlich einige Boxen rot

  • Der Fehler Tritt auf wenn einige Boxen nicht bei dem virtuellen NAO simuliert werden können. Verbinden Sie Choregraphe mit dem physischen NAO und spielen Sie Ihr Programm auf.
  • Eine weitere Möglichkeit ist es wenn eine Box (Zustand) nicht verlassen werden kann. Bauen Sie ihren Signalflussplan anders auf.

Im Choregraphe lässt sich das Programm nicht auf den NAO laden obwohl ein Programm kürzlich erst von demselben Rechner übertragen wurde, oder es kann keine Verbindung aufgebaut werden, obwohl schon mal eine Verbindung bestand.

  • Sollte ein Programm nicht terminieren, so kann es dazu führen dass der Roboter nicht mehr ansprechbar ist. Starten Sie den NAO und Choregraphe neu.