DESIGN OF A TENDON DRIVEN SOFT CONTINUUM ROBOTIC ARM USING PROPRIOCEPTIVE SENSORS

In this thesis the use of proprioceptive sensors in elephant trunk inspired soft continuum robots was explored. After presenting the basics for this project, a review of existing soft continuum robots is given. The sensors used are off-the-shelf stretch senors. Those sensors are carbon black impregnated rubber cords. The design and the fabrication of the robot are described. Using material characteristics a calibration process was developed to improve the sensor’s consistency. The robot is then tested in open-loop as well as a closed-loop experiment. Results of those experiments are presented and discussed.

, a soft actuated system for gait rehabilitation [101]. Autonomous mobile soft robots have been designed to explore the modes of locomotion, such as a tissue-engineered soft robotic stingray with light sensing [94], a resilient walking soft robot in hazardous conditions [120], and a soft robotic fish capable of escape maneuvers [82].While significant advances have been made in the field of soft robotics in recent years, obstacles still exist in fabrication, sensing, modeling and control of soft robots which have prevented full realization of the promising applications of soft robots.
While the compliance of soft robots is an integral part of their functions, it poses a challenge in the sensing of robotic configurations. Many traditional sensors for rigid 1 robots, such as motor encoders, do not work well for soft robots, especially when the soft robots physically interact with environments. This is because soft robots can undergo large continuum deformation. The kinematic relations that describe the mappings between actuation space, configuration space, and task space of soft robots not only depend on robot geometry, but also material stress-strain relationship and environmental constraints. In the general cases, nonlinear finite-strain elasticity problems need to be solved to obtain the kinematic relations [88,35], which are computational intensive when solved numerically using the finite element method.
Both external and internal sensors have been explored to acquire the configuration of soft robots. External position tracking systems, such as electromagnetic tracking [49] and optically-based 3D motion capture [45], has been used to obtain shape sensing for feedback control. External sensing systems work well for situations where modestly-sized robots perform tasks in a predefined area which can be covered by the external tracking system. For long distance tasks or large scale robotic designs, such as autonomous mobile robots or extendable robotic arms, a means of internal sensing is preferred. The primary deformation mode of soft robotic arms is bending; therefore, to accurately predict the end-state configuration, it is required to know the curvature along the soft-robotic arm.
Several proprioceptive sensors that are able to achieve this have been developed and/or implemented previously. Such sensors include: a Hall Effect sensor [92]; a piezoelectric deflection sensor [113]; a soft-strain sensor which utilizes conductive fabric [33]; fiberoptic sensors [111]. Such sensors, in principle, can measure the local curvature along the 2 robotic arm. A simpler approach is to assume the curvature along the length of each segment of a modular arm is constant; therefore, measuring the length along different paths in the longitudinal direction of the arm segment allows one to compute the curvature based on the geometric relations. Previous work following this approach includes a length sensor based on inductance change of conductive braids [48], soft-strain sensors which utilize either liquid or carbon nanotube conductors [53], and a commercially available bilayer thin film sensor [50].
Various actuation strategies have been used in soft robotics for locomotion and articulation; these include flexible fluidic actuators [110,88], tendon-drives [104], shape memory alloys [127], electro-active polymers [91], etc. Among them, the tendon-driven approach, where DC motors pull tendons inside the robotic arm to generate curvature, has several advantages. First, the use of tendon-drive actuation has been extensively proven by in traditional hard continuum robotic arms. The mechanics models developed previously for a tendon-driven continuum arm can be used, modified, and extended to the soft tendon-driven robotic arms. Secondly, because of the softness and light-weight nature of soft robotic arms, small batteries and miniature motors will suffice for actuation.
In this work, we explore the curvature sensing using conductive soft filaments for the feedback control of a tendon-driven soft robotic arm. Ideally, a low-cost proprioceptive sensor made of soft materials is preferred such that it does not restrict the deformation of soft robots in any directions.

