# Unified Modeling of Unconventional Modular and Reconfigurable Manipulation
System

Anubhav Dogra<EMAIL_ADDRESS><EMAIL_ADDRESS>Sakshay
Mahna  Srikant Sekhar Padhee  Ekta Singla  Indian Institute of Technology
Ropar, Punjab, India, 140001  Department of Mechanical Engineering  Department
of Computer Science & Engineering

###### Abstract

Customization of manipulator configurations using modularity and
reconfigurability aspects is receiving much attention. Modules presented so
far in literature deals with the conventional and standard configurations.
This paper presents the 3D printable, light-weight and unconventional modules:
MOIRs’ Mark-2, to develop any custom ‘n’-Degrees-of-Freedom (DoF) serial
manipulator even with the non-parallel and non-perpendicular jointed
configuration. These unconventional designs of modular configurations seek an
easy adaptable solution for both modular assembly and software interfaces for
automatic modeling and control. A strategy of assembling the modules,
automatic and unified modeling of the modular and reconfigurable manipulators
with unconventional parameters is proposed in this paper using the proposed 4
modular units. A reconfigurable software architecture is presented for the
automatic generation of kinematic and dynamic models and configuration files,
through which, a designer can design, validate using visualization, plan and
execute the motion of the developed configuration as required. The framework
developed is based upon an open source platform called as Robot Operating
System (ROS), which acts as a digital twin for the modular configurations. For
the experimental demonstration, a 3D printed modular library is developed and
an unconventional configuration is assembled, using the proposed modules
followed by automatic modeling and control, for a single cell of the vertical
farm setup.

###### keywords:

Modular and Reconfigurable Design , Robot Operating System , Kinematics and
Dynamic Modeling , Modular Library , Reconfigurable Software Architecture

††journal: Journal

##  1 Introduction

Current trend is moving towards the mass-customization of the products and the
tools and has highlighted the need of custom design of the manipulators to be
used in the collaborative environments like manufacting, maintenance, or
services [1, 2]. Re-designing and re-manufacturing the custom robot from
scratch is neither cost-effective nor time-efficient and that leads to the
importance of modularity and reconfigurability aspects [3, 4]. This not only
aid in the customization of the robots but also reduces the downtime for the
maintenance of the robotic manipulators, as the modules can be quickly
replaced for repairing. Also, this incurs the challenges of automatic
kinematic, dynamic and control modeling of the reconfigurable manipulators,
for which computer-integrated solution is proposed in this paper. For non-
repetitive tasks and for cluttered environments, where the conventional or
standard configurations cannot withstand, a customized manipulator with non-
parallel and non-perpendicular jointed configuration is required [5]. Many
researchers have contributed in this domain to achieve customization using
modular and reconfigurable concepts. Reconfiguration has been presented using
self and manually reconfigurable modular designs [6, 7], using lockable joints
in [8, 9] and using modular joints and links in [10, 11, 12, 13, 14]. Modular
joints and links presented in these works are designed to get connected for
standard configurations, such as planar chain, PUMA and SCARA configurations
etc. A few researchers have also worked for unconventional configurations and
modules, enabling to adapt the twist angles other than $0$ or $90^{\circ}$.
Singh et al [4] presented the design of modules with a twist unit to adjust
the twist angles in two different ways. Modules had been presented in three
variants based upon the size of the actuators used. Stravapodis et al. [15]
presented a pseudo joint module through which twist angle can be adjusted in
discrete positions. Brandstotter et al. [16] presented rigid curved links to
realize unconventional configurations. Recently, curvature adaptable links are
presented in [17] to get the desired configuration based upon the task. From
standard to unconventional, modular designs have evolved according to the need
of unconventional configurations to do complicated tasks or to be used in
cluttered environments.

With these advancements, kinematic and dynamic modeling of the modular
configurations is a challenge after re-configuration. Modeling of modular
configurations are generally done by converting them into the known
formulations such as DH parameters, Product of Exponential formula (POE),
screw theories, etc. Few recent works in this domain are presented such as,
automatic kinematic modeling of the modular configuration using 2-DoF modules
is performed using screw-theoretic formulations in [18]. Similar method is
shown in [19, 20, 21] by using graph theory, defining the Assembly Incidence
Matrix (AIM) for the connections of the modules and calibrated using POE
formula. An extension to standard DH parameters has been presented in [22, 23]
for the automatic modeling of kinematics and dynamics. FEM based method for
automatic modeling of modular robots is presented in [24]. DH parameters based
modeling has been presented for standard modular configurations in [21, 25],
where modular configurations are converted into the DH parameters for the
forward and inverse kinematic computations. General orthogonal frames based
kinematic modeling is presented in [26]. Brandstotter et al [16] uses the
numerical algorithm developed by Husty and pfurner [27] for inverse kinematic
solution of $6-DoF$ general configurations. Stravapodis et al [28] uses
product of exponential formula for forward and inverse kinematics of modular
$3-DoF$ configuration. Majorly these works focus at the modeling of the
standard configurations. Incorporating the parameters-adjustment within the
modules are not discussed much. An approach for the kinematics of modular
configuration is developed in this paper, by defining the three orthogonal
frames. Followed by that, automatic reconstruction of desired configurations
in a software environment is presented to visualize and validate the developed
modular configurations. The virtual model is used not only in simulations but
also to run the developed configuration in real-time - using the controllers -
to accomplish the required tasks [29] and thus acts as digital twin. An
efficient way to model the configuration for simulation and real-time control
is through Unified Robot Description Format (URDF) file which can be
incorporated in various robotic tool boxes such as Moveit, V-rep, Matlab,
OpenRave etc. [30]. Few works have been reported recently which incorporate
the use of Robot Operating System (ROS) [31] and URDF for the design of
robotic configurations and can be seen in [32, 33, 34, 35]. URDF can also be
generated using some standard software such as SolidWorks, which has a plugin
to convert the software assembly into robot description files. However,
modeling the new configurations every time in computer aided design software
is not time efficient. Thus, one of the challenges is to automatically
generate the URDF for any n-DoF modular configuration. Following observations
can be outlined from the reported works.

  1. 1.

Only few reports are found which are dealing with the unconventional twist
parameters, non-parallel and non-perpendicular jointed configurations, for
modular manipulators.

  2. 2.

To develop the kinematic and the dynamic models of every different
configuration needs thorough involvement, and a designer needs ample time
analyzing any change while planning a configuration.

  3. 3.

