﻿ The Basics in Designing a Mobile Robot
Publications are Open
Access in this journal
Article Versions
Export Article
• Normal Style
• MLA Style
• APA Style
• Chicago Style
Research Article
Open Access Peer-reviewed

### The Basics in Designing a Mobile Robot

Filip Filakovský , Michal Kelemen
Journal of Automation and Control. 2017, 5(2), 81-84. DOI: 10.12691/automation-5-2-11
Published online: December 11, 2017

### Abstract

This document provide a basic information about designing a mobile robots for beginners. At the start going to be describe some basic math formulas for correct design of robot chassis. After that is possible to talk about a micro-controllers, sensors and communication between them.

### 1. Introduction

For beginners is sometime very complicated to start design own mobile robots. Is a lot of information on the internet but often is presented this information very expertly. Beginners can a very easy lost a motivation to continue in work. This text is trying to explain the basics problems related with designing in simply way for understand. Today's trend is to miniaturize systems. This certainly applies to mobile robots as well. It is important to minimize the dimensions and especially the weight of the robot. Less weight is also associated with better battery life because the robot does not need to carry own weight. The construction of such robots is largely based on composite materials. They have high strength, flexibility and low weight. Ideal for the construction of mobile devices. Behind this "magic" is hidden the mathematics which I will try to describe in a simplified form in this article.

The internal structure should be adapted to the requirements of the robot. For example, a robot with Machine Vision function must include a controller that provides sufficient computational performance. In this case is standard solution use singleboard computer. For robots like "line follower" is perfectly fine use just small microcontroller as AVR or ARM. For more complex internal structures, it is preferable to create a embeded system where the individual controllers communicate with each other and distribute tasks. This structure, where controllers work in parallel and independently, is more efficient than a single processor solution.

### 2. Drive Design

Design of drive is a part which is responsible for a movement of mobile robot. Mostly it is DC or AC motor, servo motor or sometimes maybe stepper motor. Depend on application. Generally we can say, it's a rotatory actuator which is transporting torque using some gearbox or directly on wheel.

2.1. Calculation of Rolling Resistance

The rolling resistance Of occurs when a body of circular diameter (sphere, cylinder) rolling on fixed mat. The cause of this phenomenon is the absence of absolutely rigid body. It is a body that does not deform with the effect of any great force. 1

 (1)
 (2)

Where:

- coefficient of rolling resistance

- gravity force of robot

- estimated mass of the robot

2.2. Aerodynamic Calculation

When robot is moving, surrounded environment puts resistance against of his movement. This resistance is called aerodynamic resistance and is labeled as Oae. At low speeds is aerodynamic drag relatively small and is considered to be directly proportional to the speed of movement. At higher speeds is aerodynamic drag changing exponentially relative to the speed of movement.

As the physical dimensions, weight and maximum speed are very small, it does not make sense to take into account the aerodynamic resistance of the robot and we can calmly neglect it.

2.3. Design of Motors

In calculation is used for example two-wheel robot with front and rear mounted omnidirectional wheel as on picture (1). To derive the required power, we will consider the mass of the robot m moving in a uniformly accelerated motion up to the velocity v.

• Figure 1. Graphic view of robot on inclined plane [2]

The force required to run on an inclined plane:

 (3)

Where:

 (4)

Fn - normal force

- traction coefficient of friction

Fw - the force required to overcome the height difference

 (5)

We will assume that the surface will be a plane with a very low tilt. Consider that the angle α will approach zero.

Fa - acceleration resistance caused by the inertia of the sliding masses

 (6)

Fs - resistance of acceleration due to inertia of rotating masses

 (7)

Jc - total moment of inertia, where:

 (8)

JMK - Inertia moment of the engine relative to the output, (through the transmission to the drive wheel)

 (9)

r- the radius of the drive wheel

e - angular acceleration

Jp- Inertia moment of the gear unit

Jk- Inertia moment of the drive wheel

• Figure 2. Calculation of inertia moment [3]