2 Basics
In this section the basic knowledge of for this project will be presented. This includes: • the mathematical description of robots (subsection 2.1) • the usage of MCU (Micro Controller Units) as interface between hardware and software 2 Kinematics In robotics a common way to find a end-effector position for a robot is by using a homogeneous transformation. With a known homogeneous transformation matrix T and known base coordinates x b , y b , and z b , the end-effector coordinates x e , y e , and z e can be derived using Equation 2.1. R describes the rotation of the base and t the translation of The transformation matrix T dependent on the actuator states. MCUs posses 3 different types of pins: • digital IO pins • analog input pins • PWM output pins (can also be used as digital IO pins) Digital IO pins have to be set to either input or output mode. In input mode the MCU read a high voltage if the potential at the pin is above a certain threshold () and reads a low voltage otherwise. In output mode the MCU can set the potential at the pin to a high voltage (5 V) or a low voltage (0 V).
To program those MCUs the Arduino IDE can be used. This software allows the user to program using a programing language that is similar to c++. Instead of a main function the Arduino language uses a setup function and a loop function. The setup function is executed once, when the MCU is started (or the reset button is pressed).
After that the loop function is executed repeatedly.

Measuring Resistance using an MCU
To measure a unknown resistance using an Arduino board the circuit is setup as shown in Figure According to Kirchhoff's second law Equation 2.3 holds.
From those equations R C can be derived: Because a MCU doesn't read analog voltage values, but instead converts those to digital values, we have to deal with errors during the readings. Section 2.2.1 shows the error of the measurement in dependence of the actual resistance of the unknown resistance. The error has its minimum for a resistance value similar to the pull-down resistor. This feature can be used to detect voltage peaks. In this project interrupt functions are used in combination with motor encoders.

Pulse Width Modulation
Pulse width modulation is a method to create a analog voltage by switching between 2 different voltage potentials. By changing the width of a pulse (high voltage level) without changing the width for a whole cycle a different average voltage can be achieved. Even though this technically is not a analog voltage output, in many electronic circuits it can be treated as one, because PWM usually uses a very high frequency.   Most soft robots can also be classified as continuum robots. Therefor the following sections describe those continuum robots. After that a introduction to soft robots is given.

Continuum Robots
Continuum robots are robots that manly move by deforming parts. In this section the focus wil be put on elephant trunk or snake shaped robots. Those continuum robots can be compared using different criteria [115,59,107,128]: • continuous or discrete

Number of Sections
For a robot that consists of more than one section, more DOF are added. Those additional DOF however are not necessarily linear independent and therefor can add redundancy to the whole robot. Despite having multiple sections most robots are capped in the number of sections. This is due to the fact that the actuation of one section still takes place at the base of the robot. In this case tendons or tubes for the actuation of the later sections pass through the first sections. [128] 3 Actuators per Section The number of actuators per section is strongly related to number of DOF. A robot with only 2 actuators can only have 2 linear independent DOF. Some robot design contain 4 actuators in one section. By having more than 3 actuators a robot can achieve a bidirectional behavior. Many other robots achieve the bidirectionality by having springs that pull the robot in the other direction or have bidirectional actuators. [128] 3 Degrees of Freedom per section The DOF of a robot represents how complex the movement can be. While 6 DOF would be enough to reach any point in a 3 dimensional space from any direction, it is restricted in path it takes to the point. To deal with restrictions from the environment more DOF are added (usually by adding more sections). [128] 3 Actuator Spacing The actuator spacing describes the location of the actuators. Snake like robots usually have their actuators located symmetrically around the center. So the actuator spacing is dependent on the number of actuators (ϕ i+1 − ϕ i = 2π Nactuators ). [128] 3 Actuation The actuation in many cases is done using tendons or hydraulic/pneumatic pumps.
While it is usually easy for a pump to achieve big bending angles due to high pressure,  in the robot's body. [85,87,88,51,102,118] In [82] a fish like robot was developed (see Figure 3.2a), that was capable of maneu- vering through water by actuating its tail. One of the advantages of a application in water is that gravitational effects on the soft material are very low as the density of the silicon rubber is similar to water. In [104,106] (robots in Figures 3.2b and 3.2e) the developed robot makes use of this property by conducting the experiments in a water tank. This environmental advantage is even stronger in applications in space due to the complete absence of gravity and surrounding medium. [121] Other applications of soft robots are mobile robots for geometrically complex environments (Figure 3.2d) or gripper for sensitive objects (Figure 3.2c).
Many soft robots are inspired by an elephant trunk, an octopus arm or a snake. So a lot of research has been done on the kinematics and control of those kind of robots. To obtain a kinematical model [20,10]  • a Hall Effect sensor [92] (a) Autonomous soft robotic fish [82] (b) Octopus arm inspired robot [104] (c) Soft robotic gripper [60] (d) Soft robotic walker [114] (e) Multi-body aquatic vehicle [106]  • a piezoelectric deflection sensor [113] • a soft-strain sensor which utilizes conductive fabric [33] • fiber-optic sensors [111] • a flex bend sensor [52] Sensors like the Hall Effect sensor [92], the piezoelectric deflection sensor [113]  and control of the robot as well as the mathematical model.

Robot Design
The designed robot is a arm shaped soft continuum robot made of silicon rubber. Embedded in the robot are 3 carbon-black impregnated rubber cords [2]. The same sensors have been used in [90]. Additionally to the stretch sensors and the Hall-effect sensors, electromagnetic tracking sensors are used. Those sensors track the their location in an changing electromagnetic field. One of those sensors is placed at the tip of the robot and one at the base for reference. Using this system the data of the other sensors is validated. Also those sensors are used for calibration of the stretch sensors.

Fabrication
The silicon rubber used for the robot is a platinum-catalyzed silicon rubber [117]. Ta-   00-30 was used as it is soft enough to be bend using small motors. Ecoflex 00-35 was rejected due to the low curing time which would not leave enough time to prepare the mixture and pour it into the mold.
After mixing the two components the mixture is placed in a vacuum chamber to extract air enclosed in it. The mixture is then removed from the chamber and poured into a mold (see

Control
For the control of the robot a Arduino Uno board was used.
The DC-motors are controlled by using one PWM output of the MCU and one digital output. By setting the voltage outputs of those pins according to Algorithm 1 a bidirectional actuation can be achieved.

Kinematic
The mathematical description of the robot can be split into 4 spaces.
z y x (a) 3D view of the task space The task space is the space in which the end-effector moves. It is defined by 3 spacial coordinates (x, y, z). Assuming the motors are not operating at their force maximum, the tendon lengths lie in a constant range. The task space for this case is visualized in For the mapping from the configuration space to the task space f c,x only the last 30 column of the transformation matrix is required (see Equations (4.5) to (4.7)). [128] x = cos φ (1 − cos κ ) κ (4.5) For the transformation from the task space to the configuration space f x,c those equations can be solved for the configuration variables (see Equations (4.8) to (4.10)). [128] κ = 2 x 2 + y 2 x 2 + y 2 + z 2 (4.8) The actuator space q consists of the 3 cable lengths (l 1 , l 2 , l 3 ). As those actuators are linear independent, a closed form mapping from actuator space to configuration space f s,c exists. With ϕ 1 = 1 2 π, ϕ 2 = 7 6 π and ϕ 3 = 11 6 π those equations are shown in 31 Equations (4.11) to (4.13)). [128] κ = 2 l 2 The mapping from configuration space to actuator space f c,q can be described with Equation (4.14). [128] l i = (1 − κδ cos (ϕ i − φ)) (4.14) The sensor space consists of the 3 sensor lengths (s 1 , s 2 , s 3 ). As the sensor are rotated by 30 • to the cables, the equations for the mapping between sensor space and configuration space (f s,c and f c,s , see Equations (4.15) to (4.18)) look similar to the mapping between actuator space and configuration space.
A more general mathematical model that does not assume the cables and sensors to be evenly distributed is shown in Appendix A.  By aging here we mean the life of the rubber band inside the elastomeric arm. We noticed a different behaviour for the aged rubber bands. Due to diffusivity of the silicone rubber particles into the rubber band the rubber resistance will increase on a timely manner.
The blue curve (top curve) is the rubber band resistance after 2 days, which shows two to three order of magnitude increase in resistant. However, it also changes the behavior of the material for the strains beyond 17 % and we do not onbserve the twist anymore.
After runing several experiments, the data from the aged rubber band has been more 37 useful in terms of calibrating the sensors. Further research should account for the tuning and regulating the rubber bands resistance and its sensitivity to the enviorment.
For measuring the real-time resistance of the conductive rubber, an Arduino UNO microcontroller was utilized and programmed using MATLAB Arduino package. Wires for measuring the real-time resistance were attached close to the edge of the tensile stand's grippers. Resistance data aquisation has been synchronized with the displacement data from the tensile experiment.

Robot Control
This section describes the robot control. First a calibration process for the robot is presented. In the next steps the robot is tested in an open-loop and an closed-loop environment.

Calibration
Because the behavior of the conductive rubber bands doesn't follow a linear pattern the robot is calibrated before every experiment. During this calibration process multiple data points are collected with their respective length (obtained from EM-senors). For those points a polynomial of 3rd order is fitted and used to convert from sensor reading to sensor length. The calibration algorithm is shown in Algorithm 2.     Also it can be observed that the x coordinate of the trajectory does not reach the expected position. The reason for that may be friction forces between the cable located at (−r cable , 0) T and robot. Even though the motor releases the cable by the right amount the friction prevents the arm to reach the desired position. Using lubrication could reduce the friction. However as the stretch sensors are very sensitive to silicon based liquids, lubrication the arm was avoided.

Closed-Loop Control
In this section the stretch sensors are used in a closed-loop control to actuate the robot to a defined target. In this experiment a PI-controller was used. A low pass filter (moving average filter) was implemented to remove high frequency noise of the sensor readings.
The controller setup is shown in Figure 6.6. Here r(t) is the target cable length, u(t) is the speed input for the DC motor and y(t) is the cable length calculated from the sensor reading. For simplification only one motor was actuated.   properties of those sensors make it difficult to actuate the robot fast, as in those cases the sensors become inaccurate or require taking the viscoelastic behavior into account. 46

Conclusion and Outlook
Soft continuum robotic arms, which combine the dexterity and high degree of freedom of continuum robots, are able to escape many of the pitfalls of their rigid and hard continuum counterparts due to their use of hyperelastic materials [110], and better mimic the gentleness, articulation, and high level of control and haptic ability found in nature.
Due to the low-stiffness and light-weight materials, much of the power demand seen with conventional rigid or continuum hard robots is unnecessary, allowing for the use of batteries and small DC motors to provide the motive force for actuation. It is because of this that soft continuum robots prove to be exceptional candidates for modular design, whereby each module contains its own source of actuation and control, making it possible to design extendable and/or more highly complex soft robotic arms with unique functionalities.
Using carbon impregnated rubber cords as stretch sensors to sense the current state of a soft robot presents a lot potential as material properties of the soft robot are not required for the kinematic model. However those stretch sensors bring many challenges along. It is hard to maintain consistent results over longer periods of time due to high environmental dependencies of the sensors, which makes calibration before usage unavoidable. That aside even within a single experiment consistency is not guaranteed. A more accurate model of the stretch sensors including their hysteresis effect would be needed.
As the created robot uses small actuators and electronic parts this design is suited to 47 be extended to a multi-section robot. As the robot would be able to carry the weight of its hardware, those parts could be combined in a small module that is connected wireless (over an HTTP server) to a computer that gives control commands. A robot like this could have many different applications as it is easy extendable by adding more sections.

Forward Kinematic
For the kinematic a constant curvature model is assumed. The length of a thread along the robot is therefor only dependent on the distance to the bending axis. The function L (X, Y ) describes this length for any thread. The equipotential curves (curves of constant value) are lines parallel to the bending axis.
The length L (R) of a thread with distance R to the bending axis can be calculated using Equation (A.1).
Because the length L is linear proportional to the distance R, the function L (X, Y ) has to be a plane.
With the known sensor length the coefficients a i can be calculated by solving the following linear system of equations: The gradient of the function ∇L (X, Y ) gives the direction n toward which the arm is The combined transformation matrix from the base to the end-effector is then dependent on φ, θ and r: T (φ, θ, R) = T φ T r,θ (A.12)

Inverse Kinematic
For the inverse kinematics the position of the end effector p is known and the cable length is determined. In the first step the direction in which the arm bends is calculated. This The end effector position is then rotated to the x-z-plane: x y z (A.14) Using the translational part of Equation (A.9) the radius r and the angle θ can be calculated (see Equations (A.15) and (A.16)).

B Code Instructions
The code that is flashed on the MCU expects a hardware setup as shown in Figure 4.4. If changes are made the pin numbers have to be updated in the Arduino code ("Arm.cpp" and "main.ino").
Flowcharts for the matlab codes are given in Figures B.1 to B.5. Other files may be required but are self explanatory such as "rotx.m" which returns a rotation matrix around the x-Axis.
start Guidance system with the program "Cubes", specify save file and click on run create serial connection to MCU with "startSerial.m" calibrate sensors with function "calibrate.m" create target positions for cables using the function "getCircPath" or "getOscOneMotor.m" move/control to every point with "runThroughPts.m" or "control2Target.m" save data