Integration of automatic modeling and control of modular configurations along
with the cluttered environment is essential during the optimal synthesis of
the customized configurations, and that requires further exploration.

Motivation of this work is to present a methodology for automatically
generating the models of modular and reconfigurable manipulators even with
non-parallel and non-perpendicular jointed configurations. These models can be
visualized and aid in unifying the modeling and control of reconfigured
manipulators through the proposed software architecture. The major
contributions of this papers are, (a) Design of the modular library is
presented which can be assembled in non-parallel and non-perpendicular fashion
to develop the desired configuration with $n-$DoF. (b) Two methodologies to
generate the automatic models (URDFs) of the given modular configurations with
the proposed modular sequence and adaptive parameters are presented. First is
using the direct modular assemblies and second is to convert from standard
robot design parameters. (c) A reconfigurable software architecture is
presented for automatic setting up of controllers and motion planner for the
modular configurations in a given workspace. The methodology is integrated
into an open source professional software for the simulation and real time
control of the developed configurations.
The paper is organized as follows. Section 2 discusses the design of the
modular architecture and respective features. Section 3 defines the structural
representation of the modules and corresponding kinematic computations.
Automatic modeling of the configuration is presented in section 4. The
selected case studies of the modular configurations are presented in section
5, with the conclusion of the work in the last section.

Figure 1: Modular library designed to assemble customized modular and
reconfigurable manipulators [36]. (a) Actuator, (b) Actuator casings, (c)
Twist adjusting unit, (d) Link module.

##  2 Adaptable modular library

In order to configure a customized manipulator, a modular library is presented
containing joint modules and link modules, named as MOIRs’ Mark-2. The modules
can be assembled for a $n-$DoF configuration and are also adaptable to the
reconfigurable parameters. The modules are designed utilizing the optimal
planning strategy [37], with respect to minimal dynamic torques, presented by
the authors in [36]. The elements in the modular library are discussed as
follows.

###  2.1 Joint modules

A joint module consists of $3$ components as, unconventional twist unit,
actuator and the actuator casings for input and output section of the
actuators as shown in Fig 1. It is designed to incorporate the actuator and
its adjustment in terms of connection with other modules and twist angle.

####  2.1.1 Adaptive twist unit

It is designed to incorporate the twist angles adjustment between the two
frames according to DH convention. The twist adjustment can be done in two
ways. One is the angle between the two adjacent intersecting joint axes,
another is an angle between two adjacent skew joint axes. In this design, a
pivotal extension from the input unit of casing is assembled with the pivot of
twist adjusting unit, see Fig. 1 (b). The twist unit has a discontinuous semi-
circular slot with resolution of $15^{\circ}$ ranges from $0$ to $+90^{\circ}$
and $-45^{\circ}$ in both clockwise and anticlockwise direction as shown in
Fig. 1 (c). The input unit can rotate about pivotal axis in the twist unit to
adjust the twist angle. Besides, there are two connection ports provided
orthogonal to each other and are provided with $12$ holes with resolution of
$30^{\circ}$ to adjust twist angle.

####  2.1.2 Actuators

To design the variants of the modules, KA-Series actuators from Kinova [38]
are used, see Fig. 1 (a). The KA-Series actuators consist of a motor and two
disk-shaped sides as the input side and the output side. Under the action of
the motor, the two sides rotate with respect to one another around their
common central axis. The input side of the actuator along with the input
linkage are fixed while the output side of the actuator rotates and thus
moving the output linkage. The KA-series actuators are available in two
variants as $KA-75+$ and $KA-58$. Specifications of these actuators are
provided in Table 1. Here, $\epsilon$ denotes the number of modules which can
be carried by the same type of modules when assembled [36]. Each variant of
the actuator connects to each other in a daisy chain using a single flat flex
cable between two modules. The serial connection of the actuators with direct
connectivity only to its adjacent modules, makes it perfect for modular
application.

####  2.1.3 Actuator casings

Two casings are designed for the actuator for each of its side, see Fig. 1
(b). The input casing is to be assembled with input section of actuator, which
is relatively fixed. Thus, it has two pivotal extensions, which are assembled
with the twist unit. The output casings is to be assembled with output section
which rotates with respect to input section. On each of the casing, there are
eight tapped holes which are used to fix these casings onto the actuator.
Output casing has $12$ threaded holes. These $12$ holes gives the resolution
of $30^{\circ}$ when assembling other modules to it. The twist slot in the
module is used to adjust the desired twist angle between two adjacent joint
axes.

###  2.2 Link modules

Link modules are passive modules to provide structural and the reachable
aspects to a manipulator as shown in Fig. 1 (d). The connection ports of the
link are perpendicular to each other. It provides the length or offset
parameters according to the type of connection.
The structural design aspects of the modules are not considered for the
current study. Here, the focus is laid on the automatic modeling of the
modular configurations.

Table 1: Technical specifications of actuators. Quantity | KA-75+ (H) | KA-58 (L)
---|---|---
$W~{}(kg)$ | 0.57 | 0.357
$RPM$ | 12.2 | 20.3
$\tau_{nom}~{}(Nm)$ | 12 | 3.6
$\tau_{max}~{}(Nm)$ | 30.5 | 6.8
$\epsilon$ | 3 | 3

##  3 Topology representation for modular configurations

To identify each configuration, developed using the adaptable modules as
discussed in section 2, a topological representation of the modular
composition is proposed. Joint modules are categorized into two variants based
upon the actuator used in it. One with the $K-75+$ is named as Heavy (H) and
other with $K-58$ is named as Light (L). Each joint module is having $3$
connection ports in total through which joint or link modules can be
assembled. Two of them are input connection ports ($Ip_{1},~{}Ip_{2}$) and the
other is an output connection port ($Op$), as shown in Fig. 1. Joint module or
the link module, say $(k-1)^{th}$ module is connected to the ${k^{th}}$ module
at the input connections ports ($Ip$). And ${(k+1)^{th}}$ module is connected
to the ${k^{th}}$ module through output connection port ($O_{p}$). Also, with
two modules available as Heavy (H) and Light (L), set of rules for the
physical assembly of any required configuration assembly are prepared as
follows.

  1. 1.

Fix link 1: $H_{i}$ and link n: $L_{n}$.

  2. 2.