Then:

 (10)

After format:

 (11)

In common practice, is very complicated to determine the inertia of rotating masses, for example in shafts or wheels cases. Therefore, the calculation is simplified by introducing a coefficient of rotational resistances which is dimensionless. After formating and fitting, we get the resulting force which is needed for the robot to move.

 (12)

The power required for robot drive will be:

 (13)

or using the coefficient :

 (14)

By calculating equation number (14), we will get the power for drive the robot without considering hidden effects and losses such as production inaccuracy, internal friction of the gear, but also imprecise determination of the traction coefficient and the rotational resistors . These problems can be eliminated by introducing a safety factor kb.

 (15)

Now we get raw required power for drive a robot in Watts. In case, that robot will be use for movement more motors, total power of all motors must be same or bigger than raw power from the last equation.

### 3. Internal Structure

After calculate and design drive of robot we can start thinking about some controller. The easiest way is use arduino board or just AVR microcontroller works in standalone mode. For more complex robot system is preferable use some single board computer with operating system.

3.1. Microcontroller

As it was written, arduino board is the easiest way how to control robots. Arduino is based on AVR microcontroller atmega328p from Atmel company. Small 8-bits IC with 32 kB of memory and 20Mhz operating frequency. User can use 16 pins for control robot, also 10-bits analog to digital converter, interfaces as SPI, I2C, Serial, PWM output and more. AVR can be used also without arduino board as stanalone chip. In this case AVR need just a few electronic parts as crystal and couple capacitors and resistors. It's the smallest and cheapest way, how to use microcontroller for control any device.

• Figure 3. Arduino board with AVR ATMEGA328p [4]
• Figure 4. ATMEGA328p standalone circuit [5]
3.2. Microcomputer

For more complex robot system is preferable use single microcomputer board. Its regular computer integrated on one board with operating system. The most often it some distribution of Linux like Raspbian, Fedora, Ubuntu and more. Sometime it's also possible install operating system as Android or Windows. Probably the most popular singleboard computer it's Raspberry pi.

Raspberry pi contains 1,2GHz quad core processor and 1Gb RAM memory. Also 40 GPIO pins, the most popular interfaces as SPI, I2C Serial, display and CSI camera connector, HDMI, 3,5mm jack plug, ethernet adapter, SD card socket, integrated wifi and bluetooth adapter, 4x USB ports and more. The computational power of raspberry pi is also sufficient for machine vision.

On Raspberry pi official webpage is also forum for users. Over there is possible to solve technic problems with other users. A lot of options for robot controlling. Also very interesting project is BeagleBoard with 1GHz ARM Cortex, Intel Galileo Gen 2, etc...

• Figure 5. Raspberry pi 3 Model B single-board computer [6]

On the internet is possible to find a lot of modules, parts and shields for constructing of robots. For example shield for motor controll, shield for sensors with all necessery components like amplifiers and logical integrate circuits. It's very easy way how to solve control problems with sensors, actuator, etc.

• Figure 6. Arduino shield for motor control [7]

### 4. Embedded System

Embedded system is system of two or more microcontrollers or microcomputers communicate each other. This system collect data from sensors and distributes the tasks among themselves. In easy way each microcontroller works indepandent and do just one task. For example care for movement, care for sensors, care for actuators.

4.1. Serial Comunication

Serial communication use just 3 wire, Tx (transmit), Rx (receive) and GND (ground). It's the most popular way for transfer data. In serial communication is one device selected as master and another (can be more) as slave. Serial communication is defined with port, speed (in baudrate), data bits, parity bit, stop bit. Other options like timeouts or handshake is optional. Communication can works in three modes, simplex, half-duplex and full duplex.

• Figure 7. Serial communication [8]
4.2. Parallel Comunication

Parallel communication transfer all bits from byte in one time through eight wires plus ground. This type of communication is used very rare in this time. Computer port called PCI was use parallel interface. In this time is used PCI-Express what is exactly serial communication. The disadvantage of parallel communication is the use of a large number of microcontroller pins. In this time is possible to find parallel port probably just on LCD displays.

