<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.ardumower.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gimate</id>
		<title>www.wiki.ardumower.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ardumower.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gimate"/>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Spezial:Beitr%C3%A4ge/Gimate"/>
		<updated>2026-09-22T16:07:47Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=3D-printed_extensions_and_replacements_(English)&amp;diff=6284</id>
		<title>3D-printed extensions and replacements (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=3D-printed_extensions_and_replacements_(English)&amp;diff=6284"/>
				<updated>2018-12-28T16:56:32Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page collects some Ardumower-specific extensions and replacements that can be created by using a 3D-printer.&lt;br /&gt;
&lt;br /&gt;
=Profile 4040, 120 mm=&lt;br /&gt;
&lt;br /&gt;
This is a standard 4040 profile with a length of 120 mm. It can be used to replace the standard metal profile which might possibly improve EMC-characteristics for the inductive perimeter sensor.&lt;br /&gt;
&lt;br /&gt;
[[File:Profile 4040, 120 mm for Ardumower.jpg|none|thumb|Profile 4040, 30 mm-version for illustration|600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;[https://www.thingiverse.com/thing:2944815 Download from Thingiverse]&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sheep Sheep spikes for wheels=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Holoratte/ardumower/tree/SheepSheep/cad/ardumower_chassis_0_99 Download from Github]&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=5437</id>
		<title>Archimedean spiral</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=5437"/>
				<updated>2017-09-18T19:50:49Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: ''motorSpiralStartTimeSecond''&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STATE_FORWARD was changed: After going into the STATE_FORWARD the Ardumower drives forward until ''motorSpiralStartTimeMin'' is reached and mow motor current goes above ''motorMowPowerThreshold'' (indicating that unmoved area with longer gras was reached). At this point the Ardumower starts to drive an achimedian spiral with a width determined by the ''motorSpiralFactor''.&lt;br /&gt;
&lt;br /&gt;
The overlap of the spiral traces is determinated by the maximal speed ''motorSpeedMaxRpm'' and ''motorSpiralFactor''. Increase of ''motorSpeedMaxRpm'' or ''motorSpiralFactor'' leads to greater overlap.&lt;br /&gt;
&lt;br /&gt;
A first spiral with duration of ''motorSpiralStartTimeSecond'' prepares the area for the second spiral in order to avoid not mowed ares in the center of the spiral.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three new pfod variables:&lt;br /&gt;
&lt;br /&gt;
Motor:&lt;br /&gt;
&lt;br /&gt;
''motorSpiralStartTimeMin'' default value: 6 sec&lt;br /&gt;
&lt;br /&gt;
''motorSpiralStartTimeSecond'' default value: 18 sec&lt;br /&gt;
&lt;br /&gt;
''motorSpiralFactor'' default value: 30 sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mow:&lt;br /&gt;
&lt;br /&gt;
''motorMowPowerThreshold'' default value: 15 W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New internal variable:&lt;br /&gt;
&lt;br /&gt;
''lastSetSpiralStartTime'' starting timepoint of the current spiral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Forum thread: [http://www.ardumower.de/index.php/de/forum/software/1231-archimedische-spirale-fahren]&lt;br /&gt;
&lt;br /&gt;
GitHub Forks: &lt;br /&gt;
&lt;br /&gt;
[https://github.com/ainagtur/ardumower/tree/Spiral] Spiral branch&lt;br /&gt;
[https://github.com/Holoratte/ardumower/tree/SheepSheep] SheepSheep branch&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4579</id>
		<title>Archimedean spiral</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4579"/>
				<updated>2017-06-07T07:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STATE_FORWARD was changed: After going into the STATE_FORWARD the Ardumower drives forward until ''motorSpiralStartTimeMin'' is reached and mow motor current goes above ''motorMowPowerThreshold'' (indicating that unmoved area with longer gras was reached). At this point the Ardumower starts to drive an achimedian spiral with a width determined by the ''motorSpiralFactor''.&lt;br /&gt;
&lt;br /&gt;
The overlap of the spiral traces is determinated by the maximal speed ''motorSpeedMaxRpm'' and ''motorSpiralFactor''. Increase of ''motorSpeedMaxRpm'' or ''motorSpiralFactor'' leads to greater overlap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three new pfod variables:&lt;br /&gt;
&lt;br /&gt;
Motor:&lt;br /&gt;
''motorSpiralStartTimeMin'' default value: 6 sec&lt;br /&gt;
&lt;br /&gt;
''motorSpiralFactor'' default value: 30 sec&lt;br /&gt;
&lt;br /&gt;
Mow:&lt;br /&gt;
''motorMowPowerThreshold'' default value: 15 W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New internal variable:&lt;br /&gt;
''lastSetSpiralStartTime'' starting timepoint of the current spiral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Forum thread: [http://www.ardumower.de/index.php/de/forum/software/1231-archimedische-spirale-fahren]&lt;br /&gt;
&lt;br /&gt;
GitHub Forks: &lt;br /&gt;
&lt;br /&gt;
[https://github.com/ainagtur/ardumower/tree/Spiral] Spiral branch&lt;br /&gt;
[https://github.com/Holoratte/ardumower/tree/SheepSheep] SheepSheep branch&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:Ardumower_Statemachine.png&amp;diff=4578</id>
		<title>Datei:Ardumower Statemachine.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:Ardumower_Statemachine.png&amp;diff=4578"/>
				<updated>2017-06-03T13:53:28Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: Gimate lud eine neue Version von Datei:Ardumower Statemachine.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:Ardumower_Statemachine.png&amp;diff=4577</id>
		<title>Datei:Ardumower Statemachine.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:Ardumower_Statemachine.png&amp;diff=4577"/>
				<updated>2017-06-03T13:50:39Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: Gimate lud eine neue Version von Datei:Ardumower Statemachine.png hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4555</id>
		<title>Archimedean spiral</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4555"/>
				<updated>2017-05-16T13:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STATE_FORWARD was changed: After going into the STATE_FORWARD the Ardumower drives forward until ''motorSpiralStartTimeMin'' is reached and mow motor current goes above ''motorMowPowerThreshold'' (indicating that unmoved area with longer gras was reached). At this point the Ardumower starts to drive an achimedian spiral with a width determined by the ''motorSpiralFactor''.&lt;br /&gt;
&lt;br /&gt;
Three new pfod variables:&lt;br /&gt;
&lt;br /&gt;
Motor:&lt;br /&gt;
''motorSpiralStartTimeMin'' default value: 6 sec&lt;br /&gt;
&lt;br /&gt;
''motorSpiralFactor'' default value: 30 sec&lt;br /&gt;
&lt;br /&gt;
Mow:&lt;br /&gt;
''motorMowPowerThreshold'' default value: 15 W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New internal variable:&lt;br /&gt;
''lastSetSpiralStartTime'' starting timepoint of the current spiral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Forum thread: [http://www.ardumower.de/index.php/de/forum/software/1231-archimedische-spirale-fahren]&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4535</id>
		<title>Archimedean spiral</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4535"/>
				<updated>2017-05-01T19:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;STATE_FORWARD was changed: After going into the STATE_FORWARD the Ardumower drives forward until ''motorSpiralStartTime'' is reached. At this point the Ardumower starts to drive an achimedian spiral with a width determined by the ''motorSpiralFactor''.&lt;br /&gt;
STATE_FORWARD ends after ''motorForwTimeMax'' was reached.&lt;br /&gt;
&lt;br /&gt;
Two new variables:&lt;br /&gt;
&lt;br /&gt;
''motorSpiralStartTime'' default value: 6 sec&lt;br /&gt;
&lt;br /&gt;
''motorSpiralFactor'' default value: 30 sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The values for these two variables are not saved!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Forum thread: [http://www.ardumower.de/index.php/de/forum/software/1231-archimedische-spirale-fahren]&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4520</id>
		<title>Archimedean spiral</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Archimedean_spiral&amp;diff=4520"/>
				<updated>2017-04-29T19:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: Die Seite wurde neu angelegt: „ Forum thread: [http://www.ardumower.de/index.php/de/forum/software/1231-archimedische-spirale-fahren]“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Forum thread: [http://www.ardumower.de/index.php/de/forum/software/1231-archimedische-spirale-fahren]&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Hauptseite&amp;diff=4519</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Hauptseite&amp;diff=4519"/>
				<updated>2017-04-29T19:34:25Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: /* Your Ardumower extension / Deine Ardumower Erweiterung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; -&amp;gt; [[Deutsche Version]] &lt;br /&gt;
 -&amp;gt; [[Russian Version]] (outdated)&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{| border=0&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;color:#cf7606; font-size:200%;&amp;quot;&amp;gt;'''Ardumower'''&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#005288; font-size:200%;&amp;quot;&amp;gt;'''WIKI - the manual for your [http://www.ardumower.de/index.php/en/ Ardumower]'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Yt-brand-standard-logo-95x40.png|thumb|180px|http://www.youtube.com/user/naneona/videos]]&lt;br /&gt;
&lt;br /&gt;
==Required parts for the Ardumower==&lt;br /&gt;
[[Image:Ardumower_overview.png|thumb|700px|Overview]]&lt;br /&gt;
&lt;br /&gt;
All modules can be purchased as complete kits via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]] .&lt;br /&gt;
&lt;br /&gt;
What is needed for building your Ardumower:&lt;br /&gt;
*[https://www.marotronics.de/Ardumower-Board-12-Prototyp-mit-Chassis-und-Motoren The Ardumower chassis including motors]&lt;br /&gt;
*Important modules to choose:&lt;br /&gt;
**[https://www.marotronics.de/Zubehoer-Set-fuer-das-Ardumower-Board-24-V Accessories Set (resistors, pin strips etc.)]&lt;br /&gt;
**[https://www.marotronics.de/Protector-Board-zum-Schutz-der-Motortreiber-vor-hohen-Induktionsspannungen 2 x Motor driver protection PCB]&lt;br /&gt;
**[https://www.marotronics.de/Mega-Board-2560-R3-ATmega2560-mit-USB-Kabel-Arduino-kompatibel-mit-CH340G-IC 1 x Mega Board 2560 R3]&lt;br /&gt;
**[https://www.marotronics.de/INA169-Analog-DC-Current-Sensor-Breakout-60V-25A-/-5A-Marotronics 1 x INA169 Current Sensor Board]&lt;br /&gt;
**[https://www.marotronics.de/Dual-MC33926-Motor-Driver-Carrier 2 x Dual motor driver MC33926]&lt;br /&gt;
**[https://www.marotronics.de/DC-DC-Spannungsregler-LM2596-Step-Down-Regler-einstellbar 2 x DC-DC LM2596 Step-Down Converter]&lt;br /&gt;
**[https://www.marotronics.de/HC-05-Wireless-Bluetooth-RF-Transceiver-Module-Serial-RS232-fuer-Arduino 1 x Wireless Bluetooth module HC-05]&lt;br /&gt;
**[https://www.marotronics.de/Real-Time-Clock-Modul-I2C-RTC-DS1307-zB-fuer-Arduino 1 x Real Time Clock I2C DS1307]&lt;br /&gt;
**[https://www.marotronics.de/Ladegeraete-fuer-den-Ardumower-Akkus-24V-mit-Status-LED-auch-fuer-Li-Ion-Akkus 1 x 24 Volt Charger for the Ardumower LithiumIon Battery]&lt;br /&gt;
&lt;br /&gt;
*Optional modules:&lt;br /&gt;
**[https://www.marotronics.de/Bumper-Duino-Dual-Drucksensor-Board-zB-fuer-Arduino-Raspberry-pi BumperDuino (intelligent bumper sensor)]&lt;br /&gt;
**[https://www.marotronics.de/Perimeter-Sender-Board-Prototyp-mit-Platinen-Zubehoer Perimeter sender] and [https://www.marotronics.de/Schleifenempfaenger-Kit-perimeter-receiver-Kit receiver]&lt;br /&gt;
**[https://www.marotronics.de/Zubehoer-Set-fuer-die-Laderegelung-Blei-Batterien Charger Accessories Set (Lead Battery)]&lt;br /&gt;
**[https://www.marotronics.de/HC-SR04-Ultraschallsensor-Ultrasonic-Ranging-Module Ultrasonic sensor HC-SR04 (up to 3 supported)]&lt;br /&gt;
**[https://www.marotronics.de/Regensensor-Modul-YL-38-fuer-Arduino-Raspberry-PI-Regentropfen-Sensor-Naessesensor Rain sensor]&lt;br /&gt;
**[https://www.marotronics.de/9-Achsen-IMU-Sensor-GY-801-L3G4200D-ADXL345-HMC5883L-BMP180 IMU GY-80]&lt;br /&gt;
**[https://www.marotronics.de/Unterspannungsschutz-Board-Undervoltage-lockout-board Undervoltage protection PCB]&lt;br /&gt;
**[https://www.marotronics.de/NEO-6M-GPS-Modul-GY-GPS6MV2-NEO-6M-Flight-Controller-zb-fuer-Arduino GPS Module GY-GPS6MV2]&lt;br /&gt;
**[https://www.marotronics.de/ESP8266-WIFI-Wlan-Serial-Modul-ESP01-fuer-Arduino WIFI/Wlan Module ESP8266 ESP01]&lt;br /&gt;
&lt;br /&gt;
*1 x [http://www.asn-shop.de/Ardumower-Power-Pack-259V-45Ah Ardumower Power Pack]&lt;br /&gt;
*1 x [https://www.marotronics.de/3-Messer-3-Schrauben-passend-zB-fuer-AutomowerZ-von-HusqvarnaZ 3 mowing blades + 3 screws, e.g. suitable for Automower® from Husqvarna®]&lt;br /&gt;
&lt;br /&gt;
==Required parts for a perimeter loop==&lt;br /&gt;
A perimeter loop is optional but recommended.&lt;br /&gt;
* [https://www.marotronics.de/Perimeter-Sender-Board-Prototyp-mit-Platinen-Zubehoer Perimeter sender PCB]&lt;br /&gt;
** Important modules to choose:&lt;br /&gt;
**[https://www.marotronics.de/Dual-MC33926-Motor-Driver-Carrier 1x Dual MC33926 Motor Driver Carrier]&lt;br /&gt;
**[https://www.marotronics.de/INA169-Analog-DC-Current-Sensor-Breakout-60V-25A-/-5A-Marotronics 1x INA169 Analog DC Current Sensor Breakout - 60V 2,5A / 5A Marotronics]&lt;br /&gt;
**[https://www.marotronics.de/DC-DC-Spannungsregler-LM2596-Step-Down-Regler-einstellbar 1 x DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar]&lt;br /&gt;
**[https://www.marotronics.de/Nano-V30-ATmega328P-AU-MCU-Arduino-kompatibel-USB-CH340G 1 x Nano V3.0 ATmega328-AU Arduino kompatibel Mikrocontroller Board]&lt;br /&gt;
**[https://www.marotronics.de/Schleifenempfaenger-Kit-perimeter-receiver-Kit Perimeter receiver]&lt;br /&gt;
*Optional modules:&lt;br /&gt;
**PCB case including 5 screws&lt;br /&gt;
**Connecting terminals 3x (2x Perimeter loop, 1x Charger) &lt;br /&gt;
**Socket for case 2,5 &lt;br /&gt;
*Additional accessories depending on needs:&lt;br /&gt;
**[https://www.marotronics.de/25-Rasennaegel-Heringe-fuer-Rasenroboter-zB-Robomow-STAFFELPREISE Lawn nails/herrings]&lt;br /&gt;
**[https://www.marotronics.de/100-m-Kabel-Einzelader-1-x1-mm-H05V-K-schwarz Perimeter cable]&lt;br /&gt;
* A charging station is in development and will follow soon.&lt;br /&gt;
&lt;br /&gt;
==Building, Downloading, Running (steps)==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower-chassis.jpg| Build&lt;br /&gt;
File: Arduino_software.jpg| Download&lt;br /&gt;
File: Ardumower_perimeter.jpg| Run!&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Here are the steps for building your DIY Ardumower:&lt;br /&gt;
#[[Ardumower chassis| Assemble the chassis (motors, mower slice, blades etc.)]]&lt;br /&gt;
#[[Ardumower PCB| Assemble the PCB]]&lt;br /&gt;
#[[Motor driver| Connect motors, drivers]]&lt;br /&gt;
#[[Charging| Connect battery, charger]]&lt;br /&gt;
#[[Ardumower PCB| Download software, setup, flash Arduino, first test]] &amp;lt;b&amp;gt;NOTE&amp;lt;/b&amp;gt;: If you have never worked with Arduino before, read our &amp;lt;b&amp;gt;[http://wiki.ardumower.de/index.php?title=Arduino_first_steps 'Arduino first steps' introduction]&amp;lt;/b&amp;gt;.&lt;br /&gt;
#[[Bluetooth| Add &amp;amp; configure Bluetooth module]]&lt;br /&gt;
#[[Perimeter wire| Assemble Perimeter sender, add receiver]]&lt;br /&gt;
#[[IMU| Add &amp;amp; calibrate IMU (compass, acceleration sensor)]]&lt;br /&gt;
&lt;br /&gt;
==Ardumower Reference==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!Chassis assembly&lt;br /&gt;
|[[Ardumower chassis|Chassis, tires, mowing disc, blades]] &lt;br /&gt;
|-&lt;br /&gt;
!Arduino code, schematics, PCB etc.&lt;br /&gt;
|[[Arduino first steps]]&lt;br /&gt;
|[[Ardumower PCB|Ardumower PCB &amp;amp; code]]&lt;br /&gt;
|[[Troubleshooting]]&lt;br /&gt;
|-&lt;br /&gt;
!Actuators&lt;br /&gt;
|[[Motor driver|Motor, driver, protector, odometry]]&lt;br /&gt;
|[[Relay]]&lt;br /&gt;
|-&lt;br /&gt;
!Sensors&lt;br /&gt;
|[[Bumper sensor]]&lt;br /&gt;
|[[Perimeter wire]]&lt;br /&gt;
|[[Ultrasonic]]&lt;br /&gt;
|[[IMU]]&lt;br /&gt;
|[[Rain sensor]]&lt;br /&gt;
|[[Dropsensor]]&lt;br /&gt;
|-&lt;br /&gt;
!Energy&lt;br /&gt;
|[[Charging|Battery, undervoltage-protection, charger, station]]&lt;br /&gt;
|-&lt;br /&gt;
!Wireless&lt;br /&gt;
|[[Model R/C]]&lt;br /&gt;
|[[Bluetooth|Bluetooth &amp;amp; App]]&lt;br /&gt;
|[[GPS]]&lt;br /&gt;
|[[WIFI]]&lt;br /&gt;
|-&lt;br /&gt;
!Other modules&lt;br /&gt;
|[[Realtime clock]]&lt;br /&gt;
|-&lt;br /&gt;
!Software architecture, algorithms&lt;br /&gt;
|[[PID control]]&lt;br /&gt;
|[http://www.grauonline.de/alexwww/ardumower/sim/mower.html Ardumower simulator]&lt;br /&gt;
|[[Ardumower software design]]&lt;br /&gt;
|-&lt;br /&gt;
!Arduino programming&lt;br /&gt;
|[[Arduino crash course]]&lt;br /&gt;
|[[Arduino code techniques]]&lt;br /&gt;
|[[Arduino Due]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Your robot mower project / Dein Rasenroboter-Projekt==&lt;br /&gt;
Describe your own robot mower project on a new WIKI page / Beschreibe Dein eigenes Rasenroboter-Projekt auf einer neuen WIKI-Site:&lt;br /&gt;
* [[Ardumower Chassis 'mountain mod']]&lt;br /&gt;
* [[Ardumower Mini]]&lt;br /&gt;
* [[Tracked Mower]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
==Your Ardumower extension / Deine Ardumower Erweiterung==&lt;br /&gt;
Describe your own robot mower extension or improvement (optical, computer vision, IR landmarks, sound, navigation, wireless, or any other addition) on a new WIKI page / Beschreibe Deine eigene Erweiterung oder Verbesserung des Ardumowers:&lt;br /&gt;
* Generating sounds using a [[Sound module]]&lt;br /&gt;
* [[Ardumower Sunray]]&lt;br /&gt;
* [[Ardumower future]]&lt;br /&gt;
* [[Sensor fusion]]&lt;br /&gt;
* [[Ardumower Control Center]]&lt;br /&gt;
* [[Robot Mower Communications Standard]]&lt;br /&gt;
* [[archimedean spiral]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
* [http://www.ardumower.de/index.php/de Ardumower Home / Forum]&lt;br /&gt;
* [https://www.marotronics.de/ Ardumower Shop]&lt;br /&gt;
* [https://github.com/Ardumower Ardumower on github]&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Hauptseite&amp;diff=4411</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Hauptseite&amp;diff=4411"/>
				<updated>2017-04-28T13:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: /* Further links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; -&amp;gt; [[Deutsche Version]] &lt;br /&gt;
 -&amp;gt; [[Russian Version]] (outdated)&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{| border=0&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;color:#cf7606; font-size:200%;&amp;quot;&amp;gt;'''Ardumower'''&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#005288; font-size:200%;&amp;quot;&amp;gt;'''WIKI - the manual for your [http://www.ardumower.de/index.php/en/ Ardumower]'''&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Yt-brand-standard-logo-95x40.png|thumb|180px|http://www.youtube.com/user/naneona/videos]]&lt;br /&gt;
&lt;br /&gt;
==Required parts for the Ardumower==&lt;br /&gt;
[[Image:Ardumower_overview.png|thumb|700px|Overview]]&lt;br /&gt;
&lt;br /&gt;
All modules can be purchased as complete kits via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]] .&lt;br /&gt;
&lt;br /&gt;
What is needed for building your Ardumower:&lt;br /&gt;
*[https://www.marotronics.de/Ardumower-Board-12-Prototyp-mit-Chassis-und-Motoren The Ardumower chassis including motors]&lt;br /&gt;
*Important modules to choose:&lt;br /&gt;
**[https://www.marotronics.de/Zubehoer-Set-fuer-das-Ardumower-Board-24-V Accessories Set (resistors, pin strips etc.)]&lt;br /&gt;
**[https://www.marotronics.de/Protector-Board-zum-Schutz-der-Motortreiber-vor-hohen-Induktionsspannungen 2 x Motor driver protection PCB]&lt;br /&gt;
**[https://www.marotronics.de/Mega-Board-2560-R3-ATmega2560-mit-USB-Kabel-Arduino-kompatibel-mit-CH340G-IC 1 x Mega Board 2560 R3]&lt;br /&gt;
**[https://www.marotronics.de/INA169-Analog-DC-Current-Sensor-Breakout-60V-25A-/-5A-Marotronics 1 x INA169 Current Sensor Board]&lt;br /&gt;
**[https://www.marotronics.de/Dual-MC33926-Motor-Driver-Carrier 2 x Dual motor driver MC33926]&lt;br /&gt;
**[https://www.marotronics.de/DC-DC-Spannungsregler-LM2596-Step-Down-Regler-einstellbar 2 x DC-DC LM2596 Step-Down Converter]&lt;br /&gt;
**[https://www.marotronics.de/HC-05-Wireless-Bluetooth-RF-Transceiver-Module-Serial-RS232-fuer-Arduino 1 x Wireless Bluetooth module HC-05]&lt;br /&gt;
**[https://www.marotronics.de/Real-Time-Clock-Modul-I2C-RTC-DS1307-zB-fuer-Arduino 1 x Real Time Clock I2C DS1307]&lt;br /&gt;
**[https://www.marotronics.de/Ladegeraete-fuer-den-Ardumower-Akkus-24V-mit-Status-LED-auch-fuer-Li-Ion-Akkus 1 x 24 Volt Charger for the Ardumower LithiumIon Battery]&lt;br /&gt;
&lt;br /&gt;
*Optional modules:&lt;br /&gt;
**[https://www.marotronics.de/Bumper-Duino-Dual-Drucksensor-Board-zB-fuer-Arduino-Raspberry-pi BumperDuino (intelligent bumper sensor)]&lt;br /&gt;
**[https://www.marotronics.de/Perimeter-Sender-Board-Prototyp-mit-Platinen-Zubehoer Perimeter sender] and [https://www.marotronics.de/Schleifenempfaenger-Kit-perimeter-receiver-Kit receiver]&lt;br /&gt;
**[https://www.marotronics.de/Zubehoer-Set-fuer-die-Laderegelung-Blei-Batterien Charger Accessories Set (Lead Battery)]&lt;br /&gt;
**[https://www.marotronics.de/HC-SR04-Ultraschallsensor-Ultrasonic-Ranging-Module Ultrasonic sensor HC-SR04 (up to 3 supported)]&lt;br /&gt;
**[https://www.marotronics.de/Regensensor-Modul-YL-38-fuer-Arduino-Raspberry-PI-Regentropfen-Sensor-Naessesensor Rain sensor]&lt;br /&gt;
**[https://www.marotronics.de/9-Achsen-IMU-Sensor-GY-801-L3G4200D-ADXL345-HMC5883L-BMP180 IMU GY-80]&lt;br /&gt;
**[https://www.marotronics.de/Unterspannungsschutz-Board-Undervoltage-lockout-board Undervoltage protection PCB]&lt;br /&gt;
**[https://www.marotronics.de/NEO-6M-GPS-Modul-GY-GPS6MV2-NEO-6M-Flight-Controller-zb-fuer-Arduino GPS Module GY-GPS6MV2]&lt;br /&gt;
**[https://www.marotronics.de/ESP8266-WIFI-Wlan-Serial-Modul-ESP01-fuer-Arduino WIFI/Wlan Module ESP8266 ESP01]&lt;br /&gt;
&lt;br /&gt;
*1 x [http://www.asn-shop.de/Ardumower-Power-Pack-259V-45Ah Ardumower Power Pack]&lt;br /&gt;
*1 x [https://www.marotronics.de/3-Messer-3-Schrauben-passend-zB-fuer-AutomowerZ-von-HusqvarnaZ 3 mowing blades + 3 screws, e.g. suitable for Automower® from Husqvarna®]&lt;br /&gt;
&lt;br /&gt;
==Required parts for a perimeter loop==&lt;br /&gt;
A perimeter loop is optional but recommended.&lt;br /&gt;
* [https://www.marotronics.de/Perimeter-Sender-Board-Prototyp-mit-Platinen-Zubehoer Perimeter sender PCB]&lt;br /&gt;
** Important modules to choose:&lt;br /&gt;
**[https://www.marotronics.de/Dual-MC33926-Motor-Driver-Carrier 1x Dual MC33926 Motor Driver Carrier]&lt;br /&gt;
**[https://www.marotronics.de/INA169-Analog-DC-Current-Sensor-Breakout-60V-25A-/-5A-Marotronics 1x INA169 Analog DC Current Sensor Breakout - 60V 2,5A / 5A Marotronics]&lt;br /&gt;
**[https://www.marotronics.de/DC-DC-Spannungsregler-LM2596-Step-Down-Regler-einstellbar 1 x DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar]&lt;br /&gt;
**[https://www.marotronics.de/Nano-V30-ATmega328P-AU-MCU-Arduino-kompatibel-USB-CH340G 1 x Nano V3.0 ATmega328-AU Arduino kompatibel Mikrocontroller Board]&lt;br /&gt;
**[https://www.marotronics.de/Schleifenempfaenger-Kit-perimeter-receiver-Kit Perimeter receiver]&lt;br /&gt;
*Optional modules:&lt;br /&gt;
**PCB case including 5 screws&lt;br /&gt;
**Connecting terminals 3x (2x Perimeter loop, 1x Charger) &lt;br /&gt;
**Socket for case 2,5 &lt;br /&gt;
*Additional accessories depending on needs:&lt;br /&gt;
**[https://www.marotronics.de/25-Rasennaegel-Heringe-fuer-Rasenroboter-zB-Robomow-STAFFELPREISE Lawn nails/herrings]&lt;br /&gt;
**[https://www.marotronics.de/100-m-Kabel-Einzelader-1-x1-mm-H05V-K-schwarz Perimeter cable]&lt;br /&gt;
* A charging station is in development and will follow soon.&lt;br /&gt;
&lt;br /&gt;
==Building, Downloading, Running (steps)==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower-chassis.jpg| Build&lt;br /&gt;
File: Arduino_software.jpg| Download&lt;br /&gt;
File: Ardumower_perimeter.jpg| Run!&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Here are the steps for building your DIY Ardumower:&lt;br /&gt;
#[[Ardumower chassis| Assemble the chassis (motors, mower slice, blades etc.)]]&lt;br /&gt;
#[[Ardumower PCB| Assemble the PCB]]&lt;br /&gt;
#[[Motor driver| Connect motors, drivers]]&lt;br /&gt;
#[[Charging| Connect battery, charger]]&lt;br /&gt;
#[[Ardumower PCB| Download software, setup, flash Arduino, first test]] &amp;lt;b&amp;gt;NOTE&amp;lt;/b&amp;gt;: If you have never worked with Arduino before, read our &amp;lt;b&amp;gt;[http://wiki.ardumower.de/index.php?title=Arduino_first_steps 'Arduino first steps' introduction]&amp;lt;/b&amp;gt;.&lt;br /&gt;
#[[Bluetooth| Add &amp;amp; configure Bluetooth module]]&lt;br /&gt;
#[[Perimeter wire| Assemble Perimeter sender, add receiver]]&lt;br /&gt;
#[[IMU| Add &amp;amp; calibrate IMU (compass, acceleration sensor)]]&lt;br /&gt;
&lt;br /&gt;
==Ardumower Reference==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!Chassis assembly&lt;br /&gt;
|[[Ardumower chassis|Chassis, tires, mowing disc, blades]] &lt;br /&gt;
|-&lt;br /&gt;
!Arduino code, schematics, PCB etc.&lt;br /&gt;
|[[Arduino first steps]]&lt;br /&gt;
|[[Ardumower PCB|Ardumower PCB &amp;amp; code]]&lt;br /&gt;
|[[Troubleshooting]]&lt;br /&gt;
|-&lt;br /&gt;
!Actuators&lt;br /&gt;
|[[Motor driver|Motor, driver, protector, odometry]]&lt;br /&gt;
|[[Relay]]&lt;br /&gt;
|-&lt;br /&gt;
!Sensors&lt;br /&gt;
|[[Bumper sensor]]&lt;br /&gt;
|[[Perimeter wire]]&lt;br /&gt;
|[[Ultrasonic]]&lt;br /&gt;
|[[IMU]]&lt;br /&gt;
|[[Rain sensor]]&lt;br /&gt;
|[[Dropsensor]]&lt;br /&gt;
|-&lt;br /&gt;
!Energy&lt;br /&gt;
|[[Charging|Battery, undervoltage-protection, charger, station]]&lt;br /&gt;
|-&lt;br /&gt;
!Wireless&lt;br /&gt;
|[[Model R/C]]&lt;br /&gt;
|[[Bluetooth|Bluetooth &amp;amp; App]]&lt;br /&gt;
|[[GPS]]&lt;br /&gt;
|[[WIFI]]&lt;br /&gt;
|-&lt;br /&gt;
!Other modules&lt;br /&gt;
|[[Realtime clock]]&lt;br /&gt;
|-&lt;br /&gt;
!Software architecture, algorithms&lt;br /&gt;
|[[PID control]]&lt;br /&gt;
|[http://www.grauonline.de/alexwww/ardumower/sim/mower.html Ardumower simulator]&lt;br /&gt;
|[[Ardumower software design]]&lt;br /&gt;
|-&lt;br /&gt;
!Arduino programming&lt;br /&gt;
|[[Arduino crash course]]&lt;br /&gt;
|[[Arduino code techniques]]&lt;br /&gt;
|[[Arduino Due]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Your robot mower project / Dein Rasenroboter-Projekt==&lt;br /&gt;
Describe your own robot mower project on a new WIKI page / Beschreibe Dein eigenes Rasenroboter-Projekt auf einer neuen WIKI-Site:&lt;br /&gt;
* [[Ardumower Chassis 'mountain mod']]&lt;br /&gt;
* [[Ardumower Mini]]&lt;br /&gt;
* [[Tracked Mower]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
==Your Ardumower extension / Deine Ardumower Erweiterung==&lt;br /&gt;
Describe your own robot mower extension or improvement (optical, computer vision, IR landmarks, sound, navigation, wireless, or any other addition) on a new WIKI page / Beschreibe Deine eigene Erweiterung oder Verbesserung des Ardumowers:&lt;br /&gt;
* Generating sounds using a [[Sound module]]&lt;br /&gt;
* [[Ardumower future]]&lt;br /&gt;
* [[Sensor fusion]]&lt;br /&gt;
* [[Ardumower Control Center]]&lt;br /&gt;
* [[Robot Mower Communications Standard]]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=Further links=&lt;br /&gt;
* [http://www.ardumower.de/index.php/de Ardumower Home / Forum]&lt;br /&gt;
* [https://www.marotronics.de/ Ardumower Shop]&lt;br /&gt;
* [https://github.com/Ardumower Ardumower on github]&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Sensor_fusion&amp;diff=4410</id>
		<title>Sensor fusion</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Sensor_fusion&amp;diff=4410"/>
				<updated>2017-04-28T13:32:33Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: /* Simulation */ Link korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Abstract=&lt;br /&gt;
NOTE: Everything under development here. Just showing ideas! :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The actual state of the robot can be described completely by:&lt;br /&gt;
* speed (m/s)&lt;br /&gt;
* direction (degree)&lt;br /&gt;
* position (x,y - meter)&lt;br /&gt;
&lt;br /&gt;
All sensors (gyro, acceleration, compass, odometry, perimeter signal strength, GPS, ...) can deliver certain information about the robot's state. However, each sensor is noisy (added with errors).&lt;br /&gt;
Sensor fusion is used to eliminate errors of each individual sensor. Each sensor gets a confidence weight that is automatically adjusted after reading the sensor by comparing its plausibility with the fusion result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_localization.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sensor errors=&lt;br /&gt;
&lt;br /&gt;
* Odometry: accumulation error (e.g. 15cm per meter), update rate: 10-20 Hz&lt;br /&gt;
* Gyro: accumulation error (e.g. 0.03 degree per second), update rate: 10-20 Hz&lt;br /&gt;
* Compass: noise (e.g. 1 degree), update rate: 10-20 Hz&lt;br /&gt;
* GPS: noise (e.g. 2m), update rate: 1-5 Hz&lt;br /&gt;
&lt;br /&gt;
= Odometry sensor error=&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: odometry_plot.jpg | Odometry sensor error&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After a time, the odometry's error accumulates, and the course (Degree) and position (x/y) are getting unprecise. &lt;br /&gt;
&lt;br /&gt;
Typical errors in outdoor condition (wet lawn, high slope): &lt;br /&gt;
&lt;br /&gt;
* Distance: 20cm per meter&lt;br /&gt;
* Course: 10 degree per meter &lt;br /&gt;
&lt;br /&gt;
The course can be permanently corrected by the compass sensor, the position by recalibration on the perimeter wire.&lt;br /&gt;
&lt;br /&gt;
=Sensor fusion (EKF)=&lt;br /&gt;
A Kalman or Extended Kalman Filter (EKF) filter can be used for sensor fusion. Sensor fusion helps improving precision of course and distance measurements by fusion of all available sensors.&lt;br /&gt;
&lt;br /&gt;
 Gyro         =&amp;gt; Rotation speed delPhi   =&amp;gt; &lt;br /&gt;
 Course(GPS)  =&amp;gt; Course phiGPS           =&amp;gt; Kalman =&amp;gt;  Course phi       =&amp;gt;                &lt;br /&gt;
 Odometry     =&amp;gt;                                       Distance Sl, Sr  =&amp;gt;  Kalman  =&amp;gt;  Position x,y, Course phi&lt;br /&gt;
&lt;br /&gt;
Note: This estimated position will need to be corrected by an absolute position estimation, e.g. perimeter field strength (and a particle filter) or position recalibration at perimeter border.&lt;br /&gt;
&lt;br /&gt;
=Sensor fusion (Gyrodometry)=&lt;br /&gt;
The idea of 'Gyrodometry' is to compare delta phi of gyro and odometry. If it is higher than a certain threshold, use gyro delta phi, otherwise odometry delta phi.&lt;br /&gt;
&lt;br /&gt;
 if (deltaPhiGyro - deltaPhiOdo) &amp;gt; deltaThres&lt;br /&gt;
   phi = phi + deltaPhiGyro * T&lt;br /&gt;
 else&lt;br /&gt;
   phi = phi + deltaPhiOdo * T&lt;br /&gt;
&lt;br /&gt;
=Position recalibration at perimeter border=&lt;br /&gt;
&lt;br /&gt;
Because odometry error increases over time, the robot needs to periodically recalibrate its exact position (get the error to zero). This works by detecting its exact position on the perimeter wire (using cross correlation).&lt;br /&gt;
&lt;br /&gt;
# Learn mode: robot completely tracks perimeter wire once and saves course (degree) and distance (odometry ticks) in a list (perimeter tracking map).&lt;br /&gt;
# Position detection: robot starts tracking the perimeter wire at arbitrary position until a high correlation with a subtrack of the perimeter tracking map is found. There it can stop tracking and knows its position on its perimeter tracking map.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_tracking_pos_sync.png | Position recalibration by driving perimeter wire&lt;br /&gt;
File: Ardumower pos recalibration2.png | Position recalibration by driving perimeter wire (another visualization)&lt;br /&gt;
File: Ardumower_border_angle.png | Position recalibration by estimating border angle&lt;br /&gt;
File: Perimeter_tracking_one_coil.png | One coil perimeter tracking&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Mapping and localization (SLAM)=&lt;br /&gt;
&lt;br /&gt;
The perimeter magnetic field could be used as input for a robot position estimation. However, as both the magnetic field map and the robot position on it is unknown, the algorithm needs to calculate both at the same time. Such algorithms are called 'Simultaneous Localization and Mapping' (SLAM). &lt;br /&gt;
&lt;br /&gt;
Input to SLAM algorithm:&lt;br /&gt;
* control values (speed, steering)&lt;br /&gt;
* observation values (speed, heading, magnetic field strength)&lt;br /&gt;
&lt;br /&gt;
Output from SLAM algorithm:&lt;br /&gt;
* magnetic field map (including perimeter border)&lt;br /&gt;
* robot position on that map (x,y,theta)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: whatisslam.png | What is SLAM?&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example SLAM algorithms:&lt;br /&gt;
* [http://grauonline.de/alexwww/ardumower/particlefilter/particle_filter.html Particle filter]-based SLAM plus Rao-Blackwellization: model the robot’s path by sampling and compute the 'landmarks' given the poses&lt;br /&gt;
&lt;br /&gt;
Example implementation:&lt;br /&gt;
The idea is to use a particle filter that constantly generates a certain amount of 'guesses' (particles, e.g. N=50) where the robot can be (depending on the last position, control input, speed sensor and heading sensor measurements). Each 'particle' is evaluated by the perimeter field measurement...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Perimeter_signal_strength.jpg | strength precision is low in the center&lt;br /&gt;
File: Perimeter_gradient.png | same strenght values are located on rings&lt;br /&gt;
File: Ardumower_perimeter2_test.jpg | real measurements over a complete lawn&lt;br /&gt;
File: Ardumower_slam_idea.png | complete SLAM idea&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... and the particle 'weight' is adjusted based on that. Bad particles are replaced by new particles with new guesses near the good guesses. This constantly produces particles with high probability of the robot's location.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_slam.png | SLAM (using magnetic field sensor)&lt;br /&gt;
File: Particlefilter.png | SLAM (using classic LIDAR sensor)&lt;br /&gt;
File: Uwes_Perimeter_Ideas.jpg | SLAM (using 4 coils)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=SLAM simulation=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Ardumower_perimeter_magneticfield.png | Magnetic field localization using partcle filter&lt;br /&gt;
File: Particlefilter1.png | Start of particle filter&lt;br /&gt;
File: Particlefilter2.png | Particle filter after few robot movements&lt;br /&gt;
File: Particlefilter3.png | Particle filter following robot&lt;br /&gt;
File: Particlefilter4.png | Particle filter position error below 23 cm&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# The simulator code can be found in [https://code.google.com/p/ardumower/source/checkout SVN]&lt;br /&gt;
# The simulator IDE+compiler+precompiled libs (CodeBlocks) can be downloaded [https://drive.google.com/file/d/0B90Bcwohn5_HNWlzbjNGSGZtYXc/view?usp=sharing here] - Extract the .zip to 'C:\codeblocks' and run 'sim.cbp'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Videos:&lt;br /&gt;
[https://www.youtube.com/watch?v=wLzi5HJiZoQ&amp;amp;feature=youtu.be  Magnetic field localization using particle filter]&lt;br /&gt;
&lt;br /&gt;
=Lane-by-lane mowing=&lt;br /&gt;
In the lawn-by-lane mowing pattern, the robot uses a fixed course (accurate gyro + compass correction). When hitting an obstacle, the new course is added by 180 degree, so that the robot enters a new lane.&lt;br /&gt;
&lt;br /&gt;
The robot always starts at the borders at an arbitrary choosen course, mowing lane by lane of a maximum length (distance determined by odometry). The maximum length ensures that the odometry position error does not get too high. At the perimeter, the robot can reduce the error to zero again (one axis). The arbitrary starting course ensures that even small gaps on the lawn are mown completely after a 2nd mowing session (where the robot started at another arbitrary course). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turning180degree.png | Robot turns 180 degree and enters a new lane&lt;br /&gt;
File: lanebylane1.png | Mowing segment by segment&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed yaw error (course error) can computed like this:&lt;br /&gt;
&lt;br /&gt;
 yaw error=arcsin(lane width error/lane length)&lt;br /&gt;
 &lt;br /&gt;
Assuming a lane length of 10m, and a lane width error of +/- 0.1m, the maximum allowed yaw error is:&lt;br /&gt;
 yaw error=arcsin(0.1m/10m) = 0.5 degree&lt;br /&gt;
&lt;br /&gt;
Assuming that robot moves at 0.4m/sec, the actual yaw error can be computed like this:&lt;br /&gt;
  actual time needed = 10 meters / 0.4m/sec = 25 seconds&lt;br /&gt;
&lt;br /&gt;
Actual yaw error (assuming gyro noise 0.005 degree/sec):&lt;br /&gt;
 actual yaw error = 0.005 degree/sec * 25 seconds = 0.125 degree&lt;br /&gt;
&lt;br /&gt;
= Sensor logging =&lt;br /&gt;
For PC data analysis, algorithm modelling and optimization, you can collect robot sensor data using pfodApp like this:&lt;br /&gt;
&lt;br /&gt;
# Using your Android pfodApp, connect to your robot and choose 'Log sensors'. The logged sensor data will be displayed. Click 'Back' to stop logging  (NOTE: for ArduRemote, press Android menu button before and choose 'Enable logging' to enable file logging).&lt;br /&gt;
# Connect your Android phone to the PC, if being asked on the phone choose 'Enable as USB device', so you phone shows as a new Windows drive on your PC.&lt;br /&gt;
# On your PC, launch Windows Explorer and choose the new Android drive, browse to the 'pfodAppRawData' folder (for ArduRemote: 'ArduRemote' folder), and copy the data file to your PC (you can identify files by their Bluetooth name and date).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: Pfodapp_start.png | 1. Start pfodApp &lt;br /&gt;
File: Pfodapp_log_sensors.png | 2. Choose 'Log sensors'&lt;br /&gt;
File: Pfodapp_log_sensors_exit.png | 3. Choose phone back button or 'Exit'&lt;br /&gt;
File: Android_enable_usb device.png | 4. Connect to your PC via USB, choose 'Enable as USB device'&lt;br /&gt;
File: log_sensor.png | 5. Using Windows explorer, browse to folder 'pfodAppRawData' on external Android drive to access sensor log file &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Simulation =&lt;br /&gt;
Here's [http://www.grauonline.de/alexwww/ardumower/sim/mower.html] a simulation of localization using odometry sensors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File: ardumower_sim.jpg | Robot mower simulator&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Diskussion:Sensor_fusion&amp;diff=4409</id>
		<title>Diskussion:Sensor fusion</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Diskussion:Sensor_fusion&amp;diff=4409"/>
				<updated>2017-04-28T13:28:06Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: Simulation Link funktioniert nicht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Link zur Simulation &lt;br /&gt;
&lt;br /&gt;
http://www.ardumower.de/index.php/de/anleitungen/lawn-mower-simulator&lt;br /&gt;
&lt;br /&gt;
funktioniert nicht&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Arduino_first_steps&amp;diff=4060</id>
		<title>Arduino first steps</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Arduino_first_steps&amp;diff=4060"/>
				<updated>2016-09-10T18:52:01Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
If you have never worked with Arduino before, this page describes how to &amp;lt;b&amp;gt;start with your Arduino&amp;lt;/b&amp;gt; that you can purchase via the [https://www.marotronics.de/index.php?k=7 shop] [[File: shopping.png|link=https://www.marotronics.de/index.php?k=7]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All you need to run the example below is:&lt;br /&gt;
* One Arduino Nano (or Arduino Mega2560)&lt;br /&gt;
* One USB cable&lt;br /&gt;
 [[File: Arduino nano usb cable.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;1. Attach the Arduino to your computer&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 Using an USB cable, attach the Arduino (Arduino Nano or Arduino Mega) to your computer as shown below.&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 File: Arduino nano usb connected.jpg|Arduino Nano connected via USB&lt;br /&gt;
 File: Arduino atmega2560 usb connected.jpg|Arduino Mega 2560 connected via USB&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your Arduino is not recognised as an USB device after plug-in, try a different USB cable.&lt;br /&gt;
 &lt;br /&gt;
You may need to install a driver for your Arduino:&lt;br /&gt;
*  Arduino Nano: Click [http://forum.diamex.de/attachment.php?attachmentid=65&amp;amp;d=1346742303 here] to download 'FTDI CDM 2.08.24'&lt;br /&gt;
   Note: Do NOT use the newest FTDI drivers as they may make your Arduino malfunction). Here are the steps to remove any newer driver:&lt;br /&gt;
   1. In Windows, choose 'Computer-&amp;gt;Properties-&amp;gt;Extended system settings-&amp;gt;Hardware device settings'&lt;br /&gt;
   2. Set 'Should Windows install drivers automatically?' to 'NO'&lt;br /&gt;
   3. Activate 'Never install drivers via Windows Update'&lt;br /&gt;
   4. Run [http://www.ftdichip.com/Support/Utilities.htm CDM Uninstaller]&lt;br /&gt;
   5. Click 'Add', then 'Remove Devices'&lt;br /&gt;
   6. Restart your computer&lt;br /&gt;
   7. Re-plug Arduino Nano, now Windows should ask for driver installation, and you can choose the correct driver version (2.08.24)&lt;br /&gt;
*  Arduino Mega 2560: &lt;br /&gt;
   1. Download the Arduino development software (link in next section below) to your computer&lt;br /&gt;
   2. Navigate to and select the driver file named &amp;quot;arduino.inf&amp;quot;, located in the &amp;quot;Drivers&amp;quot; folder of the Arduino Software download.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;2. Download&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 Click here to download the Arduino development software (v1.6.3) to your computer &lt;br /&gt;
 (Windows users should download the 'Installer' version on that page):&lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino symbol small.jpg |link=http://arduino.cc/en/Main/Software#toc3]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;3. Install&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 After the download completed, install the Arduino development software on your computer:&lt;br /&gt;
 For Windows users, double click the downloaded file ('arduino-1.6.3-windows.exe') in your&lt;br /&gt;
 Windows file explorer to run the installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;4. Run&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 After the installation completed, run the Arduino development software on your computer &lt;br /&gt;
 by double clicking the 'Arduino' symbol on your Windows desktop.&lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino_start_symbol_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;5. Choose blink example&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 After the Arduino development software has started, choose the menu, &lt;br /&gt;
 and click on 'File-&amp;gt;Examples-&amp;gt;Basics-&amp;gt;Blink'. This will load the Arduino blink example.&lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino ide blink example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;6. Choose correct board type&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 Via the menu, click on 'Tools-&amp;gt;Board-&amp;gt;Arduino Nano' to choose your Nano board &lt;br /&gt;
 (or Arduino Mega 2560 if you want to use a Mega board). &lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino ide choose board.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;7. Choose correct USB serial port&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 Via the menu, click on 'Tools-&amp;gt;Port', and choose the detected USB serial port.&lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino ide choose port.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;8. Upload the blink example&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 Click on the 'Upload' symbol to upload the blink example to your Arduino. &lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino ide upload.jpg]]&lt;br /&gt;
&lt;br /&gt;
 After the code is uploaded, your Arduino will start to blink!&lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino nano blink example.gif]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;Congratulations!&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 You have just programmed your first Arduino!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;Now let's look a little bit closer at the above blink code to understand it:&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt; &lt;br /&gt;
 The Arduino has several pins, each of them has a number.  As shown below, Pin 13 is already (internally) connected to the on-board LED:&lt;br /&gt;
&lt;br /&gt;
 [[File: Arduino nano pinout.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
 Each pin can be configured as either &amp;lt;b&amp;gt;INPUT&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;OUTPUT&amp;lt;/b&amp;gt; depending on wheter you want &lt;br /&gt;
 to measure or control that pin : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 INPUT   means that you can read (or measure) that pin. The measurement can be either ON &lt;br /&gt;
 (there is voltage on that pin)  or OFF (there is no voltage on that pin).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 OUTPUT   means that you can write (or control) the voltage of that pin.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 In the blink example above, we are using the LED pin (pin 13) that is already connected to an LED. &lt;br /&gt;
 Because we want to control that pin, we are configuring it as &amp;lt;b&amp;gt;OUTPUT&amp;lt;/b&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 pinMode(13, OUTPUT);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Now let's see how we can turn ON or OFF the LED using an Arduino command. This command will turn ON the voltage for pin 13:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 digitalWrite(13, HIGH);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And consequently this command will turn OFF the voltage for pin 13:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 digitalWrite(13, LOW);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Let's see how we can wait one second between the ON and OFF toggling. This command will wait (halt) &lt;br /&gt;
 the program for one second (=1000 milliseconds):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 delay(1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 So let's look at the complete blink program again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: lightgrey; border: solid thin grey;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 void setup(){&lt;br /&gt;
   pinMode(13, OUTPUT);      // we want to control pin 13 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop(){&lt;br /&gt;
   digitalWrite(13, HIGH);   // pin 13 will go HIGH (voltage ON)&lt;br /&gt;
   delay(1000);              // wait one second (=1000 milliseconds)&lt;br /&gt;
   digitalWrite(13, LOW);    // pin 13 wil go LOW (voltage OFF)&lt;br /&gt;
   delay(1000);              // wait one second (=1000 milliseconds)&lt;br /&gt;
   // ...now everything repeats                           &lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;b&amp;gt;How to go further...&amp;lt;/b&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
 Now you can try to upload the [http://wiki.ardumower.de/index.php?title=Ardumower_PCB Ardumower code] the same way as you uploaded the blink example!&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 &amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:Ardumower_chassis_box.jpg&amp;diff=4059</id>
		<title>Datei:Ardumower chassis box.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:Ardumower_chassis_box.jpg&amp;diff=4059"/>
				<updated>2016-09-06T06:40:53Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: Gimate lud eine neue Version von Datei:Ardumower chassis box.jpg hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:Ardumower_chassis_box.jpg&amp;diff=4058</id>
		<title>Datei:Ardumower chassis box.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:Ardumower_chassis_box.jpg&amp;diff=4058"/>
				<updated>2016-09-06T06:37:59Z</updated>
		
		<summary type="html">&lt;p&gt;Gimate: Gimate lud eine neue Version von Datei:Ardumower chassis box.jpg hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gimate</name></author>	</entry>

	</feed>