Connect $H_{i}$ $\rightarrow$ $H_{i+1}$ at
($Ip_{1_{i+1}}~{}or~{}Ip_{2_{i+1}}$) or $H_{i}$ $\rightarrow$ $L_{i+1}$ at
($Ip_{1_{i+1}}~{}or~{}Ip_{2_{i+1}}$).

  3. 3.

$L_{i}$ $\rightarrow$ $L_{i+1}$ at ($Ip_{1_{i+1}}~{}or~{}Ip_{2_{i+1}}$).

  4. 4.

Refer $\epsilon$ for maximum number of each module from Table 1.

  5. 5.

Link modules are to be used to fulfil respective requirement.

Here $i=1:n$, with n as number of DoF. A joint module can be connected to the
next joint module with or without the link module in between. $\epsilon$ is
the parameters which defines how many number of modules of one kind can be
carried by the same module itself. This study has been conducted based upon
the worst torque analysis of the joint torques for each kind of module by the
authors in [36]. An n-DoF manipulator will be the sequence of H and L modules
with considerations of the above mentioned rules. Some of the exemplary
configurations are shown in Sections 3.2\- 3.2.

###  3.1 Frames assignment: modular kinematics

For the kinematic modeling of the modular configuration, and adjustment of the
required parameters in the modules such as twist angle, joint angle, and link
length, three orthonormal frames are associated to the modular links as shown
in Fig. 2. In this paper, red, green and blue axes represents $x$, $y$ and $z$
axes.

Figure 2: (a) $3$ Frames associated to modular components, (b) Blue axis
represents the z-axis of joint frame and is located on the actuator axis (b)
Red axis represents the x-axis of twist1 frame located at the connection port
(c) Green axis represents the y-axis of the twist2 frame located inside the
twist adjustment module.

  1. 1.

Joint frame: Joint frame is a rotating frame, with variable as joint angle,
about its own $z-$axis (blue) as shown in Fig. 2 (b). It is also an attaching
frame for the connection of the modules with the $O_{p}$ port of the joint
module.

  2. 2.

Twist1 frame: It connects previous modules with the $Ip_{1}$ port of the joint
module. Adjustment of the type II twist, referred in section 3.2, is done
using this frame, by rotating about the $x-$axis (red) of twist1 frame, as
shown in Fig. 2 (c).

  3. 3.

Twist2 frame: It lies inside the joint modules on the pivot axis with origin
at the center of this axis. Type III twists, referred in section 3.2, are
adjusted using this frame by rotating the actuator casings about $y-$axis
(green) of twist2 frame as shown in Fig. 2 (d).

The positions of these frames are fixed with respect to each other within the
modules but the orientation variables (about red/green/blue) do get adjusted
during reconfiguration.
In a serial chain with $n-DoF$ and $(n+1)-$joint frames, the $n$th frame can
be represented in the base frame ($0$th) using the following equation,

${}^{n}_{0}\textbf{A}={}^{1}_{0}\textbf{A}~{}~{}{}^{2}_{1}\textbf{A}~{}~{}.~{}.~{}.~{}~{}{}^{n}_{n-1}\textbf{A},$
(1)

which can be expanded for the three frames defined as

$\begin{split}{}^{n}_{0}\textbf{A}=\\{{}^{t_{1}}_{0}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}~{}~{}{}^{t_{2}}_{J}\textbf{A}\\}_{1}~{}~{}\\{{}^{t_{1}}_{1}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}~{}~{}{}^{t_{2}}_{J}\textbf{A}\\}_{2}.~{}.~{}.\\\
.~{}.~{}.~{}\\{{}^{t_{1}}_{n-1}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}~{}~{}{}^{t_{2}}_{J}\textbf{A}\\}_{n}.\end{split}$
(2)

This can be simplified as

${}^{n}_{0}\textbf{A}=\prod_{i=1}^{n}\\{{}^{t_{1}}_{i-1}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}~{}~{}{}^{t_{2}}_{J}\textbf{A}\\}_{i},$
(3)

where

${}^{t_{1}}_{i-1}\textbf{A}=\begin{bmatrix}\cos(\alpha_{t_{2}})~{}~{}&0~{}~{}&\sin(\alpha_{t_{2}})~{}~{}&x_{01}\\\
0~{}~{}&1~{}~{}&0~{}~{}&0\\\
-\sin(\alpha_{t_{2}})~{}~{}&0~{}~{}&\cos(\alpha_{t_{2}})~{}~{}&z_{01}\\\
0~{}~{}&0~{}~{}&0~{}~{}&1\end{bmatrix};$ (4)

${}^{J}_{t_{1}}\textbf{A}=\begin{bmatrix}\cos(\theta)~{}~{}&-\sin(\theta)~{}~{}&0~{}~{}&0\\\
\sin(\theta)~{}~{}&\cos(\theta)~{}~{}&0~{}~{}&0\\\
0~{}~{}&0~{}~{}&1~{}~{}&z_{12}\\\ 0~{}~{}&0~{}~{}&0~{}~{}&1\end{bmatrix};$ (5)

${}^{t_{2}}_{J}\textbf{A}=\begin{bmatrix}1~{}~{}&0~{}~{}&0~{}~{}&x_{23}\\\
0~{}~{}&\cos(\alpha_{t_{1}})~{}~{}&-\sin(\alpha_{t_{1}})~{}~{}&0\\\
0~{}~{}&\sin(\alpha_{t_{1}})~{}~{}&\cos(\alpha_{t_{1}})~{}~{}&0\\\
0~{}~{}&0~{}~{}&0~{}~{}&1\end{bmatrix}.$ (6)

Here, $i$ is the number of joint modules in the modular assembly which is
equal to the number of degrees-of-freedom (DoF). ${}^{t_{1}}_{i-1}\textbf{A}$
represents the transformation of the twist1 frame with respect to the base
frame or the frame at one of the connection port of the joint module.
${}^{J}_{t_{1}}A$ represents the transformation of the joint frame with
respect to the twist1 frame, and ${}^{t_{2}}_{J}A$ represents the
transformation of the twist2 frame with respect to the joint frame.
$\alpha_{t_{1}}$ and $\alpha_{t_{2}}$ are the twist1 and twist2 parameters
respectively. Length parameters in these transformation matrices, say
$x_{01}$, $z_{01}$, $z_{12}$ and $x_{23}$, are the constant values as per
geometrical design constraints. For the modular assembly, few of the
transformation matrices will be the identity matrices if the corresponding
module is not used.
It could be quite cumbersome to visualize the modular configuration merely
using these frames. Hence, for the automatic generation of mathematical models
of the developed configurations, four modular units are proposed based upon
the connection ports on the joint modules, as shown in Fig. 3. These are valid
for both ‘H and ‘L’ variant of the joint modules. These can be enumerated as,
‘$H^{k}$’ associated to Heavy (H) modules and ‘$L^{k}$’ associated to Light
(L) modules, where $k~{}\in~{}1:4$. This includes all four possibilities
associated to each type of module.

