Umbau eines mobilen Roboters SS2015

Projektaufgabe: Umbau eines mobilen Roboters

(Michael Beißwenger, Johannes Fangrath, Abdul Hafeez Sadon, Daniel Schöttle,               Max Sommerfeld, Pascal Villemin)

Unsere Projektaufgabe, Umbau eines mobilen Roboters war für uns eine konstruktive Herausforderung. Zu Projektbeginn stand uns ein fertiges Chassis zur Verfügung.

Die erste konstruktive Schwierigkeit lag in dem kleinen Schaltungsgehäuse, das uns die Projektvorgruppe zur Verfügung gestellt hatte. Dieses Gehäuse wurde jedoch viel zu klein dimensioniert. Dieses Bauteil musste neu ausgelegt und angeschafft werden. Wir kauften ein Spelsberg Gehäuse und vergrößerten das Volumen durch spanende Bearbeitung.

Daraufhin besorgten wir Aluminiumbleche und fertigten zwei Batteriehalter, Gehäusegrundplatte und zwei äußere Schaltungsplatten für die elektronischen Komponenten.

Aus einer Kunststoffplatte fertigten wir die Schaltungsgrundplatte.

Mit einer von uns gefertigten Welle verbinedeten wir das Gehäuse mit dem Chassis und sicherten die Welle mit zwei Stellringen gegen Verschieben.

 

Den Elektronikteil betreffend haben wir die Komponeten verkabelt und in dem Gehäuse befestigt.

Das „Gehirn“ des Roboters besteht dabei aus einem Raspberry Pi B+ der mittels I2C-Bus über eine Mindstormkompatible Schnittstelle mit den jeweiligen Komponenten kommuniziert. Der Vorteil besteht darin, dass vorhandene Lego Mindstorm Sensorik und Aktorik an den Roboter angeschlossen und verwendet werden kann.

Als nächsten Schritt musste das Betriebssystem „Raspbian“ aufgespielt werden. Diese basiert auf dem Betriebssystem Debian, einer Linuxdistribution.

Da die Programmierung die Kentnisse eines Maschinenbauers übersteigen, wird diese von unserem Betreuer übernommen.

Field Robot Event 2014 – Result

In good old traditon of beeing late to pronounce the result of this years field robot event, the best way to describe it is: “WE DID IT! Team Floribot scored rank 4!”

Field Robot Event 2014 results (.PDF)

But first things first. Last year we identified some major issues with our concept of navigation and the setup of our robot. In the team meeting after the event we decided to use the year of preperation and apply some major changes. One problem of the setup was, that the tank kinematic had it’s issues with to much wheelspin. This way it was impossible to use odometry to determine the correct position of the robot at the end of a lane. Also the wheelspin interfered with a smooth turn to the next lane. So we changed the kinematic setup from the tank kinematic to a differential kinematic with an additional castor wheel. This way we only had three, instead of the former four, contact points and reduced the wheelspin to a minimum. Furthermore this change allowed us, to drive nearly perfect circles.

The second major change was with the concept of our navigation. Last year we used the ROS internal navigation and had quite some issues to adjust it to the contest field properties. So we decided to change our workflow and create our own navigation algorithm. This way it would be much easier to adjust the navigation to the contest rules. Also instead of inserting C/C++ code into the ROS system ourselves, we now generate the C/C++ code with Matlab/Simulink and are able to simulate the code, before we even need to push it on the real system.

Moreover we did a lot of minor chages, too. For example we now have an alternative way to manually control the robot with a Java application, instead of the Wii controller. Besides the team organization improved, thanks to a specific time mangement.

Overall the changes paid off and we scored in our third participation rank 4 of 23 competitors. This fantastic result even attracted some attention to the VDI news. If you like to read the article, just klick on the following link:

VDI news of the Field Robot Event 2014 (German article)

At the end I like to thank all my teammates for the great work they’ve done, in order to get everything ready in time. I know last year was quite exhausting, but in my opinion the effort was totally worth it ;-) .

Start the ROS stage simulation with a MATLAB/Simulink project

This guide is about how to get the ROS stage simulation going combined with our current MATLAB/Simulink project. As usual terminal commands are printed blue.

Note: This guide is not about how MATLAB and ROS stage do communicate with each other. It’s a manual for team member.

Step 1:

Source the “setup.bash” in the “floribot_ws/devel/” directory and execute the launch script “launch_stage1.sh” in the “floribot_ws/src/” directory. The roscore and the stage simulation should be started automatically.

