2016-03-31 11 views
1

Ich arbeite derzeit an einem (Schul-) Projekt, bei dem ein Roboter ein Maisfeld durchqueren muss.Robot Odometrie in Labview

Wir müssen die komplette Software in NI Labview machen.

Aufgrund der Aufgaben, die der Roboter ausführen muss, muss der Roboter seine Position kennen.

Als Sensoren haben wir eine 6-DOF IMU, einige unrealistische Rad-Encoder und einen 2D-Laserscanner (SICK TIM351).

Bis jetzt bin ich nicht in der Lage, irgendwelche Algorithmen oder Tutorials zu finden, und habe mich wirklich an dieses Problem gehalten.

Ich frage mich, ob jemand jemals versucht hat, SLAM in labview arbeiten zu lassen, und wenn ja, gibt es dafür Beispiele oder Erklärungen?

Oder gibt es vielleicht ein Toolkit für LabVIEW, das diese Funktion/Algorithmus enthält?

Mit freundlichen Grüßen, Jesse Bax 3. Jahr mechatronische Student

Antwort

1

Wie von Slavo erwähnt, gibt es das LabVIEW Robotics-Modul, das Algorithmen wie A * zur Pfadfindung enthält. Aber da ist nicht viel, was Ihnen helfen könnte, das SLAM-Problem zu lösen, das mir bewusst ist. Das SLAM-Problem besteht aus den folgenden Teilen: Landmark-Extraktion, Datenassoziation, Zustandsschätzung und Zustandsaktualisierung.

Bei der Landmarkenentfernung müssen Sie ein oder mehrere Merkmale auswählen, die der Roboter erkennen soll. Dies kann beispielsweise eine Ecke oder eine Linie sein (Wand in 3D). Sie können zum Beispiel Clustering, Split und Merge oder den RANSAC-Algorithmus verwenden. Ich glaube, dass Ihr Laserscanner die Punkte in einer Liste sortiert und nach Winkel sortiert speichert. Dies macht den Split- und Merge-Algorithmus sehr praktikabel. Obwohl RANSAC ist die genaueste von ihnen, aber auch eine höhere Komplexität. Ich empfehle, mit einigen optimalen Datenpunkten zu beginnen, um die Linienextraktion zu testen. Sie können zum Beispiel Ihren Laserscanner in einen kleinen Raum mit geraden Wänden stellen und einen Scan durchführen und ihn in einem Array oder einer Datei speichern. Stellen Sie sicher, dass die Kontur etwas komplexer ist als nur vier Wände. Und entfernen Sie Rauschen entweder vor oder nach der Messung.

Ich habe nicht über gute Methoden zur Datenzuordnung gelesen, aber Sie könnten zum Beispiel nur ein neues Wahrzeichen betrachten, wenn es eine gewisse Entfernung von bestehenden Landmarken ist oder ein altes Wahrzeichen aktualisieren, wenn nicht.

Zustandsabschätzung und Zustandsaktualisierung können mit dem Komplementärfilter oder dem Extended Kalman Filter (EKF) erreicht werden. EKF ist de facto für die nichtlineare Zustandsschätzung [1] und arbeitet in der Praxis sehr gut. Die Theorie hinter EKF ist ziemlich, aber es sollte ein bisschen einfacher zu implementieren sein. Ich würde empfehlen, das MathScript-Modul zu verwenden, wenn Sie EKF programmieren. Der Zweck dieser zwei Filter besteht darin, die Position des Roboters aus den Rad-Encodern und den aus dem Laserscanner extrahierten Landmarken zu schätzen.

Da das SLAM-Problem eine große Aufgabe ist, würde ich empfehlen, es in mehreren kleineren SubVIs zu programmieren. Damit Sie Ihre Teile ohne zu viel zusätzliche Komplexität richtig testen können.

Es gibt auch viele gute Beiträge zu SLAM.

1

LabVIEW bietet LabVIEW Robotics Modul. Es gibt auch viele Vorlagen für Robotik-Modul. Erstens können Sie die Starter Kit 2.0 template überprüfen, die Ihnen einfaches selbstfahrendes Roboterprojekt zur Verfügung stellen wird. Sie können auf einer solchen Vorlage basieren und Ihre eigene Anwendung vom Arbeitsmodell entwickeln, nicht von Grund auf neu.