Figure 3: The 4 types of modular units as (a) $H^{1}$ or $L^{1}$, (b) $H^{2}$
or $L^{2}$, (c) $H^{3}$ or $L^{3}$ and (d) $H^{4}$ or $L^{4}$.

  1. 1.

‘$H^{1}$’ or ‘$L^{1}$’ is used when a joint module is to be connected through
$Ip_{1}$. The concatenated transformation matrix for this modular unit
representing joint frame to the base frame (of the modular unit) is

$\textbf{A}^{1}={}^{t_{1}}_{0}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}.$ (7)

Here the values of $x_{01}$, $z_{01}$, and $z_{12}$, are $0~{}m$, $0.074~{}m$,
and $0.073~{}m$, respectively.

  2. 2.

‘$H^{2}$’ or ‘$L^{2}$’ represents the corresponding joint module connected
through $Ip_{2}$. In this case too, the concatenated transformation matrix
representing joint frame to the base frame (of the modular unit) is

$\textbf{A}^{2}={}^{t_{1}}_{0}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}.$ (8)

However, in this case, the values of $x_{01}$, $z_{01}$, and $z_{12}$, are
$-0.0297~{}m$, $0.075~{}m$, and $0.073~{}m$, respectively.

  3. 3.

‘$H^{3}$’ or ‘$L^{3}$’ is used when a joint module is connected through
$Ip_{1}$ and it is having a link module attached at $Op$. In this case,
concatenated transformation matrix representing the twist2 frame at the end of
the link with respect to the base frame of modular unit is

$\textbf{A}^{3}={}^{t_{1}}_{0}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}~{}~{}{}^{t_{2}}_{J}\textbf{A}.$
(9)

Here, the values of $x_{01}$, $z_{01}$, $z_{12}$, and $x_{23}$, are $0~{}m$,
$0.074~{}m$, $0.073~{}m$, and $0.22~{}m$, respectively.

  4. 4.

‘$H^{4}$’ or ‘$L^{4}$’ represents a joint module connected through $Ip_{2}$
and having a link module at $Op$. In this case concatenated transformation
matrix representing the twist2 frame with respect to the base frame of modular
unit is

$\textbf{A}^{4}={}^{t_{1}}_{0}\textbf{A}~{}~{}{}^{J}_{t_{1}}\textbf{A}~{}~{}{}^{t_{2}}_{J}\textbf{A}.$
(10)

In this case, the values of $x_{01}$, $z_{01}$, $z_{12}$, and $x_{23}$, are
$-0.0297~{}m$, $0.075~{}m$, $0.073~{}m$, and $0.22~{}m$ respectively.

###  3.2 Modular configuration types

For any given task and the environment, any type of configuration could be
needed, say, planar or standard spatial manipulator. Any required
configuration can be formed using these modular units and can be categorized
in 3 major types as follows.

##### Configuration type I:

This is considered as the most common ones to see in manipulators with twist
angles as $0^{\circ}$ and $90^{\circ}$. All the planar configurations and
spatial configurations with these twist angles fall under this category and
are the most commonly used due to the available analytical solutions of
inverse kinematics. As shown in Fig. 4 (a), a $2-DoF$ planar configuration can
be developed using two variants as heavy and light modules as $H^{3}-L^{4}$.
For larger number of DoF in planar serial chains, $H^{4}$ would be repeating
in sequence for $n-DoF$. Similarly, spatial configurations with $0^{\circ}$
and $90^{\circ}$ twist angles are shown in Fig. 4 (b) and (d). A 3-DoF
configuration can be made with $H-H-L$ modular sequence using
$H^{1}-H^{4}-L^{4}$ for reachable manipulators. Similarly $L-L-L$ can be used
as $L^{1}-L^{4}-L^{1}$ for a spherical wrist configuration.

Figure 4: (a) Planar $H^{3}-L^{4}$, (b) Spatial $H^{1}-H^{4}-L^{4}$, (c) Spatial with twist (between $Z_{1}~{}\&~{}Z_{2}$) $H^{1}-H^{4}-L^{4}$, (d) Wrist $L^{1}-L^{4}-L^{1}$, (e) Raven-II $H^{4}-H^{3}-L^{1}$. Table 2: DH parameters and modular unit sequence of the different modular configurations. Configuration type | DH parameters | Modular Configuration
---|---|---
| $a$ | $\alpha$ | $d$ | $\theta$ |
I (a) | $a_{1}$ | 0 | 0 | $\theta_{1}$ | $H^{3}-L^{4}$
$a_{2}$ | $\pi$ | 0 | $\theta_{2}$
I (b) | 0 |  $-\pi$/2 | $d_{1}$ | $\theta_{1}$ | $H^{1}-H^{4}-L^{4}$
$a_{1}$ | 0 | 0 | $\theta_{2}$
$a_{2}$ | 0 | 0 | $\theta_{3}$
II (c) | 0 |  $-\pi$/2 | $d_{1}$ | $\theta_{1}$ | $H^{1}-H^{4}-L^{4}$
$a_{1}$ | $\alpha_{2}$ | 0 | $\theta_{2}$
$a_{2}$ | 0 | 0 | $\theta_{3}$
I (d) | 0 |  $-\pi$/2 | 0 | $\theta_{1}$ | $L^{1}-L^{4}-L^{1}$
0 |  $\pi$/2 | 0 | $\theta_{2}$
0 | 0 | 0 | $\theta_{3}$
III (e) | 0 | $\alpha_{1}$ | 0 | $\theta_{1}$ | $H^{4}-H^{3}-L^{1}$
0 | $\alpha_{2}$ | 0 | $\theta_{2}$
0 | 0 | 0 | $\theta_{3}$

##### Configuration type II:

