<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Dataflow Implementation of Inverse Kinematics on Reconfigurable Heterogeneous MPSoC</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luca Fanni</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Leonardo Suriano</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Claudio Rubattu</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pablo Sánchez de Rojas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eduardo de la Torre</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesca Palumbo</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Thales Alenia Space España</institution>
          ,
          <addr-line>28760 Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Univ Rennes, INSA Rennes, IETR UMR CNRS 6164</institution>
          ,
          <addr-line>35700 Rennes</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Sassari</institution>
          ,
          <addr-line>07100 Sassari</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Univesidad Politécnica de Madrid</institution>
          ,
          <addr-line>28006 Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper describes the activities related to the implementation of a robotic arm controller based on the Damped Least Square algorithm to numerically solve Inverse Kinematics problems over a heterogeneous MPSoC platform.</p>
      </abstract>
      <kwd-group>
        <kwd>Inverse Kinematics</kwd>
        <kwd>Damped Least Square</kwd>
        <kwd>heterogeneous MPSoC</kwd>
        <kwd>FPGA</kwd>
        <kwd>CERBERO project</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The H2020 CERBERO [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] project is developing a continuous design environment
for Cyber Physical Systems (CPS), leveraging on a large set of tools that support
both run-time and design-time issues of CPS [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. One of the main outcomes of
the project, beside the continuous design framework, is the extensive and efficient
support for run-time adaptation [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. The algorithm and demonstration set-up
presented below is compliant with CERBERO Planetary Exploration (PE)
usecase scenario, which is built using CERBERO technologies and aims at assessing
heterogeneous and reconfigurable Multi-Processor System on Chip (MPSoC)
solutions in space applications. The final demonstrator of this scenario will be the
controller of a robotic arm implemented over a Field Programmable Gate
Array (FPGA) device, with advanced self-monitoring and self-adaptive processing
capabilities to ruggedize the systems under stringent survival conditions
(radiation and harsh environment) and meet the reliability constraints of a robotic
exploration mission. In this work we present the preliminary implementation of
such controller using the Damped Least Square algorithm [
        <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
        ].
Demonstrator Setup: The setup used for testing purposes is composed by: (1)
a Digilent/Xilinx ZedBoard, (2) a Trossen Robotics WidowX robotic arm, (3)
Power supplies for both the robotic arm and the ZedBoard and (4) a Personal
Computer.
      </p>
      <p>The manipulator is a WidowX Robot Arm by Trossen Robotics, characterized by
four main Degrees of Freedom (DOF) plus other two DOF for wrist and clamp
movements. The manipulator is equipped with six Dynamixel actuators, and</p>
      <p>Fig. 1: Demonstrator Setup.
each of them provides a full control of the relative joint via a digital
communication using an Universal Asynchronous Receiver-Transmitter (UART) protocol.
For each actuator, several parameters can be controlled, such as the angular
position, speed and acceleration.</p>
      <p>The external controller is based on a Digilent/Xilinx ZedBoard equipped with a
Zynq®-7000 MPSoC. A Linux-based Operating System (OS) distribution
running on the Zynq ARM processor provides the environment to compile and
execute the Inverse Kinematics (IK) algorithm and to control the manipulator
actuators.</p>
      <p>The Personal Computer (PC) is used to design the IK application and, if
necessary, compile and upload its executable on the MPSoC via Ethernet connection.
The numerical control of the robotic arm is entirely delegated to the ZedBoard.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Forward and Inverse Kinematics</title>
      <p>Any robotic manipulator is composed of different parts, namely: (i) a base; (ii)
rigid links; (iii) joints (each of them connecting two adjacent links); and (iv) an
end effector. As shown in Figure 2, physically an angle can be associated to each
rotational joint, or a displacement for a prismatic joint. The end effector can
be characterized by specific spatial coordinates. To determine the end-effector
spatial coordinates or the angles for each joint, you could leverage on two
different techniques: computing the end-effector spatial coordinates from all the joint
angles, or computing the joint angles from a desired end-effector spatial
coordinate. The former is known as Forward Kinematics problem (FK), the latter as
Inverse Kinematics problem (IK). In the following we will focus on IK. Indeed,
implementing an arm controller you need to derive the angles of the joints of the
chosen arm to move it in a desired position.</p>
      <p>
        Inverse Kinematics problem: Inverse Kinematics typically requires to solve a
complex problem, since: (i) more than a solution can be found for a desired
endeffector position, for example elbow-up or elbow-down poses could both lead to
reach the same spatial coordinate; (ii) there could be joint angles limitations; and
finally, (iii) out-of-reach end-effector spatial coordinates could be experienced.
These limitations define the manipulator workspace, and an attempt to get over
them can lead to a singularity in the IK problem. Many solutions, numerical
and non-numerical ones, are present in literature [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Numerical methods
require various iterations to converge over a solution, but are better capable of
dealing with DOF, and multiple end effectors (e.g. fingers of a hand or arms
of a body) with respect to analytic solutions and data-driven methods. Among
the numerical solutions we can list: Heuristic methods and Cyclic Coordinate
Descendant ones [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]; Newton-based methods (exploiting second-order Taylor
expansion), and Jacobian-based methods (exploiting inverted, pseudo-inverted
and transposed Jacobian matrices) [
        <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
        ]. In this work we opted for the latter.
3
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Jacobian-based methods</title>
      <sec id="sec-3-1">
        <title>Fundamentals</title>
        <p>
          Jacobian-based methods are based on the Jacobian matrix [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], defined as:
f :
        </p>
        <p>Rn ! Rm
the velocity joints space. Considering the following equation:
! = J y
!
e
(1)
! is the joint space vector, !e is the error or displacement vector and
J y (see Section 3.3) is a matrix computed from the Jacobian matrix J . The
! and !e vectors are defined as: ! = [ 1 2 ::: n]T and !e =
x y z x y z T . Please note that [ x y z ]T defines a linear
displacement, and [ x y z ]T defines a rotational displacement. In our case we consider
linear displacements only with [ x y z ]T = [ 0 0 0 ]T . The trajectory will be
calculated from the values assigned to [ x y z ]T .
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Inverse Kinematics Calculation</title>
        <p>In order to obtain the integral angles from the joint space, !; we need to add
them to the previous thetas, !old , to obtain: !new = !old + !. This step
is normally iterated several times. At any iteration, once obtained the !new
vector, this is used as starting vector to compute !new in the next step, thus
becoming !old. This procedure is equivalent to calculate the defined integral of
thetas along the trajectory. The trajectory itself is defined by initial and final
end-effector coordinates. The former are computed solving a FK problem, which
requires to know the angles assumed by the manipulator in the initial position;
while the latter are defined as the desired position to be reached. The general
flow of Jacobian-based IK algorithms is shown in Figure 3.
Prior to execute the algorithm, the displacement vector must be defined as:
!e = h xfini+x1init yfini+y1init zfini+z1init 0 0 0iT , where xinit, yinit, and zinit
represent the initial point coordinates, xfin, yfin, and zfin the coordinates of the
final position that the end effector must reach, and i is the iteration parameter.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Computing the J y</title>
        <p>
          There are several methods [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] to compute J y, such as: transpose of J ,
pseudoinverse of J , SVD-based computing, Damped Least Squares (DLS). The first and
the second ones cannot handle properly events such as singularities. The third
is based on the eigenvalues and eigenvectors computing at high computational
costs. Then we opted for the DLS.
        </p>
        <p>
          Damped Least Square The Damped Least Square, also known as the Levenberg—
Marquardt algorithm [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], computes the J y as:
Using Equation (2), the Equation (1) can be expressed as:
        </p>
        <p>
          J y = J T J +
2I
Equation (3) uses a factor to handle singularities. This factor can be set as a
static parameter, which has to be defined a priori before starting the
computation, or as a dynamic one to be calculated at run-time, between two subsequent
iterations. In the second scenario, to choose dynamically the factor several
algorithms [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. At the moment we use a static approach to determine , but in
future we plan to dynamically derive it using the Sugihara method [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Manipulator characterization</title>
      <p>
        In order to obtain the Jacobian J and the J y matrices a preliminary
manipulator characterization is necessary. The manipulator has to be defined as a
mathematical model, and from this model the Jacobian matrix J associated to
the manipulator can be calculated and used in the DLS algorithm. A common
way to define a mathematical model of a robotic manipulator uses the
DenavitHartenberg (DH) parameters [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. A set of four parameters composed of two
angles ( and ) and two displacements (a and d) is defined for each link-joint
group. These parameters are obtained from the manipulator mechanical
dimensions and joint orientations, as shown in Figure 4.
      </p>
      <p>For each set of parameters a transformation matrix is defined as:
2cos n
n 1Tn = 66sin n cos n cos n
4 0 sin n
0 0
sin n cos n sin n sin n an cos n3
cos n sin n an sin n 7
cos n dn 75
0 1
This transformation matrix represents the position and the orientation of the
nth-joint respect to the previous one. For an N -joints manipulator there will be
N transformation matrices. The general transformation matrix is defined as the
chain product of each transformation matrix:
2nx ox ax px3
T =0 T11T2 : : :N 1 TN = 664nnyz ooyz aayz ppyz 775
(4)
(5)</p>
      <p>
        Ji ai (cm) di (cm) i (rad) i (rad)
1 0 0 2 1
2 15 0 2
3a 5 0 0 2
3 15 0 0 3
4 15 0 0 4
This matrix represent the end-effector spatial coordinates and orientation
respect to the manipulator base coordinates. The derived DH parameters for our
test manipulator are tabulated in Table 1, and can be used in Equation (4) and
Equation (5) to obtain the general transformation matrix orientation coefficients
for our manipulator (nx, ny, nz, ox, oy, oz, ax, ay, and az), the position
coefficients (px, py, and pz) and the manipulator Jacobian according to the theory in
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>Please note that the coefficients px, py and pz are representing the end-effector
spatial coordinates with respect to joint angles, representing the manipulator
FK. As stated in Section 3.2, FK is necessary to compute the initial point for
the algorithm.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Porting the DLS over an Heterogeneous MPSoC</title>
      <p>
        In the scope of the CERBERO project, one of the goal is to access Programmable
Logic (PL) within FPGA technologies with the purpose of offloading
computational intensive tasks by delegating them to custom hardware accelerators.
Figure 5 shows the steps of the entire workflow. The steps within the graph are
explained in details hereafter.
1. Inverse Kinematics MATLAB Description: The IK algorithm has been
implemented and tested in a native matrix-oriented MATLAB®
environment. It allows various optimized computations such as the Jacobian matrix
automatically derived from the DH description. Using MATLAB, the
entire error-prone process of generating C-code is speeded up. Result of the
assessment for this step are presented in Section 6.
2. C - code: This first description of the DLS algorithm in C code is, here,
automatically generated by using MATLAB Coder [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <sec id="sec-5-1">
        <title>3. Parameterized and Interfaced Synchronous DataFlow (PiSDF) De</title>
        <p>
          scription [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]: This is a key step and it is manually executed: the full robotic
arm application is described using the PiSDF Model of Computation (MoC).
        </p>
        <p>Cyber System
Inverse Kinematics
Matlab Description</p>
        <p>C - code
1
2
3
6
PiSDF Description</p>
        <p>S-LAM Description</p>
        <p>Mapping/Scheduling</p>
        <p>Multicore SW
Code Generation</p>
        <p>ZedBoard HW/SW
Code Generation
5
8
4
7
Robotic Arm
Actuators</p>
        <p>Physical System</p>
        <p>Fig. 5: Design Workflow: step-by-step description.</p>
        <p>
          The previously generated C-code is used to described the internal behavior
of its actors. Fig 6 provides a PiSDF description of the DLS.
4. System-Level Architecture Model (S-LAM) description [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]: The
strength of PREESM is to give the possibility of independently describe (i)
the algorithm and (ii) the architecture. Thus, PREESM will be in charge
of finding an optimal solution by mapping and scheduling every instance of
actors of the PiSDF onto the S-LAM.
5. Mapping/Scheduling [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]: This functionality is embedded in the PREESM
toolflow: when the problem is correctly defined, the tool schedules the
algorithm upon the architecture using heuristic methods [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
6. Multicore SW Code Generation: The Directed Acyclic Graph (DAG)
produced by PREESM is internally used by the workflow to automatically
generate a C code with multiple threads (Pthreads of the C-standard). The
code is, now, ready to be compiled and tested on the target architecture (in
this case on the two A9 ARM cores of the Zynq MPSoC). The efficiency of
the approach was demonstrated for shared-memory MPSoC [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] (as the case
of the Processing System (PS) of the ZedBoard).
7. ZedBoard HW/SW Code Generation: This step is not fully completed.
        </p>
        <p>
          A first HW/SW code generation can be obtained by feeding Vivado SDSoC
with a PiSDF tested in PREESM [
          <xref ref-type="bibr" rid="ref28 ref30">30,28</xref>
          ] (for further details see the PREESM
tutorial [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]). As a starting point, a profiling of the application is necessary
for the identification of the most computationally intensive tasks that could
be accelerated. When the design requirements imply flexibility of the
application, the proposed design flow could be integrated with the multi-grain
approach presented in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], which offers to the developer the possibility to play
with the main reconfiguration strategies (Dynamic Partial Reconfiguration
(DPR) [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] and Coarse Grain Reconfiguration (CGR) [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]). In the
CERBERO toolchain, these methods are implemented respectively by ARTICo3
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] and MDC [
          <xref ref-type="bibr" rid="ref15 ref16 ref4">4,16,15</xref>
          ]. Furthermore, a self-adaptive behavior which allows
the automatic reconfiguration of the system is often a desirable property.
In this context, a proper monitoring of the hardware and software tasks is
required. PREESM is already integrated with PAPIFY [
          <xref ref-type="bibr" rid="ref20 ref5">5,20</xref>
          ], a tool based
on PAPI [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] that eases access to the Performance Monitor Counters (PMCs)
already available on the CPUs for heterogeneous systems, and is able to
provide a unified interface to access also custom monitors placed in the HW
accelerators [
          <xref ref-type="bibr" rid="ref19 ref29">19,29</xref>
          ].
8. Robotic Arm Actuators: The generated C code is ready to be compiled
(if computationally possible on the ARM cores) and executed directly on the
ZedBoard which is in charge of driving the actuator for moving the WidowX
in the Physical world.
        </p>
        <p>
          Following the workflow proposed, it is clear that the big effort resides in
describing the application using the Dataflow MoC (point 3 of Fig.5) and in the
High-Level Synthesis (HLS) description of the hardware accelerators. All the
other steps are fully-automated [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] and well documented by online available
tutorials. Also, the workflow is a valid demonstrator of the different tools
developed within the CERBERO H2020 project. The entire chain is applied to design
and prototype a live demo where we successfully use the DLS IK algorithm to
control a robotic arm directly connected to the MPSoC.
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>DLS algorithm assessment</title>
      <p>The DLS algorithm has been implemented in MATLAB® environment for
preliminary simulation tests prior to the porting onto the ZedBoard. The tests
carried out have evaluated the percentage error in the end-effector position and
the execution time while varying the number of iterations and , as reported in
(c) (d)
Fig. 7: (a) Percentage error vs. iterations ( =0.5), (b) Percentage error vs.
(iterations=500), (c) Execution time vs. iterations ( =0.5), (d) Execution time
vs. (iterations=500). Target = [ 10 10 10 ] has been considered for all plots.</p>
      <p>The execution times related to the actors of the PiSDF description have been
also evaluated. In Table 2 are reported the values with respect to the graph firing.
These take into account the repetitions of the DLS subgraph within an only one
PiSDF execution. Indeed, the number of steps to obtain the trajectory (the
input parameter iterations ) leads to a significant timing increment of the DLS
sub-blocks. For this reason, a hardware acceleration can be considered in order
to reduce processing time and power consumption.</p>
      <p>(a) (b)</p>
      <p>Fig. 8: Simulated (a) initial and (b) final manipulator poses.
The work presented in this paper is part of the CERBERO H2020 project
assessment. This implementation is intended to be used to prospectively demonstrate
the benefits of using heterogeneous MPSoC technologies in the field of space
applications. The current baseline demonstrator solves computational intensive
and iterative Inverse Kinematics algorithms to determine the trajectory of a
robotic arm. Prospectively this baseline setup will be extended to show how
robustness to faults and different trade-off executions can be successfully addressed
using reconfigurable technologies and heterogeneity. As already mentioned, as a
natural evolution of the work, specific hardware accelerators are going to be
created with a special focus on performance improvements and fault tolerance. The
challenge will be coped by making use of the new technologies developed within
CERBERO as discussed in Section 5.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgement</title>
      <p>This work has received funding from the EU Commissions H2020 Program under
grant agreement No 732105. The authors would also like to thank the
Universidad Politécnica de Madrid for the Leonardo Suriano’s predoctoral contract under
RR01/2015 (Programa Propio).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. https://www.mathworks.com/products/matlab-coder.html</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. https://preesm.github.io/docs/workflowtasksref/</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>3. https://preesm.github.io/tutos/sdsoc/</mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>4. http://sites.unica.it/rpct/</mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>5. https://github.com/Papify</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>6. https://icl.utk.edu/papi/</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <article-title>Cross-layer modEl-based fRamework for multi-oBjective dEsign of Reconfigurable systems in unceRtain hybRid envirOnments</article-title>
          , http://www.cerbero-h2020.eu/
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Aristidou</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lasenby</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chrysanthou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shamir</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Inverse Kinematics Techniques in Computer Graphics: A Survey</article-title>
          . Computer Graphics Forum (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Buss</surname>
            ,
            <given-names>S.R.</given-names>
          </string-name>
          :
          <article-title>Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods (</article-title>
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Buss</surname>
            ,
            <given-names>S.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>J.S.:</given-names>
          </string-name>
          <article-title>Selectively damped least squares for inverse kinematics</article-title>
          .
          <source>Journal of Graphics Tools 10</source>
          ,
          <fpage>37</fpage>
          -
          <lpage>49</lpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelcat</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nezan</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Memory analysis and optimized allocation of dataflow applications on shared-memory mpsocs</article-title>
          .
          <source>Journal of Signal Processing Systems</source>
          <volume>80</volume>
          (
          <issue>1</issue>
          ),
          <fpage>19</fpage>
          -
          <lpage>37</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelcat</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nezan</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhattacharyya</surname>
            ,
            <given-names>S.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Pimm:
          <article-title>Parameterized and interfaced dataflow meta-model for mpsocs runtime reconfiguration</article-title>
          . In: Embedded Computer Systems: Architectures, Modeling, and
          <source>Simulation (SAMOS XIII)</source>
          , 2013 International Conference on. pp.
          <fpage>41</fpage>
          -
          <lpage>48</lpage>
          . IEEE (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Di</given-names>
            <surname>Vito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Natale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Antonelli</surname>
          </string-name>
          , G.:
          <article-title>A comparison of damped least squares algorithms for inverse kinematics of robot manipulators</article-title>
          .
          <source>IFAC</source>
          <volume>50</volume>
          (
          <issue>1</issue>
          ),
          <fpage>6869</fpage>
          -
          <lpage>6874</lpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Fanni</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodríguez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sau</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Suriano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palumbo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raffo</surname>
          </string-name>
          , L.,
          <string-name>
            <surname>de la Torre</surname>
          </string-name>
          , E.:
          <article-title>Multi-grain reconfiguration for advanced adaptivity in cyber-physical systems</article-title>
          .
          <source>In: 2018 International Conference on ReConFigurable Computing and FPGAs (ReConFig)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . IEEE (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Fanni</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sau</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meloni</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raffo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palumbo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Power and clock gating modelling in coarse grained reconfigurable systems</article-title>
          .
          <source>In: Proceedings of the ACM International Conference on Computing Frontiers, CF'16</source>
          . pp.
          <fpage>384</fpage>
          -
          <lpage>391</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Fanni</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sau</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raffo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palumbo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <source>Automated Power Gating Methodology for Dataflow-based Reconfigurable Systems. In: Proceedings of the 12th ACM International Conference on Computing Frontiers, CF'15</source>
          . pp.
          <volume>61</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>61</lpage>
          :
          <issue>6</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dawson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abdallah</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <source>Robot Manipulator Control: Theory and Practice</source>
          .
          <volume>2</volume>
          <fpage>edn</fpage>
          . (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Lombardo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , et al.:
          <article-title>Power management techniques in an FPGA-based WSN node for high performance applications</article-title>
          .
          <source>In: Int. Workshop on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          (
          <year>July 2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Madroñal</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fanni</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Run-time performance monitoring of hardware accelerators: Poster</article-title>
          .
          <source>In: Proceedings of the 16th ACM International Conference on Computing Frontiers</source>
          . pp.
          <fpage>289</fpage>
          -
          <lpage>291</lpage>
          . ACM (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Madroñal</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morvan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lazcano</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salvador</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juárez</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Automatic instrumentation of dataflow applications using papi</article-title>
          .
          <source>In: Proceedings of the 15th ACM International Conference on Computing Frontiers</source>
          . pp.
          <fpage>232</fpage>
          -
          <lpage>235</lpage>
          . ACM (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Masin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palumbo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myrhaug</surname>
            , H., de Oliveira Filho,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pastena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelcat</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raffo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Regazzoni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanchez</surname>
            ,
            <given-names>A.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toffetti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de la Torre</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zedda</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Cross-layer design of reconfigurable cyber-physical systems</article-title>
          . In: Design, Automation &amp; Test in Europe Conference &amp; Exhibition. pp.
          <fpage>740</fpage>
          -
          <lpage>745</lpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Palumbo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fanni</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sau</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pulina</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raffo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shindin</surname>
            , E., de Rojas,
            <given-names>P.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelcat</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juárez</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Regazzoni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meloni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zedda</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myrhaug</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaliciak</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andriaanse</surname>
            ,
            <given-names>J.</given-names>
            , de Olivieria Filho, J.
          </string-name>
          ,
          <string-name>
            <surname>Muñoz</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toffetti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>CERBERO: cross-layer model-based framework for multi-objective design of reconfigurable systems in uncertain hybrid environments</article-title>
          .
          <source>In: Proceedings of the 16th ACM International Conference on Computing Frontiers</source>
          . pp.
          <fpage>320</fpage>
          -
          <lpage>325</lpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Pelcat</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heulot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guy</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nezan</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Preesm: A dataflow-based rapid prototyping framework for simplifying multicore dsp programming</article-title>
          .
          <source>In: Education and Research Conference (EDERC)</source>
          ,
          <year>2014</year>
          6th
          <string-name>
            <given-names>European</given-names>
            <surname>Embedded</surname>
          </string-name>
          <article-title>Design in</article-title>
          . pp.
          <fpage>36</fpage>
          -
          <lpage>40</lpage>
          (
          <year>Sept 2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Pelcat</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nezan</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piat</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Croizer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A system-level architecture model for rapid prototyping of heterogeneous multicore embedded systems (</article-title>
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Rodríguez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valverde</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Portilla</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Otero</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riesgo</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De la Torre</surname>
          </string-name>
          , E.:
          <article-title>Fpga-based high-performance embedded systems for adaptive edge computing in cyber-physical systems: The artico3 framework</article-title>
          .
          <source>Sensors</source>
          <volume>18</volume>
          (
          <issue>6</issue>
          ) (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Spong</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hutchinson</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vidyasagar</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Robot Dynamics and Control</article-title>
          . Wiley,
          <volume>2</volume>
          <fpage>edn</fpage>
          . (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Sugihara</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Solvability-unconcerned inverse kinematics by the levenberg-marquardt method</article-title>
          .
          <source>IEEE Transactions on Robotics</source>
          <volume>27</volume>
          (
          <issue>5</issue>
          ),
          <fpage>984</fpage>
          -
          <lpage>991</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Suriano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arrestier</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heulot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelcat</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>de la Torre</surname>
          </string-name>
          , E.:
          <article-title>Damhse: Programming heterogeneous mpsocs with hardware acceleration using dataflow-based design space exploration and automated rapid prototyping</article-title>
          .
          <source>Microprocessors and Microsystems</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Suriano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madroñal</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodríguez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juárez</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de la Torre</surname>
          </string-name>
          , E.:
          <article-title>A unified hardware/software monitoring method for reconfigurable computing architectures using papi</article-title>
          .
          <source>In: 2018 13th International Symposium on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . IEEE (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Suriano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodriguez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desnos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelcat</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>de la Torre</surname>
          </string-name>
          , E.:
          <article-title>Analysis of a heterogeneous multi-core, multi-hw-accelerator-based system designed using preesm and sdsoc</article-title>
          .
          <source>In: 2017 12th International Symposium on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Wijtvliet</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Waeijen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corporaal</surname>
          </string-name>
          , H.:
          <article-title>Coarse grained reconfigurable architectures in the past 25 years: Overview and classification</article-title>
          .
          <source>In: 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS)</source>
          . pp.
          <fpage>235</fpage>
          -
          <lpage>244</lpage>
          (
          <year>July 2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Wright</surname>
            ,
            <given-names>M.H.</given-names>
          </string-name>
          , et al.:
          <article-title>Nelder, mead, and the other simplex method</article-title>
          .
          <source>Documenta Mathematica</source>
          <volume>7</volume>
          ,
          <fpage>271</fpage>
          -
          <lpage>276</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>