Übung 6.8
Steuerung eines mobilen Roboters mit Funktionsbausteinen nach PLCopen
Ein mobiler Roboter mit zwei Rädern soll im Stop-and-Go-Betrieb die Zielpunkte 1-4 eines Rechtecks wie abgebildet abfahren. Um zu einer vorgegebenen Zielposition zu fahren, kann er wie bereits in Übung 4.8 betrachtet entweder geradeaus vor- oder zurückfahren. Um seine Orientierung zu ändern, kann er sich links- oder rechtsherum auf der Stelle drehen.

Der Roboter hat einen kreisrunden Korpus mit dem Radius R, der Radius der Räder sei r. Somit lassen sich die direkte und die inverse kinematische Transformation zwischen der Geschwindigkeit des Roboters und der der Räder folgendermaßen bestimmen:

Die Steuerungssoftware soll mit Funktionsbausteinen nach PLCopen zusammengestellt werden.
- a) Öffnen Sie das vorbereitete Projekt U6_8_MobilRobot.project, in dem für die beiden Radantriebe die virtuellen Achsen Drive1 und Drive2 vom Typ AXIS_REF_SM3 angelegt sind!
- b) Entwerfen Sie den Funktionsbaustein TYP_Axis_MC, der eine Achse wie in Beispiel 6.2 mit den PLCopen-Bausteinen
- MC_Power einschaltet,
- MC_MoveAbsolute zu einer vorgegebenen Referenzstellung qREF bewegt und
- MC_SetPosition nach Erreichen der Referenzstellung auf Null zurücksetzt.
- c) Instanziieren Sie den Funktionsbaustein TYP_Axis_MC für jede Achse im Programm Steuerung!
- d) Fügen Sie die beiden Achsen wie in Beispiel 6.8 durch den Funktionsbaustein AddToAxesGroup zu einer Achsgruppe zusammen!
- e) Fügen Sie wie in Beispiel 6.8 die Funktionsbausteine MoveDirectAbsolute und SetKinTransform hinzu!
- f) Passen Sie den Funktionsbaustein SetKinTransform an die Kinematik des mobilen Roboters an!f)
- g) Wozu dienen die Funktionsbausteine Navigation und Odometrie? Erklären Sie diese Transformationen und insatnziieren Sie sie im Funktionsbaustein SetKinTransform!
- h) Starten Sie die Schrittkette und fahren Sie die vorgegebenen Zielpunkte an, indem Sie
- PtpMove aktivieren, bis der Zielpunkt erreicht ist,
- PtpMove deaktivieren
- mit der TIPP_Taste den nächsten Zielpunkt vorgeben usw.
Lösung:
zu a-f) Die Lösung ist im Projekt U6_8_LsgMobilRobot.project gegeben.
g) Der Funktionsbaustein Navigation rechnet die absoluten Zielvorgaben (x,y,alfa) für Position und Orientierung in Wegvorgaben (sx,sy,phi) im Roboterkoordinatensystem um. Da das Roboterkoordinatensystem sich mit dem Roboter bewegt handelt es sich hierbei um relative Wegvorgaben. Umgekehrt rechnet der Funktionsbaustein Odometrie den in Roboterkoordinaten zurückgelegten Weg in absolute Weltkoordinaten um wie nachfolgend skizziert:

Die entwickelten Funktionsbausteine wirken somit folgendermaßen zusammen:

Speicherprogrammierbare Steuerungen für die Fabrik- und Prozessautomation
4. Auflage erschienen im Hanser Verlag, 2015