Configuration type II possesses one or more links with unconventional twist
angles, that is the values other then $0^{\circ}$ or $90^{\circ}$, as shown in
Fig. 4 (c). Twist angles incorporated in this configuration are measured
between the two skew (non-intersecting) joint axes of adjacent joints. The
configuration type can be made same as in Type I using $H-H-L$ modular
sequence with $H^{1}-H^{4}-L^{4}$,with a twist given in between
$Z_{1}~{}\&~{}Z_{2}$ about $X_{2}$.

##### Configuration type III:

Configuration type III also possesses unconventional twist angles with
intersecting joint axes of the adjacent joints of any configuration. Fig. 4
(e) shows a similar configuration called RAVEN-II reported by Hannaford et al
[39]. It is customized for the medical surgery and has non-conventional values
of twist angles. First pair of joint axes are intersecting each other at an
angle $75^{\circ}$ and next pair is intersecting at an angle $\pi-52^{\circ}$.
The proposed design of modules can be used for the development of such unusual
customized configurations. Here, the modular sequence is $H-H-L$ and using
$H^{4}-H^{3}-L^{1}$.
Assembly of the modular units validates the generation of desired
configurations. The incorporation of twist angles and other robotic parameters
are done within the modular units using three frames defined in section 3.1.
The next steps are to determine the kinematics and dynamics of the developed
modular configuration, which are discussed in the following sections.

##  4 Automatic and unified modeling of modular configurations

Modular architecture is designed to incorporate the desired parameters which
indicates the geometrical adjustments between the frames. Given the proposed
types of modules, a user can realize a desired configuration by planning a
sequence of modular units to be used. This model can be used for further
computational work only if the corresponding kinematic and dynamic modeling is
in place, such as for generation, evaluation and optimization of modular
compositions and for the motion planning and control of assembled composition.
Therefore, two methods are presented for the model generation of the modular
composition.

###  4.1 Direct modular assemblies and generating respective models

An algorithm is developed, which takes sequence of modular-units, module-type
(in Heavy (H) or Light (L)), corresponding angles with respect to the proposed
frames as inputs, and provides the output file of the robot model in XML
format, as shown in Fig. 5. This method is useful when the user has no prior
information of the standard configuration parameters, such as, during the
optimal synthesis of modular composition. The optimal synthesis is done either
by enumerating all possible combinations and selecting the best out of it, or
by evolving a modular sequence during the optimization itself while satisfying
the given constraints. A database has been provided which contains the stl
file models of each of the components of the modules. The database contains
the geometrical and the inertial data of the modular components. The modular
components are designed using a professional design software called SolidWorks
and stl files are exported from this. The developed virtual models are used
not only to simulate the design in a given environment but also to run the
developed configuration in realtime - using the controllers - to accomplish
the required tasks.

###  4.2 Conversion from standard designs to modular composition

The DH parameters are the most common standard convention which is used by the
large robotic community. Therefore, an additional algorithm is proposed to
convert the standard robotic parameters into the modular compositions. The DH
parameters possesses the information of number of degrees-of-freedom (DoF) and
relationship between the adjacent joint frames in terms of the position and
the orientation. As per the discussions in section 3, modular configurations
are formed using four modular units. Therefore, first step of the process is
to interpret a given set of DH parameters and convert them into modular units
sequence i.e. in terms of $H^{k}~{}or~{}L^{k}$ as shown in Table 2. Along with
that, unconventional twist parameters are to be incorporated within these
modular units, if any. Followed by the rules of assembly given in section 3,
the algorithm to convert DH parameters into modular unit sequence works upon
the following points.

  1. 1.

If $a~{}\neq~{}0$ in the DH table, $H^{3}$ or $H^{4}$ are used.

  2. 2.

If $a=0~{}\cap~{}\alpha~{}\neq~{}0$ in the DH table, twist is given by
rotating actuator casings about the pivotal axis in the adaptive twist unit of
joint module.

  3. 3.

If $a~{}\neq~{}0~{}\cap~{}\alpha~{}\neq~{}0$ in the DH table, twist is given
using $Ip_{1}$ or $Ip_{2}$ connections ports of the joint module.

  4. 4.

If $d~{}\neq~{}0$ in the DH table, $H^{1}$ or $H^{2}$ are used.

Through this, the prescribed DH parameters are converted into the modular unit
sequence. It is worthwhile to note that the desired configuration can also be
realized by assembling the modules without considering the DH parameters.
After reconfiguration, the transformation matrices defined in section 3.1 can
be used to write the kinematic model as required. To compute the joint torques
for any modular configuration, the inertial specifications of modular
architecture are utilized to formulate a unified approach. The inertial
parameters of the modular components are fetched from the modular sequence to
represent them with respect to the joint frames, as described in section 4.2.
Euler-Lagrange equation can be used to formulate the equations of motion of
the modular configurations [40].

###  4.3 Modular URDF: model representation of modular configuration

Figure 5: Flowchart for Unified Modeling: From, 1. modular library, 2.
Assembled configuration, 3. Modular type-sequence, 4. Automatic URDF
generation, 5. Visualization of configuration through Rviz.

For the automatic and on-the-fly modeling and control of a given modular
configuration, the algorithm presented in section 4.1 and 4.2 are implemented
in python to generate the robot description files called as Unified Robot
Description Format (URDF). URDF is widely used for the modeling and analysis
of robotic systems in softwares like ROS, v-rep, OpenRave, Matlab and so
forth. URDF is an XML (Extensible Markup Language) based file format to
describe the various elements of a robot. The elements are specified in the
form of links and joints tags, having sub-tags of visuals, origin, collision,
inertia, etc., as shown in part 4 of the Fig. 5. Both the joints and the links
are defined in terms of their rigid body geometrical and inertial parameters.
Sensing elements, such as torque sensors, cameras, etc. can also be described
in the same to include them in simulations and real time applications. URDF
supports the tree like structures for robots, which provides an efficient
method to determine the position and orientation of any joint/link based on
the parent link or joint. Parent link is defined as the link which acts as a
base for the next link. URDF is visualized in a debugger application called
Rviz, through which generated models can be visualized and verified.

###  4.4 Reconfigurable software architecture

