EM049 » Spherical robot
The development object is the hardware and software to implement the spherical robot. The project consists of two main parts. The hardware consists of motors, feedback sensors to control motors, distance sensors, gyroscope, accelerometer. The software part is based on the FPGA DE10-Nano plate, on which calculations are performed to control motors and sensors. Also implemented a mobile application for the possibility of manual control of the device.
The advantage of our development is to improve the quality of element management of the device, in particular improving the quality of motor control for stable movement.
Demo video https://youtu.be/OAEZwpXjDAI
Currently, robotic devices are actively used in various fields - from heavy industry to entertainment business. Robots on the wheelbase aren't always capable to cope with the task, so there is an active search for alternative propulsion unit and payload layout which will provide reliable protection of internal components from external influences, as well as high maneuverability and maneuverability.
As a variant of this design, it is proposed to use such a layout of the robot in which both the propulsion unit and payload are inside the sphere.
Such a device may have various uses. The priority areas of use are entertainment business and education, and it is also possible to use it for premises security, exploration, and patrolling.
This device may be of interest to users who need a high cross-country performance of the device and tightness of its case. Also, the device will be interesting to organizers of various entertainment events.
Intel FPGA Advantages
De10-nano development board is well suited for the implementation of this project, since it contains all the necessary interfaces for controlling the servo drive, obtaining data from the gyroscope, connecting the Bluetooth module, etc. The presence of HPS allows us to implement complex algorithms for the movement and processing of information received from sensors and cameras.
1. Using FPGA (as the main computing device) we will be able to increase the speed of information processing from the camera, as well as to accelerate the acquisition of data from sensors and to improve the quality of control of the robot;
2. It will be possible to add a neural network to analyze information from the camera. Data processing will be carried out on HPS, and hard calculations - by acceleration on the FPGA;
3. FPGAs allow of reducing energy consumption spent on computing devices;
4. One of the main tasks is the implementation of stable robot motion control. Quarterions are used to describe the rotational movement of the robot's shell, which is a complicated calculation for the device. The use of FPGAs for the calculation of control sequences for motors can significantly improve the quality of the movement of the robot.
5. De10-nano has all the necessary interfaces and additional extensions for the implementation of the designed system.
At the beginning this project, the robot was implemented on the Arduino board. But we quickly realized that the Arduino capabilities were not enough to implement the complex computing movement.
The use of single-board computers is quite difficult due to the limited ability to connect actuators.
The usage of FPGAs as the main computing device allows you to save the ease of connection and the flexibility of controlling actuators. At the same time, we get much more possibilities for developing a control program for the device.
A new case was developed, which began to believe less and became more compact. Its image is shown in Figure 1.
Figure 1. 3d model case of robot.
The mechanical part consists of a collector motor, which drives the entire device, a servo motor, which bends the center of gravity for the rotation of the robot. The electronic part consists of a DE10-nano board, on which the entire operation algorithm of the device is implemented, the HC-06 bluetooth module for receiving commands from a mobile application, a driver for switching a logical signal and power supply for controlling motors.
The software organization of the robot is structured as follows: commands from a mobile application on Android OS via a bluetooth module are received on de10-nano. To process them on the FPGA, the uart data transfer protocol was implemented, which consists of a receiver module and a data transmitter module. Further, the received commands are decrypted using a state machine. Several commands are possible = indication of speed and direction of movement, direction and angle of deviation.
There are several data sets: speed, angle, and direction. To implement the drive by a collector motor, a frequency divider was implemented, which from 50 MHz makes 5KHz to generate a PWM control signal for the motor driver. PWM sampling is 8 bits. Thus, we can set 256 levels of speed. To set the direction of rotation of the motor, the generated PWM signal is fed to the demultiplexer 1 in 2, which commutes it to the motor terminal, while the second motor terminal is pulled to the ground. The design scheme is shown in Figure 2.
Figure 2. Block design file of the project.
To control the servo motor, a frequency delimiter is also implemented, which generates a PWM signal with a frequency of about 26 kHz. To control the servomotor, it is necessary to supply a PWM signal with a high signal level duration from 600 to 2000 μs.
The designed robotic device can:
- receive data from a program on Android OS;
- control the collector motors, generating a control PWM signal;
- control servomotors.
- the user can set various levels of speed and direction of movement.
The developed robotic device may have various applications. The priority areas of use are entertainment and educational spheres, and it is also possible for the protection, reconnaissance and patrolling of territories.
The ball has a high cross: it does not interfere with obstacles up to 7 cm high. Significant speed can be developed on a flat surface due to the effective layout and use of inertia of movement (maximum achieved: 19.7 km / h downhill), and downhill movement can be carried out almost without energy.
With this size, the speed achieved is not comparable to walking robots / robots on tracked platforms, and is rarely achieved with robots on a wheeled platform. At the same time, a sufficiently high controllability of the robot is maintained.
Compared with the first implementation on arduino, the use of FPGAs allowed to improve the quality of motor control, by increasing the frequency of the PWM signal, as well as increasing its bit depth. Also, due to the synchronous design, the speed of data processing has increased, as well as the generation of control signals from the moment of receiving data from the bluetooth module.
The GitHub implementation of the robot is located here:
The project consists of ready-made 3D models of robot components:
The assembly and development of individual components was carried out in SolidWorks and tested for arzlic effects and stability.
The software part is a Quartus Prime project: