• No results found

to my family

N/A
N/A
Protected

Academic year: 2021

Share "to my family"

Copied!
75
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)

to my family

(3)
(4)

Acknowledgments

“Of all the things which wisdom provides to make us entirely happy, much the greatest is the possession of friendship.”

— Epicurus

To my family: Stefano, Chiara, Sofia. To my grandparents Giancarlo and Grazia and their beloved halves (Elisa and Dante) which sadly are no longer with us. You were always supporting me in every way, so that I could reach my goals and pursue my passion. You were only driven by your will of making me happy. Well, I really am. And if i succeded in this by making you proud of me as well, then i could not ask for more.

A really special thank goes to Matteo Todeschini (for me always "bomber "), one of my truly best friends. No matter where our paths will bring us, or how far we might end up. We will always find a way to stay close. Thank you for always being there.

To Elisa, the person that made me happy and complete like I’ve never been before. If this is a success, it’s because of you.

To Enrico and Matteo of the "trio fallimento". You were always by my side, in every cir- cumstances: good and bad, laughing or sharing doubts. You are definitely part of what I have become now. I can’t really describe how grateful I am for that.

To my friend Ioannis. I have always enjoyed our time spent together with our silly and also serious talks. You are an awesome friend and a wonderful person buddy. I wish you all the best. Don’t ever forget that you are always welcome in my house, wherever that may be.

Pretty cool huh?

To my friends Diego, Marco, Alessia and the many others at Lido di Spina. It is no under- statement when I say that we literally grew up together, form our very "first" summer. Many things happened, many changed and yet many remained the same. I am honored to be your friend. You were the ones that made me think what friendship means at its very core.

To my high school class, the (in)famous section H. All of you will always have a special place in my heart. I consider each and every one of you an irreplaceable friend, all part of my sec- ond family. I wish all the best for you, and to be happy with whatever path you’ll decide to take.

Enrico

(5)
(6)

Abstract

The performance of a manipulator during the execution of a task depends, among other things, on the position of the task inside the robot’s working envelope.

When a task can be performed in different locations, depending on the position chosen the solution to the inverse kinematics problem will be different. Thus, by judiciously placing the robot and the given path in the workstation, it is possible to improve its behavior. This project deals with the optimal path placement in order to reduce the overall energy consumption for a 6-dof industrial manip- ulator. A framework for the visualization of the consumption in the working envelope is proposed and described. Genetic algorithms (GA) are chosen to solve the optimization problem, and the advantages they bring are also described. The proposed approach tries to merge the GA approach with a "brute-force" solution, which is also described. Finally, the goodness of the framework is assessed by comparison of the result with simulations performed with RobotStudioTM.

Keywords: Robotics, Path placement, Optimization, Genetic algorithms, Energy consumption.

(7)
(8)

Sammanfattning

Prestandan av en manipulator under utförandet av en uppgift beror, bland an- nat, på positionen av uppgiften inuti robotens arbetsområde. När en uppgift kan utföras på olika platser, beroende på positionen valt lösningen på omvänd kine- matik problemet kommer att vara annorlunda. Således, genom att omdömesgillt placera roboten och given väg i arbetsstationen, är det möjligt att förbättra sitt beteende. Detta projekt handlar om optimala vägen placering i syfte att minska den totala energiförbrukningen för en 6-DOF industriell robot. Ett ramverk för visualisering av förbrukningen i arbets kuvert föreslås och beskrivs. Genetiska algoritmer (GA) är valda för att lösa optimeringsproblemet, och de fördelar de få beskrivs också. De föreslagna strategin försöker sammanfoga GA strategi med en

"brute-force" lösning, som också beskrivs. Slutligen är godheten i ramen bedömas genom jämförelse av resultatet med simuleringar utförda med RobotStudio.

(9)
(10)

Contents

1 Introduction 11

1.1 Related works . . . 12

1.2 Structure of the thesis . . . 14

2 Problem Formulation 15 2.1 Preliminary Concepts . . . 16

2.2 Optimization Problem . . . 20

2.3 Cost Function . . . 20

3 Genetic Algorithms 23 3.1 Why GAs work . . . 25

3.1.1 The schema theorem . . . 25

4 Solution of the Optimization Problem 27 4.1 Path Tracking . . . 27

4.2 Path Placement . . . 30

4.2.1 Discrete Path Placement (DPP) . . . 31

4.2.2 Hybrid Genetic Algorithms (HGA) . . . 32

4.3 Path Placement Tool . . . 36

4.3.1 The Scene Graph . . . 36

4.3.2 Energy-Color Mapping . . . 38

5 Results 41 5.1 DPP vs GA . . . 41

5.2 HGA . . . 44

5.3 Path Placement Tool vs RobotStudioTM . . . 46

5.4 Time Performances . . . 48

6 Conclusions & Future works 53 Appendix A Kinematics of a 6 dof manipulator 55 A.1 Pose of a Rigid Body in Space . . . 55

A.2 Rotation Matrix . . . 55

A.3 Euler Angles . . . 56

(11)

A.4 Transformation Matrix . . . 56

Appendix B Dynamics of a 6 dof manipulator 59 B.1 Kinetic Energy . . . 59

B.2 Potential Energy . . . 59

B.3 Lagrange Formulation . . . 59

B.4 Newton-Euler Formulation . . . 60

B.5 Recursive Algorithm . . . 61

B.5.1 Forward Recursion . . . 62

B.5.2 Backward Recursion . . . 62

Appendix C Java 3D 65 C.1 SimpleUniverse . . . 65

C.2 BranchGroup . . . 65

C.3 Transform3D . . . 65

C.4 TransformGroup . . . 66

C.5 Sphere . . . 66

Bibliography 67

List of Figures 71

List of Tables 73

(12)

Chapter 1 Introduction

Industrial robots are more and more frequently used to perform all sorts of tasks.

Their use is no longer limited only to very complicated applications, but it is also for rather simple ones that can be accomplished way faster by a robot.

As a matter of fact, since 2010 the demand for industrial robots has accelerated considerably due to the ongoing trend toward automation and the continued inno- vative technical improvements of industrial robots [1]. Requirements concerning higher precision, improved productivity, reduced costs, and better manufacturing quality have become very important. These goals derive directly from the notions of maximum productivity and minimum production costs, which are some of the major objectives of industrial automation.

In light of this, it is no surprise that robot trajectory planning is a subject of great importance. It generally refers to the selection of the path’s velocity and acceleration profiles. The initial and final positions are fixed in the workspace.

Trajectory planning usually aims at minimizing the travel time ([22, 29]), travel distance ([6, 5]), and/or energy consumption ([28, 8]). There is, in general, no constraint regarding the shape and the planner is basically free of optimize with respect to any index of interest.

However, applying the process of optimization after the algorithm of trajectory planning brings a completely new set of challenges. As mentioned above, the initial and final positions are in general fixed in space. To be able to perform optimization also after the planning, it is necessary to change the underlying assumption. The positions and via points of the path will no longer be fixed in space, but only their relative position in the working envelope will be kept constant. In other words, the task the robot is asked to perform is not defined by its absolute locations, but rather by the path shape.

To understand why it might be worth studying this problem, a general exam- ple is provided. Imagine that a machining operation has to be executed by a generic industrial manipulator. The task has been defined in its locations other parameters like maximum velocity, acceleration and jerk, with positions defined with respect to the workpiece. This is a common procedure for many machin-

(13)

ing operations since the worktable locations, along with the clamping structure and so on might not have been decided yet. Besides, only the relative position between the workpiece and those elements is important. Due to this reason, a local reference frame is usually defined in a suitable location onto the piece that will be machined, and only afterwards located within the robot cell. Since the reference frame position for the piece has not been decided yet, it can be placed according to some performance index. Moreover, by moving the frame, also the position of the whole task will move accordingly.

The freedom of choosing where to perform the machining operation, allows for smart placing. The optimization process is now taking place. Depending on the origin and orientation of the workpiece reference frame, the robot might end up minimizing the stress forces acting on its base, or again it may minimize the vi- brations measured at the end effector. All of this still while performing the same task.

This thesis work will focus on this challenge and will try to address it also by providing the user a way to visualize the result. The performance index that has been considered is the total energy consumption, thus the target that has to be reduced/minimized. To give a better understanding of the robot energy consumption in the robot cell, given the task to perform, the result is displayed in a 3D environment, described later on.

The next section will review the literature and the research that has been con- ducted on the subject.

1.1 Related works

Several works in the literature focus on the subject of trajectory planning, with many different approaches. In the work of Saramago [26] a solution for the off-line path planning problem is proposed. The challenge consists in moving a manip- ulator along a geometric path but with the presence of moving obstacles. The traveling time and the mechanical energy consumed are the objectives consid- ered together in a multi-objective function that has to be minimized. A work of Santos [23] proposes an approach to determine the trajectory for a defined move- ment. Constraints on torques, velocities, operation time and the robot position are taken into account in the process. This analysis can be described as an off-line path planning, but performed in the manipulator joint space. In another paper of his ([24]), the trajectory and the object placement are written as an optimiza- tion problem for a collaborative task between two manipulators. In particular, accuracy and energy consumption are improved during the planning. Moreover, the joint limits are considered in a constrained objective function to ensure the feasibility of the solution at the optimal configuration. In [25] instead the path placement problem is treated to minimize the energy consumed while maximizing

(14)

1.1 Related works 13

the manipulability of the robot during the task. The optimum is found by means of a search technique called tunneling, an heuristic to solve multi-objective func- tion (Levy [12, 13]). Also Nelson and Donath [18] considered the manipulability measure as the main optimization criterion. This was used to find the optimum location for an assembly task, that is the position corresponding to the highest manipulability.

However, Aspragathos et al. [2] showed in their works that this index and the dexterity measure, usually quantified by the condition number of the Jacobian matrix of the manipulator [15], are not suitable for describing the ability of the robot to move in a certain direction. Therefore, they used the concept of the orientation of the manipulability ellipsoid relative to the path. For the search of the optimal solution genetic algorithms were used.

Pamanes et al. [21] proposed an approach for single and multi-objective op- timization for a 3R and a 4R manipulators. In their paper, they assigned a performance index to each point of the path and then proceed with the optimiza- tion. Among other indexes, they considered the manipulability measure and the condition number of the Jacobian.

Also the work of Hemmerle [9] focused on redundant manipulators, but defining a cost function related to joint motions and limits. In this approach however, the path was not considered as a whole but only in some interesting points. Thus, the cost function was evaluated only at these node points, but not along the path between them. Similarly, Pamanes and Zeghloul [19, 20] specified an optimiza- tion criterion for some points along the path based on several kinematic indexes.

As it can be noticed, several approaches have been proposed, some of which ex- plore the advantages of multi-objective optimization. However, in most of the works the focus is rather on kinematic constraints and dexterity indexes, while the energy issues are not stressed enough. This aspect in particular could also benefit from the path placement technique, and a path could be located wisely in the working envelope according to the total power consumption. Naturally, this could just serve as one of many indexes in a multi-objective cost function, leading then to a solution consisting in a trade-off between energy consumption and other criteria. In [30], the electric energy consumption is actually chosen as main criterion and applied to the Orthoglide 3-axis.

This work chooses the energy consumption as main criterion as well, applying it to a 6R industrial manipulator. The thesis has been developed based on the work of Mohammed et al. in [17], where they developed the tool in MATLABTM. Starting from their work, genetic algorithms will be explored in order to efficiently solve the optimization problem and wisely search within the workign envelope.

One of the objectives of the thesis work is also to focus on the time performance of the new tool that will be implemented in Java. Moreover, the solution to the optimization problem is found by means of genetic algorithms.

(15)

1.2 Structure of the thesis

The thesis has been structured as follows. Chapter 2 deals with the equations and definitions that formulate the problem and its statement. All the assumption necessary for the correct understanding of the problem are introduced. Follow- ing the theoretical formulation, Chapter 3 will treat the ideas at the core of genetic algorithms. The GAs have been used to solve the minimization problem.

Chapter 4 treats the detailed description of the algorithms responsible for the resolution of the problem. The chapter is dived in three sections, dealing with path tracking, path placement, and the visualization tool. The latter has been developed by Leonardo Urbano at KTH and summarized in this report for the sake of completeness. Chapter 4 also contains considerations about the different approaches evaluated. The result and a more detailed comparison between them is then presented in Chapter 5. Here, the advantages and disadvantages of the different solutions are pointed out, to then proceed to the conclusions that can be drawn by simulation experiments. The simulations are performed with a 6-DOF industrial manipulator: ABB IRB 1600. Chapter 5 also provides a discussion and comparison of the execution times of the new implementation compared to the Matlab framework.

Finally, in Chapter 6 final considerations and future works are discussed.

(16)

Chapter 2

Problem Formulation