It is important to have reconfigurable software architectural system which can
automatically adapt to the modular composition developed using the modular
library. Every time the composition is disassembled and then assembled for a
new one, with any DoF, the modular composition should be able to run without
much effort, just like plug and play system. The proposed architecture is
built upon the Robot Operating System (ROS), with the benefits of abstracting
low level machine implementations such as joint control and communication,
enabling the user to focus on higher level tasks, as shown in Fig. 6. The
required Application Program Interfaces (API) are automatically configured
right after the assembly of modules. Kinova actuators and controllers used in
the development of modules are compatible with the ROS system. The software
libraries, low-level API are provided by Kinova [38] for the actuators to
connect them with ROS. The required changes in the configuration files are
done automatically, as shown in Fig. 6. The name of the URDF file is to be set
as $mod<n>\\_name$, where $n$ defines the number of actuators to be used with
actuator address stored in them. The actuator address actually specifies the
joint number in the modular composition. Each variant of the actuator connects
to each other in a daisy chain using a single flat flex cable which carry
power and communication between modules. Starting from the base, this forms a
chain of $n-$joint modules for $n-$DoF system. The actuator PIDs are used as-
$[2,~{}0,~{}0.05]$ which is working for all the unconventional modular
configurations, as the system works upon the decentralized control scheme.

The URDF is converted to the Semantic Robot Description Format (SRDF) file
using the moveit setup assistance package [41] in ROS, which adds the
information about collision matrix, kinematic chains, joint composition,
inverse kinematics plugin [42], motion planning library [43] and type of
controller [44] to be used. For a given environment added in the interface,
with assembled modular URDF, motion planning can be done between the given
task locations. The planned motion commands are sent by the joint trajectory
controller through kinova messages (definitions from API) to the Digital
Signal Processor (DSP/base), which then sends the command to joint modules.
User just have to launch certain files using a command line, such
$kinova\\_bringup$, $moveit\\_launch$, and URDF generator as shown in Fig. 6.
This is also shown through experimental demonstrations in the following
sections.

Figure 6: Software architecture and flowchart for motion planning and control
of the modular compositions using proposed URDF generator, Moveit platform and
Kinova API.

##  5 Results

The methodologies are implemented to generate $1-6$ DoF systems with all
configuration types, using both the direct and conversion method to generate
the modular composition in the virtual platform so as to replicate with real-
scenario. The assembly rules, as briefed in section 3, are considered here to
take care of the joint torque limits for the given payload of the
configuration in study. Two case studies are presented in this paper
considering different requirements of a designer.

###  5.1 Modular configurations realization from given robotic parameters

Table 3: DH parameters for the case study of conversion from given parameters: Example A and B. Example | $a$ | $\alpha$ | $d$ | $\theta$ | Modular Composition
---|---|---|---|---|---
$(m)$ | $(rad)$ | $(m)$ |
A | 0 |  $-\pi$/2 | 0.148 | $\theta_{1}$ |
0.3 | 0.26 | 0 | $\theta_{2}$
0.3 | 0 | 0 | $\theta_{3}$
0.3 | 0.26 | 0 | $\theta_{4}$
0.3 |  $\pi$/2 | 0 | $\theta_{5}$
0 | 0 | 0.075 | $\theta_{6}$
B | 0 | $-\pi/2$ | 0.148 | $\theta_{1}$ |
0.3 | 2.36 | 0 | $\theta_{2}$
0.3 | 2.36 | 0 | $\theta_{3}$
0 | $-\pi/2$ | 0.148 | $\theta_{4}$
0 | $-\pi/2$ | 0.148 | $\theta_{5}$
0 | 0 | 0.075 | $\theta_{6}$

For the task-based design, the configuration is generally synthesized using
the optimization of the standard robotic parameters [5]. Therefore, it is
important to realize the standard parameters into the modular sequence for the
given modular library. To showcase this, two exemplary cases are presented in
which configuration can be realized using only the given robotic parameters.
The examples are taken from the recent literature [5, 15] who have shown the
importance and the application of the unconventional configurations. The DH
parameters of the candidate configurations are given in Table 3. The modular
sequence for the example A using the algorithm discussed comes out to be as
$H^{1}-H^{4}-H^{4}-L^{1}-L^{4}-L^{2}$. This is an optimal configuration
designed to work on predefined task space locations in a given cluttered
environment [5]. The modular sequence for the example B comes out to be as
$H^{1}-H^{4}-H^{4}-L^{2}-L^{2}-L^{2}$. The configuration having skew-twists is
optimized to follow a given rectilinear path [15]. These results have shown
the implementation of the conversion of robotic parameters into the modular
sequence.

###  5.2 Customized configuration generation and control in a given
environment.

Figure 7: (a) Selected configuration from optimal configuration results or
from various possibilities after trails and validation, (b) Generated URDF and
configuration files for motion planning and controls are integrated in ROS
moveit: Real-scenario is replicated by the virtual platform. (c) Deployment of
custom modular configuration for the task in given environment: 3-DoF
configuration reaching inside the vertical farm cell.

For a given environment, as shown in Fig. 7 (c), it is required to develop a
custom configuration to accomplish the given set of tasks. Since, a basic
configuration is not fixed, it is challenging to select one to begin with. The
designer can try out different configurations, analyze and validate them
virtually using the developed platform. The initial step is to select the
number and type of modules from a given modular library. Then, using the
modular assembly rules from section 3 and using modular units, see Fig. 3, a
modular assembly can be initialized which will automatically generate a URDF
file for that particular configuration. This configuration can be visualized
in ROS debugger called Rviz, as shown in Fig. 7 (b). After trying out
different configurations, which will take minimal time as compared to the
physical verification, the selected configuration will be post-processed.
Another technique is to generate/evolve an optimal configuration with respect
to required performance measures [45, 46]. A 3-DoF configuration for a cell of
the vertical farm set up, as shown in Fig. 7 (c) is developed using the
proposed modular library, fabricated using a 3D printer with Poly-Lactic Acid
(PLA) material, as shown in Fig. 5. This configuration is developed using
$1-H$ module and $2-L$ joint modules. There is skew-twist angle of
$45^{\circ}$ between the joint module 2 and joint module 3. The generated URDF
is integrated in the motion planning package and control of the planned
motion, as briefed in section 4.4. The generated URDF of this configuration is
shown in Fig. 7 (a) with the integration of motion planning in Fig. 7 (b) and
simultaneous motion in experimental setup.

Following the similar procedure, all other modular configurations can be
developed, calibrated and tested for a given task. The proposed platform
provides an on-the-fly validation, development and control of the modular and
reconfigurable manipulators even with the unconventional parameters. The
system as of now works based upon the decentralized control scheme and will be
presented with the centralized controllers, model based adaptive controllers,
in our future works.

##  6 Conclusion

