IEEE Robotics & Automation Magazine - September 2023 - 109

representation of the joint twist attached to i, while for the
soft link case, ()Xiipt
is variable. The equality of the mixed
partial derivative of gi provides the relation between the time
derivative of the strain twists and the link's relative velocity
and acceleration twists [19]:
hp h
hp hh
o ii ippoii o i
rl ()
rl X
i ii i ,
p
i
()
X
where ad R()$ ! 66
==-
-
ad
ad
pi
r
ad
r
# is the adjoint operator of se()3 [20].
It is time now to discretize the system and introduce the generalized
coordinates. The continuous strain fields ()Xiip
parametrized by a finite functional basis of strain modes [16]:
() () ()
ppU=+ )
ii
where ()X Ri
Upi
!
p)
i
XX q
pi
ii i Xi
(3)
6 n# i (ni being the number of DoF of link i)
is a matrix function whose columns form the basis for the
strain field, q Ri
basis, and ()X R6
i !
! is the vector of coordinates in that
is a reference strain whose primary
ni
function is to model nonzero yet constrained strains, such as
inextensibility. Note that the matrix ()Xi
Upi
the definition of the geometric Jacobian 6Jq X R
!
i (, ) !
and its derivative (, ,)Jq q X R
.
.
i
J
.
n
is constant
for rigid joints.
The integration of (2) using (3) for all the bodies leads to
6 n# @
6 n# ().n= R i Once Ji and
i are found, we project the free dynamics of the floating
hybrid chain onto the space of generalized coordinates to yield
the generalized dynamics of the system:
Mq ()
..
where () !Mq Rnn
Coriolis matrix, D Rnn
!
++ += +
CD qKqBuF
.
# is the mass matrix, (, )Cq q R
.
!
nn
(4)
# is the
!
# is the damping matrix, K Rnn
#
is the stiffness matrix, () !Bq Rnna# (na being the total num!
n is the
! is the vecber
of actuators) is the actuation matrix, (, )Fq q R
.
vector of generalized external forces, and u Rna
tor of applied actuation forces.
We developed a recursive two-level nested quadrature
scheme to estimate the coefficients of (4). For soft links,
the SoRoSim toolbox uses the Gauss quadrature numerical
integration method (the order is chosen by the user) to
evaluate these coefficients. Stiffness (K) and damping (D)
coefficients, which are associated with linear elastic models,
are precomputed offline. However, the framework also
allows the computation of nonlinear strain-dependent constitutive
laws. Apart from (K) and (D), all the other coefficients
(M, C, B, and F) of (4) are computed as functions
of q and
q .
.
and J
.
Estimating these coefficients involves assessing ,gi J ,i
i at every evaluation point, such as Gaussian points
of the soft divisions and the center of mass of rigid links.
In our previous article, we used a fourth-order Zannah collocation
approximation to estimate the value of gi recursively:
() ()
gg exp () ,^hit
k
ii ki i
+=
Xh Xh where hk is the
X k
are
(2)
r
o
material length in the kth interval between two consecutive
Gauss quadrature points and ()hi
X k
t
k
J .
.
mation of the Magnus expansion [16]. Inspired by this, we
derived recursive formulations for the computation of Ji
and
is the approxii
The complete theory and description of the computational
strategy behind the toolbox are available at the link
provided in [15].
Equation (4) is an ordinary differential equation that could
be solved using explicit time integrators, such as " ode45 " and
" ode15s " in MATLAB. The static equilibrium equation of the
system can be derived from (4) by equating the time derivatives
of q (qo
and )q
..
to zero. The resulting static equation
could be solved numerically using root finder functions, such
as " fsolve " in MATLAB. For the case of closed-chain robots,
additional terms corresponding to the constraint forces due to
the closed-loop joints will be present in (4) [12].
TOOLBOX DESIGN AND STRUCTURE
We developed the SoRoSim toolbox in MATLAB, which
provides users with a vast library of functions for mathematical
computations and gives access to various built-in functions,
add-ons, and toolboxes to analyze different aspects
of robotic systems. We also employ an object-oriented programming
(OOP) approach, which entails program design
around data and objects rather than functions and logic.
OOP allows the developer to group " objects " with similar
attributes under a " class, " providing a well-structured map
of the program and allowing easy access and adjustment
to object-specific data ( " properties " ) with the help of classspecific
" methods. " The SoRoSim toolbox consists of
three MATLAB class elements: SorosimLink, Twist, and
SorosimLinkage. These classes work together to facilitate
linkage creation and simulation through a sequence of
user-friendly GUIs.
The SorosimLink class allows the user to construct soft and
rigid links with various joint types and geometry. The user
can choose from nine different types of lumped joints (fixed,
revolute, prismatic, helical, cylindrical, universal, planar,
spherical, and free) and three default cross-sectional shapes
(circular, rectangular, and ellipsoidal). However, analysis performed
within the toolbox is not limited to the link's default
cross-sectional shapes. Once a link is defined, the user can
update its properties, such as the screw inertia matrix and
stiffness matrix, to account for any arbitrary cross-sectional
shape and nonhomogeneous mass distribution. The shape
may also vary as a function of curvilinear abscissa along
the link axis, X. The default material model used to compute
the cross-sectional screw stiffness matrix is a linear elastic
model. This material model provides an accurate representation
of the material behavior when it is subjected to strains
that do not exceed 100%; since this is the case for most soft
robotics applications this is an appropriate material model to
use. However, the toolbox allows users to use a custom material
model by modifying the elasticity tensor matrix in the
SorosimLink class. An overview of the SorosimLink creation
is provided in Figure 3(a).
SEPTEMBER 2023 IEEE ROBOTICS & AUTOMATION MAGAZINE
109