• Figure 8. Parallel communication [9]
4.3. I2C

I2C is two wire (SDA and SCL) plus ground (GND) interface. Communication is between master and slave device. Each device have unique address. When master calling some address, answer still just one device with called address. It's perfect communication way between electronic modules. Length of interface wires is limited with 4 meters and 400pF of capacity between wires.

• Figure 9. I2C communication scheme [10]

### 5. Sensors

In the broadest definition, a sensor is a device, module, or subsystem whose purpose is to detect events or changes in its environment and send the information to other electronics, frequently a computer processor. A sensor is always used with other electronics, whether as simple as a light or as complex as a computer 11 Wiki. Sensor output is still analog or digital. Digital output is mostly I2C or SPI, sometimes serial when we talking about industrial sensors.

Also, like a tactile sensor is possible to use a regular switch or button. It is electro-mechanical sensor with logical output. In this case is necessary add one capacitor very close to switch and pull-up resistor on input pin. Serves to limit flickers.

• Figure 10. Pressure, temp and humidity sensor with SPI interface [12]

### 6. Conclusion

Beginning to build mobile robots is not as complicated as it seems at first glance. Many components can be purchased as a module or a complete unit. In the end, the whole robot appears to be a big lego system. But the most important thing is the software element. Without a properly chosen software structure and program, it is just a sculpture. This article should help beginners to get acquainted with mobile robots. The article highlighted the most important points from the management design, the appropriate choice of the controller and the hardware structure to the description of the basic communication interfaces and sensors.

### Acknowledgements

This paper was supported by project VEGA1/0872/16 “Research of synthetic and biological inspired locomotion of mechatronic systems in rugged terrain”.

### References

 [1] FILAKOVSKÝ, F.: Návrh a konštrukcia prototypu autonómneho mobilného servisného robota, Diplomová práca, Košice, 2016. In article [2] Picture Graphic view of robot on inclined plane from FILAKOVSKÝ, F.: Návrh a konštrukcia prototypu autonómneho mobilného servisného robota, Diplomová práca, Košice , 2016. In article [3] Picture Calculation of inertia moment. From NOVÁK, P.: 2013 Mobilné roboty - pohony senzory řízení [ISBN 80-7300-141-1] BEN - technická literature. In article [4] Picture Arduino board with AVR ATMEGA328p. from https://cdn.sparkfun.com/assets/9/1/e/4/8/515b4656ce395f8a38000000.png. In article View Article [5] Picture ATMEGA328p standalone circuit from http://3.bp.blogspot.com/-zG1w4MVguTw/UgvjgoHtA4I/AAAAAAAAAM8/l_apjd66ndc/s1600/minimum-circuit.jpg. In article View Article [6] Picture Raspberry pi 3 Model B single-board computer from https://www.raspberrypi.org/products/raspberry-pi-3-model-b/. In article View Article [7] Picture Arduino shield for motor control from http://www.botnroll.com/302/arduino-motor-shield-rev3.jpg. In article View Article [8] Picture Serial communication from https://cdn.sparkfun.com/assets/e/5/4/2/a/50e1ccf1ce395f962b000000.png. In article View Article [9] Picture Parallel communication from https://cdn.sparkfun.com/assets/c/a/c/3/a/50e1cca6ce395fbc27000000.png. In article View Article [10] Picture I2C communication scheme from http://howtomechatronics.com/wp-content/uploads/2015/10/I2C-Communication-How-It-Works.png?x57244. In article View Article [11] Sensor definition from https://en.wikipedia.org/wiki/Sensor In article View Article [12] Picture Pressure, temp and humidity sensor with SPI interface from http://www.robotshop.com/media/catalog/product/cache/1/image/900x900/9df78eab33525d08d6e5fb8d27136e95/ b/m/bme280-i2c-spi-temperature-humidity-pressure-sensor.jpg. In article View Article