Modules presented in this paper provides a customization approach through
modularity and reconfigurability aspects which can also adapt the
unconventional manipulator parameters. Configurations can be developed through
modular assemblies or through conversion from design outcomes. In both the
cases, kinematic and dynamic models are generated automatically. The framework
provides an on-the-fly validation, development and control of the developed
modular manipulators. Validation is done by automatic generation of the
Unified Robot Description Format (URDF) of the unconventional modular
configurations. Reconfigurable software architecture is presented for the
motion planning and control of developed modular compositions. For the
experimental validation, 3D printed modular library is used to assemble
unconventional modular configurations and configured with ROS for motion
planning and control in the real environmental setup and also validated
through simulations.

## References

  * [1] M. Althoff, A. Giusti, S. B. Liu, A. Pereira, Effortless creation of safe robots from modules through self-programming and self-verification, Science Robotics 4 (31) (2019).  doi:10.1126/scirobotics.aaw1924.
  * [2] E. Romiti, J. Malzahn, N. Kashiri, F. Iacobelli, M. Ruzzon, A. Laurenzi, E. M. Hoffman, L. Muratore, A. Margan, L. Baccelliere, et al., Toward a plug-and-work reconfigurable cobot, IEEE/ASME Transactions on Mechatronics (2021).  doi:10.1109/tmech.2021.3106043.
  * [3] I.-M. Chen, M. Yim, Modular robots, in: Springer Handbook of Robotics, Springer, 2016, pp. 531–542.  doi:10.1007/978-3-319-32552-1_22.
  * [4] S. Singh, E. Singla, Realization of task-based designs involving dh parameters: a modular approach, Intelligent Service Robotics 9 (3) (2016) 289–296.  doi:10.1007/s11370-015-0186-x.
  * [5] S. Singh, A. Singla, E. Singla, Modular manipulators for cluttered environments: A task-based configuration design approach, Journal of Mechanisms and Robotics 10 (5) (2018) 051010.  doi:10.1115/1.4040633.
  * [6] J. Liu, X. Zhang, G. Hao, Survey on research and development of reconfigurable modular robots, Advances in Mechanical Engineering 8 (8) (2016) 1687814016659597\.  doi:10.1177/1687814016659597.
  * [7] H. Ahmadzadeh, E. Masehian, M. Asadpour, Modular robotic systems: characteristics and applications, Journal of Intelligent & Robotic Systems 81 (3-4) (2016) 317–357.  doi:10.1007/s10846-015-0237-8.
  * [8] J. A. Kereluk, M. R. Emami, Task-based optimization of reconfigurable robot manipulators, Advanced Robotics 31 (16) (2017) 836–850.  doi:10.1080/01691864.2017.1362995.
  * [9] F. Aghili, K. Parsa, A reconfigurable robot with lockable cylindrical joints, IEEE Transactions on Robotics 25 (4) (2009) 785–797.  doi:10.1109/tro.2009.2017130.
  * [10] G. Acaccia, L. Bruzzone, R. Razzoli, A modular robotic system for industrial applications, Assembly Automation 28 (2) (2008) 151–162.  doi:10.1108/01445150810863734.
  * [11] L. Song, S. Yang, Research on modular design of perpendicular jointed industrial robots, in: International Conference on intelligent Robotics and Applications, Springer, 2011, pp. 63–72.  doi:10.1007/978-3-642-25486-4_7.
  * [12] S. Hong, C. Cho, H. Lee, S. Kang, W. Lee, Joint configuration for physically safe human–robot interaction of serial-chain manipulators, Mechanism and Machine Theory 107 (2017) 246–260.  doi:10.1016/j.mechmachtheory.2016.10.002.
  * [13] Y. Liu, H. Xu, C. Geng, G. Chen, A modular manipulator for industrial applications: Design and implement, in: Robotics and Automation Engineering (ICRAE), 2017 2nd International Conference on, IEEE, 2017, pp. 331–335.  doi:10.1109/icrae.2017.8291405.
  * [14] N. Stravopodis, C. Valsamos, V. C. Moulianitis, An integrated taxonomy and critical review of module designs for serial reconfigurable manipulators, in: International Conference on Robotics in Alpe-Adria Danube Region, Springer, 2019, pp. 3–11.  doi:10.1007/978-3-030-19648-6_1.
  * [15] V. C. Moulianitis, A. I. Synodinos, C. D. Valsamos, N. A. Aspragathos, Task-based optimal design of metamorphic service manipulators, Journal of Mechanisms and Robotics 8 (6) (2016) 061011.  doi:10.1115/1.4033665.
  * [16] M. Brandstötter, A. Angerer, M. Hofbaur, The curved manipulator (cuma-type arm): Realization of a serial manipulator with general structure in modular design, in: Proceedings of the 14th IFToMM World Congress, 2015, pp. 403–409.  doi:10.6567/IFToMM.14TH.WC.OS2.037.
  * [17] M. Brandstötter, P. Gallina, S. Seriani, M. Hofbaur, Task-dependent structural modifications on reconfigurable general serial manipulators, in: International Conference on Robotics in Alpe-Adria Danube Region, Springer, 2018, pp. 316–324.  doi:10.1007/978-3-030-00232-9_33.
  * [18] A. Yun, D. Moon, J. Ha, S. Kang, W. Lee, Modman: An advanced reconfigurable manipulator system with genderless connector and automatic kinematic modeling algorithm, IEEE Robotics and Automation Letters 5 (3) (2020) 4225–4232.  doi:10.1109/lra.2020.2994486.
  * [19] K. M. Hossain, C. A. Nelson, P. Dasgupta, Enumeration of configurations and their kinematics for modred ii modular robots, Journal of Mechanisms and Robotics 9 (5) (2017).  doi:10.1115/1.4036740.
  * [20] X. Pan, H. Wang, Y. Jiang, J. Xiao, Automatic kinematic modelling of a modular reconfigurable robot, Transactions of the Institute of Measurement and Control 35 (7) (2013) 922–932.  doi:10.1177/0142331212459538.
  * [21] Z. Bi, W. Zhang, I.-M. Chen, S. Lang, Automated geneartion of the d–h parameters for configuration design of modular manipulators, Robotics and Computer-Integrated Manufacturing 23 (5) (2007) 553–562.  doi:10.1016/j.rcim.2006.02.014.
  * [22] A. Giusti, M. Althoff, On-the-fly control design of modular robot manipulators, IEEE Transactions on Control Systems Technology (2017).  doi:10.1109/tcst.2017.2707336.
  * [23] S. B. Liu, M. Althoff, Optimizing performance in automation through modular robots, in: 2020 IEEE International Conference on Robotics and Automation (ICRA), IEEE, 2020, pp. 4044–4050.  doi:10.1109/icra40945.2020.9196590.
  * [24] Z. Bi, W. A. Gruver, W.-J. Zhang, S. Y. Lang, Automated modeling of modular robotic configurations, Robotics and Autonomous Systems 54 (12) (2006) 1015–1025.  doi:10.1016/j.robot.2006.04.017.
  * [25] A. Djuric, W. ElMaraghy, Generalized reconfigurable 6-joint robot modeling, Transactions of the Canadian Society for Mechanical Engineering 30 (4) (2006) 533–565.  doi:10.1139/tcsme-2006-0034.
  * [26] R. P. Mohamed, F. J. Xi, A. D. Finistauri, Module-based static structural design of a modular reconfigurable robot, Journal of Mechanical Design 132 (1) (2010) 014501.  doi:10.1115/1.4000639.
  * [27] M. L. Husty, M. Pfurner, H.-P. Schröcker, A new and efficient algorithm for the inverse kinematics of a general serial 6r manipulator, Mechanism and machine theory 42 (1) (2007) 66–81.  doi:10.1016/j.mechmachtheory.2006.02.001.
  * [28] N. Stravopodis, V. Moulianitis, Rectilinear tasks optimization of a modular serial metamorphic manipulator, Journal of Mechanisms and Robotics 13 (1) (2020).  doi:10.1115/1.4047727.
  * [29] A. S. Vázquez, T. Calvo, R. Fernández, F. Ramos, A visual programming approach for co-designed robots, Robotica (2020) 1–24doi:10.1017/s0263574720000934.
  * [30] Y. Kang, D. Kim, K. Kim, Urdf generator for manipulator robot, in: 2019 Third IEEE International Conference on Robotic Computing (IRC), 2019, pp. 483–487.  doi:10.1109/irc.2019.00101.
  * [31] Stanford Artificial Intelligence Laboratory et al., Robotic operating system.
