-
A Universal Control Architecture for Maritime Cranes and Ro
botsUsing Genetic Algorithms as a Possible Mapping Approach
F. Sanfilippo, L. I. Hatledal, H. G. Schaathun, K. Y. Pettersen
and H. Zhang
Abstract— This paper introduces a flexible and general con-trol
system architecture that allows for modelling, simulationand
control of different models of maritime cranes and,more generally,
robotic arms by using the same universalinput device regardless of
their differences in size, kinematicstructure, degrees of freedom,
body morphology, constraintsand affordances. The manipulators that
are to be controlledcanbe added to the system simply by defining
the correspondingDenavit-Hartenberg table and their joint limits.
The models canbe simulated in a 3D visualisation environment, which
providesthe user with an intuitive visual feedback.
The presented architecture represents the base for theresearch
of a flexible mapping procedure between a universalinput device and
the manipulators to be controlled. As acase study, our first
attempt of implementing such a mappingalgorithm is also presented.
This method is bio-inspired andit is based on the use of Genetic
Algorithms (GA). Using thisapproach, the system is able to
automatically learn the inversekinematic properties of different
models.
Related simulations were carried out to validate the
efficiencyof proposed architecture and mapping method.
I. INTRODUCTION
In the maritime field, even though the operating environ-ment
can be very challenging, it is still quite common touse relatively
simple control interfaces to perform offshorecrane operations. In
most cases, the operator has to handle anarray of levers, throttles
or buttons to operate the crane jointby joint. Moreover, each input
device can normally controlonly one specific crane model. When
considering working ef-ficiency and safety, this kind of control is
extremely difficultto manage and extensive experience with high
control skilllevels is required of the operators. Therefore, low
controlflexibility and non-standardisation are two crucial
issuesofthe current maritime crane control architecture that need
tobe overcome.
Robotic arms and cranes are very similar in the way theyoperate
and in the way they are designed. Both have a num-ber of links
serially attached to each other by means of joints
This work is supported by the Innovation Programme for
MaritimeActivities and Offshore Operations (MAROFF) which is
promoted by theResearch Council of Norway.
F. Sanfilippo, L. I. Hatledal and H. Zhang are with the
Depart-ment of Maritime Technology and Operations (Avdeling for
Maritimteknologi og Operasjoner), Aalesund University College
(Høgskolen iAalesund), Postboks 1517, 6025 Aalesund, Norway,[fisa,
laht,hozh]@hials.no.
H. G. Schaathun is with the Department of Engineering and
NaturalSciences (Avdeling for ingeniør- og realfag), Aalesund
University Col-lege (Høgskolen i Aalesund), Postboks 1517, 6025
Aalesund,Norway,[email protected].
K. Y. Pettersen is with Department of Engineering Cybernetics,
Nor-wegian University of Science and Technology, 7491 Trondheim,
Norway,[email protected].
that can be moved by some type of actuator. In both systems,the
end-effector of the manipulator can be moved in spaceand be placed
in any desired location within the system’sworkspace and can carry
a certain amount of load. However,traditional cranes are usually
relatively big, stiff and heavybecause they normally need to move
heavy loads at lowspeeds, while industrial robots are ordinarily
smaller, theyusually move small masses and operate at relatively
highervelocities. This is the reason why cranes are
commonlyactuated by hydraulic valves, while robotic arms are
drivenby servo motors, pneumatic or servo-pneumatic actuators.Most
importantly, the fundamental difference between thetwo kinds of
systems is that cranes are usually controlledby a human operator,
joint by joint, using simple joystickswhere each axis operates only
one specific actuator, whilerobotic arms are commonly controlled by
a central controllerthat controls and coordinates the actuators
according to somespecific algorithm. In other words, the controller
of a craneis usually a human while the controller of a robotic arm
isnormally a computer program that is able to determine thejoint
values that provide a desired position or velocity forthe
end-effector.
Maritime cranes, compared with robotic arms, rely on amuch more
complex model of the environment with whichthey interact. These
kinds of cranes are in fact widely usedto handle and transfer
objects from large container ships tosmaller lighters or to the
quays of the harbours. Therefore,their control is always a
challenging task, which involvesmany problems such as load sway,
positioning accuracy,wave motion compensation and collision
avoidance.
In this paper, a general architecture is presented that
allowsfor modelling, simulation and control of different models
ofmaritime cranes and, more generally, robotic arms by usingthe
same universal input device. The main challenge of doingthis
consists of finding a flexible way to map the fixed de-grees of
freedom of the universal input device to the variabledegrees of
freedom of the cranes or robots to be controlled.This process has
to be realised regardless of their differencesin size, kinematic
structure, body morphology, constraints,affordances and similar.
The presented architecture allowsfor designing and testing
different mapping procedures. Asa case study, our first attempt at
implementing a mappingmethod is also presented. This method is
based on the useof Genetic Algorithms (GA) [1] and using this
approach, thesystem is able to automatically learn the inverse
kinematic(IK) properties of different models.
Note that, since the main focus of this preliminary workis on
building the control architecture, all problems related
-
to rope pendulations or wave impacts on the payload arenot
considered in this paper but they can be included in themodel at a
later stage.
The paper is organised as follows. In Section II, a reviewof the
related research work is given. In Section III, we focuson the
description of the system architecture and, as a casestudy, our
first attempt of implementing a flexible mappingmethod is also
presented. In Section IV, related simulationresults are shown. In
Section V, conclusions and future worksare outlined.
II. RELATED RESEARCHWORK
In existing literature, not much work has been done toovercome
the low control flexibility and non-standardisationproblems for the
current maritime crane control architec-ture. Lebans et al. [2]
proposed a tele-robotic controlledhandling system operated by an
intuitive controller. In [3],Li and Wang presented a visual
simulation system for ashipborne crane. The system can realise the
visual simulationfor trajectory-planning, joint control and dynamic
analysis.However, most of these previous studies only concern
thecontrol of a specific crane/arm. Very little work has beendone
regarding the possibility of controlling different armsby using the
same input device.
In [4], our research group presented a modular prototypingsystem
architecture that allows for modelling, simulationandcontrol of
different robotic arms by using theBond GraphMethod. The main
drawback of this approach is that thecomplexity of the system tends
to rise when considering alarge number of degrees of freedom.
A common assumption in all these previous works isthat the IK
model of the arm to be controlled is a prioriknowledge.
Classically, this assumption enables researchersto either introduce
analytical methods, which offer exactsolutions for simple kinematic
chains, or propose solutionsbased on numerical methods. However,
when consideringarms with redundant degrees of freedom, the inverse
kine-matics can have multiple solutions, and therefore
singularityproblems could arise. In addition, this method is not
veryflexible, especially when planning to control different
armsusing a universal input device because several IK modelsare
needed: one for each arm or crane to be controlled. Analternative
solution to the problem might consist of usingmethods that do not
assume a priori knowledge for theIK model of the arm: a solution
that derives its kinematicproperties from a machine learning
procedure. In this way thesystem would be able to automatically
learn the kinematicproperties of different arms and new models
could also beeasily added.
During the last few years, there has been increasinginterest
regarding research on learning algorithms and manyefforts have been
made to understand how to apply thistechnology to various control
problems. In particular, severalGA models have been developed by
applying biologically-inspired control mechanisms to robot control
tasks. Zhanget al. [5] proposed an approach for a robot inverse
velocitysolution using GA. The authors used the principle of
robot
motion propagation from link to link to find the
robot’srecursive velocity formula, which then was used to
determinethe fitness function. Tabandeh et al. [6] used a GA
approachto solve for multiple solutions of inverse kinematics
usingadaptive niching and clustering. The niching method wasused to
modify the GA fitness value to encourage conver-gence around
multiple solutions in the search space. Theauthors concluded that
the proposed algorithm could begeneralised to solve the IK problem
of a robot with unknownDOF and configuration, and that the method
worked withgood precision and speed.
On the other hand, most of these intelligent systems areonly
able to learn the control of a specific crane/arm. Atthe moment, it
is not possible to use a common universalinput device to control
various cranes/arms with differentkinematics. Moreover, most of
these works require the sameDOF for both the input device and the
model to be controlled.In other words, the controlling device has
to have the samekinematic structure of the controlled model.
III. SYSTEM ARCHITECTURE AND CASE STUDY
A. Architecture
Since the main focus of this work is on building a
universalcontrol architecture for different models of maritime
cranesand, more generally, robotic arms, a generalised
manipulatormodel is considered. The generalised model consists of
akinematic chain that can be controlled by setting the positionor
the velocity of the joints.
From a kinematic point of view, the end-effector of anoffshore
crane usually consists of a wire which is used tolift and transfer
objects, while robotic arms are commonlyequipped with more complex
devices like grippers or tools.In a wider sense, in both cases, the
end-effector can be seenas the part of the manipulator that
interacts with the workenvironment and it may be modelled as part
of the samekinematic chain. The proposed architecture, however,
alsoallows the end-effector to be modelled as a distinct
sub-chainthat can be controlled separately. So, in general, a
mappingcontrol method may or may not consider the control of
thewhole manipulator. Decoupling the model of the end-effectorfrom
the model of the manipulator can, in some cases, greatlysimplify
the mapping control algorithm since the complexityof the system
generally increases more than linearly with thenumber of DOF.
With simplicity in mind, in this simplified model, thenature of
the crane actuators - whether they are hydraulic,pneumatic,
electric or mechanical - is not considered, but itmay be included
in the model at a later stage.
The proposed control system architecture is shown inFig. 1. It
is a client-server architecture with the input devicerunning as a
client and communicating with a server wherethe logic of the
control algorithm is implemented. The con-trolled arms are
simulated in a 3D visualisation environment,which also acts as a
client and provides the user with anintuitive visual feedback. With
the information provided bythe visual feedback, the operator has a
better sensing of the
-
Visualization environmentD-H table 1
Universal input device
Operator
Client
Mapping control
algorithm
!"#$%&'())*+%,-
./0)1)23#
Manipulator 1
Manipulator 2
Manipulator 3
Manipulator n
444
D-H table 2
D-H table 3D-H table n
444
Workspace scaling Gripper/last-
sub-chain
control algorithm
Server
444
Fig. 1. The proposed control system architecture: a
client-server architecture with the input device running as a
client and communicating with a serverwhere control algorithm logic
is implemented.
working area and can easily drive the end-effector of thecrane
into the target position.
The control objective is that when the operator makesa movement
such as lifting, handling, transportation orother manipulations by
using the universal input device,the controlled robot should make
an analogous motion. Theproposed architecture provides the
possibility of controllingthe arms in position mode or velocity
mode. The userexperience is substantially different in each case.
When usingthe position control mode, the operator simply controls
theposition of the tip of the crane with constant velocity;
whenoperating in velocity control mode, the operator also setsthe
velocity of the end-effector by using the universal inputdevice. In
the first case, when the operator releases the inputdevice, the tip
of the crane moves back to its starting point,while in the second
scenario, the crane just stops moving butit keeps the last given
position.
To realise these two possible operation modes, when theoperator
manoeuvres the manipulator, a vector signal withno semantic,s, is
sent from the universal input device to theserver. Here, according
to the operation scenario, the vectorsignal is interpreted as the
desired positionxd or the desiredvelocity vectorẋd.
Additionally, in order to adjust the size of the inputdevice’s
workspace to the arm to be controlled, a scalingfactor is
introduced to calculate the coordinate of the pointto be reached.
In fact, the input device and the robotsto be controlled have
generally very different sizes and,consequently, very different
workspaces. The proposed ar-chitecture allows for expanding and
shifting the small-scalephysical workspace of the input device to a
virtual expandedworkspace allowing the robot arm for more accurate
andprecise movements. In particular, referring to Fig. 2
anddenoting the reference frame of the input device’s
physicalworkspace withOi , the reference frame of the input
device’svirtual workspace withOv, and the reference frame of
themanipulator workspace withOw, the desired scaled position,xds,
is calculated as follows:
xds= kpxd + xw, (1)
Input device virtual workspace
Input devicephysical workspace
xi yi
zi
xv yv
zv
xw yw
zw
xds
kp xd
xw
Oi
Ov
Ow
Fig. 2. The proposed architecture allows for expanding and
shifting thesmall-scale physical workspace of the input device to a
virtual expandedworkspace, thus giving the robot arm the ability to
make moreaccurate andprecise movements.
wherekp is the position scaling factor andxw is a shiftingvector
that defines the position of the virtual reference framewith
respect to the global reference frame. Similarly, thedesired
velocity vector can also be scaled to allow theoperator to execute
slower or faster movements accordingto the task to be accomplished.
The desired scaled velocityvector, ẋds, can be obtained as
follows:
ẋds= kvẋd, (2)
where,kv is the velocity scaling factor.Then, according to the
desired mode of operation, the
mapping control algorithm parses those values to the
desiredjoint anglesθd or desired joint velocitieṡθd of the
manipu-lator, respectively. Essentially, for all the different
models tobe controlled, the mapping methods have to implement
theclassic inverse kinematic functions that can be generalisedas
follows:
θd = f−1p (xds), (3)
concerning position control, and
θ̇d = f−1v (θa, ẋds), (4)
-
for velocity control, whereθa is the the actual joint
anglesvector.
The calculated desired joint anglesθd or joint velocitiesθ̇d are
then forwarded from the server to the visualisationenvironment in
order to actuate the crane model. As feedbackfrom the visualisation
environment, the actual joint angles θaand actual joint
velocitieṡθa are sent back to the server andcan be used by the
control mapping algorithm.
Note that the proposed architecture allow for implement-ing
different mapping methods. Each mapping control algo-rithm has to
realise the mapping between the fixed degreesof freedom of the
universal input device and the variabledegrees of freedom of the
manipulator to be controlled. It isimportant that each control
algorithm be implemented as anindependent and interchangeable
module and that it satisfiesthe interface specified by the system,
(3) and (4), in order torespect the modularity of the proposed
architecture.
Another relevant feature of the proposed architecture isthat the
robot model can be separated from the controlalgorithm to be used.
In particular, no matter which controlalgorithm is used, the
manipulators to be controlled can beadded to the system simply by
defining their correspondingstandard Denavit-Hartenberg (D-H)
tables [7] and their jointlimits. Hence, by using the D-H method,
the system is ableto analytically auto-generate the forward
kinematic modelofthe arms to be controlled. However, even if this
approachprovides a fundamental tool to compute the position ofthe
end-effector from specified values for the joint
values,nevertheless, a mapping procedure to determine the
jointvalues that provide a desired position of the
end-effectoraccording to the universal input has to be developed.
Inparticular, as a case study, our first attempt of implementinga
flexible mapping method is presented in the next section.
B. Case study: a mapping method based on GA
The proposed mapping method is based on the use of amachine
learning algorithm. In particular, a continuous GAis employed to
automatically learn the mapping functions,(3) and (4), for the
manipulators to be controlled. Thisapproach only requires the
forward kinematic model. Notethat the same set-up of the proposed
algorithm is adoptedindependently of which manipulator is being
controlled andwhether the selected control mode is position or
velocity.Moreover, when controlling each specific manipulator
andonce selecting the particular control mode, the same instanceof
GA is continuously used; what differs are the semanticsand the size
of inputs and outputs.
The flowchart of the proposed algorithm is shown inFig. 3. It is
an iterative procedure and essentially, at eachit-eration, a
population of candidate solutions or chromosomesis evolved toward
better solutions according to a particularcost function. In the
following, the key steps of the algorithmare described.
1) Define genetic representation and cost function:ini-tially,
the genetic representation, the cost function and thetarget cost
are defined. In particular, each chromosome en-codes its own
properties or genes that consist of a set of joint
Define genetic representation and cost
function
Generate initial population
Find cost for each chromosome
Select mates
Crossover
Mutation
Convergence and time check
Acquire manipulator model, control mode and
target position
done
Present ouput
Fig. 3. Flow chart of the proposed mapping method.
angles,θg, constrained within their corresponding limits.
Thelength of each chromosome is equal to the number of jointsto be
controlled.
The fitness of every individual in the population is eval-uated
by using a cost function that assesses the Euclideandistance
between the target positionxt and the actual positionxa:
d(xt ,xa) = |xt − xa|, (5)
where, the actual position is calculated by using
forwardkinematics, while the target position depends on the
inputand it is given by:
xt = xds, (6)
if operating in position control mode, or by:
xt = xa+ ẋds∆t, (7)
if operating in velocity control mode, where∆t is the
timeinterval between two successive iterations.
2) Acquire manipulator model, control mode and targetposition:
the main iteration loop starts acquiring the propermanipulator
model and the control mode according to the op-eration scenario.
Moreover, the corresponding target positionis normalised according
to the workspace of the manipulatorto be controlled. This will
result in relating the cost functionto the corresponding
workspace.
3) Generate initial population:subsequently, an
initialpopulation of 125 individuals is randomly generated.
4) Find cost for each chromosome:the evolution process,which is
a sub-loop of the main loop iteration, starts fromthe initial
randomly-generated population and, at each gener-ation, the fitness
of every chromosome is evaluated according
-
to the previously defined cost function (5). Additionally,
anyindividual with genes that violate the corresponding jointlimits
gets its cost increased by a considerable factor. Thenthe
modification process of each individual’s genome startsin order to
form a new generation.
5) Select mates:the selection of candidates that will beused as
parents in the crossover process is obtained by usingthe stochastic
universal sampling method[8], which is afitness proportionate
selection method.
6) Crossover: the crossover function is defined as ahybrid
function that stochastically switches - with a 50%crossover
probability - between using a single-point and auniform crossover
method, to create new offspring from theselected parent
chromosomes.
7) Mutation: mutation may occur in a chromosome bystochastically
adding a random value of±5% to the valueof its genes. In
particular, there is a 0.5% mutation chancefor each gene.
Additionally, a form of elitism is also used and10% of the fittest
chromosomes survives unaltered betweengenerations. Note that, using
a form of elitism with 10%of the fittest chromosomes surviving
between successiveiterations and consecutive target positions makes
sense be-cause, since the operator executes continuous
movementswhile operating the manipulator, consecutive input
vectors,stochastically, do not differ much in terms of magnitude
anddirection.
8) Convergence and time check:this evolution processis repeated
until a termination condition is reached. Inparticular, the GA
population stops evolving and the fittestchromosome is returned
when the cost drops below 0.01or when the overall time spent
evolving the populationexceeds 100 ms. Note that, since the target
position isnormalised according to the workspace of the manipulator
tobe controlled and consequently the cost function is
somehowrelated to the latter, there will be a correlation between
thetarget cost and the considered model. In this way, a value
of0.01 as cost target results in being weighed and proportionateto
each specific workspace. A time limit of 100 ms allowsthe
population to reach a good level of evolution in thefirst few steps
of iterations without effecting the operatorexperience in terms of
perception. Moreover, after the firstfew iterations, the time limit
is stochastically seldom reachedfor target positions that are
located inside the boundariesofthe workspace.
9) Present output:the genes of the fittest chromosome arethen
presented as output. In particular, denoting these genesas θ f and
according to the operation scenario, the output isobtained as:
θd = θ f , (8)
when operating in position control mode, or as:
θ̇d =θ f −θa
∆t, (9)
when operating in velocity control mode.Note that, in this
specific case study, the control of the end-
effector’s orientation is not considered as part of the
mapping
algorithm but it can easily be included at a later stage
withoutaffecting the effectiveness of the presented architecture.
Inparticular, three extra input signals are used to set
theRoll-Pitch-Yawof the end-effector.
IV. SIMULATIONS AND EXPERIMENTAL RESULTS
In this preliminary study, a joystick fromLogitech, theExtreme
3d prowas used as a universal input device onthe client side. Each
degree of freedom of the joystickcorresponds to a translational
axis in the workspace of thecrane to be controlled. When operating
in position controlmode, the joystick works as a position
proportional replicawhose motion maps exactly to the motion of the
craneend-effector with constant speed, while, when operating
invelocity control mode, a movement of the joystick in aparticular
direction will produce a translational motion inthe same direction
at a velocity proportional to the joystickdisplacement. In both
cases, when the operator’s hand isremoved from the joystick, the
latter returns to automaticallyits starting point. Note that,
thanks to the modularity of thearchitecture, any other joystick or
input device can be usedwithout affecting the effectiveness of the
system.
From an implementation point of view, the logic of thecontrol
architecture lies on the server side, which is im-plemented by
using theJava programming language. Eachmanipulator to be
controlled is modelled as aJava classwhich embodies a D-H table, a
set of joints, a workspace asattributes and aSolver as an abstract
subclass. TheSolverabstract subclass has two methods
-positionSolverandvelocitySolver- which have the prototypes that
the mappingfunctions have - (3) and (4) respectively. The GA
mappingmethod described in the previous section is a
particularimplementation of thisSolver but new mapping methodscan
easily be added by simply providing a correspondingimplementation
of the same abstract subclass.
To speed up the developing process and to improve thereliability
of the system, several libraries were used. Inparticular,
theEfficient Java Matrix Library[9] was adoptedto add support for
matrix manipulations, while the Ge-netic Algorithm was implemented
by using theWatchmakerFramework for Evolutionary Computation[10].
Moreover,the manipulators to be controlled can easily be added to
thesystem by simply defining their corresponding D-H tablesand
their specific joint limits in aXML document.
Regarding the visualisation environment, in this prelim-inary
work, the game engineUnity3D [11] was used tovisualise the
different models. However, any other visu-alisation environment
could be used without affecting theeffectiveness of the proposed
architecture.
The system is based on a distributed structure and
thecommunication between client, server and visualisation
envi-ronment is realised by using theTCP/IPprotocol. This makesit
also possible to remotely control the different manipulators.
Related simulations were carried out in order to test
thearchitecture within the particular case study of the
proposedmapping method. In detail, a knuckle boom crane, which
is
-
(a)
X
Z
Y
__ target position
__ actual position
1.00 m
(b)
Fig. 4. The simulation of (a) the knuckle boom crane model
and(b) the trajectory tracking of its Cartesian paths in X, Y andZ
coordinates.
X
Z
Y
O 34.76%
# 10.55%
+ 54.69%
error < 0.01
error < 0.5
error > 0.5
1.10 m
(a)
X
Z
Y
O 37.49%
# 37.51%
+ 25.00%
error < 0.01
error < 0.5
error > 0.5
0.60 m
(b)
X
Z
Y
O 37.49%
# 37.51%
+ 25.00%
error < 0.01
error < 0.5
error > 0.5
0.80 m
(c)
Fig. 5. 3D Scatter plots showing error distribution for 512
equally-spaced target positions in the volume box that encloses the
workspace of (a) theknuckle boom crane model, (b) theSCARArobot and
(c) theKUKA youBotrobot.
shown in Fig. 4-a, aSCARArobot and aKUKA youBotrobotare modelled
and simulated.
For each of these models, a trajectory tracking analysisof the
Cartesian paths for X, Y and Z coordinates wasperformed and the
results for the knuckle boom crane modelare shown in Fig. 4-b.
Generally, the proposed system hasdemonstrated a quite fast
reaction to the inputs. However,this kind of test is
task-dependent.
In addition, for each of these models, an error
distributionanalysis was performed considering a set of 512
equally-spaced target positions in the volume box that encloses
theircorresponding workspace. For the three models considered,these
error distributions are shown in Fig. 5 as 3D scatterplots. It is
probable that the target positions at the boundariesof this
imaginary box are less reachable by the manipulatorsdue to their
joint constraints, which is why the correspondingerrors are
stochastically greater. However, even for thesepoints, the GA is
able to find the closest position match,thus avoiding potential
singularity problems.
V. CONCLUSION AND FUTURE WORK
Regarding the presented case study, the adopted costfunction
that is currently related to the workspace of thecontrolled model,
could be also be related, as future work,to the particular
manipulation task to be performed. Inparticular, the use of a
task-oriented cost function couldconsiderably improve the
performance of the system byallowing for heavier weighing of
selected tasks that requirehigher accuracy than others.
In the future, new mapping methods which also takeheave
compensation and swing related problems into accountcould also be
implemented and integrated allowing for betterflexibility and
reliability of the proposed framework.
REFERENCES
[1] K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, “A fast
andelitist multiobjective genetic algorithm: Nsga-ii,”IEEE
Transactionson Evolutionary Computation, vol. 6, no. 2, pp.
182–197, 2002.
[2] G. Lebans, K. Wilkie, R. Dubay, D. Crabtree, and T.
Edmonds,“Telerobotic shipboard handling system,” inOCEANS’97.
MTS/IEEEConference Proceedings, vol. 2. IEEE, 1997, pp.
1237–1241.
[3] P. Li and C. Wang, “Design and implementation of visual
simulationsystem for shipborne crane control,” inControl and
Decision Confer-ence, 2009. CCDC’09. Chinese. IEEE, 2009, pp.
5482–5486.
[4] F. Sanfilippo, H. P. Hildre, V. Æsøy, H. Zhang, and E.
Pedersen,“Flexible modeling and simulation architecture for
hapticcontrolof maritime cranes and robotic arm.” inEuropean
Conference onModelling and Simulation, 2013, pp. 235–242.
[5] Y.-G. Zhang, Y.-M. Huang, Y.-Z. Lin, X. Cheng, and F.
Gao,“Anapproach for robot inverse velocity solution using
geneticalgorithm,”in Proceedings of International Conference on
Machine Learning andCybernetics, vol. 5. IEEE, 2004, pp.
2944–2948.
[6] S. Tabandeh, C. M. Clark, and W. Melek, “A genetic
algorithmapproach to solve for multiple solutions of inverse
kinematics usingadaptive niching and clustering,”Computer Science
and SoftwareEngineering, p. 63, 2006.
[7] J. Denavit, “A kinematic notation for lower-pair mechanisms
based onmatrices.”Trans. of the ASME. Journal of Applied Mechanics,
vol. 22,pp. 215–221, 1955.
[8] J. E. Baker, “Reducing bias and inefficiency in the
selection algo-rithms,” 1985.
[9] A. Peter. (2013, july) Efficient java matrix library.
[Online].
Available:https://code.google.com/p/efficient-java-matrix-library/
[10] D. W. Dyer. (2013, july). [Online]. Available:
http://watchmaker.uncommons.org/
[11] U. Technologies. (2013, july) Unity3d. [Online]. Available:
http://unity3d.com/