As briefly mentioned in Chapter 1, path placement addresses the problem of finding the optimal starting position for a predefined path in order to minimize a cost function. This problem concerns applications in which an interpolated path is defined so that its features in terms of execution time and trajectory shape are fixed, but it is still possible to decide where to perform it. This essentially means a path could theoretically be performed anywhere within the working envelope. If a path location has been defined in the robot base frame, the method consists in translating the trajectory in other points of the working envelope different from the initial ones. The shape of the path has to be guaranteed along with the total travel time. Instead, if the same path has been defined in its own coordinate system to ease its representation, the first step consists into referring the points back into the base coordinate system. Then the process of "performing the path"

in different locations in the working envelope can begin.

Figure 2.1: 6 dof manipulator with base frame Fb and path frame Fp

(17)

One of the reasons this approach could bring help to the user is for example when a machining operation has been defined right on the raw piece that has to be shaped. The path will thus have its reference frame attached to the piece and will have travel time, position and orientation relative to the workpiece already specified. However, even though it not possible to change the trajectory param- eters, it is still possible to optimize with respect to other parameters such as the maximum vibrations the base of the robot is subject to along the trajectory, or again the maximum actuator torque required during the task. These parameters and others strictly depend on the initial and final position of the path, or rather on the position of the path frame with respect to the robot base frame.

In this work the focus will be on energy efficient path placement, i.e. search- ing the location for a path with the aim of minimizing the energy consumption of the robot. The problem will be subjected to both geometric and kinematic constraints. The first ones take into account the joint limits, along with the requirement for which the overall path has to be within the robot’s working enve- lope. The kinematic constraints are due to mechanical limitations i.e. maximum joint velocities and accelerations along the path. It should be mentioned that also dynamic constraints usually have a role in path placement optimization. These limitations deal with the maximum power and torque delivered by each motor to every single joint at a time. However, in this work such restrictions have not been considered, as the velocity and acceleration along the path were set constant and under the robot’s nominal values.

2.1 Preliminary Concepts

First of all, the concept of path has to be formalized. Let us consider the following parametrization of a curve in space:

Figure 2.2: A generic curve Γ in space

It is possible to parameterize the curve by means of the natural coordinate s.

Given a point pi of the curve Γ, it is possible to define the natural coordinate s

(18)

2.1 Preliminary Concepts 17

of pi as the length of the arc of Γ whose extreme points are p and pi. If p follows pi in the path, then the arc’s length has positive value, negative otherwise. Point pi takes the meaning of origin of s i.e. the point in which s is equal to zero. It is then possible to write the following equations for the curve in Figure 2.1:

p = p(s)

























t = dp(s) ds

n = d2p(s)/ds2

||d2p(s)/ds2||

b = t × n

(2.1)

where t, n, p are respectively the tangent, normal, binormal unit vectors.

In this work, two kinds of path have been considered: linear path and square path. The latter can be seen as a concatenation of linear paths as shown in the following figure.

Figure 2.3: Example of concatenation of linear paths

Regarding the timing law, it can be defined as the time dependence with which we want the robot to travel along the assigned path. It is then possible to make the dependence on time of the variable s explicit:

s = s(t) (2.2)

Different timing laws have been used in the literature: polynomials, trape- zoidal velocity profile, harmonic etc. In this work, a trapezoidal velocity profile has been considered. Now that a timing law has been assigned to the path, the result (i.e the trajectory) is a collection of points with a time instant assigned.

However, this is not enough for having the robot track the desired path: we

(19)

still need to have joint angles for each time instant to reach the corresponding location. Since the trajectory has been defined in the operational space, inverse kinematics is needed to obtain joint coordinates for each point of the interpolated path.

The steps to go from the generic path definition up to the required joint coordinates have now been described. The next part will be dealing with the coordinate frames that have to be used to represent the path locations.

In order to describe the problem, the following two reference frames have been considered:

• base frame (or global frame) Fb, located at the base of the robot;

• path frame Fp, placed at the starting point of the path.

The first one is used to locate the path with respect to the robot coordinate system, while frame Fp is used to have a convenient way of describing the path.

Since the position of each frame is independent of each other, a suitable conven- tion to represent the points from one coordinate system to the other one has to be adopted. This is essential to the task due to the fact that eventually all the information will have to be represented in the base reference frame so that the optimization problem is properly set up.

Given a vector p = {x, y, z}T and a matrix R3x3 defining position and orien- tation of a point with respect to a reference frame, it is possible to represent the location of the point in space using the transformation matrix T :

T =" R p 0T 1

#

(2.3)

The point P coordinates xPp, yPp, zPp in Fp can be expressed in the base reference frame Fb with the following expression:

[˜p]Fp = Tbi [˜p]Fb (2.4) where

[ ˜p ] ="p 1

#

(2.5) is the homogeneous representation of vector p.

Considering Op(xOp, yOp, zOp) the origin of Fp, it is possible to represent the lo- cation of Op with respect to Fb by means of the following transformation matrix Tpb:

(20)

2.1 Preliminary Concepts 19

Tpb =

cos φ cos θ cos φ sin θ sin ψ − sinφcosψ cos φ sin θ cos ψ + sinφsinψ xOp sin φ cos θ sin φ sin θ sin ψ + cosφcosψ sin φ sin θ cos ψ − cosφsinψ yOp

− sin θ cos θ sin ψ cos θ cos ψ zOp

0 0 0 1

 (2.6)

where (φ, θ, ψ) are the ZYZ Euler angles characterizing the orientation of Fp with respect to Fb.

However, in this work the Euler angles have been set equal to zero. In other words, the path orientation is fixed regardless of its initial and final positions.

The following matrix has to be considered:

Tpb =

1 0 0 xOp 0 1 0 yOp 0 0 1 zOp

0 0 0 1

(2.7)

Therefore, let x = [xOp yOp zOp] be the vector that identifies the starting position of the predefined path within the working envelope with respect to the base frame. In the general formulation, the vector x should also contain the Euler angles of the rotation from the base frame to the path frame. It has to be noticed that even if it may seem as a remarkable simplification, the assumption made on the fixed orientation does not compromise the generality of the problem and the reason is simple. The need of keeping constant the path orientation depends on the application. For instance, there are some machining operations where the same task cannot be performed with every possible configuration of the wrist.

Therefore, in such situations, the optimization has to be performed keeping the configuration of the wrist constant at the value that is feasible for the given task.

The components of x are the decision variables of the optimization problem.

By changing such decision variables the initial position of the trajectory will change and, recalling what was stated at the beginning of this chapter, also all the other points of the trajectory will change accordingly because the shape of the path has to be kept untouched. The next section will introduce the cost function and, with the trajectory positions being modified altogether, how its value will change according to the vector of the decision variables x.

(21)

2.2 Optimization Problem

