Українська   Русский

Abstract

Content

Introduction

Robots – a part of promptly approaching future of high technologies. Now on the planet Earth in the sphere of robotic technology of revolution happen nearly every week. Robots save people, work in extremal conditions, replace real-life communication, research planets of Solar system and many other things. From servants to mentors, robots develop extremely in high gear. And therefore each person though partially interested in this subject, with a spark in eyes and desire to create, embody former dreams of writers of fantasts in reality, is simply obliged will touch, to become a part of this prompt procession of technologies.

We divided design and development of a legged robot into two parts physical implementation and program, in turn I got program.

1. Design and development of the legged robot

We divided design and development of a legged robot into two parts physical implementation and program, in turn I got program.

Design and creation of the program for a legged robot includes:

  1. Assessment and acquaintance with the equipment and construction of the robot.
  2. Implementation and debugging of initial situation.
  3. Creating motion algorithms
  4. Adaptation and debugging motion algorithms

It is possible to call programming of the robot final process of its creation.

2. Equipment and robot design

Our initial choice of construction of the robot fell on the legged robot of a quadrupod with three levels of freedom for each leg, and all initial selection of the equipment is caused by this choice. With a choice the equipment is possible will examine according to this link.

The platform for implementation of the robot selected Arduino. Simplicity of implementation of programs on С-like language involved the beginning programmer robotic technology. The compact board of Arduino Nano v3.0 quite was suitable for objectives, and existence of 12 discrete inputs was suitable for the selected number of servo actuators.

The initial choice of construction entailed a set of problems. Implementation of algorithms for such robot required high accuracy of kinematic calculations, the correct distribution of masses and exact working off of angles of the servo actuator. But our equipment did not allow to fulfill thoroughly such algorithms that entailed to a misimplementation of distribution of masses, a flash of servo actuators in case of movement.

Change in construction of the robot became the solution of these problems. Transformation of a quadrupod in the hexapod, added two additional points of support that betrayed stability to the system of the robot and reduced load of servo actuators. Besides as it was conceived it owed expand a functionality of opportunities of implementation of different algorithms of movements, interactions with different objects, and gave freedom for execution of many other opportunities.

3. Implementation and debugging of the starting position

For stable and exact working off of algorithms the important task is implementation of initial situation with a possibility of the subsequent debugging and adjustment of control algorithms on its basis.

Initial position of the robot was implemented by exposure of all servo actuators in the provision 90 °. Drawing of the initial provision was made in initially mechanical way (assembly of the robot with its account).

Everything implementation of algorithms of movement will be based taking into account the diagram of the direction of movement of servo actuators (from 0 ° to 180 °) the Figure 1. .

Direction of motion of servo drives..

Figure 1 – Direction of motion of servo drives.

At the program initial position and the subsequent algorithms there will be reductions and designations given below.

Because of 12 discrete entrances / conclusions and 16 servo-drivers all algorithms of the movement become simpler, the movement of legs of LF and LB, RF and RB coupled by way. Such simplification will limit variations of algorithms of movements.

Designations as s1LF, s2LF, s3LF – with a prefix s and number, designate number of the servomotor according to the scheme, Fig. 1.

The movement is carried out from set initial position of drives, in a-degree measure which is set by the size s1LFinV (with the instruction on inV - initial value (initial position)).

Program of initial position