source floribot_ws/devel/setup.bash

./floribot_ws/src/launch_stage1.sh

Step 2:

Open MATLAB and add all folder and subfolder of the directory “floribot_ws” to the MATLAB path (Add to Path -> Selected Folders and Subfolders). After that open with MATLAB the project “floribot_simulink.prj” that is inside of the “floribot_ws/src/” directory.

Step 3

Now open “simulink/robot1_MIL.slx” and start the rosnode connection with the function “start_rosnode” that is accessible at the “project shortcuts” tab. Otherwise execute “start_rosnode” inside the MATLAB command window.

Step 4

If no error occures, open the subsystem “wiimote” inside the Simulink model “robot1_MIL” and start the simulation with the “Run” button. The robot inside the ROS stage window still does not move. First it has to be set to automatic mode with the switch “button_2″ inside the “wiimote” subsystem. After a simple flip of the switch the only thing the robot still needs is the information where it should turn after the end of the first lane. In order to provide this information simply flip the switch “button_left” for a turn to the left or “button_right” for a turn to the right, after the first lane. With this final flip the robot should start moving inside the ROS stage simulation. If you like to cancel the movement of the robot, just stop the Simulink simulation with the “Stop” button.

Zwischenstand Projektlabor

17.04.2014

Teilnehmer: Prof. Dr. Torsten Heverhagen, Dipl.-Ing. (FH) Henning Walch, Sabrina Kupper, Benjamin Schreider, Matthias R., Benjamin Schreider, Dominik Teltscher

  • Präsentation aktueller Ergebnisse
  • Bestellen der ausgewählten Motoren
  • evtl. Verwendung von Koffergriffen anstelle von Klappgriffen aufgrund höheren Tragekomforts
  • Verwendung zweier spritzwassergeschützter Elektronik-Gehäuse aus Polycarbonat mit seitlich abnehmbaren Deckeln anstatt des Schubkastens
  • Verwendung von speziell angefertigten Spannhülsen (Innendurchmesser 10 mm, Außendurchmesser 32 mm) statt der Wellle-Nabe-Verbindung mit Scheibenfeder; überträgt Drehmoment von bis zu 12 Nm (>> 3,2 Nm, die am Rad auftreten)

 

Zwischenstand Motoren

15.04.2014

Teilnehmer: Sabrina Kupper, Benjamin Schreider, Andreas Hirschfeld, Matthias R., Dominik Teltscher

  • neue Motoren erfodern neue Halterungen
  • Verschraubung des Getriebes an einer Aluminium-Platte der Stärke 8 mm mit Lochbild des Getriebes
  • Befestigung der Aluplatte Rahmen mittels dreier Nutensteine mit Innengewinde M5
  • Erstellen einer Fertigungszeichnung der Platte

Zwischenstand Projektlabor

07.04.2014

Teilnehmer: Prof. Dr. Thorsten Heverhagen, Sabrina Kupper, Benjamin Schreider, Andreas Hirschfeld, Matthias R., Dominik Teltscher

erste Konzepte

Verschmälerung Fahrwerk:

  • Winkelgetriebe nur in Verbindung mit neuen Motoren erhältlich
  • Berechnung der Eckdaten für den Roboter mit neuen Motoren: Getriebeübersetzung 1:20, Höchstgeschwindigkeit 0,95 m/s, Drehmoment am Rad 3,2 Nm ermöglicht das bewältigen von Steigungen von bis zu 5%

Aufbockung:

  • Schnellspannystem in Form eines Klemmverschlusses

Welle-Nabe-Verbindung:

  • durch eine Scheibenfeder nach DIN 688A, da passende Nut bereits in Getriebeabtriebswelle vorhanden
  • Erodierprozess für Nut in Adapter zur Felge erforderlich

Gehäuse:

  • Schubkasten für den Outdoor-Gebrauch, um im ausgezogenen Zustand ein bequemes Arbeiten an alles elektrischen Komponenten zu ermöglichen
  • Verlängerung aller erfoderlichen Anschlussleitungen, damit Ausziehen des Schubkastens nicht behindert wird

Tragegriffe:

  • Klappgriffe, um erneute Verbeiterung des Roboters zu vermeiden
  • gefedert, um unnötiges Klappern  während dem Fahren zu verhinden
  • Anbringung am Rahmen in Schwerpunnktlage über Nutensteine (Lage verstellbar) in Schwerpunktlage
  • Achten auf erforderliche Tragkraft (mind. 130 N pro Griff)

CAD-Modell:

  • Beschaffnung von CAD-Daten verwendeter Norm- und Kaufteile

Erstes Treffen Projektlabor

27.03.2014

Teilnehmer: Prof. Dr. Torsten Heverhagen, Dipl.-Ing. (FH) Henning Walch, Sabrina Kupper, Benjamin Schreider, Andreas Hirschfeld, Matthias R., Dominik Teltscher

 

Arbeitsziel des Treffens:

  • Vorstellen des Field Robot Events
  • Vorstellen des aktuellen FloriBot
  • Klärung der genauen Aufgabenstellung und des Umfangs des Projektlabors
  • Aufteilen der einzelnen Aufgaben innerhalb der Projektlaborgruppe
  • Vereinbaren von Terminen für weitere Treffen

Anforderungen an das Projektlabor:

unbedingt:

  • Verschmälerung des aktuellen Fahrwerks um 50 bis 100 mm (erfordert Getriebe mit seitlichen Wellenabgang, um Antriebsstrang um 90° umzulenken)
  • neuen Akkugehäuse, das es ermöglicht den Akku einfacher auszutauschen und ihn vor leichtem Regen schützt (Roboter darf Gesamthöhe von 600 mm nicht überschreiten)
  • Entwicklung eines Adapters zur Aufnahme der optionalen Peripherie (Pan-Tilt-Unit, Kamera, …)
  • Versteifung der Aufnahme für den Laser
  • Erstellen eines CAD-Modells des modifizierten Roboters

optional:

  • Anpassen der Lage der Tragegriffe an den Schwerpunkt des Roboters
  • Ändern der Form der Griffe für höheren Tragekomfort
  • Entwicklung eines neuen Konzepts zur Aufbockung des Roboters, um ein schnelleres und einfacheres Aufbocken zu gewährleisten
  • Enticklung und Auslegung einer neuen Welle-Nabe-Verbindung zwischen Getriebeabtriebswelle und Felge

Treffen Software-Entwicklung (15.05.2014)

Teilnehmer: Benedict Bauer, Björn Eistel, Henning Walch, Manuel Rixen, Michael Gysin, Torsten Heverhagen

Reise:

Beim Veranstalteter soll nachgefragt werden ob schon am Sonntag den 15.06. angereist werden kann. Ist das nicht möglich wird Montag früh um 5 Uhr losgefahren damit wir rechtzeitig um 12 Uhr in Bernburg-Strenzfeld ankommen.

Fahrzeuge: entweder 2 geliehene oder eins plus Kastenwagen der Hochschule.

Anmeldung:

Die Anmeldung zum Event übernimmt Benedict Benedict.

Wer macht was fürs Proceeding:
Softwarearchitektur: Torsten Heverhagen
Hardware: Projektlabor Maschinenbauer
BDV: Björn Eistel
Navigation: Felix Binder
HDMI: Manuel Rixen

Zusammenfassung + Korrektur: Benedict Bauer

Sonstiges:

Verzeichnisstruktur des Projektes auf redmine soll entsprechend dem alten Projektangepasst werden.

Logo: zusätzliche Idee schwarz weiß. Foto in Zeichnung konvertieren.

Es muss noch entschieden werden, ob die Markierung der Golfbälle akustisch oder optisch gesehen soll.

Treffen Software-Entwicklung (27.04.2014)

Teilnehmer:
Benedict Bauer, Björn Eistel, Felix Binder, Felix Herrmann, Henning Walch, Torsten Heverhagen

Schriftführer:
Felix Binder

Organisatoriesches zum Event:

  • Field Robot Event 16. – ­18. Juni 2013 (Montag → Mittwoch) Anreise vielleicht schon Sonntags
  • Schlüssel fürs Packen am Event unbedingt organisieren
  • Packen evtl. Schon an dem Samstag davor + 1 eigene Übernachtung an dem Sonntag damit der
  • Testtag voll ausgenutzt werden kann.
  • Wagen Organisation (Henning); Unterkunft (Ausstehend); Anmeldung (Ausstehend)