As previously stated, the goal of path placement is to find the optimal starting position inside the working envelope for a predefined path. Let Fb be the base frame, Fp the path frame and x = [xOp yOpzOp] the vector of the decision variables in Fb. It is possible to formulate the energy efficient path placement problem as follows:

minx J =

ndof

X

i=1

Ei(x) subject to:





qil ≤ qi ≤ qiu

| ˙qi| ≤ ˙qiu

| ¨qi| ≤ ¨qiu

(ndof = 6) (2.8)

where qi, ˙qi, ¨qi are the values of position, velocity and acceleration of the i-th joint coordinate, qil is the lower boundary of the position of the i-th joint value and qiu, ˙qiu, ¨qiuare the upper boundaries of position, velocity and acceleration of the i-th joint value. Finally, Ei(x) is the energy consumed by the i-th joint. As stated in the previous section, this quantity depends on the vector x identifying the location of the predefined path within the working envelope. Section 2.3 will go deeper in the analysis and definition of the cost function J .

2.3 Cost Function

So far, path and trajectory have been used with the same meaning. The focus was mainly on the role the points had in determining how a location was different from another one in the working envelope. However, the distinction between them now becomes necessary. While a path generally refers to a collection of points in space, the trajectory associates them to a function of time. Given maximum velocity and acceleration, for each point along the path the trajectory returns the time in which the position is reached. The way a path is interpolated is not important in this work, as the study is related to how to evaluate such trajectory for different initial positions. The path may very well be just a sequence of straight lines and then be defined only by some via points. Or again might be a more complicated shape but defined by only initial and final position. How the shape of the path is defined is not important. What has to be ensured is that it won’t vary throughout the path placement.

It can be seen from section 2.8 that the cost function J is obtained by the following formula:

J =

ndof

X

i=1

Ei(x) (ndof = 6) (2.9)

(22)

2.3 Cost Function 21

where E stands for the mechanical energy calculated through the Newton- Euler method for the inverse dynamics.

The inputs are both the path and its interpolation, the trajectory. It means that to each point pk in the trajectory corresponds a time tk with k = 1, ..., N where N is the number of points of the interpolated path. The total number of points N depends on the time and space resolution that have been set for the interpolation process.

As it was mentioned in section 2.1, from the inverse kinematics the joint angles for each of the N points are obtained. From these values, since also the time instants are available, it is possible to retrieve their derivatives. Moreover, the dynamic model of the robot is also known and provided as input. Such model is necessary to calculate the joint torques for each point by means of the inverse dynamics.

One possible way to calculate such torques might be the Euler-Lagrange method, or again the Newton-Euler one. Once the torques have been calculated it is possible to use them together with the joint values - or more correctly, their derivatives - to calculate the instantaneous power.

Let us consider the instantaneous power Pi(k) consumed by link i at time k along the path:

Pi(k) = τi(k) ˙qi(k) (2.10) From this formulation, the total instantaneous power at a generic time instant k is obtained by the sum of all joint contributions:

P (k) =

ndof

X

i=1

Pi(k) (2.11)

Finally, the energy can be obtained by integrating over time the total amount of power consumed along the path:

E = Z tM

t0

P (t)dt '

N

X

k=1

P (k)∆t (2.12)

where ∆t = tk− tk−1 is the time interval between two time instances.

It is important to notice that the energy just calculated is the total energy consumed by a single instance of the input trajectory. This means that whenever the vector x is changed, the initial and final positions of the trajectory will change too. As a consequence the trajectory will be translated.

By translating all the trajectory points, the value of the joints qi with i = 1, ..., n will also change, along with the value of the joint torques. Thus, to be more precise, the aforementioned formulas have to be rewritten taking into account the relation between the torques and the vector x, that is:

τi = τi(k, x) (2.13)

(23)

that leads to the expression of E,

E(x) = Z tM

t0

P (t, x)dt '

M

X

k=0

P (k, x)dt (2.14)

The adopted model is simple and does not depend on the type of manipulator but it does present some drawbacks. The main source of error in this approach is related to the fact that resistive energy losses in the motor windings are not taken into account. The reason is because the information about the electrical motors at the joints are usually not disclosed by the manufacturer for marketing purposes. However, if experimental data are available or a model for mechanical losses due to friction is provided, a contribution could be added at the end of the inverse dynamics calculation process.

For the solution of the so presented optimization problem, several approaches are possible. The adopted method is an heuristic one based on Genetic Algo- rithms (GA). GA allows searching for the optimum in a multi-dimensional solu- tion space, and they are also suitable for multi objective extension of the cost function. A hybrid approach consisting in applying genetic algorithms with de- terministic genotype will be described in detail Chapter 4. The next chapter will provide a better insight of the theory and concepts behind genetic algorithms.

(24)

Chapter 3

Genetic Algorithms

Genetic algorithms (GAs) were invented by John Holland in the 1960s and were developed by him and his students and colleagues at the University of Michigan in the 1960s and the 1970s [16]. It was in contrast with the concepts of evo- lution strategies and evolutionary programming, because the original idea was not to solve specific problem, but rather to formally study the process of natural adaptation and find then a way to translate it into a programming algorithm.

The characteristic means of natural adaptation are known as crossover, muta- tion and inversion. They all contribute at moving the initial population of "chro- mosomes" to a new one that will see the predominance of the fittest individuals.

Each chromosome is made of "genes", each gene being a particular instance of a particular "allele". The selection operators are in charge of choosing the chromo- some that will be allowed to reproduce. On average the fittest chromosome will have more offspring than the rest of the individuals in the population.

As just stated, the genetic operators are three in the original idea and their functioning is briefly described below:

• Crossover exchanges subparts of two chromosomes, trying to emulate bi- ological recombination between two organisms;

• Mutation randomly changes the allele values in some locations in the chromosomes;

• Inversion reverses the order of a contiguous section of a chromosome.

However, this element is rarely used in today’s implementations and its advantages are not well established.

Let us assume that a problem to be solved has been clearly defined along with a bit representation for candidate solutions. Then a general GA algorithm would be made of the following steps:

1. Start with a randomly generated population of N individuals, each one with its own l-bits string representation. These will be the candidate solutions.

(25)

2. Calculate the fitness for each chromosome present. The fitness function is usually indicated with f (x).

3. Until n offspring are generated, repeat the following steps:

a. Select a pair of chromosomes from the current population to make them breed, the probability of choosing the chromosomes being pro- portional to their fitness values. One chromosome might be selected more than once to be a parent.

b. With a certain probability pc, cross over the parents at a randomly chosen point to form two offspring. If no cross over takes place, then the generated offspring will be exact copies of their parents. The cross over may also happen at multiple points, depending on the implemen- tation of the algorithm.

