C++ Entwickler (technische Informatik) gesucht

nero76

Moderator
Hallo,

wir suchen einen weiteren C++ Entwickler (mit Schwerpunkt technische oder angewandte Informatik) für das Ardumower-Projekt, z.B. ein Informatik-Absolvent oder ein Informatik-Student welcher uns bei dem Projekt unterstützen kann. Bitte melde Dich hier wenn Du Interesse an einer intensiven Mitarbeit an dem Projekt hast.

Gerne auch als Bachelor oder Masterarbeit :)

Gruss,
Alexander

PS: Die Mitarbei in Form einer fertigen Bachelor oder Masterarbeit soll vergütet werden :)
 
Hi AlexanderG,

bin Mechatronik Ingenieur mit Schwerpunkt Automatisierungstechnik und Robotik.
Kann sowohl programmieren als auch Schaltungen analog/digital entwickeln.
Ist quasi mein Job.
Was genau wäre denn zu tun?

Viele Grüße
Harry
 
Hallo Harald,

das zu bearbeitende Thema ist theoretisch und komplex, die einzelnen Teilprobleme sind aber durchaus überschaubar. Ich habe die Schritte einmal unten zusammengefasst (Englisch). Für eine einzelne Diplomarbeit wäre es vermutlich zu umfangreich, man könnte wohl problemlos mehrere Diplomarbeiten daraus machen.

Gruss,
Alexander


Develop systematic lane mowing for lawn mower (Ardumower).

1. Parallel lane mowing (accurate heading tracking)
The displacement for a new lane should be within the previous lane. Use all
available sensors (gyo, compass, GPS, odometry) and use them as input for an
Extended Kalman Filter (EKF) for optimal heading and speed estimation:
a) Measurement phase: record measurement data of all sensors
timestamp, gyro xyz, com heading, gps heading, gps speed, gps lan/lon, odometry ticks, ...
b) Model a EKF filter ('scilab' or C++) for speed and heading estimation, and optimize it with
the measurement data, so that estimation error has a minimum. Also calculate the estimated error
for a mowed distance, so that you can choose the maximum lane length later.
c) Implement heading estimation on the robot and add motor control to track heading (e.g. PID controller). http://wiki.ardumower.de/index.php?title=Sensor_fusion#Sensor_fusion_.28EKF.29 http://wiki.ardumower.de/index.php?title=Kalman http://wiki.ardumower.de/images/1/13/Turning180degree.png
2. Perimeter learning (cartography)
The robot should track the perimeter and build a mathematical description of it (e.g. vector list).
The vector list should be averaged (smoothed), so that it only contains the perimeter vectors without any mower oscillations. http://wiki.ardumower.de/images/5/52/Ardumower_tracking_pos_sync.png http://wiki.ardumower.de/images/f/f0/Perimeter_tracking_one_coil.png
3. Perimeter position recalibration
On request, the robot should track the perimeter and find a match with the learned perimeter data to estimate its position.
Use a correlation operation for this. http://wiki.ardumower.de/index.php?title=Sensor_fusion#Position_recalibration_at_perimeter_border
4. Using the subpoints 1-3, implement the final systematic mowing.
a) Divide the area to be lawn into sub areas, so that heading and distance error is within your EKF model. http://wiki.ardumower.de/images/c/c6/Lanebylane1.png b) Build a map, mark mowed areas in your map.
c) The robot should mow in parallel lanes with a maximum distance, and estimate distance when finding the perimeter again.
Based on the error between estimation and perimeter learning data, it should estimate it's position, or if the error is above
a certain threshold, recalibrate its position using the perimeter.
d) Path planning: On request, the robot should return to home (recharging), and then find the shortest path
to the unmowed areas (e.g. a-star algorithm).
 
Das hört sich ja prima an. Teil 1 würde ich gerne in Angriff nehmen.
Bisher hab ich immer mit matlab gearbeitet, aber scilab ist ja so ziemlich gleich.
Würde zunächst den datenlogger programmieren und einen von euch bitten n paar Daten zu sammeln. Dann leg ich mit der datenfusion los. Mal sehen, was vom karmanfilter noch so hingen blieb ;)
Ich bin mit meinem rasenroboter leider noch nicht ganz so weit. Kommt aber .

Gibt es schon Grundideen zum loggen?
 
Oben