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).