c. Mutate the offspring at each locus (gene position) with probability pm. The resulting chromosomes will be placed in the population.

If n is odd, then an individual may be discarded at random.

4. Replace the current population with the new one.

5. Go to step 2.

These steps are executed several times, and each iteration is called generation.

Usually the number of iterations is between 50 and 500 but depending on the application or the type of problem this number may vary significantly. At the end of all generations, it is more likely to find high fitness valued chromosomes in the population. The reader may have noticed that randomness plays a big role in GA implementation. Therefore, two identical runs may produce slightly different result due to this characteristic. It is then common procedure to report statistics of multiple runs performed with the same GA parameters. The result will basically consist in an average over the best fitness values obtained from the different populations.

Like other computational systems inspired by natural systems, genetic al- gorithms have been used in two ways: as techniques for solving technological problems, and as simplified scientific models that can answer questions about nature [16]. Focusing on the first kind of application domain, GAs have proven to be suited for solving problems that have high-dimensional search space. The latter statement refers to the set of candidate solutions. If the bit representation adopted above is kept, then for a problem of dimension l (i.e. l -bits chromo- somes) the number of possible solutions is 2l. The number of possible candidates can quickly become too big for an extensive search.

One characteristic that has to be clearly pointed out is that GAs tend to converge towards the optimal solution, or a sub optimal one. This means that there is no actual guarantee that the solution found for the given problem will be

(26)

3.1 Why GAs work 25

the absolute optimum. It could mean that the number of generations necessary to reach the optimum could be infinite.

However, this is not how things usually go. In fact, the number of iterations is usually the one needed to reach a certain level of uniformity, called convergence.

A gene is said to have converged when 95% of the population share the same value [7]. The population is said to have converged when all of the genes have converged. Figure 3.1 shows how fitness varies in a typical GA. As the population converges, the average fitness will approach that of the best individual [4].

Figure 3.1: Convergence of a typical GA run [4].

3.1 Why GAs work

So far the explanation of GAs has been limited to the description of their function- ing and their general structure. Another thing, more complex from a theoretical point of view, is the description of why GAs work. Although there is no general agreement on a theory that can explain why GAs have the properties they do, several hypotheses have been suggested that may explain their success. The one that will be briefly treated here is one of Holland’s core ideas and it is called the schema theorem.

3.1.1 The schema theorem

Holland introduced the schema theorem [10] to formalize the notion of "building blocks". A schema is a set of bit strings that can be represented by a sequence of zeros, ones and asterisks. The asterisks represent the symbol that matches

(27)

anything (either zero or one).For example, the schema H = 1 * * * * 1 represents the set of all 6−bit strings that begin and end with 1. A schema defines an hyperplane in the space of l -bits length strings, and therefore usually called with the letter H. Any string that matches the template is said to be an instance of the schema H. A schema comes with the notion of defining length, that is the distance between its outermost defined (not asterisks) bits. The schema theorem explains how schemas are processed in GAs. It was already mentioned in the general description of the algorithm, that individuals are given opportunities to reproduce. An individual is selected to become a parent according to a probability that is proportional to its fitness. Thus, the better individuals contribute more of their genes to the next generation. One of the underlying assumptions is that a high fitness chromosome should contain good schemas. By passing more often good schemas to the next generation, the probability of finding even better solution tends to increase. Holland showed that the optimum way to explore the search space is by having the probability of breeding proportional to the fitness value but relative to the rest of the population. In this way, good schemas receive and exponentially increasing number of chances in successive generations [4]. Holland also showed that the GAs are implicitly processing more schemas than the ones actually present in the population. If n is the population size, the number of schemas totally processed is of the order of n3. This property is known as implicit parallelism, and is one of the explanations for the good performance of GAs.

(28)

Chapter 4

Solution of the Optimization Problem

In Chapter 2 the formulation of the optimization problem has been treated. In this chapter, the focus will be given to the steps leading to the resolution of such problem. Finally, an implemented tool to help visualizing the solution will be presented. In order to solve the path placement problem the following steps are required:

• Initialization: in this phase the desired path has to be defined, along with the maximum velocity and acceleration allowed. Moreover, during the initialization the robot parameters have also to be provided. These essentially consist in joint limits and link lengths. Finally, the robot working envelope has to be specified;

• Iteration & Evaluation: once the working envelope and the path are defined, the trajectory is evaluated throughout the space around the robot.

To do so, for each desired location in the working envelope inverse kine- matics and inverse dynamics have to be performed. After these two tasks are evaluated, the energy consumption is calculated and associated to the current position.

• Visualization : after all the points of interest have been evaluated and associated to an energy value, the final step consists into representing these solutions with help of a 3D environment. The representation has to give a sense to the user on which are the regions that are most suitable to perform the task.

4.1 Path Tracking

The path tracking section is the part of the algorithm in charge of calculating joint values and torques to make the robot follow the specified trajectory.

(29)

Among other things, the algorithm checks if the path is feasible and can actually be performed. A path is feasible when, given orientation and initial and final positions, it is possible to move along it maintaining the requested orientation and maximum velocity. For instance a straight line path won’t be feasible if one of the point in the line is a singularity. Due to the singularity, the robot won’t be able to fulfill all constraints in position and orientation that define the path. Another case is when the path exceeds one or more joint limits.

To check if a set of configuration can be tracked, the program uses the joint limits and their maximum velocities. These information are stored in a XML file, containing also data regarding the link lengths, their center of masses with respect to the base frame of the robot, together with the moments of inertia for each link. As long as the format of the XML is preserved, the same path could be given as input for different robots and in general could be evaluated for each one of them. In Chapter 2 it was shown the cost function that the framework aims at minimizing. In some sense that cost function can be considered "global"

because the minimum is with respect to the set of possible values of the decision variables vector x. The path tracking algorithm operates for a single instance of x at a time. For a single combination of the decision variables, however, the number of possible solutions to the path might be multiple. It means that the robot is able to track the path and fulfill all constraints with different sets of joint values. In order to solve the global optimization problem, the configuration that the algorithm selects will be the one consuming the least compared to the others.

It still has to be noticed that the solution chosen is for the single instance, so assigned to a single point of the working envelope. The cost function presented in the previous chapter will be solved only when all points in the working envelope have been evaluated.

A diagram of the algorithm steps and data flow is shown in figure 4.1.

Path preparation consists in the definition of robot, path and working envelope data. It corresponds to the initialization step described at the beginning of this chapter.

The path definition consists in setting the maximum velocity and accelera- tion, the initial and final positions and finally the interpolated trajectory. For the working envelope maximum and minimum values of x,y and z have to be set. These values will specify, w.r.t. the base of the robot, the volume that has to be taken into account for the solution of the path placement problem. The working envelope will then constitute the set of all possible locations that can be evaluated. The definition of the robot finally consists of the parameters of the dynamic model such as inertia tensors, center of gravity coordinates and masses.

In addition to those parameters, in the XML files are also stored the kinematic constraints of the robot such as speed limits of each joint and also their maxi- mum and minimum reachable angles. To summarize, all the data contained in the XML of the robot are passed to the program, and so are also the trajectory points with their associated time instants. It is theoretically possible not to provide in

(30)

4.1 Path Tracking 29

Figure 4.1: Diagram of the path tracking algorithm.

input the final trajectory, and so letting the program interpolate the path defined only by some interesting points. The algorithm is at the moment very limited in terms of interpolation options and only allows for paths made of straight lines.

However, as already mentioned in Chapter 2, the way the path and its trajec- tory are specified at the beginning is not important. The path may very well be provided by a more sophisticated interpolation algorithm. Nonetheless the aim of the path tracking algorithm remains the same: performing inverse kinematics, dynamics and selecting the desired set of joint configurations (the one consuming less energy).

Once the trajectory has been provided and the robot data have all been stored, it is possible to perform the inverse kinematics for each point of the path. In general, the inverse kinematic problem for a 6 dof manipulator has up to 8 solutions (for a better explanation please refer to Appendix A).

After the inverse kinematics, a list of configurations for each point is created and it is in this moment that geometric constraints have to be applied. The first geometric constraint that has to be satisfied regards the joint limits. For each configuration, each joint angle cannot exceed its nominal interval so that it is always between the minimum and the maximum specified in the robot data file.

If one joint is not fulfilling its constraints, then the whole configuration will be discarded because it is considered unreachable. All the configurations left will be subjected to the second geometric constraint, regarding the maximum joints’

velocities. This is done by checking that from a point to the next one, since the

(31)

time interval is known from the trajectory, the velocity of each joint is between the nominal boundaries. As a result, the robot will keep the same configuration, if feasible, along the whole trajectory without switching abruptly to another one while tracking the path.

When the geometric constraints have been satisfied, the configurations are grouped into solutions and then passed to the part in charge of performing the inverse dynamics. The method used is the Newton-Euler due to its computational efficiency. Please refer to Appendix B for an explanation of the method and the equations involved. For the time being it is sufficient to say that the method involves two steps called forward and backward recursion.

After these steps have been completed, the subsection returns six joint torques for each point of the trajectory. With the torques it is then possible to calculate the total energy associated with the current solution. Once each feasible set of joints’ configuration have been analyzed, the algorithm selects the one consuming the least and returns the list of torques for the whole trajectory. This means that during the path placement, the path tracking algorithm is making sure that for each point where the trajectory is translated and evaluated, the solution consuming the least total energy is chosen and assigned to that point. In the next paragraph it will be shown how the path placement algorithm works and its relation with the algorithm just explained.

4.2 Path Placement

The previous section described the needed steps in order to calculate the energy consumption of the robot for one location of the working envelope. The reader may remember that energy efficient path placement aims at finding the location of the path inside the working envelope with the lowest energy consumption.

Therefore it will deal with every point within such volume, and all of them will go through the steps described in section 4.1. The path tracking algorithm is thus used recursively for each point in the working envelope. This is why path placement algorithm may, to some extent, be considered as the core of the whole approach.

This because it is here possible to define the method for exploring the working envelope, specify the resolution for searching the solution. Most importantly, it is here where the cost function is defined along with the optimization indexes.

This algorithm is not uniquely based on finding the absolute minimum within the space around the robot, but it also tries to help the user visualize the good areas from the bad ones. Besides, the initial position for the trajectory corresponding to the actual minimum might be unfeasible for the task comprehensive of also auxiliary equipment. In other words, the robot may be able to perform the task itself, but it might be impossible for eventual auxiliary tools to fit around the robot due to an uncomfortable location of the path. This example is rather

(32)

4.2 Path Placement 31

situational, but it helps understanding the need of visualizing all evaluated points, rather than a single result consisting in the location of the optimum.

This section is divided in two parts. In the first one the discrete approach will be described. In the second section the focus will instead be for the genetic algorithm method. The differences and the advantages that this approach brings will be briefly discussed. To this matter, some more considerations and insights are provided in Chapter 6.

4.2.1 Discrete Path Placement (DPP)

This method is referred to as discrete to stress the fact that the result heavily depends on the resolution parameter that can be set. To not mislead the reader, the other approach is still exploring the space dividing it into samples - continu- ously would be impossible for obvious reasons besides pointless - but it is freed of its dependency from the sampling step in some sense. For the moment, the focus will be on the pros and cons of this approach.

The working envelope is sampled uniformly, creating a grid, with the number of points depending on the resolution. This means that there are no special areas in the working envelope. In other words, there are no points around the robot that are preferred to others, and all three dimensions are sliced according to the resolution and all points treated like possible solutions.

It is understandable that, according to the type of task that is given in input, some zones around the robot might be meaningless to explore. However, this approach treats every point equally, regardless of the type of shape the path has.

For the very same reason, the energy point cloud produced as a result from this approach will explicitly reveal the areas in which the task cannot be performed.

This because during the execution the algorithm tried to perform the task for all those points, that in the end were not satisfying one or many of the constraints.

An example of the grid produced is showed in the following figure:

This method is thus providing more help to the user in visualizing the overall energy consumption around the robot. The direct drawback is that it might take some time to perform the evaluation for all those locations, especially when the resolution desired becomes very high.

With this method, finding the minimum - or better, increase the confidence with which it can be stated that the optimum found is the minimum - is directly related to the resolution used. To be sure that the algorithm is spanning the space with a satisfactory level of detail, it is necessary to increase the resolution but making the whole procedure much more time consuming. Besides, if the user is only interested in finding the location where the minimum energy consumption occurs, all the other points are unnecessary, and the approach needs to be changed.

(33)

Figure 4.2: Example of 3D environment for the grid approach.

4.2.2 Hybrid Genetic Algorithms (HGA)

The following approach tries to find a trade-off between the need of a satisfactory resolution for the energy visualization, and the need to find the optimum as close as possible to the actual minimum in the working envelope.

The method is referred to as hybrid because it is using Genetic Algorithm (GA) techniques to search for the minimum, starting from the grid of points obtained by the discrete approach. To better understand the reason why GA can help find the minimum, let us briefly describe how they work. The reader can refer to Chapter 3 for more detailed insights about their functioning.

