Continuum manipulators offer many advantages compared to their rigid-linked counterparts, such as increased degrees of freedom and workspace volume. Inspired by biological systems, such as elephant trunks and octopus tentacles, many continuum manipulators are made of multiple segments that allow large-scale deformations to be distributed throughout the body. Most continuum manipulators currently control each segment individually. For example, a planar cable-driven system is typically controlled by a pair of cables for each segment, which implies two actuators per segment. In this article, we demonstrate how highly coupled crossing cable configurations can reduce both actuator count and actuator torque requirements in a planar continuum manipulator, while maintaining workspace reachability and manipulability. We achieve highly coupled actuation by allowing cables to cross through the manipulator to create new cable configurations. We further derive an analytical model to predict the underactuated manipulator workspace and experimentally verify the model accuracy with a physical system. We use this model to compare crossing cable configurations to the traditional cable configuration using workspace performance metrics. Our work here focuses on a simplified planar robot, both in simulation and in hardware, with the goal of extending this to spiraling-cable configurations on full 3D continuum robots in future work.
Introduction
The design of soft robots is often inspired by soft biological creatures and components. These creatures and components generally have hydrostatic skeletons (jellyfish,1,2 starfish,3 etc.) or muscular hydrostats (elephant trunks,4,5 tongues,6,7 tentacles,8,9 etc.), which are highly deformable. However, most hydrostatic skeletons and muscular hydrostats exist either on a small scale or in a pressurized environment, such as water or underground. Those that do not exist in such an environment (elephant trunks, tongues, etc.) are generally attached to larger structures that contain a skeletal support system and, hence, are not constantly load bearing. “Purely” soft robots can only operate efficiently either at small scales, where gravitational forces are insignificant, or in pressurized environments, where the environment provides support. Accordingly, there is consensus that for soft robots to operate on a large scale, there will need to be structural support.10
An important structural element to many large-scale species is the spine, which can be thought of as a multi-jointed system. Skeletal spines allow large-scale motions to be discretized, which reduces local deformation. In humans, our spine holds us upright and contributes to movement.11 The musculature of the human spine is composed of spirals of muscle chains that help move and stabilize the spine.12 In addition, recent studies have suggested notable increases in locomotion efficiency due to inclusion of a spine in quadruped robots.13–15 Continuum manipulators and hyper-redundant manipulators are ideal for approximating spines due to their high flexibility and distributed deformations.16–18 In particular, cable-driven continuum manipulators have been demonstrated and modeled both statically and dynamically.4,19–23
In this study, we explore the concept of a planar cable-driven soft spine, which mimics the disks (soft elastomer segments) and vertebrae (rigid PLA parts) in biological spines and borrows concepts from the highly coupled nature of muscular spirals. Previous planar cable-driven continuum arms typically include a pair of cables controlling each segment,19 such that the total number of system actuators is twice the number of system segments. While this approach is useful for decoupling segments in the system, it misses advantages that come from having a highly coupled and underactuated system. A highly coupled system allows us to reduce the maximum cable tension, which allows us to reduce motor requirements and make more energy efficient systems. An underactuated system allows us to reduce the number of actuators in a system. As an example, we demonstrate a six-segment planar spine shown in Figure 1, in which cables are able to cross through the spine at the rigid segments in patterns, which we refer to as crossing cable configurations. A computational workspace analysis for a number of crossing cable configurations shows the feasibility of this approach and the ability to tune the workspace based on user requirements. The model is experimentally verified by showing that the behavior of the physical system follows the behavior of the computational model. While we confine the complexity of the system to 2D in this work, we plan to extend this concept to 3D systems in the future.
The spine system described in this article consists of two parts as follows: soft elastomer segments and rigid PLA vertebrae. While any elastomer can be used in the elastomer segments, we chose to use Dragon Skin 10 Slow (Smooth-On, Inc.) due to its low hardness of 10 on the Shore A scale, which reduces tension requirements in the cables and, thus, requires smaller motors. In addition to this, Dragon Skin 10 Slow also exhibits linear material properties below 40% strain, which simplifies the model. Figure 2 shows stress-strain data from three samples of Dragon Skin 10 Slow. These samples were tested in an Instron 3345 with a 50 N load cell and pulled at a rate of 100 mm/min. The stress and strain were calculated using the method described in Reference.24
Stress-strain data for Dragon Skin 10 Slow. Three trials are shown in gray dotted lines, and a linear approximation is shown by the black dashed line.
The elastomer segments were created using a mold made from acrylic sheets. Both ends of the Dragon Skin 10 Slow segments were inserted into 3D printed end caps made with a Printrbot Metal Plus. The segments were then mechanically locked into the end caps by sealing with more Dragon Skin 10 Slow. The dimensions of the spine segment are shown in Figure 3a. In addition to the 40 mm segments shown in the Figure 3a, we also made 20 mm long elastomer segments, which were used for the experimental validation described in a later section.
(a) Labeled drawing of two segments. The relevant dimensions are shown, as well as how segments are added to each other. The medium gray represents rigid PLA components, the light gray represents elastomer segments, the black represents cables, and the dark gray represents M2 nuts and bolts or steel rods. (b) Demonstration of how cables were patterned through the rigid vertebra with crossing cable and non-crossing cable. Steel pins were pushed through the PLA components to create a reduced-friction contact for the fishing line cables. Note that I = 1.63 × 10−9 m4 and A = 0.2 × 10−3 m2. A more detailed CAD drawing with dimensions is given in the Supplementary Data (Supplementary Data are available online at www-liebertpub-com.web.bisu.edu.cn/soro).
The rigid vertebrae were 3D printed using a Printrbot Metal Plus. Steel rods were used as cable guides in the rigid vertebrae to reduce friction as the fishing line cables passed through the vertebrae, as shown in Figure 3b. The spine was held together with M2 bolts and nuts and fixed to an acrylic box that housed the motors. Eight NEMA-17 stepper motors were used to control the length of the cables. Each motor was fitted to a spool which controlled the length of each cable. The spools were sized such that each step of the motor either lengthened or shortened the cable lengths by 0.5 mm. An Arduino Uno with Adafruit motor shields was used to control the motors. The complete spine with motors attached can be seen in Figure 1.
Model
We model our multi-jointed soft spine using similar approaches to those proposed by Camarillo et al.25,26 Our soft spine system differs from these previous works in two ways. First, we use external cables rather than internal cables, which means that the equations must be recalculated to handle this; external cables are a standard cabling method for continuum manipulators.19 Second, we introduce a crossing cable configuration rather than a parallel cable configuration, as shown in Figure 3b, which complicates the coupling of the segments and requires a redefinition of a multi-segment manipulator.
For this model, we make several assumptions as follows: (1) linear material properties; (2) constant curvature/bending moment of elastomer segments (note that the system is modeled as a beam27); (3) friction is negligible (i.e., sliding friction and cable friction); (4) the cables do not contact the body of the spine (this stems from the fact that we have external cables19); and (5) external loads are negligible, including gravity. The experimental setup is designed to eliminate gravity effects and the spine itself moves orthogonal to gravity.
We begin our analysis by considering a single segment that is fixed on one end and free on the other. We can define our segment in two frames, e and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$e {\prime}$$
\end{document}, as shown in Figure 4. Note here that we have neglected to include the rigid components that are also part of the segment, which simplifies the visualization of the segment and does not alter any of the equations that follow, since we assume that the rigid components transfer the forces and are not geometrically altered by them. The e frame is on the fixed end of the segment while the \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$e {\prime}$$
\end{document} frame is on the free end of the segment. To transform from the \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$e {\prime}$$
\end{document} frame to the e frame, we can use the following rotation matrix:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\textbf{\textit{R}}_{e {\prime} }^e = \left[ { \begin{matrix} {cos \theta } & { - sin \theta } \\ {sin \theta } & {cos \theta } \\ \end{matrix} } \right] \tag{1}
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\textbf{\textit{R}}_{e {\prime} }^e$$
\end{document} is the rotation matrix, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\theta$$
\end{document} is the angle of the rotation defined by \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\theta = \kappa s$$
\end{document}, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\kappa$$
\end{document} is the curvature, and s is the arc length (note that the arc length changes as the segment compresses). Using the \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$e {\prime}$$
\end{document} frame, we can define our force due to a single cable tension to be:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ \textbf { \textit { F } } _ { { T_i } } } = - { T_i } \left[ {
\begin {matrix} { cos \alpha } \\ { sin \alpha } \\ \end {matrix} } \right] = - { T_i } \left[ { \begin {matrix} { sin
\frac { \theta } { 2 } } \\ { cos \frac { \theta } { 2 } } \\
\end {matrix} } \right] \tag { 2 }
\end{align*}
\end{document}
Representation of single segment bending.
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{F}}_{{T_i}}}$$
\end{document} is the force due to the ith cable, Ti is the tension in the ith cable, and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\alpha$$
\end{document} is the angle the cable forms due to the curvature, such that \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\alpha = \frac { { \pi - \theta } } { 2 } $$
\end{document}. Taking a static modeling approach, which we assume is valid due to slow operating speeds, we find our sum of forces to be:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\sum \textbf{\textit{F}} = {\bf 0}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\mathop \sum \limits_{i = 0}^{n - 1} \textbf{\textit{R}}_{e {\prime} }^e{\textbf{\textit{F}}_{{T_i}}} + {\textbf{\textit{F}}_R} = {\bf 0}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ \textbf { \textit { F } } _R } = \mathop \sum \limits_ { i = 0
} ^ { n - 1 } { T_i } \left[ { \begin {matrix} { - sin \frac {
\theta } { 2 } } \\ { cos \frac { \theta } { 2 } } \\ \end {matrix} } \right] \tag { 3 }
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{F}}_R}$$
\end{document} is the reaction force in both the x- and y-directions at the fixed end of the elastomer segment, and n is the number of cables. To look at the moments caused by forces, we must consider the moment arm, which can be defined as:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ \textbf { \textit { r } } _ { { T_i } } } = \left[ { \begin {matrix} { \left( { \frac { 1 } { \kappa } + { d_i } } \right) cos \theta - \frac { 1 } { { \kappa } } } \\ { \left( { \frac { 1 } { \kappa } + { d_i } } \right) sin \theta } \\ \end {matrix} } \right] \tag { 4 }
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{r}}_{{T_i}}}$$
\end{document} is the moment arm to the force, and di is the distance from the center to the cable as measured in the \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$e {\prime}$$
\end{document} frame. Looking at the sum of moments about the center of the fixed end of the elastomer segment, we find:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\sum M = 0
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ M_R } = - \mathop \sum \limits_ { i = 0 } ^ { n - 1 } { T_i } { d_i } cos \frac { \theta } { 2 } \tag { 5 }
\end{align*}
\end{document}
Using our assumptions of constant curvature and linear material properties, we can also state that:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{M_R} = {K_b} \kappa \tag{6}
\end{align*}
\end{document}
where Kb is the bending stiffness of the material, such that \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${K_b} = EI$$
\end{document}, where E is the nominal Young's modulus of the material, and I is the second moment of inertia of the segment. Combining Equations 5 and 6, we get:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\kappa = { \frac { - \mathop \sum \nolimits_ { i = 0 } ^ { n - 1 } { T_i } { d_i } cos \frac { { \kappa s } } { 2 } } { { K_b } } } \tag { 7 }
\end{align*}
\end{document}
Equation 7 shows how the cable tensions relate to the curvature. If we allow our material to deform due to compressive forces caused by the cable tension, we must consider the effects on strain:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ \epsilon _b } \left( x \right) = { \frac { - \mathop \sum \nolimits_ { i = 0 } ^ { n - 1 } { T_i } { d_i } cos \frac { \theta } { 2 } } { { K_b } } } x \tag {8a}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ \epsilon _a } = { \frac { - \mathop \sum \nolimits_ { i = 0 } ^ { n - 1 } { T_i } cos \frac { \theta } { 2 } } { { K_a } } } \tag {8b}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ \epsilon _y} \left( x \right) = { \epsilon _b} \left( x \right) + { \epsilon _a} \tag{8{\rm c}}
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \epsilon _b}$$
\end{document} is strain due to bending moments, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \epsilon _a}$$
\end{document} is strain due to axial forces, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \epsilon _y}$$
\end{document} is total strain in the y-direction, x is the distance from the central axis, and Ka is axial stiffness, such that \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${K_a} = EA$$
\end{document}, where A is cross-sectional area. A more in-depth discussion on the strain equations can be found in Camarillo et al.,25 and is not repeated in this study. From this, we can see that the neutral axis is going to shift due to the combined axial compression and bending. We can find the new location to be a distance from the center as:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ x_ { n.a. } } = { \frac { - { K_b } \mathop \sum \nolimits_ { i = 0 } ^ { n - 1 } { T_i } } { { K_a } \mathop \sum \nolimits_ { i = 0 } ^ { n - 1 } { T_i } { d_i } } } = { \frac { { a_n } } { { a_d } } } \tag { 9 }
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${x_{n.a.}}$$
\end{document} is the distance of the neutral axis from the center, an is the numerator of the neutral axis calculation, and ad is the denominator of the neutral axis calculation. The neutral axis shifts as the spine compresses. These equations can be taken and expressed in shortened form:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{\textbf{\textit{K}}_m}\textbf{\textit{q}} = \textbf{\textit{D}} \bm{\tau} \tag{10{\rm a}}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{\textbf{\textit{K}}_m} = \left[ { \begin{matrix} {{K_b}} & 0 & 0 & 0 \\ 0 & {{K_a}} & 0 & 0 \\ 0 & 0 & {K_b^{ - 1}} & 0 \\ 0 & 0 & 0 & {K_a^{ - 1}} \\ \end{matrix} } \right] \tag{10{\rm b}}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\textbf{\textit{q}} = { \left\{ { \kappa , { \epsilon _a} , {a_n} , {a_d}} \right\} ^T} \tag{10{\rm c}}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\bm{\tau} = { \left\{ {{T_0} , {T_1} , \ldots , {T_n}} \right\} ^T} \tag{10{\rm d}}
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{K}}_m}$$
\end{document} is the stiffness matrix, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\textbf{\textit{q}}$$
\end{document} is the configuration-space description, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\textbf{\textit{D}}$$
\end{document} consists of the multipliers necessary to solve for \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{K}}_m}\textbf{\textit{q}}$$
\end{document}, and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\bm{\tau}$$
\end{document} is the cable tensions. For a single segment, we find D to be:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\textbf { \textit { D } } = \left[ { \begin {matrix} { - { d_0 }
cos \frac { \theta } { 2 } } & { - { d_1 } cos \frac { \theta }
{ 2 } } & \ldots & { - { d_n } cos \frac { \theta } { 2 } } \\ {
- cos \frac { \theta } { 2 } } & { - cos \frac { \theta } { 2 }
} & \ldots & { - cos \frac { \theta } { 2 } } \\ { - 1 } & { - 1
} & \ldots & { - 1 } \\ { { d_0 } } & { { d_1 } } & \ldots & { {
d_n } } \\ \end {matrix} } \right] \tag { 11 }
\end{align*}
\end{document}
This model of a single segment is important, but coupling of the spine segments becomes relevant when there are multiple segments. Camarillo et al. introduced an analysis for multisegment continuum arms with parallel cables,26 which serves as the basis for our crossing cable model. A full derivation of the multisegment continuum arm with crossing cables can be found in Supplementary Data (Supplementary Data are available online at www-liebertpub-com.web.bisu.edu.cn/soro). To illustrate the difference between the two cabling patterns (traditional and crossing), let us consider a two-segment spine. For this example, there are four cables in both the traditional and crossing cable configurations shown in Figure 5. For all cables, we set \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\left\vert {{d_i}} \right\vert = {l_c}$$
\end{document} for all i. Consider first a simple two-segment example for a traditional cable configuration:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\left[ {{\textbf{\textit{K}}_m}} \right] \left\{ \textbf{\textit{q}} \right\} = \left[ \textbf{\textit{D}} \right] \left\{ \bm{\tau} \right\} \tag{12{\rm a}}
\end{align*}
\end{document}
Two-segment spine for (a) traditional and (b) crossing cable patterns. The numbers represent the cable number, and the black lines represent the cable pattern.
where the subscripts in \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\left( {{\textbf{\textit{q}}_j} , \ {\textbf{\textit{D}}_j} , \ { \bm{\tau} _j}} \right)$$
\end{document} refer to these respective vectors and matrices in the jth segment. This can be expanded for any number of segments. Note that the tension is split into \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \bm{\tau} _0}$$
\end{document} and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \bm{\tau} _1}$$
\end{document}; this highlights the concept of having specific cables for each segment of the manipulator. In a traditional cable pattern, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \bf [ }\textbf{\textit{D}} ]$$
\end{document} indicates the decoupling. This can be shown by the upper triangular matrix since the cables from the 0th segment do not influence the outcome of the 1st segment (i.e., the tensions \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \bm{\tau} _0}$$
\end{document} do not affect the 1st segment's configuration \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{q}}_1}$$
\end{document}), but the cables for the 1st segment do influence the outcome for the 0th segment (i.e., the tensions \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \bm{\tau} _1}$$
\end{document} affect the 0th segment's configuration \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{q}}_0}$$
\end{document}). In this study, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{D}}_0}$$
\end{document} corresponds to the cables for the 0th segment and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{D}}_1}$$
\end{document} corresponds to the cables for the 1st segment.
Note that, in this case, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${{{ \bm{\tau} }}_0} = { \left\{ {{T_0} , {T_1}} \right\} ^T}$$
\end{document} and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ \bm{\tau} _1} = { \left\{ {{T_2} , {T_3}} \right\} ^T}$$
\end{document} since cables 0 and 1 are used to move the 0th segment, and cables 2 and 3 are used to move the 1st segment.
In contrast, cables in the crossing cable configurations can cross from one side to the other and are designed to influence every segment rather than decouple. Therefore, segments cannot be broken up and cable tensions cannot be divided per segment. The system must be taken as a whole:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
\left[ { \begin{matrix} {{\textbf{\textit{K}}_m}} & {\bf 0} \\ {\bf 0}& {{\textbf{\textit{K}}_m}} \\ \end{matrix} } \right] \left\{ { \begin{matrix} {{\textbf{\textit{q}}_0}} \\ {{\textbf{\textit{q}}_1}} \\ \end{matrix} } \right\} = \left[ { \begin{matrix} {{\textbf{\textit{D}}_0}} \\ {{\textbf{\textit{D}}_1}} \\ \end{matrix} } \right] \left\{ \bm{\tau} \right\} \tag{14}
\end{align*}
\end{document}
where all the cable tensions are described by \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\left\{ \bm{\tau} \right\} $$
\end{document} and are relevant to all segments. In this study, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{D}}_0}$$
\end{document} and \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${\textbf{\textit{D}}_1}$$
\end{document} keep track of which side the cable is on for a specific segment. That is, d0 can be positive in the 0th segment and negative in the 1st segment if it crosses between them.
Note the differences in the simplified \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\left[ \textbf{\textit{D}} \right]$$
\end{document} matrix between Equations 13 and 15, which demonstrate the differences between the two cabling patterns. In particular, the cables can be shown switching between positive and negative signs in the last two columns of the simplified \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\left[ \textbf{\textit{D}} \right]$$
\end{document} matrix in Equation 15, which is due to the crossing cables and is not present in the representation of the traditional cabling method.
Simulation Results
To capture the behavior of this analytical model, we developed a computational model using C++. Because Equation 10a is nonlinear, we solved for the state \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$\textbf{\textit{q}}$$
\end{document} using an iterative solver, using the root finding secant method. The overview of our simulation and experimentation process is given as flowchart in Figure 6. Note that in this section, we only used the blocks up to the Simulation Results, while the rest of the flow chart is applicable to the experimental validation, which is detailed in the next section.
Flowchart of simulation and physical spine control. The kinetics portion of the robot model (I) computes the deformed configuration based on cable tensions obtained from the random sample space. The kinematics portion of the robot model (II) takes the deformed configuration and determines the required change in cable length. When working with the physical robot, these changes in cable length are fed to the motor control, which drives the physical robot into the required deformed configuration.
First, we sought to show that crossing cable configurations can be designed such that their workspaces closely match the workspace of the traditional cable configuration. To do this, we needed to further define the different cable patterns. For the traditional cabling method, cables terminate at each segment, as shown in the green box in Figure 7. For a six-segment spine, this implied a total of 12 cables. Our goal was to reduce the total number of cables (and subsequently actuators) required to achieve a comparable system workspace using crossing cable configurations. Our first intuition for a crossing cable configuration was to use the harmonics of a six-segmented system, which resulted in a spine with eight total cables, as shown in the blue box in Figure 7. Using a reduced number of eight cables, we sought to compare all the possible crossing cable configurations from the cables shown in Figure 7 (31,465 configurations) to the traditional 12-cabled configuration. Note that symmetry was assumed for all these cable configurations (i.e., there are four pairs of cables).
Representation of possible cable patterns. Note that cables come in pairs and only half are shown. The cable's pair is opposite and symmetrical to what is shown. The cables shown in the blue box are our initial guess at a harmonic crossing cable pattern. The cables shown in the green box are the cables for the traditional parallel cable pattern. For each spine tested, four configurations are selected from this representation. Color images available online at www-liebertpub-com.web.bisu.edu.cn/soro
To determine the difference in performance of the cable configurations, we explored the workspace of a six-segment system with 40 mm long elastomer segments. This consisted of running samples of randomly generated cable tensions through the model to determine final end position and orientation. The tensions were randomly selected using C++'s rand() command. End position was discretized into a workspace grid, with 1 cm resolution. End orientation was discretized into 8 bins divided evenly between 0° and 360°. We were most interested in two criteria: span (the number of position bins the spine reached, regardless of orientation) and intensity (the number of angular bins reached among all locations).
Because of the large number of possible crossing cable configurations, we ran a cursory pass over all the combinations using a total of 105 random tension samples \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$( {T_i} \in \left[ {0 , 1} \right] N )$$
\end{document}, which had a low enough resolution to reduce computation time, but high enough resolution to indicate significant trends. The span and intensity were tracked for each combination, and the results are shown in Figure 8. While there was a wide spread in performance for the crossing cable patterns, we wanted to focus on the specific configurations that performed well in both span and intensity to match the performance of the traditional cable pattern. Therefore, we selected the top 100 in terms of span and the top 100 in terms of intensity, which resulted in 170 “selected” cable configurations with an overlap of 30 configurations, as shown in cyan in Figure 8.
Intensity versus span of all 31,465 crossing cable combinations with 105 random tension samples shown in gray. The cyan dots represent the 170 selected configurations. The black dots represent those selected configurations run with 106 random tension samples. The red stars indicate the crossing cable configurations with the highest (i) span and (ii) intensity. Color images available online at www-liebertpub-com.web.bisu.edu.cn/soro
We then ran these 170 configurations at a higher resolution of 106 tension samples \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$( {T_i} \in \left[ {0 , 1} \right] N )$$
\end{document}. The results from this are shown in black in Figure 8. In this study, we have shown that the higher resolution yields even more favorable span and intensity for the selected configurations. The best performing cable configurations are shown in Figure 8, where configuration (i) represents the best performing configuration in terms of span and configuration (ii) represents the best performing configuration in terms of intensity. Both of the highest performing crossing cable configurations included a cable pair that goes all the way up the sides without crossing, similar to the traditional parallel cable configuration.
In addition, we investigated the impact of elastomer segment length on workspace span and intensity. In this experiment, we compared the workspace of our selected crossing cable configurations to the traditional parallel cable configuration with the high resolution of 107 tension samples \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$( {T_i} \in \left[ {0 , 2} \right] N )$$
\end{document}. As shown in Figure 9a, the crossing cable configurations (8-cables) perform comparably to the traditional configuration (12-cables) in terms of both span and intensity. We note that shortened lengths are more biomimetic, as biological spines have short elastic disks between their rigid vertebrae. We also note that the span and intensity values decrease because the spine cannot reach as far with smaller segments. Figure 9b–d shows one workspace comparison between the crossing cable configuration with the best performance in intensity [configuration (ii) from Fig. 8, shown in Fig. 9b] and the traditional parallel cable configuration shown in Figure 9c, for 40 mm elastomer segments. The difference between the workspaces is shown in Figure 9d. All of the workspace comparisons shown in Figure 9a demonstrate that segment coupling can be used to reduce the total number of actuators in segmented manipulators while maintaining workspace performance.
(a) Intensity versus span of configurations with changes to elastomer lengths. Note that the cable patterns of crossing span and crossing intensity are represented by those shown in Figure 8. (b) Representation of the workspace for the crossing cable configuration with the best performance in intensity [configuration (ii) in Fig. 8]. (c) Representation of the workspace for the traditional parallel cable configuration. (d) Difference between the two cable configurations with 40 mm elastomer segments. The base of the spine starts at (0,0). The shaded region is where the spine can reach. The shading scale denotes how many angular position bins the spine is able to reach. Note that the positive numbers indicate that the system performs better in the crossing cable configuration, while the negative numbers indicate that the systems performs better in the traditional cable configuration. Color images available online at www-liebertpub-com.web.bisu.edu.cn/soro
We also sought to show that crossing cable configurations require less cable tension than the traditional cable configuration. In the crossing cable configuration, all cables run the full length of the spine and therefore extend to each segment. In the traditional cable configuration, only a subset of cables is available for any given segment. As the crossing cable configuration enables more cables per segment, tension requirements are therefore distributed between a larger number of cables, and the tension requirements per cable are relatively reduced. To demonstrate this, we compared the tensions of the crossing cable configuration given by configuration (ii) in Figure 8 with the tensions of the traditional cable configuration across a range of spine positions. The spine positions we used for comparison are the same positions used in the experimental validation. For this testing, we can consider two quantities as follows: (1) the maximum cable tension for each cable configuration for a given spine position \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$( {{\rm T}_{max , k}} = \max \{ {{\rm T}_{i , k}} \} $$
\end{document} for \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$i \in [ 0 , n ]$$
\end{document}, where k denotes a given position) and (2) the peak cable tension of each cable configuration, which is quantified as the maximum value of the cable tensions across all the tested spine positions \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$( {{\rm T}_{peak}} = { \rm{max}} \left\{ {{{\rm T}_{max , k}}} \right\} $$
\end{document} for all \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$k )$$
\end{document}. The data showing the results can be found in Supplementary Table S1. While we found some isolated spine positions for which the traditional cable configuration generated lower maximum cable tensions than the corresponding crossing cable configuration, the crossing cable configuration had a lower peak cable tension over the entirety of the workspace (i.e., all tested spine positions).
In addition, in contrast to attempting to find crossing cable configurations with workspaces comparable to the traditional cable configuration, we also sought to identify crossing cable configurations with workspaces that differ drastically from the traditional cable configuration. Such designs are not universally useful, but would be application driven. Some examples of other workspaces are shown in Figure 10. In this study, we again use the high resolution of 107 tension samples \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$$( {T_i} \in \left[ {0 , 2} \right] N )$$
\end{document}. These examples demonstrate that the workspace can be limited by cable configuration, rather than by software, which could be used as an additional safety measure in robot manipulator design.
Demonstration of different workspaces achievable through different crossing cable configurations. The base of the spine starts at (0,0). The shaded region is where the spine can reach. The shading scale denotes how many angular position bins the spine is able to reach.
Experimental Validation
To determine the accuracy of the model, we tested it on a physical system, as shown in Figure 11. The system was placed such that it was floating on water with Styrofoam platforms to eliminate friction caused by it sliding on a surface. For the experimental validation, we selected the crossing cable configuration shown in Figure 12a, which matches configuration (ii) in Figure 8, and used 20 mm long elastomer segments. Spine positions yielded from the kinetic model can be translated to cable displacement values using the following kinematic relationship:
\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ { \Delta }}{l_i} = {l_{neutral}} - \mathop \sum \limits_{j = 0}^5 {l_{i , j}} + { { \Delta }}{l_{tension , i}} \tag{16{\rm a}}
\end{align*}
\end{document}\documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
\begin{align*}
{ { \Delta } } { l_ { tension , i } } = { \frac { { T_i } { l_ { total } } } { { K_t } } } \tag {16b}
\end{align*}
\end{document}
where \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ { \Delta }}{l_i}$$
\end{document} is the change in length for the ith cable, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${l_{neutral}}$$
\end{document} is the neutral cable length (this does not account for the cable length that goes through the vertebrae since that is assumed to be a constant length regardless of spine position), \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${l_{i , j}}$$
\end{document} is the length of the cable for the jth segment, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${ { \Delta }}{l_{tension , i}}$$
\end{document} is the change in length (stretch) due to the ith cable tension, \documentclass{aastex}\usepackage{amsbsy}\usepackage{amsfonts}\usepackage{amssymb}\usepackage{bm}\usepackage{mathrsfs}\usepackage{pifont}\usepackage{stmaryrd}\usepackage{textcomp}\usepackage{portland, xspace}\usepackage{amsmath, amsxtra}\usepackage{upgreek}\pagestyle{empty}\DeclareMathSizes{10}{9}{7}{6}\begin{document}
$${l_{total}}$$
\end{document} is the total length of the cable (this accounts for the length going through vertebrae), and Kt is the cable stiffness of the fishing line (96.5 N/m).
To control the movement of the spine, we developed a Python program that ran an Arduino with a slave program. The Python program translated the raw cable displacements, given in meters, to motor commands, given as steps in the stepper motors. The motor commands were sent to the Arduino Uno, which used the Adafruit motor shield and AccelStepper libraries to actuate the spine. To determine the actual spine position, we used a vision tracking system consisting of a Logitech C270 Webcam and OpenCV. Red and yellow dots were placed on the spine to facilitate this and can be seen in Figure 11. The computer vision (CV) system produced an estimate of the spine position based on the average position of the fiducial dots taken over 50 images. In addition, we applied an outlier rejection filter to remove cases where the CV system misidentified the location of the dots.
Figure 12 shows three different comparisons between the predicted and actual spine positions. While the model predictions do not exactly match the physical outcomes, we find the agreement in the trends of the deformations to be convincing that the model is accurate. The error in end position for Figure 12b was 30.3 ± 2.3 mm; for Figure 12c, the error was 46.9 ± 4.4 mm; and for Figure 12d, the error was 36.2 ± 2.7 mm. Additional spine configurations can be seen in Supplementary Data. The main sources of discrepancy between the model and physical system are cable friction and cumulative errors due to positional error in each segment. Since the model does not account for a number of real physical terms, such as friction, we expected the results to be close, but not perfect. As it turned out, our errors were small (on the order of 30 mm) and there was good agreement between our models and the shape and behavior of the physical system.
Experimental tests for model validation. The recreation of the spine is shaded blue, while the model prediction is shown as a black outline. (a) Shows the cables used and their respective numbers. Changes in lengths for (b) are {11.5, 39.5, 46.5, −10, 8.5, −16.5, −24.5, −31}mm, for (c) are {−9.5, 2.5, −13.5, 11.5, 29.5, 15.5, 31.5, 5.5}mm, and for (d) are {7.5, 24.5, −2.5, 28, 12.5, −5, 22, −10}mm for the respective cables given in (a). Color images available online at www-liebertpub-com.web.bisu.edu.cn/soro
Conclusion and Future Work
We have demonstrated that actuator count and maximum cable tension can be reduced without loss to workspace performance through the use of crossing cable configurations. Furthermore, we have shown that through the use of crossing cable patterns, we are able to tune the workspace for a given application, which may be leveraged to increase safety during manipulator operation. Use of highly coupled actuation allows for greater flexibility in design and more closely matches the behavior of biological systems. A Supplementary video is provided that gives a broad overview of the paper and shows the system deforming with a crossing cable pattern.
Moving forward, we plan to extend the 2D soft spine model introduced herein to a 3D model. 3D soft spines using spiral cable patterns more closely mimic biological spines, as many mammals exhibit spiral muscle patterns in their arms and legs.12 In addition, spiral cable patterns will add torque to the system, which could be used for energy storage or more precise control of the end location and orientation. We expect that this will give more profound improvement at the cost of an even greater challenge in the design phase. We also expect to further use our models in continuum manipulator control strategies.
Footnotes
Acknowledgments
This work was partially supported by an Early Career Faculty grant from NASA's Space Technology Research Grants program (NNX14AO52G). J.C.C. is supported under the NASA Space Technology Research Fellowship program (NNX15AQ75H). E.L.W. is supported under the National Science Foundation Graduate Research Fellowship program (DGE-1333468). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of NASA or the National Science Foundation. The authors also thank Jonathan Bruce for his helpful input in getting the system running.
Author Disclosure Statement
No competing financial interests exist.
References
1.
GodabaH, LiJ, WangY, ZhuJ. A soft jellyfish robot driven by a dielectric elastomer actuator. IEEE Robot Autom Lett, 2016; 1:624–631.
2.
ChuW-S, et al.Review of biomimetic underwater robots using smart actuators. Int J Precis Eng Manuf, 2012; 13:1281–1292.
3.
MaoS, DongE, ZhangS, XuM, YangJ. A new soft bionic starfish robot with multi-gaits. 2013IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM), Wollongong, Australia, 2013, pp. 1312–1317.
4.
TrivediD, RahnCD, KierWM, WalkerID. Soft robotics: biological inspiration, state of the art, and future research. Appl Bionics Biomech, 2008; 5:99–117.
KawamuraT, TandaiT, TakanobuH. Mechanism and control of tongue robot. 2005IEEE/RSJ International Conference on Intelligent Robots and Systems, Edmonton, Canada, 2005, pp. 1041–1046.
7.
TakanobuH, TandaiT, MiuraH. Multi-DOF flexible robot base on tongue. 2004IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA'04, New Orleans, LA, 2004, pp. 2673–2678.
8.
SfakiotakisM, KazakidiA, PateromichelakisN, TsakirisDP. Octopus-inspired eight-arm robotic swimming by sculling movements. 2013IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, Germany, 2013, pp. 5155–5161.
9.
LaschiC, CianchettiM, MazzolaiB, MargheriL, FolladorM, DarioP. Soft robot arm inspired by the octopus. Adv Robot, 2012; 26:709–727.
10.
KimS, LaschiC, TrimmerB. Soft robotics: a bioinspired evolution in robotics. Trends Biotechnol, 2013; 31:287–294.
11.
GracovetskyS. An hypothesis for the role of the spine in human locomotion: a challenge to current thinking. J Biomed Eng, 1985; 7:205–216.
12.
WainwrightSA. Axis and Circumference, the Cylindrical Shape of Plants and Animals. Boston, MA: Harvard University Press, 2014.
13.
ZhaoQ, SumiokaH, NakajimaK, YuX, PfeiferR. Spine as an engine: effect of spine morphology on spine-driven quadruped locomotion. Adv Robot, 2014; 28:367–378.
14.
ÇulhaU, SaranliU. Quadrupedal bounding with an actuated spinal joint. 2011IEEE International Conference on Robotics and Automation (ICRA), Shanghai, China, 2011, pp. 1392–1397.
15.
ZhaoQ, NakajimaK, SumiokaH, YuX, PfeiferR. Embodiment enables the spinal engine in quadruped robot locomotion. 2012IEEE/RSJ International Conference on Intelligent Robots and Systems, Vilamoura, Portugal, 2012, pp. 2449–2456.
16.
ReineckeJ, DeutschmannB, FehrenbachD. A structurally flexible humanoid spine based on a tendon-driven elastic continuum. 2016IEEE International Conference on Robotics and Automation (ICRA), Stockholm, Sweden, 2016, pp. 4714–4721.
17.
DeashapriyaKP, SampathPAG, WijekoonWMSB, JayaweeraND, KulasekeraAL. Biomimetic flexible robot arm design and kinematic analysis of a novel flexible robot arm. 2016Moratuwa Engineering Research Conference (MERCon), Moratuwa, Sri Lanka, 2016, pp. 385–390.
18.
WeiY, ChenY, YangY, LiY. A soft robotic spine with tunable stiffness based on integrated ball joint and particle jamming. Mechatronics, 2016; 33:84–92.
19.
WebsterRJ, JonesBA. Design and kinematic modeling of constant curvature continuum robots: a review. Int J Robot Res, 2010; 29:1661–1683.
20.
KatoT, OkumuraI, KoseH, TakagiK, HataN. Extended kinematic mapping of tendon-driven continuum robot for neuroendoscopy. 2014IEEE/RSJ International Conference on Intelligent Robots and Systems, Chicago, IL, 2014, pp. 1997–2002.
21.
MehlingJS, DiftlerMA, ChuM, ValvoM. A minimally invasive tendril robot for in-space inspection. The First IEEE/RAS-EMBS International Conference on Biomedical Robotics and Biomechatronics, 2006. BioRob 2006, Pisa, Italy, 2006, pp. 690–695.
22.
TonapiMM, GodageIS, VijaykumarAM, WalkerID. Spatial kinematic modeling of a long and thin continuum robotic cable. 2015IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, 2015, pp. 3755–3761.
23.
PalmerD, Cobos-GuzmanS, AxinteD. Real-time method for tip following navigation of continuum snake arm robots. Robot Auton Syst, 2014; 62:1478–1485.
24.
CaseJC, WhiteEL, KramerRK. Soft material characterization for robotic applications. Soft Robot, 2015; 2:80–87.
25.
CamarilloDB, MilneCF, CarlsonCR, ZinnMR, SalisburyJK. Mechanics modeling of tendon-driven continuum manipulators. IEEE Trans Robot, 2008; 24:1262–1273.
26.
CamarilloDB, CarlsonCR, SalisburyJK. Configuration tracking for continuum manipulators with coupled tendon drive. IEEE Trans Robot, 2009; 25:798–808.
27.
LewisG, MonasaF. Large deflections of cantilever beams of non-linear materials of the Ludwick type subjected to an end moment. Int J Non-Linear Mech, 1982; 17:1–6.
Supplementary Material
Please find the following supplemental material available below.
For Open Access articles published under a Creative Commons License, all supplemental material carries the same license as the article it is associated with.
For non-Open Access articles published, all supplemental material carries a non-exclusive license, and permission requests for re-use of supplemental material or any part of supplemental material shall be sent directly to the copyright owner as specified in the copyright notice associated with the article.