Introduction: Omni Wheel Mobile Robot - IoT

About: I'm an enthusiast of robotics :)

In this instruction I will present you design of omni wheel mobile robot controlled via wi-fi. The essential difference compared to conventional control like bluetooth or radio control is that the robot is connected to local area network (LAN) and can be used as mobile IoT device. The heart of the system is Arduino Mega 2560 and Dragino Yun Shield. Dragino Yun is based on OpenWrt Linux and gives a few useful functionalities. One of them is the ability of over the air code upload to Arduino board. It can be also managed by Web GUI and SSH, and has built-in web server.

In this project I used 4 continuous rotation servos controlled by Mini Maestro 12-channel servo controller. By the way I wanted to test movement of robot with omni wheels, so I used four 40mm Dagu omni wheels. This mobile robot is equipped with two power sources. One for supplying the servos (Power bank 10000 mAh) and the other to supply Arduino and Dragino (Li-Po battery 5000 mAh).

To build the robot chassis I've used a piece of steel plate with a thickness of 2 mm and a piece of pvc plate with a thickness of 5 mm. Then I joined the two plates with screws for construction reinforcement. Additionally I've glued the servos to the base using adhesive tape.

Components of the project:

  1. Arduino Mega 2560 x1
  2. Dragino Yun Shield x1
  3. Mini Maestro 12-channel USB servo controller x1
  4. Continuous rotation servo AR-3603HB x4
  5. Dagu omni wheels - 40 mm x4
  6. Power bank 5V 10000 mAh x1
  7. Li-Po battery 7,4V 5000 mAh x1
  8. Jumpers and cables
  9. Nuts and bolts
  10. Chassis made of metal or plastic

Step 1: Connections of the Modules

Arduino Mega 2560 is connected with Dragino Yun Shield, but firstly you have to disconnect the uart connection between mega2560 and mega16u2 as shown in this link.

The next step is wired connection between Arduino Mega and Mini Maestro 12 as shown in the picture above.

1. Arduino Mega 2560 -> Mini Maestro 12

  • GND – GND
  • RX1(18) – RX
  • TX1(19) – TX

2. Battery 5V (Power bank) -> Mini Maestro 12

  • GND – GND
  • 5V – VIN

3. Servos -> Mini Maestro 12

  • servo 1 – channel 1
  • servo 2 – channel 2
  • servo 3 – channel 3
  • servo 4 – channel 4

Step 2: Arduino and Dragino

All the information on how to configure Dragino Yun Shield can be found here: link1, link2

The full Arduino code for this project is available at GitHub: link

Before compiling my Arduino program you should install Pololu Maestro Servo Controller library for Arduino.

In this project I also use the "Bridge" library that simplifies the communication between the Arduino and Dragino Yun Shield.

Step 3: Android App

My Android app allows you to control this omni wheel mobile robot via wi-fi. You can download my app for free from Google Play: link. It works with both mobile phones and tablets.

How to use Dragon Robot Android App:

  • tap the top right corner of the screen
  • select the first tab - Settings
  • enter the IP address of your robot (Dragino) in the local network
  • press "Save" button - if this IP address is correct and the robot is connected to the LAN then you will get in reply "successfully connected"
  • tap return and now you're on control screen
  • use the arrow keys to control the robot and the central button with the robot icon to stop it

If you would like to see my other projects related to robotics please visit:

Step 4: Omni Wheel Robot Movements

A omni wheel robot can move in any direction as shown in above picture. The advantage of this type of robot is that it does not need to turn before starting to move in the desired direction.