GA is search heuristic that mimics the process of natural selection. This heuristic is routinely used to find solution to optimization and search problems [16]. It randomly samples the search space first to create a uniform collection of possible solutions. This initial set is usually called population, or genotype.

Each element of the set, so a member of the population, is called chromosome.

The chromosomes possess attributes, called genes, that represent the decision variables of the optimization problem taken into consideration. Solutions differ from one another for the values of their genes.

From the initial genotype, GA applies techniques called mutation and crossover

(34)

4.2 Path Placement 33

to generate new solutions from the ones already in the population. Each chro- mosome is given a fitness value that identifies it as better or worse than another solution in the population. How the fitness value is calculated, depends on the optimization problem, typically related to the cost function. After several evo- lution steps, in which mutation and crossover are applied repeatedly, the fittest chromosome is preserved. The mutation techniques operate in a way that tends to preserve the chromosomes with the highest fitness and favors their evolution.

This peculiarity of the genetic algorithms helps overcome the problem stated in the last section about all the points that are unnecessarily evaluated in the work- ing envelope. In other words, there are areas that will have a higher concentration of points with high energy consumption. The GA will tend to explore less those areas because the chromosomes located there will all have a very low fitness value.

Therefore, other things being equal, the resultant map will be biased towards the good areas, having more points evaluated than some others.

Another advantage brought by the GA approach concerns the resolution. Since the chromosomes are randomly generated by mutation, the resolution does not have to be specified, because there is not clear definition of space step. This means that only the boundaries of the working envelope are specified, but the points sampled don’t have to respect a pattern. In Figure 4.3 it is possible to see an example of a map obtained by the GA approach alone. A detailed description of some of the peculiarities of this visualization is provided in Chapter 5 when the three approaches are discussed and analyzed. For the time being, it is sufficient to know that the GA initial population is completely randomly sampled from the working envelope, and then each sample evaluated and eventually evolved.

In Figure 4.4 the flowchart of the GA structure is depicted.

Starting from an initial population, that is randomly generated, the algorithm calculates the transformation matrix to represent the points with respect to the base frame. Each individual of the population is a unique point with its own vector x, which contains the decision variables used to translate the trajectory given in input to the framework. The trajectory is translated because the starting position of the path has to be the one indicated by the decision variables of x. Once the path points have been changed accordingly, the inverse kinematics (INV Kin) and inverse dynamics (INV Dyn) are performed, and the constraints are applied. After that, if the path is trackable, a total energy consumption is assigned (Evaluation) to the vector x and consequently to the point in the working envelope.

The GA approach is, as mentioned before, an heuristic. Therefore, there is no certainty that it will find the absolute minimum, but it will hopefully converge to it, by returning a so-called sub-optimum. That is the reason why a parameter indicating the maximum number of allowed iterations has to be set. In other words, the algorithm will run until the maximum number of evolutions has oc- curred or another event takes place. The latter case is usually a smart way to stop prematurely the evolution because the fitness is no longer improving, and it

(35)

Figure 4.3: GA Map for a Test Square Path

is called early stop.

If the maximum number of iterations has not been reached, then population is increased by means of reproduction, and new individuals are obtained with cross over and mutation. These techniques essentially mix the genes of the chromo- somes (the individuals) in order to obtain new ones that will hopefully increase the fitness of the best individual in the genotype. If the evolution was to run in- definitely, the best individual found would be allowed to reproduced to the point in which the population will contain N copies of the same chromosome.

That is why at the end of each evolution, the population is observed to check whether the fitness has increased. If the fittest chromosome is not sufficiently better than the one in the previous population, then the algorithm exits the loop and returns the result.

In some sense it can thus be said that the second column of the flowchart is the part concerning the GA, while the right column of the diagram refers to the normal functioning of the algorithm. The GA changes the way the next point (or set of points) is selected to be then evaluated.

Moreover, it has to be pointed out that this algorithm scheme is also describ-

(36)

4.2 Path Placement 35

Initial Population x = [xOp yOp zOp]

Transformation Matrix Tpb

Trajectory translation of x

Constraints, INV Kin, INV Dyn

Evaluation

Max.

Iteration

Final population

Get Fittest Chromosome

Reproduction

Cross Over

Mutation

Early Stop?

(Evolve current genotype) (New vectorsx)

y y

n

n

Figure 4.4: Flowchart of the GA

ing the hybrid approach, since it adopts the genetic algorithm evolution. The difference is in the initial population, which however does not affect the flowchart representation.

Summarizing, the GA are better at finding the minimum since they are not constrained by the resolution value. On the other hand, the discrete approach is able to give the user a better sense of the overall energy consumption. The step required to merge the two method is trivial. Instead of randomly sample the space to generate the initial population for the GA, the genotype is taken from the grid produced by the discrete method with a suitable resolution.

The genotype is then used as a pool of initial chromosomes to then explore further the solution space in order to find a better optimum within the working envelope.

It has to be mentioned that, during the evolution of the population, a method called early stopping is used. It means that, even though a maximum number of evolution steps has to be specified, the mutation process is stopped prematurely if the fitness function is not improving enough. This is a well known technique to

(37)

prevent from executing several time consuming iteration without improving the goodness of the final solution.

In the following section the attention will be moved on the 3D environment where the final result will be displayed.

4.3 Path Placement Tool

In order to help the user visualize the solution to the path placement problem, a Java 3D application has been developed. To set the parameters of path, working envelope and robot in a handy way, a user friendly interface has been implemented and shown below:

Figure 4.5: User interface

At the moment, the user can choose to run the simulation for two models of robot, setting all valuable parameters of working envelope and path. Two types of path are available: straight line and squared path. However, the tool has been structured in order to ease its extension for new types of robot and path in the future.

4.3.1 The Scene Graph

The scene graph is the structure that holds information about the scene, including the geometric data, the appearance definition and the viewing parameters. The following figure shows the scene graph of the implemented Java 3D application.

(38)

4.3 Path Placement Tool 37

Figure 4.6: Structure of the 3D environment

As can be seen from Figure 4.6, the scene graph contains two main Branch- Group objects called content branch and view branch. The focus will be given to the first one, as the view branch stores only the definitions of the view parameters.

The content branch contains the actual 3D content of the scene. Each element is placed in the desired location through the use of TransformGroup objects. In this application, each feasible starting position of the path under analysis will correspond to a Sphere object. The sphere will be located at the coordinates of the first point of the interpolated path. In order to give an intuitive idea about the energy consumed by the robot in that location compared to the others, a color will be assigned to each sphere. If the energy consumption is moderate, the sphere will be colored in green. On the contrary, if the energy consumption is high, red color will be set to the sphere. Shades of these colors will be assigned to intermediate cases. To summarize, the environment will contain the following elements:

