\documentclass[11pt,twoside]{article}\makeatletter

\IfFileExists{xcolor.sty}%
  {\RequirePackage{xcolor}}%
  {\RequirePackage{color}}
\usepackage{colortbl}
\usepackage{wrapfig}
\usepackage{ifxetex}
\ifxetex
  \usepackage{fontspec}
  \usepackage{xunicode}
  \catcode`⃥=\active \def⃥{\textbackslash}
  \catcode`❴=\active \def❴{\{}
  \catcode`❵=\active \def❵{\}}
  \def\textJapanese{\fontspec{Noto Sans CJK JP}}
  \def\textChinese{\fontspec{Noto Sans CJK SC}}
  \def\textKorean{\fontspec{Noto Sans CJK KR}}
  \setmonofont{DejaVu Sans Mono}
  
\else
  \IfFileExists{utf8x.def}%
   {\usepackage[utf8x]{inputenc}
      \PrerenderUnicode{–}
    }%
   {\usepackage[utf8]{inputenc}}
  \usepackage[english]{babel}
  \usepackage[T1]{fontenc}
  \usepackage{float}
  \usepackage[]{ucs}
  \uc@dclc{8421}{default}{\textbackslash }
  \uc@dclc{10100}{default}{\{}
  \uc@dclc{10101}{default}{\}}
  \uc@dclc{8491}{default}{\AA{}}
  \uc@dclc{8239}{default}{\,}
  \uc@dclc{20154}{default}{ }
  \uc@dclc{10148}{default}{>}
  \def\textschwa{\rotatebox{-90}{e}}
  \def\textJapanese{}
  \def\textChinese{}
  \IfFileExists{tipa.sty}{\usepackage{tipa}}{}
\fi
\def\exampleFont{\ttfamily\small}
\DeclareTextSymbol{\textpi}{OML}{25}
\usepackage{relsize}
\RequirePackage{array}
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
    \if \@nextchar l\@ne \else
     \if \@nextchar r\tw@ \else
   \z@ \@chclass
   \if\@nextchar |\@ne \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar (8 \else
       \if \@nextchar )9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
   \if \@nextchar p4 \else
    \if \@nextchar b5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
   \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}
\gdef\arraybackslash{\let\\=\@arraycr}
\def\@textsubscript#1{{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\def\abbr{}
\def\corr{}
\def\expan{}
\def\gap{}
\def\orig{}
\def\reg{}
\def\ref{}
\def\sic{}
\def\persName{}\def\name{}
\def\placeName{}
\def\orgName{}
\def\textcal#1{{\fontspec{Lucida Calligraphy}#1}}
\def\textgothic#1{{\fontspec{Lucida Blackletter}#1}}
\def\textlarge#1{{\large #1}}
\def\textoverbar#1{\ensuremath{\overline{#1}}}
\def\textquoted#1{‘#1’}
\def\textsmall#1{{\small #1}}
\def\textsubscript#1{\@textsubscript{\selectfont#1}}
\def\textxi{\ensuremath{\xi}}
\def\titlem{\itshape}
\newenvironment{biblfree}{}{\ifvmode\par\fi }
\newenvironment{bibl}{}{}
\newenvironment{byline}{\vskip6pt\itshape\fontsize{16pt}{18pt}\selectfont}{\par }
\newenvironment{citbibl}{}{\ifvmode\par\fi }
\newenvironment{docAuthor}{\ifvmode\vskip4pt\fontsize{16pt}{18pt}\selectfont\fi\itshape}{\ifvmode\par\fi }
\newenvironment{docDate}{}{\ifvmode\par\fi }
\newenvironment{docImprint}{\vskip 6pt}{\ifvmode\par\fi }
\newenvironment{docTitle}{\vskip6pt\bfseries\fontsize{22pt}{25pt}\selectfont}{\par }
\newenvironment{msHead}{\vskip 6pt}{\par}
\newenvironment{msItem}{\vskip 6pt}{\par}
\newenvironment{rubric}{}{}
\newenvironment{titlePart}{}{\par }

\newcolumntype{L}[1]{){\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{){\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{){\raggedleft\arraybackslash}p{#1}}
\newcolumntype{P}[1]{){\arraybackslash}p{#1}}
\newcolumntype{B}[1]{){\arraybackslash}b{#1}}
\newcolumntype{M}[1]{){\arraybackslash}m{#1}}
\definecolor{label}{gray}{0.75}
\def\unusedattribute#1{\sout{\textcolor{label}{#1}}}
\DeclareRobustCommand*{\xref}{\hyper@normalise\xref@}
\def\xref@#1#2{\hyper@linkurl{#2}{#1}}
\begingroup
\catcode`\_=\active
\gdef_#1{\ensuremath{\sb{\mathrm{#1}}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12\relax

\usepackage[a4paper,twoside,lmargin=1in,rmargin=1in,tmargin=1in,bmargin=1in,marginparwidth=0.75in]{geometry}
\usepackage{framed}

\definecolor{shadecolor}{gray}{0.95}
\usepackage{longtable}
\usepackage[normalem]{ulem}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{marginnote}

\renewcommand{\@cite}[1]{#1}


\renewcommand*{\marginfont}{\itshape\footnotesize}

\def\Gin@extensions{.pdf,.png,.jpg,.mps,.tif}

  \pagestyle{fancy}

\usepackage[pdftitle={The Kinematics of a Puma Robot using Dual Quaternions},
 pdfauthor={}]{hyperref}
\hyperbaseurl{}

	 \paperwidth210mm
	 \paperheight297mm
              
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
\setcounter{tocdepth}{3}
\clubpenalty=8000
\emergencystretch 3em
\hbadness=4000
\hyphenpenalty=400
\pretolerance=750
\tolerance=2000
\vbadness=4000
\widowpenalty=10000

\renewcommand\section{\@startsection {section}{1}{\z@}%
     {-1.75ex \@plus -0.5ex \@minus -.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
     {-1.75ex\@plus -0.5ex \@minus- .2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\Large}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
     {-1.5ex\@plus -0.35ex \@minus -.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\large}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
     {-1ex \@plus-0.35ex \@minus -0.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\normalsize}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
     {1.5ex \@plus1ex \@minus .2ex}%
     {-1em}%
     {\reset@font\normalsize\bfseries}}


\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt}
 \@tempdima 1.5em \begingroup
 \parindent \z@ \rightskip \@pnumwidth 
 \parfillskip -\@pnumwidth 
 \bfseries \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par
 \endgroup}
\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\@ifundefined{c@section}{\newcounter{section}}{}
\@ifundefined{c@chapter}{\newcounter{chapter}}{}
\newif\if@mainmatter 
\@mainmattertrue
\def\chaptername{Chapter}
\def\frontmatter{%
  \pagenumbering{roman}
  \def\thechapter{\@roman\c@chapter}
  \def\theHchapter{\roman{chapter}}
  \def\thesection{\@roman\c@section}
  \def\theHsection{\roman{section}}
  \def\@chapapp{}%
}
\def\mainmatter{%
  \cleardoublepage
  \def\thechapter{\@arabic\c@chapter}
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \pagenumbering{arabic}
  \setcounter{secnumdepth}{6}
  \def\@chapapp{\chaptername}%
  \def\theHchapter{\arabic{chapter}}
  \def\thesection{\@arabic\c@section}
  \def\theHsection{\arabic{section}}
}
\def\backmatter{%
  \cleardoublepage
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \setcounter{secnumdepth}{2}
  \def\@chapapp{\appendixname}%
  \def\thechapter{\@Alph\c@chapter}
  \def\theHchapter{\Alph{chapter}}
  \appendix
}
\newenvironment{bibitemlist}[1]{%
   \list{\@biblabel{\@arabic\c@enumiv}}%
       {\settowidth\labelwidth{\@biblabel{#1}}%
        \leftmargin\labelwidth
        \advance\leftmargin\labelsep
        \@openbib@code
        \usecounter{enumiv}%
        \let\p@enumiv\@empty
        \renewcommand\theenumiv{\@arabic\c@enumiv}%
	}%
  \sloppy
  \clubpenalty4000
  \@clubpenalty \clubpenalty
  \widowpenalty4000%
  \sfcode`\.\@m}%
  {\def\@noitemerr
    {\@latex@warning{Empty `bibitemlist' environment}}%
    \endlist}

\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}}
\parskip0pt
\parindent1em
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\newenvironment{reflist}{%
  \begin{raggedright}\begin{list}{}
  {%
   \setlength{\topsep}{0pt}%
   \setlength{\rightmargin}{0.25in}%
   \setlength{\itemsep}{0pt}%
   \setlength{\itemindent}{0pt}%
   \setlength{\parskip}{0pt}%
   \setlength{\parsep}{2pt}%
   \def\makelabel##1{\itshape ##1}}%
  }
  {\end{list}\end{raggedright}}
\newenvironment{sansreflist}{%
  \begin{raggedright}\begin{list}{}
  {%
   \setlength{\topsep}{0pt}%
   \setlength{\rightmargin}{0.25in}%
   \setlength{\itemindent}{0pt}%
   \setlength{\parskip}{0pt}%
   \setlength{\itemsep}{0pt}%
   \setlength{\parsep}{2pt}%
   \def\makelabel##1{\upshape ##1}}%
  }
  {\end{list}\end{raggedright}}
\newenvironment{specHead}[2]%
 {\vspace{20pt}\hrule\vspace{10pt}%
  \phantomsection\label{#1}\markright{#2}%

  \pdfbookmark[2]{#2}{#1}%
  \hspace{-0.75in}{\bfseries\fontsize{16pt}{18pt}\selectfont#2}%
  }{}
      \def\TheFullDate{2020-01-15 (revised: 15 January 2020)}
\def\TheID{\makeatother }
\def\TheDate{2020-01-15}
\title{The Kinematics of a Puma Robot using Dual Quaternions}
\author{}\makeatletter 
\makeatletter
\newcommand*{\cleartoleftpage}{%
  \clearpage
    \if@twoside
    \ifodd\c@page
      \hbox{}\newpage
      \if@twocolumn
        \hbox{}\newpage
      \fi
    \fi
  \fi
}
\makeatother
\makeatletter
\thispagestyle{empty}
\markright{\@title}\markboth{\@title}{\@author}
\renewcommand\small{\@setfontsize\small{9pt}{11pt}\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip \z@ plus2\p@
\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
\def\@listi{\leftmargin\leftmargini
               \topsep 2\p@ plus1\p@ minus1\p@
               \parsep 2\p@ plus\p@ minus\p@
               \itemsep 1pt}
}
\makeatother
\fvset{frame=single,numberblanklines=false,xleftmargin=5mm,xrightmargin=5mm}
\fancyhf{} 
\setlength{\headheight}{14pt}
\fancyhead[LE]{\bfseries\leftmark} 
\fancyhead[RO]{\bfseries\rightmark} 
\fancyfoot[RO]{}
\fancyfoot[CO]{\thepage}
\fancyfoot[LO]{\TheID}
\fancyfoot[LE]{}
\fancyfoot[CE]{\thepage}
\fancyfoot[RE]{\TheID}
\hypersetup{citebordercolor=0.75 0.75 0.75,linkbordercolor=0.75 0.75 0.75,urlbordercolor=0.75 0.75 0.75,bookmarksnumbered=true}
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}

\date{}
\usepackage{authblk}

\providecommand{\keywords}[1]
{
\footnotesize
  \textbf{\textit{Index terms---}} #1
}

\usepackage{graphicx,xcolor}
\definecolor{GJBlue}{HTML}{273B81}
\definecolor{GJLightBlue}{HTML}{0A9DD9}
\definecolor{GJMediumGrey}{HTML}{6D6E70}
\definecolor{GJLightGrey}{HTML}{929497} 

\renewenvironment{abstract}{%
   \setlength{\parindent}{0pt}\raggedright
   \textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
   \vskip16pt
   \textcolor{GJBlue}{\large\bfseries\abstractname\space}
}{%   
   \vskip8pt
   \textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
   \vskip16pt
}

\usepackage[absolute,overlay]{textpos}

\makeatother 
      \usepackage{lineno}
      \linenumbers
      
\begin{document}

             \author[1]{Mahmoud  Gouasmi}

             \author[2]{Belkacem  Gouasmi}

             \author[3]{Mohamed  Ouali}

             \affil[1]{  Blida 1 University}

\renewcommand\Authands{ and }

\date{\small \em Received: 15 December 2019 Accepted: 2 January 2020 Published: 15 January 2020}

\maketitle


\begin{abstract}
        


This chapter presents mainly, on the light of both main concepts; The first being the screw motion or/ and dual quaternions kinematics while the second concerns the classical 'Denavit and Hartenberg parameters' method, the direct kinematics of a Puma 560 robot.Kinematics analysis studies the relative motions, such as, first of all, the displacement in space of the end effector of a given robot, and thus its velocity and acceleration, associated with the links of the given robot that is usually designed so that it can position its end-effector with a three degree-of-freedom of translation and three degree-of-freedom of orientation within its workspace.

\end{abstract}


\keywords{dual quaternions, forward kinematics, screw motion, denavit and hartenberg parameters.}

\begin{textblock*}{18cm}(1cm,1cm) % {block width} (coords) 
\textcolor{GJBlue}{\LARGE Global Journals \LaTeX\ JournalKaleidoscope\texttrademark}
\end{textblock*}

\begin{textblock*}{18cm}(1.4cm,1.5cm) % {block width} (coords) 
\textcolor{GJBlue}{\footnotesize \\ Artificial Intelligence formulated this projection for compatibility purposes from the original article published at Global Journals. However, this technology is currently in beta. \emph{Therefore, kindly ignore odd layouts, missed formulae, text, tables, or figures.}}
\end{textblock*}


\let\tabcellsep& 	 	 		 
\section[{Introduction}]{Introduction}\par
any research students have a great deal of trouble understanding essentially what quaternions are \hyperref[b0]{[1]}, \hyperref[b1]{[2]}, \hyperref[b2]{[3]} and how they can represent rotation. So when the subject of dualquaternions is presented, it is usually not welcomed with open arms. Dual-quaternions are a break from the norm (i.e., matrices) which we hope to entice the reader into supporting willingly to represent their rigid transforms.\par
The reader should walk away from this analysis with a clear understanding of what dual-quaternions are and how they can be used \hyperref[b3]{[4]}. First we begin with a short recent and related work that emphasises the power of dual-quaternions:\par
The dual-quaternion has been around since 1882 \hyperref[b4]{[5]}, \hyperref[b5]{[6]}, \hyperref[b6]{[7]} but has gained less attention compared to quaternions alone; while the most recent work which has taken hold and has demonstrated the practicality of dual-quaternions, both in robotics and computer graphics can be resumed in: -Kavan \hyperref[b7]{[8]} demonstrated the advantages of dual-quaternions in character skinning and blending. -Ivo \hyperref[b8]{[9]} extended Kavan's work with dual-quaternions and q-tangents as an alternative method for representing rigid transforms instead of matrices, and gives evidence that the results can be faster with accumulated transformations of joints if the inferences per vertex are large enough. -Selig \hyperref[b9]{[10]} address the key problem in computer games. -Vasilakis \hyperref[b10]{[11]} discussed skeleton-based rigid-skinning for character animation. -Kuang \hyperref[b11]{[12]} presented a strategy for creating real-time animation of clothed body movement.-Pham \hyperref[b12]{[13]} solved linked chain inverse kinematic (IK) problems using Jacobian matrix in the dual-quaternion space. -Malte \hyperref[b14]{[14]} used a mean of multiple computational (MMC) model with dualquaternions to model bodies. -Ge \hyperref[b15]{[15]} demonstrated dual-quaternions to be an efficient and practical method for interpolating three-dimensional motions. -Yang -Hsing \hyperref[b16]{[16]} calculated the relative orientation using dualquaternions. -Perez \hyperref[b17]{[17]} formulated dynamic constraints for articulated robotic systems using dualquaternions.-Further reading on the subject of dual numbers and derivatives is presented by Gino \hyperref[b18]{[18]}.\par
In the last three decades, the field of robotics has widened its range of applications, due to recent developments in the major domains of robotics like kinematics, dynamics and control, which leads to the sudden growth of robotic applications in areas such as manufacturing, medical surgeries, defense, space vehicles, under-water explorations etc.\par
To use robotic manipulators in real-life applications, the first step is to obtain the accurate kinematic model \hyperref[b19]{[19]}. In this context, a lot of research has been carried out in the literature, which leads to the evolution of new modeling schemes along with the refinement of existing methodologies describing the kinematics of robotic manipulators.\par
First of all, examples of basic solid movements such as rotations, translations, their combinations and general screw motions are studied using both (4x4) rigid body transformations and dual quaternions so that the reader could compare and note the similarity of the results obtained using one or the other method. Both dual quaternions technique as well as its counterpart the classical 'Denavit and Hartenberg parameters method' are finally applied to the first three degree of freedom of a Puma 560 robot. Finally, we and the reader, can observe that the two methods confirm exactly one another by giving us the same results for the considered application, while noting that the fastest, simplest more straightforward and easiest to apply method, is undoubtedly the one using dual quaternions. As a result this chapter may as well act as a beginners guide to the practicality of using dual-quaternions to represent the rotations and translations in character-based hierarchies.\par
elements of screw theory can be traced to the work of Chasles and Poinsot \hyperref[b20]{[20]}, \hyperref[b21]{[21]}, in the early 1800's and Whittaker \hyperref[b22]{[22]}. Using the theorems of Chasles and Poinsot as a starting point, Robert S. Ball developed \hyperref[b23]{[23]} a complete theory of screws which he published in 1900. Throughout the development of kinematics, numerous mathematic theories \hyperref[b24]{[24]} and tools have been introduced and applied. The first pioneer effort for kinematic modeling of robotic manipulators was made by Denavit and Hartenberg in introducing a consistent and concise method to assign reference coordinate frames to serial manipulators, allowing the (4×4) homogeneous transformation matrices to be used (in 1955) \hyperref[b25]{[25]}, followed by Lie groups and Lie Algebra by J.M Selig and others, \hyperref[b26]{[26]}, \hyperref[b27]{[27]}, \hyperref[b28]{[28]}) and quaternions and dual quaternions introduced by \hyperref[b29]{Yang and Freudenstein (1964)}  \hyperref[b29]{[29]}, see also \hyperref[b30]{Bottema and Roth (1979)}  \hyperref[b30]{[30]} and \hyperref[b31]{McCarthy (1990)}  \hyperref[b31]{[31]}.The original D-H parameter method has many counterparts: Distal variant, proximal variant, ?to name but a few. There even exist different options for these counterparts.\par
In this method, four parameters, popularly known as D-H parameters, are defined to provide the geometric description to serial mechanisms. Out of the four, two are known as link parameters, which describe the relative location of two attached axes in space. These link (See appendix 10,3,1.) parameters are: The link length (a i ) and the link twist (? i ).\par
The remaining two parameters are described as joint parameters, which describe the connection of any link to its neighboring link. These are the joint offset (d i ) and the joint angle (? i ).\par
Modeling the movement of the rigid body by the theory of the helicoidal axis: a combination of an amount of rotation about and an amount of translation along a certain axis, hence the term helicoidal axis is used in various fields such as computer vision and biomechanics. The application of this theory in the field of robotics is taking more and more space. We can consider the motion of a joint segment as a series of finite displacements. In this case the movement is characterized by an angle of rotation about and an amount of translation along an axis defined in space by its position and its orientation. This axis is referred to as the finite helicoidal axis (FHA), because of the discretization of the movement into a series of displacements. On the other hand and by taking the continuity of the movement into account, this movement will be characterized by a rotational speed (angular velocity) about and translation speed along an axis defined by the instantaneous position and orientation in space. One speaks in this case of an instantaneous helicoidal axis (IHA).The application of the helicoidal theory with its two versions (FHA and IHA) is used to describe and understand the joint movement, and to study in biomechanics, for example, the different positioning techniques of prothèses. Thus there are several methods to estimate the helicoidal axis from a set of points representing a rigid body.\par
Any displacement of a rigid body is a helicoidal motion which may be decomposed into an angular rotational movement about and a linear translational movement along a certain axis in 3D space. The methods differ in the way of mathematically representing these two movements. These movements can be expressed using rotation matrices and translation vectors, homogeneous matrices, unit quaternions, dual quaternions, .... The two representations; using (3x3) matrices or (4x4) homogeneous matrices and dual quaternions will be simultaneously used for all and each examples or applications studied so that comparisons for each case could be done. 
\section[{II.}]{II.} 
\section[{Dual Quaternions a) « Product type » dual quaternions}]{Dual Quaternions a) « Product type » dual quaternions}\par
The dual quaternions have two forms thus two readings which are complementary and simultaneous: The first is the << product type >> description:?? ? ?? = ??? ?? + ?? ?? ?? .?? ?? 2 ? With: ?? ?? = ?cos ð??"ð??" 2 , n. sin ð??"ð??" 2 ? = ?cos ð??"ð??" 2 , sin ð??"ð??" 2 . ?? ?? , sin ð??"ð??" 2 . ?? ?? , sin ð??"ð??" 2 . ?? ?? ?\par
and ?? ?? = (0,??? ?? , ?? ?? , ?? ?? ?= (0 ,\{??\} ) Then, the transformation is: Note that this form resembles that used for classic quaternions; using the dual angle and the dual unitary vector instead of the classical ones.?? ? ?? = ??? ?? + ?? ?? ?? .?? ?? 2 ? = ?cos\par
And as a matter of fact: The screw displacement is the dual angle ?? ? = ?? + ?? d, along the screw axis defined by the dual vector ?? ? or ??? or in our case ?? ? = n +?? m; such that we will obtain (respecting the rules of derivation and multiplication of dual numbers), dual vectors, quaternions and dual quaternions (see appendix 10,2. and eq (A15)):?? ? =?cos ?? ? 2 , sin ?? ? 2 ?? ?? = [cos ?? 2 ? ?? ?? 2 sin ?? 2 , (sin ?? 2 + ?? ?? 2 cos ?? 2 ) ( n +?? m )] = cos ?? 2 ??? ?? 2 sin ?? 2 , n sin ?? 2 +?? (n ?? 2 cos ?? 2 + sin ?? 2 m) = ( cos ?? 2 , n sin ?? 2 ) + ??(? ?? 2 sin ?? 2 , sin ?? 2 m + n ?? 2 cos ?? 2 ) (2)\par
The geometric interpretation of these quantities is related to the screw-type motion. The angle ?? is the angle of rotation around n, the vector unit n represents the direction of the rotation axis. The element d is the translation or the displacement amplitude along the vector n, m being the vector moment of the vector axis n relative to the origin of the axes. The vector m is an unambiguous description of the position of an axis in space, in accordance with the properties of Plückér coordinates defining lines in space.\par
This form gives another interesting use: Whereas the classics quaternions can only represent rotations whose axes pass through the origin O of the coordinate system (O, x, y, z), the dual quaternions can represent rotations about arbitrary axes in space, translations as well as any combination of both these two basic spatial motions.\par
These two forms << product type >> eq \hyperref[b0]{(1)} or << ???????? ???????? >> ???? (2) represent the same motion that describe the same movement 'the screw motion': The vector m = (m x , m y , m z ) is the moment of the vector n about the origin of reference (O, x, y, z); it is named the moment of the axis n, with: ?? ? = ?? + ?? d with d being the amplitude of the translation along the dual vector ?? ? = n +?? m with m = p x n (the green vector see figure \hyperref[fig_1]{1}) that defines the vector according to Plücker coordinates, p, (the blue vecor), being the vector that gives the position of n ,(the red vector), using the vector OO 1 (see figure \hyperref[b0]{(1)}).III.\par
The parameters of the transformation, the angle ??, the axis of rotation n, the magnitude of the translation d and the moment m are the four characteristics of all, any and every 3D rigid body transformation (4x4) matrix, a screw motion or a helicoidal movement of any kind (or type ).\par
Using quaternions the first rotation will be written; since?? 1 2 = ?? 4 then cos ?? 1 2 = sin ?? 1 2 = ?2 2 ?? 1 = ( ?2 2 , ?2 2 , 0 , 0 ) ; having ?? 1 2 = ?? 4 then cos ?? 1 2 = sin ?? 1 2 = ?2 2\par
The second rotation will have the form:?? 2 = ( ?2 2 , 0 , ?2 2 , 0 )\par
The final composition of the two movements will be given by the quaternion ?? such that:?? = ?? 2 . ?? 1 = ( ?2 2 , 0 , ?2 2 , 0 ) . ( ?2 2 , ?2 2 , 0 , 0 ) = ( 1 2 , 1 2 , 1 2 , ?\textbf{1 2}\par
) Using quaternion's definition (A5) and quaternions properties:?? = (( 1 2 , ?3 2 ( 1 ?3 , 1 ?3 , ? 1 ?3 )) or (( 1 2 ,? ?3 2 (? 1 ?3 ,? 1 ?3 , 1\textbf{?3}\par
))\par
It is then easy to extract both the amplitude and the resulting axis of the rotation from the result q: In fact the two solutions represent the same and similar solution since for any q we have q (??, n) = q (???, ?n).\par
Using our classical (3x3) rigid transformations we get:R 21 = R 2 .R 1 = ? 0 0 1 0 1 0 ?1 0 0 ? ? 1 0 0 0 0 ?1 0 1 0 ? = ? 0 1 0 0 0 ?1 ?1 0 0 ?\par
Here it is very important to note that unlike the quaternion method we cannot extract the needed results easily and straightforwardly but we must follow a long and sometimes complicated process (determinant, trace, Whichever used technique we will find: A rotation of ?? = )) and that will imply ?? i = 120 º around the axis n = Using MATLAB (See Appendix 10,1.) we can calculate easily both the two quaternions multiplications: q= n1 = q2.q1 and q i = n2 = q1.q2 and the two equivalent product of matrices1 ?3 ? 1 1 1 , or ?? i = ? 120 º around the axis (-n) = 1 ?3 ?? ?1 1 ?1 ; Which of course will imply that: ?? 1 . ?? 2 ? ?? 2 . ?? 1 Using matrices : R i = R 1 R 2 = ? 1 0 0 0 0 ?1 0 1 0 ? ? 0 0 1 0 1 0 ?1 0 0 ? = ? 0 0 1 1 0 0 0 1 0 ? ? R ii = R 2 RR 21 = R 2 R 1 and R i = R 1 R 2 .\par
The Kinematics of a Puma Robot using Dual Quaternions IV. 
\section[{Important Notes: What about Translations?}]{Important Notes: What about Translations?}\par
We must recall that rotations act on translations, the reverse being not true; in fact when multiplying by blocks:\par
For a rotation followed by a translation:? ?? ?? 0 1 ? ? ?? 0 0 1 ? = ? ?? ?? 0 1\par
? ; the rotation is not affected by the translation.\par
While for a translation followed by a rotation:? ?? 0 0 1 ? ? ?? ?? 0 1 ? = ? ?? ???? 0 1\par
? ; the translation is affected by the rotation.\par
When translations are performed first we can thus assume that the translation vector of the resulting matrix product; Rt acts as the translation vector t of a rotation followed by a translation .Or more generally speaking considering two six degree of freedom general rigid body transformations T 1 followed by T 2 we will have:T 2 .T 1 = ? ?? 2 ?? 2 0 1 ? ? ?? 1 ?? 1 0 1 ? = ? ?? 2 ?? 1 ?? 2 ?? 1 + ?? 2 0 1 ? = ? ?? ?? 0 1 ?\par
The translation vector t of the product of the two transformations is? ?? 1 = ?? 2 ?? 1 + ?? 2 = ? ?? 2 0 0 1 ? ? ?? 1 1 + ? ?? 2 1\par
The same analysis as the last one could then be done whatever the order and the number of the successive transformations being performed over the rigid body: The final result of the products of all the undertaken rigid body transformations will be finally the helicoidal, the helical or the screw motion given by the (4x4) matrix:[T] = T n ? T i ...T 2 .T 1 = ? ?? ?? 0 1 ?\textbf{(3)}\par
With T i representing either a rotation, a translation, a rotation followed by a translation, a translation followed by a rotation or even simply a no movement (ie: the 4x4 identity matrix I ).\par
Any screw motion would be given by the following (4x4) matrix [ T ]:? ?? ?? 0 1 ? = ? ?? ?? 0 1 ? ? ?? (??, ??) ? p 2?? ?? 0 1 ? ? ?? ? ?? 0 1 ? = ? ??(??, ??) ? p 2?? ?? + (?? ? ??(??, ??)?? 0 1 ? = [T]\textbf{( 3 )}\par
The middle matrix is a screw about a line through the origin; that is, a rotation of ?? radians around the axis n followed by a translation along n. The outer matrices conjugate the screw and serve to place the line at an arbitrary position in space. The parameter p is the pitch of the screw, it gives the distance advanced along the axis for every complete turn, exactly like the pitch on the thread of an ordinary nut or bolt. When the pitch is zero the screw is a pure rotation, positive pitches correspond to right hand threads and negative pitches to left handed threads.\par
To show that a general rigid motion is a screw motion, we must show how to put a general transformation into the form derived above. The unit vector in the direction of the line n is easy since it must be the eigenvector of the rotation matrix corresponding to the unit eigenvalue.(This fails if R = I, that is if the motion is a pure translation). The vector u is more difficult to find since it is the position vector of any point on the rotation axis. However we can uniquely specify u by requiring that it is normal to the rotation axis. So we impose the extra restriction that n.u = 0. So to put the general matrix ? ?? ?? ?? ?? ? into the above form we must solve the following system of linear equations: All we need to do now is to solve the equation system:?? ?? ???? ?? + (?? ? ??)?? = t Now n.Ru = n.u = 0,(?? ? ??)?? = (t -(??. t) ??) ;\par
This is possible even though det (?? ? ??) = 0, since the equations will be consistent.\par
This entire analysis established through this long paragraph concerning the helicoidal motion or rigid (4x4) transformation matrix [T] is contained in only one line enclosed in its counterpart dual quaternion ?? ? of the form:\par
The Kinematics of a Puma Robot using Dual Quaternions Year 2020  Global Journal of Researches in Engineering ( ) Volume Xx X Issue I V ersion I H V. Screw Motion ?? ? = ?cos ?? ? 2 , sin ?? ? 2 ?? ?? = ?? ? ?? . . ?? ? ?? . . ?? ? 2 .?? ? 1 = ?cos ?? 2 ,
\begin{quote}
sin\end{quote}
T 2 .T 1 = ? 1 0 0 1 0 0 0 1 ?1 0 0 0 0 0 0 1 ? ? 0 0 1 0 0 ?1 1 0 0 0 1 0 0 0 0 1 ? = ? 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 ?\textbf{(4)}\par
The rotation part of the product corresponds to that of the precedent example of successive rotationsR i = R 1 R 2\par
with amplitude ?? = ; its translation part being t = ? 1 0 1\par
We can find its pitch p =2?? ?? (n. t ) = 2?? 2?? 3 1 ?3 ? 1 1 1 . ? 1 0 1 = 6 ?3 = 2?3\par
The axis of rotation will keep its same original direction n =1 ?3 ? 1 1 1\par
, it will go through a new centre C given by the shifting vector u which could be found by the linear equations system :(I -R) u = t - ?? ?? ???? n ?? 1 0 ?1 1 1 0 0 ?1 1 ? ? ?? ?? ?? ?? ?? ?? = ? 1 0 1 ? 2?? 3.2?? 6 ?3 ? ? ? ? ? 1 ?3 1 ?3 1 ?3 = ? 1 0 1 ? 2 ?3 ? ? ? ? ? 1 ?3 1 ?3 1 ?3 = ? ? ? ? ? ? 1 3 2 3 1 3\par
The vector translation T (or t ) of the movement ? 1 0 1 is the sum of the two main perpendicular vectors T 1 + T 2 such as T 1 is to be chosen parallel to n while the rest T 2 is the translation vector part responsible for the shifting of the axis to its final position through the new center C as such we have: So that to confirm these results ; we can finally check the following conjugation matrices :T 1 = ? ? ? ? ?? ? ? 0 0 1 0 1 0 0 1 0 0 ?2 3 ?1 3 0 0 0 1 ? ? ? ? ? ? ? 0 0 1 2 3 1 0 0 1 0 0 2 3 2 3 0 0 0 1 ? ? ? ? ? ? ? 0 0 1 0 1 0 0 1 0 0 2 3 1 3 0 0 0 1? ? ? = ? 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 ? ? (4) Or, ? ? ? 0 0 1 2 3 1 0 0 1 0 0 0 1 3 0 0 0 1 ? ? ? ? ? ? ? 0 0 1 2 3 1 0 0 1 0 0 2 3 2 3 0 0 0 1 ? ? ? ? ? ? ? 0 0 1 ?2 3 1 0 0 1 0 0 0 ?1 3 0 0 0 1 ? ? ? = ? 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 ? ? (4)\par
Or finally;? ? ? 0 0 1 1 3 1 0 0 1 0 0 ?1 3 0 0 0 0 1 ? ? ? ? ? ? ? 0 0 1 2 3 1 0 0 1 0 0 2 3 2 3 0 0 0 1 ? ? ? ? ? ? ? 0 0 1 ?1 3 1 0 0 1 0 0 1 3 0 0 0 0 1 ? ? ? = ? 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 ? ? (4)\par
Whenever necessary, Matlab was, throughout the chapter implemented, concerning all kinds of products or multiplication of quaternions or matrices. 
\section[{VII.}]{VII.}\par
The Same General Example using Dual Quaternions?? ? = ?? + ???? ?? = ?? ?? + ?? 2 ??? ?? ?? + ?? ?? ?? + ?? ?? ?????? ?? = ?? + ?? ???? 2\par
The two transformations T 1 and T 2 are basic centered helicoidal movements through the origin O of the axes, that can be written:\par
For the first movement around and along Oy:?? ? 1 = ?? 1 + ?? 2 ?? ?? 1 = ?? ? ?? = (c , 0 , s , 0) + ?? 2 (? s?? ?? , 0 , c ?? ?? , 0 ) = ( cos ?? 4 , 0 , sin ?? 4 , 0) + ?? 2 (? sin ?? 4 . 1 , 0 , cos ?? 4 . 1 , 0 ) = ( ?2 2 , 0 , ?2 2 , 0 ) + ?? 2 ( ? ?2 2 , 0 , ?2 2 , 0 )\par
followed by the second movement around and along Ox:?? ? 2 = ?? 2 + ?? 2 ?? ?? 2 = ?? ? ?? = (c , ?? , 0 , 0 ) + ?? 2 (? s?? ?? , c ?? ?? , 0 , 0) = ( cos ?? 4 , sin ?? 4 , 0, 0) + ?? 2 (? sin ?? 4 . 1 , cos ?? 4 . 1 , 0, 0) = ( ?2 2 , ?2 2 , 0 , 0) + ?? 2 ( ? ?2 2 , ?2 2 , 0 , 0 )\par
The dual quaternion product of the two screw movements is: ?? ? 2 . ?? ? 1 = ( ?? 2 + ?? 2 ?? ?? 2 ).( ?? 1 + ?? 2 ?? ?? 1 ) = ?? 2 . ?? 1 + ?? 2 (?? 2 . ?? ?? 1 + ?? ?? 2 . ??\par
At this stage we know the complete integrality of informations concerning this movement thanks to our magic, rapid and powerful dual quaternion :The rotation part, as seen before, having amplitude ?? = We can also have the vector part: ?m sin?? 2 + ?? 2 ?? cos ?? 2 ? = ( 0 , 0 ,\textbf{1 2}\par
) which implies:m x ?3 2 + ?3 3 1 ?3 1 2 = m x ?3 2 + 1 6 = 0 ; m y ?3 2 + ?3 3 1 ?3 1 2 = m y ?3 2 + 1 6 = 0 and m z ?3 2 + ?3 3 1 ?3 1 2 = m z ?3 2 + 1 6 = 1 2\par
We can then deduce the vector moment m =? ? ? ? ? ?1 3?3 ?1 3?3 2 3?3\par
Finally we can have the right position of the shifted axis u that have the same direction as the rotation axis n by defining the coordinates u x ,u y and u z of a point or a center C belonging to it so that:m = u ? n Or ? ? ? ? ? ?1 3?3 ?1 3?3 2 3?3 = ? u x u y u z ? 1 ?3 ? 1 1 1 = 1 ?3 ? u y ? u z u z ? u x u x ? u y implying that: u y ? u z = ?1 3 ; u z ? u x = ?1 3 and u x ? u y = 2 3\par
Which confirm the same obtained results eq (5) using the (4x4) rigid transformation matrix:?? ?? ? ?? ?? = 1 3 ; ??? ?? + ?? ?? = ?\textbf{2 3}\par
; and? ?? ?? + ?? ?? = 1 3\textbf{( 5 )}\par
VIII. Application 2: Kinematics of the Puma 560 Robot\par
The first three joints of this manipulator (Waist, Shoulder, Elbow) characterize for the first joint to be a rotation about a vertical axis , for the second and the third rotations about horizontal axes whose movements are identified by the variables q 1 , q 2 , and q 3 . The last three joints, which constitute the wrist of the robot arm, are characterized by the rotations q 4 , q 5 , and q 6 whose axes intersect at the center of the wrist (See appendix 10,3. Figures \hyperref[b2]{(3)},(4) and Table \hyperref[tab_4]{1} for the forward kinematic solution using the Denavit and Hartenberg convention.\par
The elegant , most accurate , rapid and finally the best manner to get the forward kinematic solutions of this Puma 560 robot is to use the dual quaternions:\par
For the sake of comparaison let us choose the same home position for the robot with its geometry (a i and d i ) given in table \hyperref[b0]{(1)} and the same absolute home initial frame (x 0 ,y 0 ,z 0 ) with its origin O taken in link1 at the intersection of the base axis with the link1 axis (see figure \hyperref[b2]{(3)}), assuming mobile frames at the centers of the six rotations: (x n ,y n ,z n ) which axes remain parallel to the The Kinematics of a Puma Robot using Dual Quaternions 'home position' or initial axes (x 0 ,y 0 ,z 0 ). Let us begin, with the first two rotations using either equations A3 or A14 from appendix 10,2,1. to find the new vector position of the center O 3 ( a 2 , d 2 , 0):?? ? 1 ?? ? 2 ?? ? ?? ?? ? ? 2 * ?? ? ? 1 * = ?? ? 1 (?? ? 2 ??? ? ?? ) ?? ? ? 2 * ??? ? ? 1 * (7) ?? ? 2 ?? ? ?? ?? ? ? 2 * = (c 2 , 0 , s 2 , 0) [ 1+ ?? (a 2 , d 2 , 0 )] (c 2 , 0 , ?s 2 , 0)\par
Using correctly the rules for both quaternions eq (A1) and dual quaternions multiplications eq (A7) we have :?? ? 2 ?? ? ?? = (c 2 , 0 , s 2 , 0) + ?? (?s 2 d 2 , c 2 a 2 , c 2 d 2 , ?s 2 a 2 )\par
and?? ? 2 ?? ? ?? ?? ? ? 2 * = 1 + ?? (0 , a 2 cos ?? 2 , d 2 , ?a 2 sin ?? 2 ) thus ?? ? 1 ?? ? 2 ?? ? ?? ?? ? ? 2 * ?? ? ? 1 * = (c 1 , 0 , 0 , s 1 )[ 1 + ?? (0 , a 2 cos ?? 2 , d 2 , ?a 2 sin ?? 2 )] (c 1 , 0 , 0 , ? s 1 )\par
Performing the product and using the trigonometric properties we can have the new quaternion vector position:1 + ?? (0 , a 2 cos ?? 2 cos ?? 1 ? ?? 2 ?????? ?? 1 , a 2 cos ?? 2 ?????? ?? 1 + d 2 cos ?? 1 , ?a 2 sin ?? 2 )\par
or the three coordinates vector:? a ?? 2 ?????? ?? 1 ? ?? 2 ?????? ?? 1 a 2 ?????? ?? 2 ?????? ?? 1 + ?? 2 ?????? ?? 1 ?a 2 ?????? ?? 2\par
This result is confirmed (see appendix 10,3,2.) by the fourth or last column of the matrix :?? 0 2 = ?? 0 1 ?? 1 2 = R 1 R 2 = ? ?? 1 0 -?? 1 0 ?? 1 0 ?? 1 0 0 ?1 0 0 0 0 0 1 ? ? ?? 2 ??? 2 0 ?? 2 ?? 2 ?? 2 ?? 2 0 ?? 2 ?? 2 0 0 1 ?? 2 0 0 0 1 ? = ? ?? 1 ?? 2 ??? 1 ?? 2 ? ?? 1 ?? 2 ?? 1 ?? 2 ? ?? 2 ?? 1 ?? 1 ?? 2 ??? 1 ?? 2 ?? 1 ?? 2 ?? 2 ?? 1 + ?? 2 ?? 1 ??? 2 ??? 2 0 ??? 2 ?? 2 0 0 0 1 
\section[{?}]{?}\par
The third rotation of the third link is around the axis O 3 y 3 , with the center O 3 being displaced or shifted and thus having the position coordinates with respect to the asolute frame O 3 (a 2 , d 2 , 0 ).\par
Note: The conjugation ( technique could be used in its dual quaternion form or its (4x4) rigid transformation form. The dual quaternion ( definition (2) may be used instead; The moment m, w-r -t the axis of rotation?? ? = ?? ? =?cosy 3 , is m = ? a 2 ?? 2 0 ?? 0 1 0 = ? 0 0 a 2 so that ?? ? 3 = [?? 3 , (0, ?? 3 , 0)]+ ???0, \{(0,0, a 2 ?? 3 \}? (?? ? 1 ?? ? 2 )?? ? 3 ?? ? ?? ?? ? ? 3 * (?? ? ? 2 * ?? ? ? 1 * ) = (c1 , 0 , 0 , s1) (c2 , 0 , s2 , 0) ?? ? 3 ?? ? ?? ?? ? ? 3 * (?? 2 , 0 , ??? 2 , 0) (?? 1 , 0 , 0, ??? 1 )\par
To find the new vector position of the wrist center O 4 :( a 2 + a 3 , d 2 + d 3 , 0) = ( A, D, 0) result of the three successives rotations we must start from the central operation namely :?? ? ??3 = ?? ? 3 ?? ? ?? ?? ? ? 3 * = [(?? 3 , 0, ?? 3 , 0 )+ ?? ( 0,0,?? 2 ?? 3 )] [(1+?? ( A, D, 0))] [ ?? ? ? 3 * ] = [(?? 3 , 0, ?? 3 , 0 ) + ??( 0,0,?? 2 ?? 3 )+??(??? 3 D, ?? 3 A , ?? 3 D,??? 3 A)] [ ?? ? ? 3 * ]= [(?? 3 , 0, ?? 3 , 0 +??(??? 3 D, ?? 3 A , ?? 3 D , ?? 3 (?A)] [(?? 3 , 0, ??? 3 , 0 )+ ?? ( 0,0,?? 2 ?? 3 )] = (?? 3 2 + ?? 3 2 , 0, ??? 3 ?? 3 + ?? 3 ?? 3 , 0) +??(??? 3 ?? 3 D + ?? 3 ?? 3 D , ?? 3 2 ?? 2 + ?? 3 2 A + ?? 3 2 (?? 2 ?A), ?? 3 2 D + ?? 3 2 D , ?? 3 ?? 3 ?? 2 ??? 3 ?? 3 A + ?? 2 ?? 3 ?? 3 ??? 3 ?? 3 A )\par
Using the basic trigonometric rules and properties we can write the solution vector:q ? v3 = q ? 3 q ? v q ? ? 3 * = 1+ ? (0 , a 2 + a3 cos ? 3 , d2 + d3 , ? a3 sin ? 3 ) = 1+ ? (a 2 + a3 cos ? 3 , d2 + d3 , ? a3 sin ? 3 )\par
The Kinematics of a Puma Robot using Dual Quaternions Year 2020 
\section[{Global}]{Global}\par
Journal of Researches in Engineering ( ) Volume Xx X Issue I V ersion IH ?? ? ) TRT -1 )\textbf{(8)}\par
For a better use of space we may adopt to write our result dual quaternions vectors under the form:? ? ? scalar part O x coord. O y coord. O z coord.\par
So that the precedent result could be written ?? ? ??3 = ? 0 a 2 + a 3 cos ?? 3 ) ](?? 2 , 0 , ??? 2 , 0 ) = (c 2 , 0 , s 2 , 0)? 1 + ?? ? 0 a 2 + a 3 cos ?? 3 d 2 + d 3 ? a 3 sin ?? 3 ? ? ?? ? ? 2 * ? = ? ? ? ? (?? 2 , 0 , ?? 2 , 0) + ?? ? ??? 2 (d 2 + d 3 ) ?? 2 (a 2 + a 3 cos ?? 3 ) ??? 2 a 3 sin ?? 3 ?? 2 (d 2 + d 3 ) ? ?? 2 a 3 sin ?? 3 ??? 2 (a 2 + a 3 cos ?? 3 ) ? ? ? ? ? (?? 2 , 0 , ??? 2 , 0 ) = (?? 2 2 + ?? 2 2 ,0, ??? 2 ?? 2 +?? 2 ?? 2 , 0)+?? ? ? ? ??? 2 ?? 2 (d 2 + d 3 ) + ?? 2 ?? 2 (d 2 + d 3 ) ?? 2 2 (a 2 + a 3 cos ?? 3 ) ??? 2 ?? 2 a 3 sin ?? 3 ?? 2 2 (d 2 + d 3 ) + ?? 2 2 (d 2 + d 3 ) ??? 2 ?? 2 a 3 sin ?? 3 ??? 2 2 (a 2 + a 3 cos ?? 3 ) ? ?? 2 2 a 3 sin ?? 3 ??? 2 ?? 2 (a 2 + a 3 cos ?? 3 )??? 2 ?? 2 (a 2 + a 3 cos ?? 3 ) + ?? 2 2 a 3 sin ?? 3 ? ? ? = 1+ ?? ? ? ? 0 ?? 2 2 (a 2 + a 3 cos ?? 3 ) -?? 2 ?? 2 a 3 sin ?? 3 ?? 2 2 (d 2 + d 3 ) + ?? 2 2 (d 2 + d 3 ) ??? 2 ?? 2 a 3 sin ?? 3 ??? 2 2 (a 2 + a 3 cos ?? 3 ) ? ?? 2 2 a 3 sin ?? 3 -?? 2 ?? 2 (a 2 + a 3 cos ?? 3 )??? 2 ?? 2 (a 2 + a 3 cos ?? 3 ) + ?? 2 2 a 3 sin ?? 3 ? ? ? = ? 0 cos ?? 2 (a 2 + a 3 cos ?? 3 ) ? a 3 sin ?? 2 sin ?? 3 (d 2 + d 3 ) ?a 3 cos ?? 2 sin ?? 3 ? sin ?? 2 (a 2 + a 3 cos ?? 3 ) ? =\par
We can finally get the transformed vector ?? ? ??2 :?? ? ??2 =1+ ?? [(a 3 cos (?? 2 + ?? 3 ) + a 2 cos ?? 2 , (d 2 + d 3 ) , ?a 3 sin ( ?? 2 + ?? 3 ) ?a 2 sin ?? 2 )] (c 1 , 0 ,0 , s 1 ) ?? ? ??2 (?? 1 , 0, 0, ??? 1 ) = (c 1 , 0, 0, s 1 ) [1+?? (a 3 cos (?? 2 + ?? 3 ) + a 2 cos ?? 2 , (d 2 + d 3 ) , ?a 3 sin (?? 2 + ?? 3 ) ?a 2 sin ?? 2 )] ?? ? ? 1 * (c 1 , 0 , 0, s 1 ) ? ? ? ? 1 + ?? ? ? 0 a 3 cos (?? 2 + ?? 3 ) + a 2 cos ?? 2 d 2 + d 3 ?a 3 sin (?? 2 + ?? 3 ) -a 2 sin ?? 2 ? ? ? ? ? ? ? ?? ? ? 1 * ? = ? ? ? ? (?? 1 , 0 , 0, ?? 1 ) + ?? ? ? a 3 ?? 1 sin (?? 2 + ?? 3 ) + a 2 ?? 1 sin ?? 2 a 3 ?? 1 cos (?? 2 + ?? 3 ) + a 2 ?? 1 cos ?? 2 ? ?? 1 (d 2 + d 3 ) ?? 1 (d 2 + d 3 ) + a 3 ?? 1 cos (?? 2 + ?? 3 ) + a 2 s 1 cos ?? 2 ?a 3 ?? 1 sin (?? 2 + ?? 3 ) -a 2 ?? 1 sin ?? 2 ) ? ? ? ? ? ? ? ?? ? ? 1 * ? =\par
The Kinematics of a Puma Robot using Dual Quaternions  
\section[{H}]{H}\par
We can finally perform the first but last transformation given by the following dual quaternions products:(c 1 , 0 , 0 , s 1 ) (c 2 , 0 , s 2 , 0) ?? ? 3 ?? ? ?? ?? ? ? 3 * (?? 2 , 0 , ??? 2 , 0)(?? 1 , 0 , 0, ??? 1 ) = ? (?? 1 , 0 , 0, ?? 1 ) + ?? ? a 3 ?? 1 sin (?? 2 + ?? 3 ) + a 2 ?? 1 sin ?? 2 a 3 ?? 1 cos (?? 2 + ?? 3 ) + a 2 ?? 1 cos ?? 2 ? ?? 1 (d 2 + d 3 ) ?? 1 (d 2 + d 3 ) + a 3 ?? 1 cos (?? 2 + ?? 3 ) + a 2 s 1 cos ?? 2 ?a 3 ?? 1 sin (?? 2 + ?? 3 ) -a 2 ?? 1 sin ?? 2 ? ? (?? 1 , 0 , 0, ??? 1 ) = (?? 1 2 + ?? 1 2 ,0, ??? 1 ?? 1 + ?? 1 ?? 1 ,0) + ?? ? ? ? a 3 ?? 1 ?? 1 sin (?? 2 + ?? 3 ) + a 2 ?? 1 ?? 1 sin ?? 2 ? a 3 ?? 1 ?? 1 sin (?? 2 + ?? 3 ) ? a 2 ?? 1 ?? 1 sin ?? 2 a 3 ?? 1 2 cos (?? 2 + ?? 3 ) + a 2 ?? 1 2 cos ?? 2 ? ?? 1 ?? 1 (d 2 + d 3 ) ? ?? 1 ?? 1 (d 2 + d 3 ) ? a 3 ?? 1 2 cos (?? 2 + ?? 3 ) ? a 2 ?? 1 2 cos ?? 2 ?? 1 2 (d 2 + d 3 ) + a 3 ?? 1 ?? 1 cos (?? 2 + ?? 3 ) + a 2 ?? 1 s 1 cos ?? 2 + a 3 ?? 1 ?? 1 cos (?? 2 + ?? 3 ) + a 2 ?? 1 ?? 1 cos ?? 2 ? ?? 1 2 (d 2 + d 3 ) ?a 3 ?? 1 2 sin (?? 2 + ?? 3 ) -a 2 ?? 1 2 sin ?? 2 ? a 3 ?? 1 2 sin (?? 2 + ?? 3 ) ? a 2 ?? 1 2 sin ?? 2 ? ? ? = 1+ ?? ? ? 0 a 3 ?? 1 2 ?? 23 + a 2 ?? 1 2 ?? 2 ? ?? 1 ?? 1 (d 2 + d 3 ) ? ?? 1 ?? 1 (d 2 + d 3 ) ? a 3 ?? 1 2 ?? 23 ? a 2 ?? 1 2 cos ?? 2 ?? 1 2 (d 2 + d 3 ) + a 3 ?? 1 ?? 1 ?? 23 + a 2 ?? 1 s 1 cos ?? 2 + a 3 ?? 1 ?? 1 ?? 23 + a 2 ?? 1 ?? 1 cos ?? 2 ? ?? 1 2 (d 2 + d 3 ) ?a 3 ?? 1 2 ?? 23 -a 2 ?? 1 2 sin ?? 2 ? a 3 ?? 1 2 ?? 23 ? a 2 ?? 1 2 sin ?? 2 ? ? With ?? 23 = cos (?? 2 + ?? 3 ) and ?? 23 = sin (?? 2 + ?? 3 )\par
The result vector is then:? ???????? 1 (a 2 ???????? 2 + a 3 ?? 23 ) ? ???????? 1 (d 2 + d 3 ) ???????? 1 (a 2 ???????? 2 + a 3 ?? 23 ) + ???????? 1 ( (d 2 + d 3 ) ? (a 2 ???????? 2 + a 3 ?? 23 ) 
\section[{?}]{?}\par
Which is confirmed by the last column (see appendix (10, 3, 2.) of the matrix ?? 0 3 .\par
We can also, using the Denavit and Hartenberg formalism or the dual quaternions alike easily calculate the coordinates of the terminal element (or the end effector) and so the final positioning of our Puma 560 robot relative to the base or fixed absolute frame. 
\section[{IX.}]{IX.} 
\section[{Conclusion}]{Conclusion}\par
We hope that the reader should not get us wrong: We never pretend that the D-H parameters method is wrong or obsolete and that it should be a thing of the past; recognising that this important classical method was the precursor that enlightened the path to modern robotics; we only say that there exist through the DQ parameters another short, free of singularities and easy to work with, when dealing with robot direct kinematics. On the light of the obtained results one has to say that the most perfect (not suffering singularities of any kind), easiest and rapid way to perform a 3D rigid transformation of any sort is to use the dual quaternion that caracterise that movement. Most of all we are free to use the 3D space, being sure that no loss of degree of freedom or guinball lock of any sort can never happen. Using a D-H parameters method or any of its counterparts means a choice of different sort of embarassing and somehow awkward three axes frames to be created and then allocated to each arm/ link; 'providing' our robot or mecanism with different direction axes and angles with very much complicated choice of signs (concerning the directions and the angles alike) to be chosen subject to some rules depending on the chosen method and model of robot.\par
Choosing to use dual quaternions we only need to know the constants or values that concern the construction or space geometry of the given robot (directions (orientations and axes) , rotations ,distances, lengths of links) to evaluate its kinematics without any threat to be lost in the maze or a jungle of choices .Most of all, it will prevent us from using the only other existing method, or one of its options, which is that of the Denavit and Hartenberg parameters that mainly consists of:\par
The Kinematics of a Puma Robot using Dual Quaternions Year 2020 Global Journal of Researches in Engineering ( ) Volume Xx X Issue I V ersion I H 1. Choosing 3D frames attached to each link upon certain conditions /conventions, 2. Schematic of the numbering of bodies and joints in a robotic manipulator, following the convention for attaching reference frames to the bodies, this will help to create: 3. A table for exact definition of the four parameters, a i , ? i , d i , and ? i , that locate one frame relative to another, 4. The (4x4 ) rigid transformation matrix that will have the given form : ?? ?? ? ?? ?? . (See 10,3.)\par
This chapter provided a taste of the potential advantages of dual-quaternions, and one can only imagine the further future possibilities that they can offer. For example, there is a deeper investigation of the mathematical properties of dual-quaternions (e.g., zero divisions). There is also the concept of dual-dualquaternions (i.e., dual numbers within dual numbers) and calculus for multi-parametric objects for the reader to pursue if he desires.\par
We should emphasize on the fact that Matlab software was used, throughout this work and whenever necessary, concerning all kinds of products or multiplication of quaternions or rigid transformation matrices.\par
Finally we hope all efforts should be conjugated to create a common 'PROJECT MATLAB QUATERNION/MATRIX platform' to be used for the straightforward calculations and manipulation of Quaternions and / or Dual Quaternions as well as conversions from or into 3D or 4D rigid body matrices. 
\section[{X.}]{X.} 
\section[{Appendices a) Quaternion-Matlab Implementation Class:}]{Appendices a) Quaternion-Matlab Implementation Class:}\par
>> \% See paragraph 3; Example 1: Rotations represented by Quaternions >> \% A first rotation of angle ?/2 around the x -axis ,q1 , followed by a rotation of angle ?/2 around the y -axis , q2 will result in a rotation given by the product n1 = q2.q1 : >> q1 =[ cos(pi/4) sin(pi/4) 0 0 ]; q2 =[cos(pi/4) 0 sin(pi/4) 0 ]; >> n1 = quatmultiply (q2,q1) n1 = 0.5000 0.5000 0.5000 -0.5000 >> \% If the order is inversed the result will be given by the quaternion n2 = q1.q2 >> n2 = quatmultiply (q1,q2) n2 = 0.5000 0.5000 0.5000 0.5000 >> \% Using 3*3 matrices; if the rotation R1 is performed first the rotation product is R2*R1:R1 = [1 0 0;0 0 -1;0 1 0 ]; R2 = [ 0 0 1; 0 1 0;-1 0 0]; prod1 = R2*R1 prod1 = 0 1 0 0 0 -1 -1 0 0 >> \% if the order is inversed the multiplication will be R1*R2: prod2 = R1*R2 prod2 = 0 0 1 1 0 0 0 1 0 i. 
\section[{Quaternions or rotation representation}]{Quaternions or rotation representation}\par
Quaternions were first discovered and described by the Irish mathematician Sir Rowan Hamilton in 1843. Indeed quaternion's representation and axis-angle representation are very similar.\par
Both are represented by the four dimensional vectors. Quaternions also implicitly represent the rotation of a rigid body about an axis. It also provides better means of key frame interpolation and doesn't suffer from singularity problems.\par
The definition of a quaternion can be given as (s, m) or (s, ?? x , ?? y , ?? z ) where m is a 3D vector, so quaternions are like imaginary (complex) numbers with the real scalar part s and the imaginary vector part m.\par
Thus it can be also written as: s + ?? x i + ?? y j + ?? z k.\par
There are conversion methods between quaternions, axis-angle and rotation matrix.\par
Common operations such as addition, inner product etc can be defined over quaternions. Given the definition of ?? 1 and ?? 2 :?? 1 = ?? 1 + ?? x1 ?? + ?? y1 ?? + ?? z1 ?? or ?? 1 = (?? 1 , m 1 ) ?? 2 = ?? 2 + ?? x2 ?? + ?? y2 ?? + ?? z2 ?? or ?? 2 = (?? 2 , m 2 )\par
Addition operation is defined as:?? 1 + ?? 2 = (?? 1 + ?? 2 , m 1 + m 2 ) = (?? 1 + ?? 2 ) + (?? x1 + ?? x2 )i + (?? y1 + ?? y2 )j + (?? z1 + ?? z2 )k\par
dot (scalar, inner): product operation(.) as:?? 1 . ?? 2 = ?? 1 . ?? 2 + m 1 . m 2\par
Quaternion multiplication is non commutative, but it is associative. Multiplication identity element is defined as: (1, (0, 0, 0)) We can also perform the multiplication in the imaginary number domain using the definitions:?? 2 = ?? 2 = ?? 2 = ?1; ??. ?? = ?? , ??. ?? = ?? , ??. ?? = ?? ; ??. ?? = ? ?? , ??. ?? = ? ?? , ??. ?? = ? ??\par
Equations (A1) to (A15) state the definitions, rules and properties of dual quaternion algebra. Quaternion multiplication (?) is defined as:?? 1 ??? 2 = (?? 1 . ?? 2 -m 1 . m 2 , ?? 1 . m 2 + ?? 2 . m 1 + m 1 ?m 2 ) (A1)\par
Each quaternion has a conjugate ?? * (except zero quaternion) defined by:?? * = ( s, -m ) (A2)\par
and an inverse ?? ?1 = ( The Kinematics of a Puma Robot using Dual Quaternions rotations can be combined into one unit quaternion q R = q R1 .q R2 . q R3 .... q RN It is also possible to rotate a vector directly by using quaternion multiplication. To do this, we must define a 3D vector V = (v x , v y , v z ) that we want to rotate in quaternion definition as q v = (0, v) = 0 + v x i+ v y j+ v z k. The rotated vector V ? = (v x ?, v y ?, v z ?) can be defined asq v' = (0, v ?) = 0 + v x ?i + v y ?j + v z ?k\par
Noting that, in quaternion rotation ?? ?1 = ?? * (For unit quaternion). So, rotation of q v by quaternion q can be calculated as:q v' = q ? q v ? ?? ?1 = q ? q v ? ?? * (A3)\par
And, assuming another quaternion rotation p, two rotations can be applied to the vector V such as:q v' = p ?(q ? q v ? ?? ?1 ) ? ?? ?1 = (p ?q )? q v ? (?? ?1 ? ?? ?1 ) = C ? q v ? ?? ?1 (A4)\par
Providing that quaternion C = (p ? q) is a combinaison of the precedent quaternions q and p .\par
The equation implies that vector V is first rotated by the rotation represented by q followed by the rotation p.\par
A quaternion q that defines a rotation about (around) the axis n denoted by the unit vector (n x , n y , n z ) of an angle ?? could be written as :q = cos ?? 2 + sin ?? 2\par
(n x i + n y j + n z k) (A5) This same quaternion represents a rotation of amplitude (? ?? ) around the opposite axis ( ?n )\par
ii. Dual quaternions Dual Quaternions (DQ) were proposed by William Kingdom Clifford in 1873.They are an extension of quaternions. They represent both rotations and translations whose composition is defined as a rigid transformation.\par
They are represented by the following eight dimensional vector:?? ? = ( ?? ?, ?? ? ) = (s , ?? x , ?? y , ?? z , ?? ?? ?? , ?? ?? ?? , ?? ?? ?? , ?? ?? ?? ) = ( ?? ?, ?? ? , ?? ? , ?? ?) (A6)\par
Such that:?? ? = ?? + ???? ?? = s + ?? x i + ?? y j + ?? z k + ?? (?? ?? ?? + ?? ?? ?? + ?? ?? ?? + ?? ?? ?? )\par
Dual quaternion multiplication is defined by:?? ? 1 ? ?? ? 2 = ?? 1 ? ?? 2 + ?? (?? 1 ? ?? 2 ?? + ?? 1 ?? ? ?? 2 ) (A7)\par
With ?? 2 = 0; ?? being the second order nilpotent dual factor. The dual conjugate (analogous to complex conjugate) is denoted by:?? ? ? = ?? -???? ?? (A8)\par
This conjugate operator can lead to the definition of the inverse of ?? ? which is: The translation T on the vector ?? ? can be computed by: ?? ? ?? ? = ?? ? ?? ??? ? ?? ??? ? ? ?? * So fortunately using def (A9), we have: ?? ? ?1 = 1 ?? ? = ?? ? ? ?? ? ? 1 ?? ? =?? ? ? ?? * = ?? ? ?? = 1+ ?? ?? 2 ,?? ? ?? ? = ???( ?? ? ? ?? ? ?? ??? ? ? * ) ? ???? * = ( ??? ? ?? ? ) ? ?? ? ?? ? (?? ? ? * ? ???? * ) = ?? ? ? ?? ? ?? ? ?? ?? * (A11)\par
It is very important to notice that the most inner transformation of the equation is applied first with an inside to outside manner. In eq \hyperref[b22]{(22)}, ?? ? is the first transformation followed by the second one ??.\par
The successive composition or combination of unit DQ rotation ?? ? ?? = R followed by a DQ translation ?? ? ?? = 1+ ?? 2 ??? ?? ?? + ?? ?? ?? + ?? ?? ?? ? will give:?? ? ?? ? ?? ? ?? = (1+ ?? 2 ??? ?? ?? + ?? ?? ?? + ?? ?? ?? ?) ? q R = q R + ?? 2 ??? ?? ?? + ?? ?? ?? + ?? ?? ?? ?? q R = R + ?? ???? 2 (A12) Its inverse being: ( R + ?? ???? 2 ) ?1 = ?? * ? ?? * ?? 2\par
If the translation is applied first:?? ? ?? ? ?? ? ?? = ?? ? ?? ?(1 + ?? 2 ??? ?? ?? + ?? ?? ?? + ?? ?? ?? ?) = q R + ?? ? ?? ? ?? 2 ??? ?? ?? + ?? ?? ?? + ?? ?? ?? ? q R = R + ?? ???? 2 (A13) Its inverse being: ( R + ?? ???? 2 ) ?1 = ?? * ? ???? * 2 v. Several transformations\par
Suppose that the vector V in its dual quaternion form ?? ? ?? = 1 + ?? ?? is under a sequence of rigid transformations represented by the dual quaternions ?? ? 1 , ?? ? 2 , . . . , ?? ? n . The resulting vector is encapsulated in the dual quaternion:1+ ?? ?? ? = ?? ? n ? (?? ? n?1 ? ?.? (?? ? 1 ? (1+ ?? ??) ? ?? ? ? * 1 ) ? ?..? ?? ? ? * n?1 ) ? ?? ? ? * n (A14) = (?? ? n ????? ? 1 ) ? (1+ ?? ??) ? (?? ? ? * 1 ? ?. ? ?? ? ? * n )\par
We denote the product dual quaternion as ?? ? = ?? ? n ????? ? 1 . The effect is equivalent to a single rigid transformation represented by ?? ?; namely,1+ ?? ?? ? = ?? ? ? (1+ ?? ??) ? ?? ? ? * .\par
Using dual numbers and plucker coordinates and introducing the following dual angle and dual vector we can write:?? ? = ?? + ???? and ?? ? = ?? + ????\par
It can be easily shown that:\par
The Kinematics of a Puma Robot using The steps for this technique are as follows:
\begin{quote}
Dual Quaternions cos ?? + ???? 2 = cos ?? 2 ??? ?? 2 sin ??\end{quote}
\par
1. Numbering of the constituent segments of the manipulator arm from the base to the terminal element. The zero referential is associated with the base of it, and the order n to the terminal element (end effector); 2. Definition of the main axes of each segment:\par
? If z i and z i-1 do not intersect we choose x i so as to be the parallel with the axis perpendicular to z i and z i-1 . ? If z i and z i-1 are collinear, x i is chosen in the plane perpendicular to z i-1 .\par
3. Fix the four geometric parameters: d i , ? i , a i , ?? ?? (see Figure( \hyperref[formula_20]{4})) for each joint such as:\par
The Kinematics of a Puma Robot using Dual Quaternions ? d i coordinate of the origin O i on the axis z i-1 For a slide d i is a variable and for a hinge d i is a constant. ? ? i is the angle obtained by screwing x i-1 to x i around the axis z i-1 .For a slide ?? ?? is a constant and for a hinge ?? ?? is a variable. ? a i is the distance between the axes z i and z i-1 measured on the axis x i negative from its origin up to the intersection with the axis z i-1 .\par
? ? 1 is the angle between z i et z i-1 obtained by screwing z i-1 to z i around x i . Finally, the homogeneous DH displacement matrix [?? ????? ?? ] which binds together the rotation and the translation is formed . Its left upper part defines the rotation matrix ?? ????? ?? and on its right the translation vector [?? ???1 ?? ] : ? ?? ???1 ?? ?? ???1 ?? 0 0 0 1 ?\textbf{(9)}\par
The definition of the frames associated with the links according to the Denavit and Hartenberg convention is as follows: Link1: Frame (x 0 ,y 0 ,z 0 ) ;The origin O is taken in link1 at the intersection of the base axis with the link1 axis. z 0 axis of rotation, + z 0 upwards.+ y 0 coincides with the axis of the link 1 and the axis + z 1 .y 1 is parallel to the link 2.\par
Link 2: Frame (x 1 ,y 1 ,z 1 ) ;The origin coincides with the origin of the frame (x 0 ,y 0 ,z 0 ,) .z 1 axis of rotation, + z 1 is perpendicular to the link 2 and parallel to the axis + z 2 .+ y 1 downwards, superimposed with the axis of the base and parallel with y 2 .+ x 1 is parallel to the link 2. Link 3: Frame (x 2 ,y 2 ,z 2 ) ;The origin is taken in link 2 at the intersection of the axis of the link 2 with the axis of the joint 3.z 2 axis of rotation, + z 2 is perpendicular to link 2 and axis z 3 .+ y 2 downwards, opposite with + z 3 .+ x 2 is parallel to the link 2. Link 4: Frame (x 3 , y 3 , z 3 ); The origin is taken in link 3.z 3 axis of rotation, + z 3 towards the wrist and perpendicular to +z 4 .+ y 3 is perpendicular to the link 2, and parallel to +z 4 .+ x 3 is parallel to the link 2.\par
Link 5: Frame (x 4 ,y 4 ,z 4 ) ;The origin is taken at the center of the wrist.z 4 axis of rotation, + z 4 is perpendicular to link 2 superposed with +z 5 . + y 4 is opposite to + z 5 .+ x 4 is parallel to link 2. Link 6: Frame (x 5 ,y 5 , z 5 ) ;The origin coïncides with the origin of the link (x 4 ,y 4 , z 4 ).z 5 axis of rotation, +z 5 towards the effector parallel to +z 6 .+ y 5 coïncides with the axis of joint 5.+ y 5 is perpendicular to the axis of joint 5.\par
The end effector: Frame (x 6 ,y 6 ,z 6 ) ;The origin coïncides with the origins of the links (x 4 ,y 4 , z 4 ) and (x 5 , y 5 , z 5 ).  The distance d 6 is not shown in Table ( I)..This distance varies according to the effector used for the application (the effector is the tool attached to the wrist on the last articulation of the robot for the manipulation of the objects). In this application the distance between the end of the effector and the axis of the wrist is assumed to be null d 6 = 0.\par
The dynamics of the last three articulations is negligible compared to the first three. Therefore, we have been interested in studying the movement of the three first joints of the PUMA 560 robot arm fixing the others to the original position (i.e., wrist attached to the original position: q 4 = q 5 = q 6 = 0). \par
Such that we will have :?? 0 2 = ?? 0 1 ?? 1 2 = ? ?? 1 0 -?? 1 0 ?? 1 0 ?? 1 0 0 ?1 0 0 0 0 0 1 ? ? ?? 2 ??? 2 0 ?? 2 ?? 2 ?? 2 ?? 2 0 ?? 2 ?? 2 0 0 1 ?? 2 0 0 0 1 ? = ? ?? 1 ?? 2 ??? 1 ?? 2 ? ?? 1 ?? 2 ?? 1 ?? 2 ? ?? 2 ?? 1 ?? 1 ?? 2 ??? 1 ?? 2 ?? 1 ?? 2 ?? 2 ?? 1 + ?? 2 ?? 1 ??? 2 ??? 2 0 ??? 2 ?? 2 0 0 0 1 ?\textbf{(15)}\par
We can also write: \par
And finally write ?? 03 = ?? 0 2 ?? 2 3 = ? ?? 1 ?? 2 ??? 1 ?? 2 ? ?? 1 ?? 2 ?? 1 ?? 2 ? ?? 2 ?? 1 ?? 1 ?? 2 ??? 1 ?? 2 ?? 1 ?? 2 ?? 2 ?? 1 + ?? 2 ?? 1 ??? 2 ??? 2 0 ??? 2 ?? 2 0 0 0 1 ? ? ?? 3 0 ?? 3 ?? 3 ?? 3 ?? 3 0 ? ?? 3 ?? 3 ?? 3 0 1 0 ?? 3 0 0 0 1 ? =\par
The Kinematics of a Puma Robot using Dual Quaternions\begin{figure}[htbp]
\noindent\textbf{2221}\includegraphics[]{image-2.png}
\caption{\label{fig_0}2 ?? 2 ?? 2 )Figure 1 :}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{1}\includegraphics[]{image-3.png}
\caption{\label{fig_1}Example 1 :}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-4.png}
\caption{\label{fig_2}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-5.png}
\caption{\label{fig_3}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-6.png}
\caption{\label{fig_5}}\end{figure}
              \begin{figure}[htbp]
\noindent\textbf{} \par 
\begin{longtable}{P{0.1291139240506329\textwidth}P{0.08607594936708861\textwidth}P{0.08607594936708861\textwidth}P{0.419620253164557\textwidth}P{0.1291139240506329\textwidth}}
\tabcellsep \tabcellsep \tabcellsep 1 |??| ) 2 ??  *  ; (?? ? 0)\tabcellsep Where |??| 2\\
= s 2 + ?? x\tabcellsep 2 + ?? y\tabcellsep 2 + ?? z\tabcellsep 2 = ?? ? ??\end{longtable} \par
  {\small\itshape [Note: * = ?? * ? ??]} 
\caption{\label{tab_1}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{} \par 
\begin{longtable}{P{0.8185185185185184\textwidth}P{0.03148148148148148\textwidth}}
then ?? ? ?? ? = ?? ? ?? ??? ? ?? ??? ? ? ??  *  = ?? ? ?? ??? ? ?? ??? ? ?? = [1+ ?? ?? ?? ?? )]?[1 + 2\tabcellsep ?? 2\end{longtable} \par
 
\caption{\label{tab_2}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{} \par 
\begin{longtable}{P{0.017708333333333333\textwidth}P{0.12901785714285713\textwidth}P{0.010119047619047618\textwidth}P{0.35163690476190473\textwidth}P{0.027827380952380954\textwidth}P{0.005059523809523809\textwidth}P{0.19985119047619046\textwidth}P{0.09613095238095237\textwidth}P{0.012648809523809522\textwidth}}
With\tabcellsep ?? ???1 ??\tabcellsep = ?\tabcellsep \multicolumn{4}{l}{?????? ?? ?? ??????? ? ?? ?????? ?? ?? ?????? ?? ?? ?????? ? ?? ?????? ?? ?? ??????? ? ?? ?????? ?? ?? ?????? ? ?? ?????? ?? ??}\tabcellsep ?\tabcellsep (10)\\
\tabcellsep \tabcellsep \tabcellsep 0\tabcellsep \multicolumn{3}{l}{?????? ? ??}\tabcellsep ?????? ? ??\\
And\tabcellsep \tabcellsep \tabcellsep \multicolumn{2}{l}{?? ???1 ??}\tabcellsep =?\tabcellsep ?? ?? ?????? ?? ?? ?? ?? ?????? ?? ??\tabcellsep (11)\\
\tabcellsep \tabcellsep \tabcellsep \tabcellsep \tabcellsep \tabcellsep ?? ??\\
\tabcellsep \multicolumn{5}{l}{Figure (4??????? ?? ?????? ?? ?? sin ? ??}\tabcellsep ???????? ?? ?????? ?? ?? ?????? ? ??\tabcellsep ?? ?? sin ?? ?? ?? ??\tabcellsep ?\\
\tabcellsep \tabcellsep 0\tabcellsep 0\tabcellsep \tabcellsep \tabcellsep 0\tabcellsep 1\end{longtable} \par
 
\caption{\label{tab_3}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{1} \par 
\begin{longtable}{}
\end{longtable} \par
 
\caption{\label{tab_4}Table 1 :}\end{figure}
 			\footnote{© 2020 Global Journals} 			\footnote{© 2020 Global Journals H} 		 		\backmatter  			 
\subsection[{*}]{*}\par
Combining these two conjugation operators will lead to the formalization of DQ transformation on 3D points. Use of both conjugations on ?? ? can be denoted ?? ? ? * .Using definitions (A2), (A6) and (A8) we finally have:\par
It is well know that we can use dual quaternions to represent a general transformation subject to the following constraints:\par
The DQ screw motion operator ?? ?: = (??, ?? ?? ) must be of unit magnitude:\par
This requirement means two distinct conditions or constraints: 			 			  				\begin{bibitemlist}{1}
\bibitem[Perez and Mccarthy ()]{b6}\label{b6} 	 		\textit{},  		 			A Perez 		,  		 			J M Mccarthy 		.  	 	 		\textit{Dual Qua. Synth. of Constr. Rob. Syst}  		2003.  	 	 (Journal of Mechanical Design. in press) 
\bibitem[ IEEE/RSJ Int. Conf ()]{b13}\label{b13} 	 		\textit{},  	 	 		\textit{IEEE/RSJ Int. Conf}  		2010. p. .  	 
\bibitem[Gouasmi et al. ()]{b3}\label{b3} 	 		\textit{},  		 			M Gouasmi 		,  		 			M Ouali 		,  		 			F Brahim 		.  	 	 		\textit{Rob. Kin. using dual quat. Int. Jour.l of Rob and Autom}  		2012. 1  (1)  p. .  	 
\bibitem[Denavit and Hartenberg ()]{b25}\label{b25} 	 		‘A Kin. Not. for Low-pair Mech.s Based on Matr’.  		 			J Denavit 		,  		 			R S Hartenberg 		.  	 	 		\textit{ASME Jour. of App.Mech.s}  		1955. 22 p. .  	 
\bibitem[Kuang et al. ()]{b11}\label{b11} 	 		‘A strategy of real-time animation of clothed body movement’.  		 			Y Kuang 		,  		 			A Mao 		,  		 			G Li 		,  		 			Y Xiong 		.  	 	 		\textit{Multimedia Technology (ICMT), 2011 International Conference on},  				2011. p. .  	 
\bibitem[Yang and Freudenstein ()]{b29}\label{b29} 	 		‘App. of Dual-Num.Quat. Alg. to the Ana of Spa. Mec’.  		 			A T Yang 		,  		 			F Freudenstein 		.  	 	 		\textit{ASME Jour. of Ap. Mec}  		1964. p. .  	 
\bibitem[Ball ()]{b23}\label{b23} 	 		 			R S Ball 		.  		\textit{The Theory of Screws},  				 (Cambridge, U.K.)  		1900. Cambridge Univ.Press.  	 
\bibitem[Bottema and Roth ()]{b30}\label{b30} 	 		 			O Bottema 		,  		 			B Roth 		.  		\textit{Theoretical Kinematics},  				 (New York)  		1979. Dover Publications.  	 
\bibitem[Ge et al. ()]{b15}\label{b15} 	 		‘Double quaternions for motion interpolation’.  		 			Q Ge 		,  		 			A Varshney 		,  		 			J P Menon 		,  		 			C F Chang 		.  	 	 		\textit{Proceedings of the ASME Design Engineering Technical Conference},  				 (the ASME Design Engineering Technical Conference)  		1998.  	 
\bibitem[Van Den Bergen ()]{b18}\label{b18} 	 		‘Dual Numbers: Simple Math, Easy C++ Coding, and Lots of Tricks’.  		 			G Van Den Bergen 		.  		 \url{Available:www.gdcvault.com/play/10103/Dual-Numbers-Simple-Math-Easy}  	 	 		\textit{Europe}  		2009.  	 
\bibitem[Perez and Mccarthy ()]{b17}\label{b17} 	 		‘Dual quat synthesis of constr. rob. systs’.  		 			A Perez 		,  		 			J M Mccarthy 		.  	 	 		\textit{Jou. of Mech. Des}  		2004. 126 p. 425.  	 
\bibitem[Perez ()]{b5}\label{b5} 	 		\textit{Dual Quaternion Synthesis of Constrained Robotic Systems},  		 			A Perez 		.  		2003.  		 			Department of Mechanical and Aerospace Engineering, University of California, Irvine 		 	 	 (Ph.D. Dissertation) 
\bibitem[Lin et al. ()]{b16}\label{b16} 	 		‘Estim. of real. orientation using dual.quat’.  		 			Y Lin 		,  		 			H Wang 		,  		 			Y Chiang 		.  	 	 		\textit{Sys. Sci.}  		2010.  (2)  p. .  	 
\bibitem[Kavan et al. ()]{b7}\label{b7} 	 		‘Geometric skinning with approximate dual quaternion blending’.  		 			L Kavan 		,  		 			S Collins 		,  		 			J ?ára 		,  		 			C O'sullivan 		.  	 	 		\textit{ACM Transactions on Graphics (TOG)}  		2008. 27  (4)  p. 105.  	 
\bibitem[Hamilton]{b0}\label{b0} 	 		 			W R Hamilton 		.  		\textit{On quaternions; or on a new system of imaginaries in algebra},  				 (London, Edinburgh, and Dublin)  		 	 
\bibitem[Murray et al. ()]{b24}\label{b24} 	 		\textit{Intro. to Robot Manip},  		 			R M Murray 		,  		 			Z Li 		,  		 			S S Sastry 		,  		 			Math 		.  		1993. Boca. Raton, FL: CRC Press.  	 
\bibitem[Mccarthy ()]{b31}\label{b31} 	 		\textit{Introduction to Theoretical Kinematics},  		 			J M Mccarthy 		.  		1990. Cambridge, MA: The MIT. Press.  	 
\bibitem[Amanpreet and Singla ()]{b19}\label{b19} 	 		‘Kinematic Modeling of Robotic. Manip’.  		 			Singh Amanpreet 		,  		 			Ashish Singla 		,  		 			India 		.  	 	 		\textit{The Nat. Acad of Sciences},  				2016.  	 
\bibitem[Chasles ()]{b20}\label{b20} 	 		‘Note sur les propriétés générales du système de deux corps semblables entr'eux’.  		 			M Chasles 		.  	 	 		\textit{Bulletin des Sciences Mathématiques, Astronomiques, Physiques et Chimiques},  				1830. 14 p. .  	 	 (in French) 
\bibitem[Pham et al. ()]{b12}\label{b12} 	 		‘Position and orientation control of robot manipulators using dual quaternion feedback’.  		 			H L Pham 		,  		 			V Perdereau 		,  		 			B V Adorno 		,  		 			P Fraisse 		.  	 	 		\textit{Intelligent Robots and Systems (IROS)},  				2010.  	 
\bibitem[Clifford ()]{b4}\label{b4} 	 		‘Preliminary sketch of bi-quaternions’.  		 			W K Clifford 		.  	 	 		\textit{Proceedings of the London Mathematical},  				 (the London Mathematical)  		1882.  	 
\bibitem[Selig ()]{b26}\label{b26} 	 		\textit{Prentice hall international (UK) Ltd},  		 			J Selig 		.  		1992.  	 
\bibitem[Chou and Kamel ()]{b2}\label{b2} 	 		‘Quaternions approach to solve the kinematic equation of rotation, of a sensor mounted rob. manip’.  		 			Jck Chou 		,  		 			M Kamel 		.  	 	 		\textit{Proceedings of the IEEE int. Conf. Rob.s and automation (ICRA)},  				 (the IEEE int. Conf. Rob.s and automation (ICRA)Philadelphia)  		1988. p. .  	 
\bibitem[Selig ()]{b9}\label{b9} 	 		‘Rat. Int. of r-b. m’.  		 			J Selig 		.  	 	 		\textit{Adv. in the Theory of Control, Sign. and Syst. with Phys. Mod}  		2011. p. .  	 
\bibitem[Selig]{b28}\label{b28} 	 		 			J M Selig 		.  		\textit{Lie groups and Lie algebras in robotics. Course report, south bank university},  				 (London)  		 	 
\bibitem[Selig ()]{b27}\label{b27} 	 		 			J M Selig 		.  		\textit{Geometrical fundamentals of Robotics},  				2004. Springer.  	 	 (second edition) 
\bibitem[Vasilakis and Fudos (2009)]{b10}\label{b10} 	 		‘Skeleton-based rigid skinning for character animation’.  		 			A Vasilakis 		,  		 			I Fudos 		.  	 	 		\textit{Proc. of the Fourth International Conference on Computer Graphics Theory and Applications},  				 (of the Fourth International Conference on Computer Graphics Theory and Applications)  		2009. February. p. .  	 
\bibitem[Ivo and Ivo]{b8}\label{b8} 	 		‘Spher. skin. with dual quat and Q.Tangents’.  		 			F Z Ivo 		,  		 			H Ivo 		.  	 	 		\textit{ACM SIGGRAPH 2011 Talks},  				27 p. 4503.  	 
\bibitem[Mcdonald (2010)]{b1}\label{b1} 	 		‘Teaching Quaternions is not Complex’.  		 			J Mcdonald 		.  	 	 		\textit{Comp. Graphics Forum, v}  		Dec. 2010. 29  (8)  p. .  	 
\bibitem[Poinsot]{b21}\label{b21} 	 		\textit{Théorie nouvelle de la rotation des corps},  		 			Louis Poinsot 		.  		Paris, Bachelier. 170 p. p.  	 
\bibitem[Schilling ()]{b14}\label{b14} 	 		‘Univer. manip body models -dual quaternion rep. in lay. and dyn. MMCs’.  		 			M Schilling 		.  	 	 		\textit{Autonomous Robots}  		2011.  	 
\bibitem[Whittaker ()]{b22}\label{b22} 	 		 			E T Whittaker 		.  		\textit{A Treatise on Analytical Dynamics of Particles and Rigid Bodies},  				1904. p. 4.  	 	 (at Google Books) 
\end{bibitemlist}
 			 		 	 
\end{document}