Wer macht was?

  • Task1/2 (Fahren durch Reihen) → Benedict Bauer + Felix Binder
  • Task 3 (Erkennung eines gelben Golfballes) → Björn Eistel
  • Task 4 (Freestyle, Erkennung eines gelben Golfballes) → ??
  • Task 5 (Cooperative Task, Evtl. Rücksprache mit Team Helios) → ??
  • Navigation: Benedict Bauer, Felix Binder
  • Kamera, GNSS: Björn Eistel
  • Pan Tilt Unit: Lisa
  • Elektrik: ?Michael Gysin?

Software-Entwicklung

  • Auf dem Floribot läuft die aktuelle Version von ROS, ROS Hydro
  • Entwicklungsumgebung: Matlab Simulink
    • Es ist ein Simulink Projekt vorhanden, das als Framework dient.
    • SVN Verwaltung geht über die Matlab Projekt Verwaltung.
    • Jeder Task bekommt ein eigenes Modell. Einzelnen Funktionen werden als Bausteine in die Bibliothek erstellt. Task 1 ist als enabled Subsystem dargestellt, sodass per Knopfdruck der Task gestartet werden kann und er nicht schon von Anfang an läuft. Das behebt die Startprobleme, wenn der Roboter noch nicht in der Reihe steht.
    • Die Anzahl der Messwerte eines Scans wird über “scan_beams” angegeben. Dieser ist in der Simulation unterschiedliche zur echten Anwendung. Die Berechnungen unbedingt mit variabler Werteanzahl durchführen.
    • Simulation geht auch rein in Simulink
      • Simulation in robot1_MIL (MIL: Model in the loop; SIL: Software in the loop; PIL: Processor in the loop).
    • Code Generierung kann auf den Rechnern im Labor oder von Herrn Heverhagen durchgeführt werden (Matlab Lizenz)
    • Phidgets Packet wird nicht mehr benötigt, weil alle notwendigen Packete herausgeholt wurden
    • Variablen entsprechen den ROS Parametern.
  • Die Ein-­ und Ausgänge für die Simulink Umgebung werden vorgegeben und anschließend mit dem UML Tool C++ Code generiert.

Das heißt also:

Jeder Arbeitet auf seiner eigenen Maschine mit Matlab Simulink. Wenn aus dem Simulink Modell Code generiert wurde, kann dieser auf dem Floribot ausgecheckt gebaut werden. Fürs bauen gibt es das Skript catkin_make.sh. Danach kann der Node zum Beispiel mit launch_task1_teleopt.launch gestartet werden.

 

 

Field Robot Event 2013 Result

Well it passed quite some time since the Field Robot Event 2013 in Prague, but we are proud to announce that our “Floribot” made it to the 12 th place out of 18 participants.

Results Field Robot Event 2013

Now after this years contest, I like to share some of my impressions that I collected while beeing part of the team “Floribot”. For the most of our team members, including myself,  this was the first experience of an event like this. We arrived at Prague on the 26 th June at the late evening and got the keys to our rooms for the next four days. The rooms were simple student appartments with unfortunatelly no access to the internet. After that we saved us a spot at the working area, where we and all the other teams used to work on our robots. Later we decided to take off the rest of the evening and visit central Prague. I only can say Prague at night is quite impressive, even though the local food prices are quite expensive.

Working AreaOn the first day of the event the field was open for the teams to test their robots under real circumstances. We did a lot of prepartion before the event in order to test our robot under as authentic conditions as possible, but nothing can be compared to reality. Even the paper plants, that our “Project Managing Group” provided us to test, were completly different compared to the real plants.

We worked until late at night on our programs, that did a good job on the simulation, but had quite some difficulties with the measures of the real plants on the field.

On the next day the test field was closed at 12:30 p.m. and the contest began half an hour later. We did our best on this short period of time to adjust our programs to the field conditions although we had quite a lack of sleep. In the end we were able to do a solid performance on all three tasks although not everything worked as intended.

At the end of this day we had the chance to unite with the team “Helios” for the cooperative task. We shared our experiences and worked together quite well. Furthermore our moods were still positive thanks to the self brewed beer that the Prague university provided us at this evening for free ;-) .

At the last day of the field robot event we finished our programs for the cooperative task and managed it to get on the 4 th place. After that we packed our tools and drove back to Heilbronn.

As conclusion I can say, that even though the trip to Prague was quite exhausting, we did a lot of work in a short periode of time and still had fun doing it. We learned a lot from other teams that participated more often than we did and we were able to identify some problems in order to improve ourselfs. For myself, I’m happy to be a part of this great team and I’m eager for the next Field Robot Event, because of all that experiences we made we have a good chance to score even better the next time.