IEEE Robotics & Automation Magazine - September 2023

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - September 2023

Contents
IEEE Robotics & Automation Magazine - September 2023 - Cover1
IEEE Robotics & Automation Magazine - September 2023 - Cover2
IEEE Robotics & Automation Magazine - September 2023 - 1
IEEE Robotics & Automation Magazine - September 2023 - Contents
IEEE Robotics & Automation Magazine - September 2023 - 3
IEEE Robotics & Automation Magazine - September 2023 - 4
IEEE Robotics & Automation Magazine - September 2023 - 5
IEEE Robotics & Automation Magazine - September 2023 - 6
IEEE Robotics & Automation Magazine - September 2023 - 7
IEEE Robotics & Automation Magazine - September 2023 - 8
IEEE Robotics & Automation Magazine - September 2023 - 9
IEEE Robotics & Automation Magazine - September 2023 - 10
IEEE Robotics & Automation Magazine - September 2023 - 11
IEEE Robotics & Automation Magazine - September 2023 - 12
IEEE Robotics & Automation Magazine - September 2023 - 13
IEEE Robotics & Automation Magazine - September 2023 - 14
IEEE Robotics & Automation Magazine - September 2023 - 15
IEEE Robotics & Automation Magazine - September 2023 - 16
IEEE Robotics & Automation Magazine - September 2023 - 17
IEEE Robotics & Automation Magazine - September 2023 - 18
IEEE Robotics & Automation Magazine - September 2023 - 19
IEEE Robotics & Automation Magazine - September 2023 - 20
IEEE Robotics & Automation Magazine - September 2023 - 21
IEEE Robotics & Automation Magazine - September 2023 - 22
IEEE Robotics & Automation Magazine - September 2023 - 23
IEEE Robotics & Automation Magazine - September 2023 - 24
IEEE Robotics & Automation Magazine - September 2023 - 25
IEEE Robotics & Automation Magazine - September 2023 - 26
IEEE Robotics & Automation Magazine - September 2023 - 27
IEEE Robotics & Automation Magazine - September 2023 - 28
IEEE Robotics & Automation Magazine - September 2023 - 29
IEEE Robotics & Automation Magazine - September 2023 - 30
IEEE Robotics & Automation Magazine - September 2023 - 31
IEEE Robotics & Automation Magazine - September 2023 - 32
IEEE Robotics & Automation Magazine - September 2023 - 33
IEEE Robotics & Automation Magazine - September 2023 - 34
IEEE Robotics & Automation Magazine - September 2023 - 35
IEEE Robotics & Automation Magazine - September 2023 - 36
IEEE Robotics & Automation Magazine - September 2023 - 37
IEEE Robotics & Automation Magazine - September 2023 - 38
IEEE Robotics & Automation Magazine - September 2023 - 39
IEEE Robotics & Automation Magazine - September 2023 - 40
IEEE Robotics & Automation Magazine - September 2023 - 41
IEEE Robotics & Automation Magazine - September 2023 - 42
IEEE Robotics & Automation Magazine - September 2023 - 43
IEEE Robotics & Automation Magazine - September 2023 - 44
IEEE Robotics & Automation Magazine - September 2023 - 45
IEEE Robotics & Automation Magazine - September 2023 - 46
IEEE Robotics & Automation Magazine - September 2023 - 47
IEEE Robotics & Automation Magazine - September 2023 - 48
IEEE Robotics & Automation Magazine - September 2023 - 49
IEEE Robotics & Automation Magazine - September 2023 - 50
IEEE Robotics & Automation Magazine - September 2023 - 51
IEEE Robotics & Automation Magazine - September 2023 - 52
IEEE Robotics & Automation Magazine - September 2023 - 53
IEEE Robotics & Automation Magazine - September 2023 - 54
IEEE Robotics & Automation Magazine - September 2023 - 55
IEEE Robotics & Automation Magazine - September 2023 - 56
IEEE Robotics & Automation Magazine - September 2023 - 57
IEEE Robotics & Automation Magazine - September 2023 - 58
IEEE Robotics & Automation Magazine - September 2023 - 59
IEEE Robotics & Automation Magazine - September 2023 - 60
IEEE Robotics & Automation Magazine - September 2023 - 61
IEEE Robotics & Automation Magazine - September 2023 - 62
IEEE Robotics & Automation Magazine - September 2023 - 63
IEEE Robotics & Automation Magazine - September 2023 - 64
IEEE Robotics & Automation Magazine - September 2023 - 65
IEEE Robotics & Automation Magazine - September 2023 - 66
IEEE Robotics & Automation Magazine - September 2023 - 67
IEEE Robotics & Automation Magazine - September 2023 - 68
IEEE Robotics & Automation Magazine - September 2023 - 69
IEEE Robotics & Automation Magazine - September 2023 - 70
IEEE Robotics & Automation Magazine - September 2023 - 71
IEEE Robotics & Automation Magazine - September 2023 - 72
IEEE Robotics & Automation Magazine - September 2023 - 73
IEEE Robotics & Automation Magazine - September 2023 - 74
IEEE Robotics & Automation Magazine - September 2023 - 75
IEEE Robotics & Automation Magazine - September 2023 - 76
IEEE Robotics & Automation Magazine - September 2023 - 77
IEEE Robotics & Automation Magazine - September 2023 - 78
IEEE Robotics & Automation Magazine - September 2023 - 79
IEEE Robotics & Automation Magazine - September 2023 - 80
IEEE Robotics & Automation Magazine - September 2023 - 81
IEEE Robotics & Automation Magazine - September 2023 - 82
IEEE Robotics & Automation Magazine - September 2023 - 83
IEEE Robotics & Automation Magazine - September 2023 - 84
IEEE Robotics & Automation Magazine - September 2023 - 85
IEEE Robotics & Automation Magazine - September 2023 - 86
IEEE Robotics & Automation Magazine - September 2023 - 87
IEEE Robotics & Automation Magazine - September 2023 - 88
IEEE Robotics & Automation Magazine - September 2023 - 89
IEEE Robotics & Automation Magazine - September 2023 - 90
IEEE Robotics & Automation Magazine - September 2023 - 91
IEEE Robotics & Automation Magazine - September 2023 - 92
IEEE Robotics & Automation Magazine - September 2023 - 93
IEEE Robotics & Automation Magazine - September 2023 - 94
IEEE Robotics & Automation Magazine - September 2023 - 95
IEEE Robotics & Automation Magazine - September 2023 - 96
IEEE Robotics & Automation Magazine - September 2023 - 97
IEEE Robotics & Automation Magazine - September 2023 - 98
IEEE Robotics & Automation Magazine - September 2023 - 99
IEEE Robotics & Automation Magazine - September 2023 - 100
IEEE Robotics & Automation Magazine - September 2023 - 101
IEEE Robotics & Automation Magazine - September 2023 - 102
IEEE Robotics & Automation Magazine - September 2023 - 103
IEEE Robotics & Automation Magazine - September 2023 - 104
IEEE Robotics & Automation Magazine - September 2023 - 105
IEEE Robotics & Automation Magazine - September 2023 - 106
IEEE Robotics & Automation Magazine - September 2023 - 107
IEEE Robotics & Automation Magazine - September 2023 - 108
IEEE Robotics & Automation Magazine - September 2023 - 109
IEEE Robotics & Automation Magazine - September 2023 - 110
IEEE Robotics & Automation Magazine - September 2023 - 111
IEEE Robotics & Automation Magazine - September 2023 - 112
IEEE Robotics & Automation Magazine - September 2023 - 113
IEEE Robotics & Automation Magazine - September 2023 - 114
IEEE Robotics & Automation Magazine - September 2023 - 115
IEEE Robotics & Automation Magazine - September 2023 - 116
IEEE Robotics & Automation Magazine - September 2023 - 117
IEEE Robotics & Automation Magazine - September 2023 - 118
IEEE Robotics & Automation Magazine - September 2023 - 119
IEEE Robotics & Automation Magazine - September 2023 - 120
IEEE Robotics & Automation Magazine - September 2023 - 121
IEEE Robotics & Automation Magazine - September 2023 - 122
IEEE Robotics & Automation Magazine - September 2023 - 123
IEEE Robotics & Automation Magazine - September 2023 - 124
IEEE Robotics & Automation Magazine - September 2023 - 125
IEEE Robotics & Automation Magazine - September 2023 - 126
IEEE Robotics & Automation Magazine - September 2023 - 127
IEEE Robotics & Automation Magazine - September 2023 - 128
IEEE Robotics & Automation Magazine - September 2023 - 129
IEEE Robotics & Automation Magazine - September 2023 - 130
IEEE Robotics & Automation Magazine - September 2023 - 131
IEEE Robotics & Automation Magazine - September 2023 - 132
IEEE Robotics & Automation Magazine - September 2023 - 133
IEEE Robotics & Automation Magazine - September 2023 - 134
IEEE Robotics & Automation Magazine - September 2023 - 135
IEEE Robotics & Automation Magazine - September 2023 - 136
IEEE Robotics & Automation Magazine - September 2023 - 137
IEEE Robotics & Automation Magazine - September 2023 - 138
IEEE Robotics & Automation Magazine - September 2023 - 139
IEEE Robotics & Automation Magazine - September 2023 - 140
IEEE Robotics & Automation Magazine - September 2023 - 141
IEEE Robotics & Automation Magazine - September 2023 - 142
IEEE Robotics & Automation Magazine - September 2023 - 143
IEEE Robotics & Automation Magazine - September 2023 - 144
IEEE Robotics & Automation Magazine - September 2023 - 145
IEEE Robotics & Automation Magazine - September 2023 - 146
IEEE Robotics & Automation Magazine - September 2023 - 147
IEEE Robotics & Automation Magazine - September 2023 - 148
IEEE Robotics & Automation Magazine - September 2023 - 149
IEEE Robotics & Automation Magazine - September 2023 - 150
IEEE Robotics & Automation Magazine - September 2023 - 151
IEEE Robotics & Automation Magazine - September 2023 - 152
IEEE Robotics & Automation Magazine - September 2023 - 153
IEEE Robotics & Automation Magazine - September 2023 - 154
IEEE Robotics & Automation Magazine - September 2023 - 155
IEEE Robotics & Automation Magazine - September 2023 - 156
IEEE Robotics & Automation Magazine - September 2023 - 157
IEEE Robotics & Automation Magazine - September 2023 - 158
IEEE Robotics & Automation Magazine - September 2023 - 159
IEEE Robotics & Automation Magazine - September 2023 - 160
IEEE Robotics & Automation Magazine - September 2023 - 161
IEEE Robotics & Automation Magazine - September 2023 - 162
IEEE Robotics & Automation Magazine - September 2023 - 163
IEEE Robotics & Automation Magazine - September 2023 - 164
IEEE Robotics & Automation Magazine - September 2023 - 165
IEEE Robotics & Automation Magazine - September 2023 - 166
IEEE Robotics & Automation Magazine - September 2023 - 167
IEEE Robotics & Automation Magazine - September 2023 - 168
IEEE Robotics & Automation Magazine - September 2023 - Cover3
IEEE Robotics & Automation Magazine - September 2023 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com