Ardumower Sunray

Aus www.wiki.ardumower.de
Wechseln zu: Navigation, Suche

NOTE: everything here is still in development! Use Azurit firmware instead if you need a working firmware...

Requirements

  • PCB 1.3 (incl. MC33926 motor drivers)
  • Arduino Due
  • IMU GY-88 (MPU6050, HMC5883L)
  • 2 perimeter coils (left, right), perimeter sender
  • motors using odometry
  • Bluetooth module

Code

https://github.com/Ardumower/Sunray

Compass calibration

  1. Install IMU module 35cm away from metal parts. Use 1m cable so you can move the module out of robot for calibration. Do no use metal parts (screws etc.) within 5cm of the module - use plastic screws. Fixate everything within 5cm of the module. A small movement of a cable etc. will make the calibration useless. Verteileraufputzdose 2017-01-22.jpg
  2. Move IMU out of robot and power-on robot.
  3. On the PC, start 'processing_mag'. Compass calibration.png
  4. Ensure there is at least >1m to all metal parts in the surrouding.
  5. Rotate IMU module slowly into all directions and collect > 20,000 measurements. Calibration ist performed transmitted continously to robot (robot confirms with a tone).
  6. Install IMU module in the robot at least 35cm away from metal parts.

User interface (for testing/development)

  1. On the PC, start 'processing_sunray'. The robot's sensors should be shown. At start (and every 3 minutes), the robot calibrates the Gyro and calibration status is shown in the user interface. After this is completed, you can verify the compass calibration by rotating the robot using the green joystick shown on the screen. Compass yaw and gyro yaw should be the same up to 3 degree.

Sunray.png

Bluetooth connection

Choose COM port for your Bluetooth connection. In processing_sunray.pde:

String comPort = "COM9";

Recording / Playback

You can record or playback all robot messages (e.g. to test the particle filter offline). In processing_sunray.pde:

String logFile = "outdoor_mow_rand.log";  // if file exists, playback mode, otherwise record mode

Mapping

Before you can localize the robot on the map, it needs to be generated.

  1. On the PC start 'processing_sunray' and connect to robot via Bluetooth.
  2. Put robot on perimeter, as close as possible to charging station (for anti-clockwise tracking).
  3. On the PC, choose 'track anti-clockwise' and 'mapping is ON'.
  4. Let robot track perimeter until it returns at the other side of charging station.
  5. Press 'mapping is OFF'. The map will be generated and stored on the PC.

Localization

A particle filter will estimate the robot's position on the map. You can reset the particle filter at any time by clicking 'reset particles'. In tracking mode, slightly different particle filter parameters will be used than during ordinary mowing. You can set the robot's position manually (kidnap robot) by clicking on the map.

Random mowing

  1. On the PC, choose 'mow rand'

Demo video: https://www.youtube.com/watch?v=tZMAjvR4nxU

Lane-by-lane mowing

  1. On the PC, choose 'mow lane'

Demo video: https://www.youtube.com/watch?v=T0yondeM3fY

Perimeter tracking

The particle filter will estimate the robot's position on the perimeter while tracking.

  1. On the PC, choose 'track'

Demo video: https://www.youtube.com/watch?v=rNuw9vNcYpM