Robots Walking by Using GA

Download Report

Transcript Robots Walking by Using GA

Robots Walking
by Using GA
Outline
Humanoid Robots
Definition of Humanoid Robots
A humanoid robot is a robot with its overall appearance, based on
that of the human body, allowing interaction with made-forhuman tools or environments. In general humanoid robots have a
torso with a head, two arms and two legs, although some forms
of humanoid robots may model only part of the body, for
example, from the waist up. Some humanoid robots may also
have a 'face', with 'eyes' and 'mouth'. Androids are humanoid
robots built to aesthetically resemble a human.
Humanoid Robots
Importance of These Robots
1.
They can do most jobs that only humans can do it; like climing
stairs, tree or mountains, walking on two legs, play with
children and etc; So these robots can play the role as a nurse,
police, fireman, worker, news agent and even player of football!
2.
They look kindly, friendly, safely in a first glance. So they can
communicate with anyone exactly like humans. In fact, this
feature helps them have a relation with children and old men or
old women.
Humanoid Robots
Some Examples of Humanoid Robots
Walking

Walking is one of the most important human abilities, let us
having motion. Scientists believe that a human newborn is the
weakest in compare to other human-like animal, chimps or
mooneyes newborn!

Children train walking in first two years of life.

Walking have a regular rhythm.
Nao, Example of Humanoid Robot
NAO
1.
2.
3.
4.
NAO is a 58-cm biped robot and it’s used for Robocup
standard Platform League.
It’s created by ALDEBARAN ROBOTICS .
This robot simulated by a numbers of simulators such as
Microsoft Robotics Developers Studio, Cyberbotics
Webots and Simspark and It supports Windows, Mac OS
and Linux.
It has 22 degrees of freedom.
Nao, Example of Humanoid Robot
NAO
5.
Programming Nao consists in implementing behaviors,
themselves made of several behaviors. The low diagram
representation gives you the ability to describe sequential
and parallel behavior triggered by events, while the
timeline gives access to time scheduled programming. The
simultaneous use of these two approaches opens huge
possibilities to play with a humanoid robot without
compiling a single line of C++.
Nao, Example of Humanoid Robot
Nao's anatomy
Nao, Example of Humanoid Robot
In these Pictures you can see Nao:
Genetic Algorithm
Biological Background
Genetic Algorithm
Optimization
Optimization is the process of making something better. An
engineer or scientist conjures up a new idea and optimization
improves on that idea. Optimization consists in trying variations
on an initial concept and using the information gained to
improve on the idea. A computer is the perfect tool for
optimization as long as the idea or variable influencing the idea
can be input in electronic format. Feed the computer some data
and out comes the solution. Is this the only solution? Often times
not. Is it the best solution? That’s a tough question. Optimization
is the math tool that we rely on to get these answers. (Practical
Genetic Algorithms, Haupt & Haupt, Wiley and Son’s Press)
Genetic Algorithm
What is Genetic Algorithm?
The genetic algorithm (GA) is a search heuristic that mimics
the process of natural evolution. This heuristic is routinely
used to generate useful solutions to optimization and search
problems. Genetic algorithms belong to the larger class of
evolutionary algorithms (EA), which generate solutions to
optimization problems using techniques inspired by natural
evolution, such as inheritance, mutation, selection, and
crossover. (Wikipedia)
We will talk about crossover and mutation.
Genetic Algorithm
Crossover
Many crossover techniques exist for organisms which use
different data structures to store themselves.
1. One-point crossover
A single crossover point on both parents' organism strings is
selected. All data beyond that point in either organism string
is swapped between the two parent organisms. The resulting
organisms are the children:
Genetic Algorithm
Crossover
2.
Two-point crossover calls for two points to be selected
on the parent organism strings. Everything between the
two points is swapped between the parent organisms,
rendering two child organisms:
Genetic Algorithm
Crossover
3.
Another crossover variant, the "cut and splice" approach,
results in a change in length of the children strings. The
reason for this difference is that each parent string has a
separate choice of crossover point.
Genetic Algorithm
Mutation
In genetic algorithms of computing, mutation is a genetic
operator used to maintain genetic diversity from one generation
of a population of algorithm chromosomes to the next. It is
analogous to biological mutation. The classic example of a
mutation operator involves a probability that an arbitrary bit in a
genetic sequence will be changed from its original state. A
common method of implementing the mutation operator involves
generating a random variable for each bit in a sequence. This
random variable tells whether or not a particular bit will be
modified. This mutation procedure, based on the biological point
mutation, is called single point mutation. Other types are
inversion and floating point mutation. When the gene encoding
is restrictive as in permutation problems, mutations are swaps,
inversions and scrambles.
Genetic Algorithm
GA Stage 1 – Initialization
Randomly initialize some number of individual solutions to form an
initial population
Genetic Algorithm
GA Stage 2 – Evaluation and Selection
Evaluate the fitness value of each chromosome
Genetic Algorithm
GA Stage 3 – Check Termination
The algorithm terminates when some pre-determined termination
condition is reached
Genetic Algorithm
GA Stage 4 – Reproduction
Perform crossover and mutation to generate a new population from
the current chromosomes
Genetic Algorithm
GA Stage 5 – Output Solution
Output the best solution found during the algorithm
Walking by using GA
Environment
Robocup Standard Platform League environment is
selected for practical implementation of this research.
Picture below is an screen of RCSSonitor3D.
RCSSServer3D is an application which runs the game
using Simspark.
Walking by using GA
You know every challenged joint in walking have a frequency
motion. we also know all frequency functions can modeled by
Fourier Series, as follows:
Values (in degree) of joints that deal with walking can express
by using a Fourier Series, But a0, an and bn are unknown. If we
want to calculate them by GA, selecting a good fitness function
is necessary. We define this function as bellow:
F=Distance(Agent,goal)
Walking by using GA
These joints deal with walking (directional only):
•
•
•
•
Shank
Thigh
Torso
…
Thanks
Dear audience,
I hope this presentation been useful for you and thanks
for your attention
Special Tanks To:
Ahad Harati, PhD
Assistant Professor
Computer Dept.
Ferdowsi University of Mashad
Discussion
You have a question?
Why don’t ask?