• reference frame, in order to give a sense to the user of where all the objects are placed with respect to the origin of the 3D world;

• robot 3D model;

• energy point cloud, i.e. the composition of the spheres representing the feasible locations for the considered path inside the working envelope.

(39)

A snapshot of the 3D environment developed is shown in the figure below:

Figure 4.7: Snapshot of the 3D environment

To go into detail on the structure of the view branch and other elements of the universe please refer to Appendix C.

4.3.2 Energy-Color Mapping

As introduced before, the appearance of each sphere is in charge of giving a sense to the user about where is best to perform the trajectory. This is done by first defining ranges of energy value and then assigning a different color to each one of them. Every sphere will have an associated energy value, corresponding to the energy the robot will consume performing the path starting from the same position the sphere is located. It is possible to imagine all energy values lying on an axis called energy axis. If the propagation of values along the axis is uniform, defining ranges by dividing the axis in portions of the same width is enough to obtain a proper distribution of colors between the spheres. Unfortunately, what happens in practice is that most of the values lie close to the minimum energy value. Only some of them have higher values than the others and they are due to the following two reasons:

• closeness to kinematic singularities while performing the path in some lo- cations of the working envelope;

• distance of the location of the path from the robot itself, corresponding to higher values for the inertia. The robot will thus need more power to perform the trajectory and this will lead to a higher overall energy con- sumption.

(40)

4.3 Path Placement Tool 39

Hence, defining ranges all with the same width would lead to a situation in which most of the values end up in the first ranges. In other terms, the user would see the majority of the spheres colored in green. He would then misread the solution of the path placement problem, thinking that the path location does not influence that much the energy consumption of the robot. This situation is shown in the figure below:

RGB 0, 255, 0

RGB 127, 255, 0

RGB 255, 255, 0

RGB 255, 127, 0

RGB 255, 0, 0

Figure 4.8: Energy axis with constant width ranges

It is possible to overcome this issue by implementing clustering. Clustering is the most common unsupervised learning algorithm. Given a set of unlabeled data points, its goal is to group them into clusters so that points within each cluster are similar to each other, points from different clusters are dissimilar. Usually, similarity is given by means of a distance measure. What is obtained is that spheres whose energy values are really close to each other will be grouped in the same cluster. In general, the number of clusters, i.e. the number of colors, is not specified. It is job of the algorithm to decide it. However, since the number of colors has an important role in the visualization of the path placement solution, in this application the number of clusters has been defined prior running the clustering algorithm. More precisely, the number of clusters has been set equal to five and the corresponding colors are the ones whose rgb code is showed in Figure 4.8. As easily deductible, the higher the number of cluster is, the more is the time needed by the clustering algorithm. At the same time, The lower the number of colors is, the worse the visualization of the solution will be. The number of clusters has come up by trading off time performances of the algorithm itself and a good visualization of the solution to the path placement problem.

With this technique, the axis could end up partitioned as showed in the following figure:

Figure 4.9: Energy axis with adaptive width ranges

This approach solves the aforementioned issue and does not lead to misread- ings from the user. For a detail description of the implemented clustering algo- rithm please refer to [31] in the bibliography.

(41)
(42)

Chapter 5 Results

This chapter deals with the analysis of the results of the simulation for different paths. First, the solution of the path placement problem will be described with the help of the implemented Java application. Then the quality of the results will be evaluated by comparing them to the values obtained with RobotStudioTM.

5.1 DPP vs GA

The following figures show the two test paths that have been used for the analysis:

40cm

Figure 5.1: Linear Path

(43)

Figure 5.2: Squared Path

The first one is a linear path while the second one is a square path, i.e. a concatenation of 4 different linear paths in order to define a square in space. A 3D path placement visualization has been generated for both test paths for DPP and GA approaches. The technical specifications of the simulations are listed in the following table:

DPP Specifications Spacial resolution 0.05 m

GA Specifications Initial population 500

Max allowed

evolutions 500

Fitness improvement

monitor 0.1 J

Table 5.1: DPP and GA technical specifications

Figure 5.3 shows the solution obtained by applying the Discrete Path Place- ment method for both the test paths. As previously stated in Section 4.2, discrete path placement samples the working envelope uniformly, with number of points depending on the resolution defined by the user. This concept becomes clear by looking at the figure above. The distance between all spheres is constant and equal to the resolution. The higher the resolution is the more dense the cloud will become, and the more accurate the solution will be. When the aim is to get a general understanding of the variation of the energy consumption inside the working envelope, this approach is ideal. As an example, the figure shows

(44)

5.1 DPP vs GA 43

Figure 5.3: Discrete path placement for linear path and squared path

that locating the linear path right in front of the robot is more convenient than locating it on its sides. It also shows that there is an entire region behind the robot where the robot would not be able to perform it. This region becomes even wider in case of the square path. However, the optimum of the map is strictly dependent on the resolution step. With a very high resolution, the time to gen- erate the solution drastically increases but so does the accuracy with which the minimum is located.

Figure 5.4: Genetic algorithms for linear path and squared path

The figure above shows the solution obtained by implementing Genetic Algo- rithms. The considerations made for the case above cannot be done by looking

References

Related documents

Efficiency curves for tested cyclones at 153 g/L (8 ºBé) of feed concentration and 500 kPa (5 bars) of delta pressure... The results of the hydrocyclones in these new

pedagogue should therefore not be seen as a representative for their native tongue, but just as any other pedagogue but with a special competence. The advantage that these two bi-

You suspect that the icosaeder is not fair - not uniform probability for the different outcomes in a roll - and therefore want to investigate the probability p of having 9 come up in

DATA OP MEASUREMENTS II THE HANÖ BIGHT AUGUST - SEPTEMBER 1971 AMD MARCH 1973.. (S/Y

Alexander Oskarsson ( Länsstyrelsen Västra Götaland; Arbetsförmedlingen caseworkers and administrators: Jack Jarschild ( came up with concept for labor market geared supplementary

JPMC to negotiate military elements while having peace negotiations continue; the representation in the government delegation to Arusha of the major power groupings in Kigali

Object A is an example of how designing for effort in everyday products can create space to design for an stimulating environment, both in action and understanding, in an engaging and

The demand is real: vinyl record pressing plants are operating above capacity and some aren’t taking new orders; new pressing plants are being built and old vinyl presses are