For work with servo-drivers in the environment of Arduino there is a special library < Servo.h >, it allows to set position of the servo-driver value of a corner. For speed control of working off of corners, for the subsequent control algorithms I have used the user library < VarSpeedServo.h >. The first step during creation of the program makes connection of this library. (All phrases after // are considered as comments and don't influence working off of the program).

Code (C ++):

#include < VarSpeedServo.h > //connect library for operation with the servo actuator

Further declaration of VarSpeedServo variables is made that is assignment of the value given on the servo actuator (which is processed by VarSpeedServo.h library).

Code (C ++):

VarSpeedServo s1LF; //we declare s1LF of the VarSpeedServo type
VarSpeedServo s2LF;
VarSpeedServo s3LF;
VarSpeedServo s1RF;
VarSpeedServo s2RF;
VarSpeedServo s3RF;
VarSpeedServo s1LM;
VarSpeedServo s2LM;
VarSpeedServo s3LM;
VarSpeedServo s1RM;
VarSpeedServo s2RM;
VarSpeedServo s3RM;

The following step creates variables of starting values for each servo actuator (signals are duplicated for some the servo actuator taking into account pairing), and appropriate them value 90. By means of change of these values adjustment of initial position is made.

Code (C ++):

//Starting values of angles
//LEG 1
int s1LFinV=90;
int s2LFinV=90;
int s3LFinV=90;
//LEG 2
int s1RFinV=90;
int s2RFinV=90;
int s3RFinV=90;
//LEG 3
int s1LMinV=90;
int s2LMinV=90;
int s3LMinV=90;
//LEG 4
int s1RMinV=90;
int s2RMinV=90;
int s3RMinV=90;

The setup function (void setup) is caused - it is a mandatory command, is caused once in case of switching on or after restarting of the controller, allowing to begin execution of commands. Most often it is various procedures of initialization something. Setup is a one-pass cycle.

Code (C ++):

void setup () //процедура setup

The procedure of assignment of a logical signal from the discrete inputs / outputs of Arduino to certain servo actuators, binding a certain output to a certain servo actuator.

Characters are { and } used for designation of the beginning and the end of cycles.

Code (C ++):

{
s1LF.attach(2);
s2LF.attach(3);
s3LF.attach(4);
s1RF.attach(8);
s2RF.attach(9);
s3RF.attach(10);
s1LM.attach(5);
s2LM.attach(6);
s3LM.attach(7);
s1RM.attach(11);
s2RM.attach(12);
s3RM.attach(13);
}

The loop function (void loop) which represents a closed infinite loop is caused.

By means of the write function assignment of values of angles to the variables containing value of a logical signal is made. As these commands are given the robot will keep the standard position in the cycle loop infinitely.

Code (C ++):

void loop() //loop procedure
{
//Leg1/5 LF/LB// position of the left forward and left back legs
s1LF.write(s1LFinV);
s2LF.write(s2LFinV);
s3LF.write(s3LFinV);
//Leg2/6 RF/RB// position of the right forward and right back legs
s1RF.write(s1RFinV);
s2RF.write(s2RFinV);
s3RF.write(s3RFinV);
//Leg3 LM// position of the left middle leg
s1LM.write(s1LMinV);
s2LM.write(s2LMinV);
s3LM.write(s3LMinV);
//Leg4 RM// position of the right middle leg
s1RM.write(s1RMinV);
s2RM.write(s2RMinV);
s3RM.write(s3RMinV);
}

So program adjustment of initial position which will allow to create programs for execution of different movements is implemented.

4. Creating motion algorithms

After implementation of the initial provision it is possible to start writing of algorithms of the movement. Because of use of Arduino Nano v3.0, and pairing of legs algorithms for the movement will be presented in four options: advance, back, rotation round its pivot-center clockwise and counterclockwise (that provides change of the direction of the movement).

For development of all algorithms the conditional scheme of the direction of rotation of corners of servo-drivers, the Figure 2 was used.

Conditional direction of motion of servo drives..

Figure 2 – Conditional Direction of motion of servo drives.

4.1 Forward and backward motion algorithms

This algorithm is carried out by consecutive movement of two groups of legs: first group (left forward, right middle, left back), second group (right forward, left middle, right back).

Movement is carried out thus:

  1. Legs of the first group rise in tops and are displaced on 13 ° in before while legs of the second group are displaced on 13 ° back, moving the robot case forward. So from initial position we come to the first provision of a step. Turn/mixture of each leg is carried out by means of s1 servo-drivers. Raising of each leg is carried out by means of s2 and s3 servo-drivers, their mixture on 45 °, so that the leg was turned in, nestling on the case at rise.
  2. Legs of the second group rise in top and are displaced on 26 ° forward while legs of the first group are displaced on 26 ° back, moving the robot case forward.
  3. Legs of the first group rise up and are displaced on 26 ° forward while legs of the second group are displaced on 26 ° back, moving the robot case forward.

So consecutive alternation of point 2 and 3 carries out a full step forward. Repetition of a full step carries out continuous advance.

This algorithm realizes a direct kinematics, obtaining the provision of legs of the set corners. Therefore, for use in the program, the algorithm has been adapted under features of programming.

In the program I have divided the movement 2 and 3 into three parts: raising of legs, movement of legs, lowering of legs.

This algorithm very simple and reliable as at any moment the robot has three points of support which provide its stability.

The backward motion algorithm is similar to the forward motion algorithm.

4.2 Algorithms clockwise and counterclockwise rotation

For implementation of such algorithm it is conditionally necessary to designate 2 groups of legs: left (left forward, the left back), right (right forward, the right back). Right middle and left middle legs remain independent.

The algorithm of movement will take such form:

  1. Legs of the left group rise up and displace on 13 ° forward, the right middle leg rise and displaces on 13 ° back, legs of right-wing group displace on 13 ° in before, the left middle leg rise and displaces on 13 ° back.
  2. Legs of right-wing group rise up and displace on 26 ° forward, the left middle leg rise and displaces on 26 ° back, legs of the left group displace on 26 ° forward, the right middle leg rise and displaces on 26 ° back.
  3. Legs of the left group rise up and displace on 26 ° forward, the right middle leg rise and displaces on 26 ° back, legs of right-wing group displace on 26 ° forward, the left middle leg rise and displaces on 26 ° back..

Serial use of point 2 and 3 realizes complete turn of the robot clockwise that programmatically is implemented by passing of one cycle – 52°. Repetition of complete turn carries out the continuous rotation clockwise.

The movement algorithm against hour is implemented by the same principle.

Though it is possible to call these algorithms simple and to some extent primitive, but reliability and definition of their working off is unconditional. Besides these algorithms are only the first stage in control implementation to our legged robot. They will serve as an excellent base for creation of serious algorithms which will become available with acquisition of more functional board of Arduino MEGA2560 Pro Mini.

Выводы

Our robot hexapod for the present at the initial stage of development. Though the board of Arduino Nano v3.0 selected by us responds objectives, we read that for an exception of operation of pairing of legs the board of Arduino MEGA2560 Pro Mini, because of existence of 54 discrete inputs / outputs will be set.

The robot can be used, at present, as a training tool for students involved in robotics.

Plans for the future

In our plans implementation of remote control through Bluetooth from the smartphone that implies not only writing of the program of algorithms of movements and contact with the smartphone written on Arduino, but also writing of the program on Android. Also our plans are installation of the video camera on the robot which will broadcast the image of terrain in front of the robot, transmitting a signal on WI-FI. Stream video is broadcast on the smartphone, being displayed in a separate part of the screen of the program of control.

At the time of writing this abstract of master's work is not yet complete. The estimated date of completion of the master's work: June 2017. The full text of work and materials on the topic can be obtained from the author or his adviser after that date.

Список источников

  1. Гаревская Н.В., Полянский В.В., Сабадырь А.М., Семцов А.С. Электронный журнал «Труды МАИ ». / Разработка конструкции и алгоритмов управления движением шагающего аппарата для технического обслуживания авиационных комплексов. Выпуск № 62, 2012. – 12с. http://trudymai.ru/....
  2. Илья Чех // Роботы-пауки: кинематика. http://weas-robotics.ru/robotyi-pauki...
  3. Джереми Блум // Изучаем Arduino: инструменты и методы технического волшебства. Пер. с англ. — СПб.: БХВ-Петербург, 2015. – 336 с. 5-33.
  4. Петин В.А. / Проекты с использованием контроллера Arduino. – 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2015. – 448 с.
  5. Омельченко Е.Я., Танич В.О., Маклаков А.С., Карякина Е.А. Электротехнические системы и комплексы // Краткий обзор и перспективы применения микропроцессорной платформы Arduino. Магнитогорский государственный технический университет им. Г.И. Носова (Магнитогорск), 2013 г. – 366 с. 28-33.
  6. C. Menon, Y. Li, D. Sameoto, C. Martens. Robotics and Autonomous Systems // "Biologically based distributed control and local reflexes improve rough terrain locomotion in a hexapod robot". Volume 18, Issues 1-2, July 1996, Pages 59-64.
  7. Пономаренко В.И., Караваев А.С. Современные проблемы науки и образования // Использование платформы Arduino в измерениях и физическом эксперименте. – 2014. – № 3, – с. 77-90.