URL https://www.ros.org

  * [32] F. Ramos, A. S. Vázquez, R. Fernández, A. Olivares-Alarcos, Ontology based design, control and programming of modular robots, Integrated Computer-Aided Engineering (Preprint) (2018) 1–20.  doi:10.3233/ica-180569.
  * [33] S. Hernandez-Mendez, C. Maldonado-Mendez, A. Marin-Hernandez, H. V. Rios-Figueroa, H. Vazquez-Leal, E. R. Palacios-Hernandez, Design and implementation of a robotic arm using ros and moveit!, in: 2017 IEEE International Autumn Meeting on Power, Electronics and Computing (ROPEC), IEEE, 2017, pp. 1–6.  doi:10.1109/ropec.2017.8261666.
  * [34] H. Deng, J. Xiong, Z. Xia, Mobile manipulation task simulation using ros with moveit, in: 2017 IEEE International Conference on Real-time Computing and Robotics (RCAR), IEEE, 2017, pp. 612–616.  doi:10.1109/rcar.2017.8311930.
  * [35] L. M. G. Johannessen, M. H. Arbo, J. T. Gravdahl, Robot dynamics with urdf & casadi, in: 2019 7th International Conference on Control, Mechatronics and Automation (ICCMA), IEEE, 2019, pp. 1–6.  doi:10.1109/iccma46720.2019.8988702.
  * [36] A. Dogra, S. Sekhar Padhee, E. Singla, An optimal architectural design for unconventional modular reconfigurable manipulation system, Journal of Mechanical Design 143 (6) (2021).  doi:https://doi.org/10.1115/1.4048821.
  * [37] A. Dogra, S. S. Padhee, E. Singla, Optimal architecture planning of modules for reconfigurable manipulators, Robotica (2021) 1–15doi:10.1017/S0263574720001174.
  * [38] A. Campeau-Lecours, H. Lamontagne, S. Latour, P. Fauteux, V. Maheu, F. Boucher, C. Deguire, L.-J. C. L’Ecuyer, Kinova modular robot arms for service robotics applications, in: Rapid Automation: Concepts, Methodologies, Tools, and Applications, IGI Global, 2019, pp. 693–719.  doi:10.4018/978-1-5225-8060-7.ch032.
  * [39] B. Hannaford, J. Rosen, D. W. Friedman, H. King, P. Roan, L. Cheng, D. Glozman, J. Ma, S. N. Kosari, L. White, Raven-ii: an open platform for surgical robotics research, IEEE Transactions on Biomedical Engineering 60 (4) (2012) 954–959.  doi:10.1109/tbme.2012.2228858.
  * [40] K. S. Fu, R. Gonzalez, C. G. Lee, Robotics: Control Sensing. Vis., Tata McGraw-Hill Education, 1987.
  * [41] D. Coleman, I. Sucan, S. Chitta, N. Correll, Reducing the barrier to entry of complex robotic software: a moveit! case study, arXiv preprint arXiv:1404.3785 (2014).
  * [42] P. Beeson, B. Ames, Trac-ik: An open-source library for improved solving of generic inverse kinematics, in: 2015 IEEE-RAS 15th International Conference on Humanoid Robots (Humanoids), IEEE, 2015, pp. 928–935.  doi:10.1109/humanoids.2015.7363472.
  * [43] I. A. Şucan, M. Moll, L. E. Kavraki, The Open Motion Planning Library, IEEE Robotics & Automation Magazine 19 (4) (2012) 72–82.  doi:10.1109/MRA.2012.2205651.
  * [44] S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke, E. Fernández Perdomo, ros_control: A generic and simple control framework for ros, The Journal of Open Source Software (2017).  doi:10.21105/joss.00456.
URL http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf

  * [45] S. Patel, T. Sobh, Manipulator performance measures-a comprehensive literature survey, Journal of Intelligent & Robotic Systems 77 (3-4) (2015) 547–570.  doi:10.1007/s10846-014-0024-y.
  * [46] E. Icer, H. A. Hassan, K. El-Ayat, M. Althoff, Evolutionary cost-optimal composition synthesis of modular robots considering a given task, in: Intelligent Robots and Systems (IROS), 2017 IEEE/RSJ International Conference on, IEEE, 2017, pp. 3562–3568.  doi:10.1109/iros.2017.8206201.