MyoRobotics Documentation

This document describes the use of the MyoRobotics toolkit, including assembly of muscle units, joints and bones, as well as configuration and control of through the Flexray interface.

This documentation is compiled from documentation produced by the concluded FP7 ICT MyoRobotics Project, the ongoing Roboy Project at TU Munich , Embedded Robotic Systems and the Fraunhofer IPA.

License

Unless specified otherwise all

this documentation and the hardware is released under the CC by 4.0 license, the software under the BSD license.

The main documentation for the site is organized into a couple sections:

Installation

How to get started with a set of MyoMuscles, Ganglia and Flexray2USBAdapter.

Cabling and Power

Warning

Check if:

  • all motor cables are plugged in correctly. There are 2 ribbon cables (grey and rainbow coloured) that connect each motor with its motor driver board
  • all sensor displacement cables are plugged in correctly
  • all motor driver boards are connected to power with common ground and power is turned off
  • all motor driver boards are connected to their respective ganglion (via SPI)
  • all joint sensors are connected to ganglia
  • all ganglia are connected to power with common ground and power is turned off
  • all ganglia are connected to the flexray bus
  • all power supplies are set to output at the very most 24V (for basic testing the 13 muscle MyoArm will run off a single 3A power supply)
  • the Flexray2USB adapter is connected to power with common ground and power is turned off
  • the Flexray2USB adapter is connected to the flexray bus
  • turn the power on and check if
    • all driver boards are lighting/flashing green
    • the joint has a blinking light whose frequency changes with the joint’s angular displacement
  • the software starts

Software Installation

To get started we recommend installing both the myo_blink and ros_control_boilerplate fork examples on top of the required flexrayusbinterface.

These examples require ROS kinetic to be installed on Ubuntu 16.04.


Allow your user to access the serial device

By default Ubuntu does not let you access your serial adapters. To change that we will add your user to the group ‘dialout’. Execute the following in a terminal:

sudo usermod -a -G dialout $(whoami)

This only needs to be done once.


Create a new workspace

Create a new folder that will contain your ROS / catkin workspace and all code.

source /opt/ros/kinetic/setup.bash
mkdir -p ~/MyoArm_ws/src && cd MyoArm_ws/src && catkin_init_workspace
cd ..
catkin_make

Now add the workspace to your ~/.bashrc so that it gets automatically sourced upon opening a shell:

echo 'source ~/MyoArm_ws/devel/setup.bash' >> ~/.bashrc

Install flexrayusbinterface
roscd && cd ../src
git clone https://github.com/roboy/flexrayusbinterface.git -b develop
roscd flexrayusbinterface && ./install_deps.sh

Important

The ftd2xx driver does not get loaded automatically. In order to use it you need to either install our udev rules [1] (recommended):

roscd flexrayusbinterface && sudo ./install_udev_rules.sh

Or manually unload the standard drivers every time you re-plug the Flexray2USBInterface board:

sudo rmmod ftdi_sio
sudo rmmod usbserial


Install ros_control_boilerplate fork
roscd && cd ../src
git clone https://github.com/compiaffe/ros_control_boilerplate.git -b MyoArm

Important

Also set the serial number in the corresponding yaml file as per Configure the myo_blink software example.. The yaml file is placed in

roscd ros_control_boilerplate/rrbot_control/config

Install all ROS dependencies
apt-get install -y ros-kinetic-rosparam-shortcuts ros-kinetic-ros-control ros-kinetic-ros-controllers ros-kinetic-control-msgs ros-kinetic-urdf ros-kinetic-control-toolbox ros-kinetic-robot-state-publisher libgflags-dev libncurses5-dev libncursesw5-dev wget vim

Build it
roscd && cd ..
catkin_make

ROS’ plentitute of terminals

For using ROS effectively, you will need a large number of terminals open at the same time. I recommend using the terminal app: terminator. Here you can split the screen into multiple terminals or add tabs. Once it is installed, see what a right-click allows you to do.

Install it using:

sudo apt-get install terminator -y

Troubleshooting

This is a selection of typical problems. If your problem is not listed below, please check the issues for all related repositories:


Could not connect to the myo motor: device not opened

There are a number of possible reasons:

You do not have read/write access to the device /dev/ttyUSBn. Where n is a number

Verify this by running:

cat /dev/ttyUSBn
  • If you get a ‘device not found’ you didn’t replace the right number for n in ttyUSBn
  • If you do not get anything, just a clean return you have correct access rights. Press Ctrl+C and find the problem elsewhere.
  • If you get a ‘permission denied’ then you have verified this problem. Add yourself to the ‘dialout’ group as described here: Allow your user to access the serial device.

The configured serial number does not match the serial number of the USB2FlexRay adapter

Go and double check it by following the instructions here: Configure the myo_blink software example.


You did not install the dependencies of flexrayusbinterface

Go and do it. No harm in doing it twice.: Install flexrayusbinterface


You did not install the udev rules
  • Check if there is a file called ‘30-ftdi.rules’ in ‘/etc/udev/rules.d/’:

    ls -alh /etc/udev/rules.d
    # if you don't get back anything try it with sudo:
    # sudo ls -alh /etc/udev/rules.d
    
  • The file should contain a line with something like this at the end:

    /sys/bus/usb/drivers/ftdi_sio/unbind
    
  • If it does, compare it with the file supplied by ‘flexrayusbinterface’. It is located at:

    roscd flexrayusbinterface/udev
    
  • If they match, there might be something wrong with these rules for your system. Try the option below.


Something in the udev rules is not right
  • Manually try to unload the ftdi_sio and usbserial kernel modules as described in the Manually unloading ftdi_sio and usbserial and try the roslaunch command again
  • If that does help, use the manually loading as a workaround. Research udev files and how do unload kernel modules. If you are stuck or found a better solution, please create an issue on github at: flexrayusbinterface
  • If that does not help find the problem somewhere else. Have you checked your permissions as in the first step?

Introduction

The control of highly coupled and compliant musculoskeletal systems is a complex task. In contrast to the well established control concepts of stiff robots widely used in industry, control strategies and algorithms for musculoskeletal systems are still areas of active research. In order to experiment with advanced control algorithms, it is desirable to have a set of simple linear controllers to control the muscle state. This baseline system fulfils two purposes; it provides a benchmark against which more advance control schemes can be tested and, perhaps more importantly, it provides a control interface that can be utilised by advanced and higher level control algorithms.

In order to run a range of linear (feedback) controllers on the MYO-Muscles, a control environment for sensing, processing and actuation is required. Due to the modular nature of the Myorobotic system, a heterogeneous and distributed control infrastructure has been devised. It allows the Myorobotics developers and users to test and control their Myorobot through the MYO-Muscles. In the following document, the main components of the control system are described from both a hardware and software perspective.

Overview

An overview of the distributed control system is presented in Fig. 2.1. The Myorobotics system consists of:

  • a PC (Ubuntu 16.04 or newer with a working installation of the Robot Operating System - ROS),
  • a Flexray2USB adapter board
  • up to 6 ganglia (intermediary controller boards)
  • up to 4 ‘motors with driver boards’ per connected ganglion
_images/systemOverviewECU.png

Overview of the Myorobotics distributed control infrastructure.

The PC communicates with the Flexray2USB adapter via a USB 2.0 interface. The Flexray2USB board establishes the link between the FlexRay bus (the main Myorobotics communication system) and the PC. All ganglia are connected to the same Flexray bus, which is controlled by the Flexray2USB board. Each ganglion can control up to 4 motor driver boards and their motors via an SPI interface.

A Myrobotics system consists of up to 6 MYO-Ganglions, which are local 32-bit floating point electronic control units (ECU) that communicate via the FlexRay bus. Each MYO-Ganglion can control up to four MYO-Musles in different control modes. The communication between the MYO-Muscles and the MYO-Ganglion is established via four dedicated 5Mbit/s SPI connections. Up to four joints can also be connected to a MYO-Ganglion. These joints share a common controller area network (CAN) bus and communicate their absolute joint position at a rate of 1kHz. The same CAN bus is also utilised to read the state of up to 12 MYO-Perceptors, scalar sensors that can be used for various purpuses like tactile or temperature sensing. These sensors broadcast their sensory state at a rate of 100Hz.

Content of the design primitive library

Organization and description of the library elements

To simplify the presentation of the library elements and provide a framework for future extensions, the developed hardware elements are organized, for each DP functional category, using the following hierarchical classification:

Types (T) are used to distinguish the hardware elements on the basis of their design principle.

Varieties (V) are used, if needed, to distinguish the hardware elements based on the same design principles, on the basis of the technical implementation.

The description of each variety follows the following structure:

Illustrations regroup figure and graphics illustrating the library element and its main features
Dimensions list the element’s most important dimensions
Features provide a textual explanation of the element’s main features
Material and fabrication detail the materials and fabrication methods foreseen for the various parts of the library element
Integration of the electronics if needed, provides more details about the embedded electronic component and their integration in the hardware element
Accessories lists the additional pieces of hardware usable with the library element, if any
Implemented instances list the instances of the hardware elements that have been implemented so far, with their corresponding names and dimensions

Overview of the implemented library elements

Mechanical couplings
Structural Bond
_images/image1.png

Type 1: Flange clamp with conical flange

Anchor Fastener
_images/image3.png

Type 1: Screw Fasteners

Cable attachment
_images/image4.png

Type 1: Through hole

_images/image5.png

Type 2: Conical socket

Design Primitives
MYO-Bones
_images/image7.png

Type 1: Parallel Assemblies - Four Round Tubes Fibres

_images/image8.png

Accessories

_images/image11.png

Type 2: Monolithic core - T-slot profile

_images/image12.png

Accessories

MYO-Joints
_images/image15.png

Type 1: Symmetric Hinge

_images/image16.png

Type 2: Asymmetric Hinge

_images/image17.png

Type 2: Revised Asymmetric Hinge

_images/image18.png

Type 3: Pivot

_images/image19.png

Type 4: Hinge-Pivot

_images/image20.png

Type 5: Hinge-Hinge

MYO-Muscles
_images/image21.png

Type 0: Passive Muscle - Simple spring

_images/image23.png

Type 1: Unilateral Series Elastic Actuator - Compression spring

MYO-Ganglion
_images/image24.png

Type 1: ECU with FlexRay bus

Accessories

Structural Bond

Type 1: Flange clamp with conical flange

The structural bond is made of the following elements:

  • Two flange plates which include the conical flanges. The side-plates can be integrated in the bone or joint, on one or both sides.
  • One clamp ring which clamps the two flange plates together.
  • An electrical interface with spring contacts.
Variety 1: Screwed Half Clamps

In this implementation, the clamp ring is implemented in two parts. The pressure of the clamp ring on the conical flanges is ensured by two screws.

Illustrations

Overview:

_images/image25.png

Individual elements:

_images/image26.png

Dimensions

D1 Distance between the outer faces of the clamp ring

D2 Diameter of the clamp ring along its short axis

D3 Diameter of the clamp ring along its long axis

D4 Radius of the square pattern of the pins

D5 Radius of the square pattern of the screws

D6 Total thickness of the flange (conical and cylindrical section)

D7 Width of the flange, i.e. difference between the outer and inner flange radius

D8 Thickness of the cylindrical section of the flange

D9 Diameter of the central hole of the flange plates

Implemented instances:

Reference SB-SC2-T1-V1
Corresponding DP-Class II
Dimensions D1 8 [mm]
D2 50 [mm]
D3 62 [mm]
D4 15 [mm]
D5 16 [mm]
D6 3 [mm]
D7 4 [mm]
D8 1 [mm]
D9 24,5 [mm]

Features:

Flange plates:

  1. The flange plates are fixed to the joint or bone assembly using a square screw pattern.
  2. The flange plates can also be integrated in the bone or joint construction.
  3. The two flange plates are additionally connected via a set of up to four pins. They prevent the relative rotation of the flange plates along the longitudinal axis and contribute to transmit the torsion moment.
  4. The flange plates have an octagon in their centre to fix the electronic interface in it.

Clamp ring:

  1. The clamp ring is made of two parts, joined together by two screws.

Material and fabrication

Element name Material Fabrication processes
flange plate aluminium
  • machining
polyamid (PA)
  • laser sintering
clamp ring polyamid (PA)
  • laser sintering

Integration of the electronics

In order to implement power (24V) and communication (FlexRay) connectivity, PCBs with spring loaded contacts are integrated into the structural bonds. These circuit boards have a reverse polarity protection and were tested on their current carrying capability and can perform up to 20A.

_images/image32.png

Structural Bond with electronic interface

Anchor – Fastener

Type 1: Screw Fasteners

This basic type of anchor-fastener is simply made of a set of threads placed on a DP, on which another DP can be attached using screws.

Variety 1: Pair of Screws

This variety uses two screw-thread pairs, whose openings are coplanar.

Illustrations
_images/image33.png

Dimensions

D1 Screw diameter

D2 Depth of the screw hole

D3 Distance between the screw hole

Implemented instances

Reference AF-SC2-T1-V1
Corresponding DP-Class II
Dimensions D1 M3  
D2 5 [mm]
D3 30 [mm]

Cable attachment

Type 1: Through hole

Overview

_images/image34.png

Dimensions

D1 Cable diameter

D2 Hole chamfer distance

D3 Hole chamfer angle

Implemented instances

Reference CA-SC2-T1
Corresponding DP-Class II
Dimensions D1 1.6 [mm]
D2 1 [mm]
D3 45 [°]
Type 2: Conical socket

In this type, the cable-end and the corresponding socket, have a conical shape.

Overview
_images/image35.png

Dimensions

D1 Cable diameter

D2 End connector maximum diameter

D3 End connector length

D4 End connector minimum diameter

Implemented instances

Reference CA-SC2-T2
Corresponding DP-Class II
Dimensions D1 2 [mm]
D2 6 [mm]
D3 10 [mm]
D4 4,8 [mm]

Features

  1. The cable-end has a conical shape to allow a better distribution of the transmitted force.
  2. The cable runs through the cylindrical channel of the cable-end.
  3. To fix the cable to the cable-end, a knot is made at the end of the cable, which is melted to prevent the knot to loosen. This knot is larger than the cylindrical channel and therefore applies the cable force on the internal cylindrical surface of the cable-end.
  4. The conical cable-end can be secured in a cylindrical socket built in one of the Design Primitives.

Material and fabrication

Element name Material Fabrication processes
cable-end aluminium or brass
  • standard component, machining
_images/image36.png

Conical socket with HPPE cable

MYO-Bone

MYO-Bone

Type 1: Parallel Assemblies

This bone type implements the design principle “Parallel assemblies”. The bone is designed as an assembly made of three types of elements (see Fig. 5.1):

  • Elongated structural profiles, hereafter called fibres, form the main structural element.
  • Transverse spacers bind the fibres together and increase the assembly stiffness and strength. The spacers are shaped to allow the compact integration of other DPs and the electric cabling.
  • End-spacers are spacers placed on each end of the bone, which provide additional interfaces.

Together, the fibres and the spacers are making up the bone core, while the end-spacers play the role of the bone ends.

_images/image37.png

Illustration of the bone construction Type 1 – “Parallel Assemblies”

Bone Variety 1: Four Round Tube Fibres

This variety takes inspiration of the ThorLabs Cage System [Web-ThorLabs]. A rigid cage system used to align optical components along a common optical axis. Four tubes with round cross sections are used as fibres and they are placed so that the intersections of the fibre longitudinal axes with the transverse plane are located at the vertex of a square.

Illustrations

Overview:

_images/image38.png
_images/image39.png

Individual elements:

_images/image40.png
Dimensions

D1 Diameter of the round tubes

D2 Distance between two adjacent fibres

D3 Distance between two successive spacers

Implemented instances
Reference BONE-SC2-T1-V1
Corresponding DP-Class II
Dimensions D1 6 [mm]
D2 30 [mm]
D3 50 [mm]
M 188 [g]
Features

Fibres:

  1. The fibres are implemented with standard tubes with a round section.
  2. Each fibre is terminated with two inserts equipped with screw threads.
  3. The inserts are glued to or pressed in each of the tube.

Spacers:

  1. The spacers are attached to the fibres using flexure clamps.
  2. The spacers are shaped to allow the integration of the muscle, close to the central axis on the four lateral sides of the bone.
  3. The spacers have a central hole to let the electric cables run through them.

End-spacers:

  1. The fixation of the fibres to the end-spacers is achieved via a screw connection.
  2. The end-spacers also have a central hole to let the electric cables run through them.

Attachment points:

  1. Each end-spacer has a screw pattern to attach one side of a SB.
  2. Each section of fibre between two successive spacers can be used to attach one or more anchor carriers (see Accessories).

Todo

Explain downside of four round tube fibres

Material and fabrication

Production and assembly instructions are found in :numref:`myoBone-assembly-fourRoundTubeFibres`

Element name Material Fabrication processes
tube steel or composite
  • purchase (standard component)
  • cut to length
insert steel
  • standard component
spacers

aluminium

PA

  • water-jet cutting
  • machining
  • laser sintering
end-spacers PA
  • laser sintering
Accessories
MYO-Muscle adaptor
_images/image41.png

Features:

  1. The adaptor implements four anchor points of type AF-SCX-T1-V1, one on each of the four sides of the bone core.
  2. The four parts making up the carrier are fixed to each other with screws.
  3. Like the spacers, the carrier is shaped to allow the compact integration of the muscles and has a hole in the middle to let the electric cables run through.
Pulley module
_images/image42.png

Features:

  1. The pulley module includes a closed profile to keep the cable in place.
  2. The guide sleeve has a shape that aligns the cable. Additionally its supporting shaft has two ball bearings to minimize the friction.
  3. The pulley is shaped to allow a fast attachment to the parallel fibres.
  4. The connector allows a secure lock of up to four pulleys. It has a hole in the middle to let the electric cables run through and an opening to allow an easy insertion.
Cable attachment
_images/image43.png

Features:

  1. The end of the tendon cable is secured with a pin that can be quickly mounted or unmounted.
  2. The construction includes two aluminium plates that can be easily exchanged to adjust the pin position with respect to the end of the MYO-Bone.
  3. The cable attachment is shaped to allow a fast mounting to the parallel fibres and is fixed to them by clamping (using another cable attachment on the opposite side of the MYO-Bone).
  4. Up to four cable attachments can be mounted at the end of the MYO-Bone, while leaving sufficient space in the middle to let the electric cables run through.

Type 2 – Monolithic core

This bone type implements the design principle “Monolithic core”. The bone is designed as a solid aluminium profile with an end adaptor on each side of the bone.

Bone Variety 1 – T-slot profile

In this variant, a T-slot profile is used, enabling the easy fixation of design primitives or accessories on the MYO-Bone structure using nuts fitting in the T-slot.

_images/image60.png

Dimensions

D1 Width of the profile section

D2 Diameter of the centre hole

Implemented instances

Reference BONE-SC2-T2-V1
Corresponding DP-Class II
Dimensions D1 25 [mm]
D2 8.5 [mm]
M 255 [g]

Features

Aluminium profile:

  1. The profile is standard aluminium T-slot profile with a square section. According to the shape of profile, it is possible to fix the muscle in any place along the profile.
  2. The profile has a high stiffness against torsion and bending.
  3. The channel in the centre of the profile can host the electric cables running through the bone. A hole must be drilled at the desired position to let the electrical cables in and out.

Adaptor:

  1. The end adaptor is screwed to the aluminium profile using the four peripheral holes that can easily be threaded.
  2. The end adaptor has a central hole to let the electric cables run through it.
  3. The end adaptor has a screw pattern to attach one side of a SB.

Material and fabrication

Element name Material Fabrication processes
T-slot profile aluminium
  • purchase
  • cut to length
End adaptor aluminium
  • water-jet cutting
  • post-processing: machining

Accessories

MYO-Muscle Adaptor

_images/image61.png

Features:

  1. Each adaptor implements one anchor point of type AF-SCX-T1-V1.
  2. Two adaptors are required to attach one MYO-Muscle.
  3. Each adaptor is attached with two screws on one of the four sides of the T-Slot profile.

Pulley module

_images/image62.png

Features:

  1. The pulley module includes a closed profile to keep the cable in place.
  2. The guide sleeve has a shape that aligns the cable. Additionally its supporting shaft has two ball bearings to minimize the friction.
  3. The pulley module is shaped to allow a fast attachment with one screw to the profile.

Cable attachment

_images/image63.png

Features:

  1. The end of the tendon cable is secured with a pin that can be quickly mounted or unmounted.
  2. The construction includes two aluminium plates that can be easily exchanged to adjust the pin position with respect to the end of the MYO-Bone.
  3. The cable attachment is shaped to allow a fast attachment with two screws to the profile.

MYO-Muscle

Type 0: Passive Muscle

In some cases, it is sufficient to have a passive muscle (i.e. without a motor to contact the muscle) acting as antagonist to an active muscle, in order to reduce the weight or the cost of the robot.

Variety 1 - Simple spring

This is the simplest variant of the passive muscle. It consists of an attachment point, provided by a yoke (1) holding a pin to which a extension spring can be fixed, directly or indirectly via a tendon cable. The yoke if fixed to a threaded rod (2) so that the position of the attachment point with respect to the base (3) of the passive muscle can be adjusted by tightening or losing a single nut (4). This allows to adjust easily the length of the tendon cable and/or to adjust the joint position at which the spring starts to be loaded.

Illustrations

_images/image131.png
_images/image132.png

Type 1: Unilateral Series Elastic Actuator

This type of actuator is mainly made of the following elements:

  • a mechanical base to attach the actuator module to the bone
  • a geared DC motor
  • a series elastic element
  • a cable transmitting the force to the skeleton
Variety 1: Compression Spring

This implementation builds on the hardware developments achieved in the Roboy project, in which the MYOROBOTICS consortium members TUM and ETH are contributing. The series elastic element is a linear compression spring combined with a set of pulleys, to reproduce the characteristics of a non-linear progressive spring. The origin of this idea can be tracked back to [Hyodo1993] and has been implemented in different forms in various SEA and variable stiffness actuators.

Illustrations

Overview:

_images/image133.png

Individual elements:

_images/image134.png

Integration to BONE-SC2-T1-V1 (see Section 5.1.1.1):

_images/image135.png

Dimensions

D1 Total length of the actuator

D2 Total height of the actuator

D3 Lever arm of the tension force in the cable w.r.t. the bone section centre

Implemented instances

Reference MUSCLE-T1-V1-P100W
Corresponding DP-Class II & III
Motor power 100 W
Dimensions D1 192 [mm]
D2 60 [mm]
D3 32 [mm]

Features

Mechanical base:

  1. The mechanical base is connected to the bone using multiple anchor carriers developed for the BONE-SC2-T1-V1 (“Anchors circular pattern for vis-à-vis attachment”, see Section 5.1.1.1). As this implementation is based on an already existing hardware, it was not straightforward to directly use the available adaptor. For that reason one part of the adaptor was directly integrated in the mechanical base. Using the other parts of the anchor carrier (represented in green), the mechanical base can be fixed to the bone.
  2. The mechanical base contains a set of pulleys that redirect the cable transmission, from the motor reel, via the series elastic element, to come out parallel to the bone longitudinal axis.

DC motor:

  1. The DC motor is fixed to the mechanical base by a set of screws. It is equipped with an optical incremental encoder.
  2. A cable reel is attached to the DC motor shaft to wind up the cable. It has a cable attachment (of type CA-SC2-T1) to attach one side of the cable and is supported by a bearing at its extremity.
  3. The motor driver board (see hereunder) is fixed on one side of the mechanical base.

Series elastic element:

  1. The series elastic element is based on a compression steel coil spring.
  2. The spring compression is guided by a cylindrical plastic part, two bearings to slide linearly and a guide roller that prevents any twists. The other side of the spring is fixed using a spacer sleeve, a knurled nut and a nut witch are screwed together to a threaded rod witch is concentric to the cylindrical plastic part.
  3. To measure the deflection of the spring, a hall sensor in combination with a magnetic strip is used. It measures the linear displacement of the cylindrical plastic part. The sensor board is fixed with a wedge-shaped clip that has a spring lock mechanism.

Cable:

Cables made of high performance polyethylene fibres (HPPE), also commercially referred to as Dyneema®, were selected for their high strength, light weight, low stretch and flexibility.

Material and fabrication

Element name Material Fabrication processes
Mechanical base Polyamid (PA) laser sintering

DC motor

Bearings

Pulleys

  purchase (standard component)
Reel Aluminium machining
Compression Spring Steel purchase (standard component)
Cylindrical part POM machining
Cable Dyneema® (HPPE) purchase (standard component)

Integration of the electronics

Motor driver board (MDB):

This driver board is based on the dsPIC33FJ128MC802 from Microchip, a micro-controller particularly suited for motor control applications. The MDB includes a sensor for the motor current and inputs for additional sensors, such as the spring displacement. The MDB can communicate with the MYO-Ganglion via SPI and also has a CAN interface for stand-alone applications, debugging and configuration.

Accessories

Spring adaptors

The mechanical base of the muscle was designed to allow the usage of various springs, as long as their dimensions are compatible with the spring guidance mechanism. The interface between the mechanical base and the spring guidance mechanism on one side and the spring on the other side is achieved by spring adaptors. The adaptors designed so far allow the usage of four springs with different stiffness and maximal forces selected from the catalogue of Gutekunst Feder.

Reference D-311 VD-339A-01 VD-361 VD-364P

Stiffness

R (N/mm)

30,682 64,301 63,636 127,805

Maximal force

F n (N)

664,58 813,639 1191,193 1337,561
_images/image136.png

MYO-Joint

Type 1: Symmetric Hinge

This joint type provides 1 DoF of rotation along an axis parallel to the joint end planes. The provided angular range of rotation is symmetric with respect to the axis perpendicular to its interface plane provided by the structural bond. This DoF is provided by a combination of axle and rotational bearings. The basic structure of the joint is illustrated in Fig. 7.1.

Both joint ends are shaped as forks (the upper- and under joint forks) and provide an interface for the structural bond. The electrical interfaces on both joint ends are embedded in the structural bonds and the space between the upper and under fork is used for the electrical cabling. The attachment and guidance for the cable transmission are placed centrally for a symmetrical application of the force on the bearings.

_images/image72.png

Illustration of the joint construction for Type 1

Variety 1

This implementation uses two axles placed on each side of the joint, supported by ball bearings to reduce the friction and increase the efficiency of the joint. Between the two axles, a disk-like structure is used to guide the cable while insuring a constant lever arm with respect to the joint rotation axis. The absolute position of the joint is measured using a Hall-effect sensor, comprising a magnet embedded in one of the axles and an electronic board located inside the joint. The corresponding sensor interface module (SIM) is located on the outside of the joint to be easily accessible for configuration purpose.

Illustrations
_images/image73.png
_images/image74.png

Dimensions

H Distance between joint end planes

W Maximal width of the joint

T Maximal thickness of the joint

X Height of the tilt axis

Θ Motion range of the joint

Implemented instances

Reference JOINT-SC2-T1-V1
Corresponding DP-Class II
Dimensions H 60 [mm]
W 55 [mm]
T 36 [mm]
X 29 [mm]
Θ 140 [°]
M 70 [g]

Features

Under joint fork:

  1. Both bearings are implemented in the under joint fork.
  2. Two mechanical stoppers limit the motion range of the joint.
  3. The structural bond (SB) is integrated on the under joint fork.
  4. The topology of the force transmitting volume from the SB to the joint axis is optimised.
  5. A holding device allows attaching a SIM-board on the side.

Upper joint fork:

  1. Two cable attachments (CA-SC2-T2), allowing the bidirectional actuation of the joint, and a continuous guide for the cables are implemented.
  2. The SB is integrated on the upper joint fork.
  3. The topology of the force transmitting volume from the SB to the joint axis is optimised.
  4. The “neck” of the upper joint fork features a location to add an extension, providing if necessary additional CA on the joint.
  5. Both shafts of the joint are implemented with interference fit.

Sensor and electrical interfaces:

  1. The sensor board and its protection cap can be easily fixed on the under joint fork.
  2. To measure the movement between the joint parts, the magnet element of the sensor is mounted in the shaft.
  3. The electrical interfaces are small PCBs which are embedded in the structural bonds.
  4. Openings and cable channels are implemented to enable the electrical cabling between sensor and SIM-board and between the electrical interfaces of the structural bonds on both sides of the joint.

Material and fabrication

Element name Material Fabrication processes

Upper hinge part

Lower hinge part

Sensor cap

Polyamide (PA)
  • laser sintering
Shaft Aluminium
  • machining
Bearing Steel
  • purchase (standard component)
Assembly Procedure
_images/image75.png

Material needed:

1 x Upper hinge part

1 x Lower hinge part

1 x Sensor cap

2 Bearings 625 5x16x5 mm

1 x shaft left side

1 x shaft sensor side

4 data wires 0,25 mm2

2 power wires highly flexible silicon 1,5 mm2

2 x connector boards, four spring contacts

8 x M1,6 x 6

Step 1: Mount sensor board
_images/image76.png

Push the sensor cables through the cable channel. Place the sensor board on the pins and glue on two points.

Tips:

  • for pre fixation of the board melt the plastic pins with a soldering iron
Step 2: Glue sensor cap
_images/image77.png

Put glue on the sensor cap and screw it on the housing.

Tips:

  • just a small amount of glue is needed
Step 3: Mount Ball Bearings
_images/image78.png

Put the ball bearings in the housing on both sides.

Step 4: Assemble upper and under hinge part
_images/image79.png

Assemble the upper and under hinge part.

Plug in the shafts to fix the joint parts.

Tips:

  • The shaft with magnet must on the sensor side
  • For better fixation put lock tide on the shafts
Step 5: Connect cables to the board
_images/image80.jpg

Prepare cable tree on connector boards.

Cut on 15 cm length:

4 data wires 0,25 mm2

2 power wires highly flexible silicon 1,5 mm2

Connector side:

_images/image80A.png

Pin colour code:

F1+ white

F1 - brown

F2 + yellow

F2 - green

Step 6: Cabling
_images/image81.png

Place PCB carrier in SB.

Carrier orientation:

_images/image81A.png

Push cable tree through the joint.

Step 7: Connect cables to the second board
_images/image82.png

Skinning all cables long till the SB-pocket.

Pull cables through connector board and solder from top. Screw both connector boards to joint with four M1,6 screws.

Connector side:

_images/image82A.png

Pin colour code:

F1+ white

F1 - brown

F2 + yellow

F2 - green

Tips:

  • Turn Joint in the position of the longest cable path!
  • Avoid cable crossovers by connecting to board

Type 2: Asymmetric Hinge

This joint type provides 1 DoF of rotation along an axis parallel to the joint end planes. In contrast to the symmetric hinge, the provided angular range of rotation is asymmetric with respect to the axis perpendicular to its interface plane provided by the structural bond. Following Principle II, this DoF is provided by a combination of axle and rotational bearings. The basic structure of the joint is illustrated in Fig. 7.1.

Both joint ends are shaped as forks (the upper- and under joint forks) and provide an interface for the structural bond. The electrical interfaces on both joint ends are embedded in the structural bonds and the space between the upper and under fork is used for the electrical cabling. The attachment and guidance for the cable transmission are placed centrally for a symmetrical application of the force on the bearings.

_images/image83.png

Illustration of the joint construction

Variety 1 [obsolete]

This implementation uses a joint axle to the under joint fork and supported on each side by ball bearings mounted on the upper joint fork and secured with side covers. The absolute position of the joint is measured using a Hall-effect sensor, comprising a magnet embedded in the joint axle and an electronic board located on the side of the joint, together with its corresponding sensor interface module (SIM). The electronic boards are integrated in one of the side covers.

_images/image84.png

Illustration of the joint construction

Given the constraint of asymmetric angular range, it was not possible to use the same mechanism for cable guidance as for the symmetric hinge joint, while preserving a compact joint design. Instead, the cable of the extension muscle is redirected by a guiding pulley (located on the under joint fork) towards the cable attachment (located on the upper joint fork) implemented using a pin mounted transversally to the cable direction.

This cable guidance implementation does not insure a constant lever arm length, which significantly decreases as the joint flexes, as shown in Fig. 7.17. Tests performed by ETH showed that this pronounced decrease of the lever arm length was prejudicial in applications. For that reason another asymmetric hinge variety was developed, which is described in the next section.

_images/image85.png

Lever arm length variation of the extensor muscle cable (red line) as the asymmetric hinge joint (variety 1) flexes from 0° to 140°

Variety 2

This variety has the same basic construction as variety 1 regarding the joint axle and bearing, as well as the implementation and location of the absolute position sensing.

The main difference with variety 1 lies in the implementation of the cable guidance. The guiding pulley and the cable attachment are both mounted on two metal sheets attached to the sides of the under and upper joint forks respectively. This construction has two benefits: (1) the decrease of the lever arm length as the joint flexes can be significantly reduced and (2) the lever arm length can be easily adjusted by exchanging the metal sheets. On the other hand, this configuration increases the risk that the cable jumps out of the guiding pulley. To prevent this, two mechanisms were devised to centre the cable attachment (cable centring mechanism) and to keep the cable running on the pulley (cable catching mechanisms).

_images/image86.png

Illustration of the joint construction

_images/image87.png

Lever arm length variation of the extensor and flexor muscles cables (resp. red and green lines) as the asymmetric hinge joint (variety 2) flexes from 0° to 140°

Illustrations
_images/image88.png

Dimensions

H Distance between joint end planes

W Maximal width of the joint

T Maximal thickness of the joint

X Height of the rotation axis

Θ Angular range of the joint

_images/image89.png
_images/image90.png

Implemented instances

Reference JOINT-SC2-T2-V2
Corresponding DP-Class II
Dimensions H 80 [mm]
W 66,25 [mm]
T 84 [mm]
X 40 [mm]
Θ 140 [°]
M 224 [g]

Features

Under joint fork:

  1. The joint axle is pressed through the under joint fork, while relative rotation is prevented via a chamfer.
  2. The axle is axially secured with one circlip on each of its sides.
  3. Two mechanical stoppers on each side of the under joint fork limit the extension of the joint.
  4. The structural bond (SB) is integrated on the under joint fork.
  5. M2 brass inserts are embedded in the under joint fork as fixation points for the metal sheets holding the guiding pulley.
  6. A M2 brass insert is embedded in the top part of the under joint fork as fixation point for the cable catching mechanism.

Upper joint fork:

  1. The ball bearings are mounted in the upper joint fork.
  2. The bearings are axially secured on the medial side by the upper joint fork itself and on the lateral side by the two side covers screwed on the upper joint fork.
  3. Two mechanical stoppers on each side of the upper joint fork limit the flexion of the joint.
  4. The SB is integrated on the under joint fork.
  5. M2 brass inserts are embedded in the upper joint fork as fixation points for the metal sheets holding the cable attachment for the extensor muscle cable.

Flexor muscle cable guidance and attachment:

  1. The cable attachment is implemented as a transversal parallel pin around which the end of the cable is attached. The pin is pressed in the upper joint fork.
  2. A pulley equipped with ball bearing is fixed on the under joint fork to guide the cable when the joint is close to most extended position.

Extensor muscle cable guidance and attachment:

  1. The cable attachment is implemented as a transversal parallel pin around which the end of the cable is attached. The pin is supported by the two metal sheets inserted in the upper joint fork structure and additionally fixed to it with four screws.
  2. To prevent that the cable slides laterally, a part (“cable centring clip”) is clipped on the pin to constraint the position of the cable to its centre.
  3. The cable guidance is implemented as a roller born by a transversal parallel pin supported by the two metal sheets screwed to the under joint fork.
  4. A part (“cable catching mechanism”) is fixed to top part of the under joint fork to prevent the cable to jump out of the roller when the joint extends while there is no tension in the cable. This part is shaped so as to deform in order to let the cable attachment pin pass under it and close afterwards when the joint extends or closes.

Sensor and electrical interfaces:

  1. A magnet is glued to the joint axle.
  2. The rotation of the magnet is measured by a Hall-effect sensor implemented in an IC mounted on the sensor board.
  3. The signal provided by the sensor board is conditioned and transmitted by the SIM-board. Both boards are housed in one of the side covers.
  4. Openings and cable channels are implemented to enable the electrical cabling between sensor and SIM-board and between the electrical interfaces of the structural bonds on both sides of the joint.

Material and fabrication

Element name Material Fabrication processes

Upper joint fork

Under joint fork

Side covers

Guiding pulleys

Cable centering clip

Cable catching mechanism

Polyamide (PA) laser sintering
Shaft Aluminium machining
Bearings Steel purchase (standard component)
Metal sheets Aluminium water jet cutting
Parallel pins (cable attachment and pulley axles) Steel purchase (standard component)

Type 3 – Pivot

This joint type provides 1 DoF of rotation along an axis perpendicular to the joint end planes. Following Principle II, this DoF is provided by a combination of axle and rotational bearings. The basic structure of the joint is illustrated in Fig. 7.23. One side of the joint includes the joint axle and is called the pivot shaft. This part includes the cable attachments. The other side of the joint carries one or multiple bearings and is made of a barrel-shaped housing and a lid. The pivot shaft and the lid have each an interface for a structural bond. The electrical interfaces on both joint ends are embedded in the structural bonds and the electric cabling joining them is guided through the joint.

_images/image112.png

Illustration of the joint construction for Type 2

Variety 1

This implementation provides a large symmetrical range of rotation of the joint. To reduce the friction and increase the efficiency of the joint, two ball bearings are used to support the joint axle.

_images/image113.png
_images/image114.png

Dimensions

H Distance between joint end planes

W Maximal width of the joint

T Maximal thickness of the joint

Θ Motion range of the joint

Implemented instances

Reference JOINT-SC2-T3-V1
Corresponding DP-Class II
Dimensions H 65 [mm]
W 66,8 [mm]
T 50 [mm]
Θ 164 [°]
M 115 [g]

Features

Barrel-shaped housing:

  1. The barrel-shaped housing contains a reservoir for the electrical cables, into which the electric cable can freely move when the joint is rotating.
  2. On the outside of the housing, two holding devices are embedded for the pulleys redirecting the cable transmission.
  3. A holding bay in the housing allows attaching a SIM-board on the side.
  4. Two mechanical stoppers limit the motion range of the joint.

Pivot shaft:

  1. The bearing on the extremity of the shaft is fixed by a nut screwed on the pivot shaft.
  2. Two cable attachments (CA-SC2-T2), allowing the bidirectional actuation of the joint, and a continuous guide are implemented on the pivot shaft.
  3. The SB is integrated on the pivot shaft.
  4. To measure the rotation of the joint, an magnetic absolute position sensor is integrated in the joint. Its magnet element is mounted in the shaft.

Lid:

  1. The lid is screwed to the barrel-shaped housing and its position secured by four pins.
  2. The SB is integrated on the screw-on lid.
  3. The position sensor board is fixed on the inside of the lid.

Material and fabrication

Element name Material Fabrication processes

Barrel-shaped housing

Lid

Pivot shaft

Polyamide (PA)
  • laser sintering

Bearing

Securing pins

Shaft screw

Steel
  • purchase (standard component)
Pulleys Polymer
  • purchase (standard component)
Assembly Procedure
_images/image115.png

Material needed:

1 x Barrel-shaped housing

1x Lid; 1x Pivot shaft

2x Bearings 3802 15x24x7 mm

2x Securing pins 3mm x 8 mm

1 x Flat shaft screw M12 x 1

4 data wires 0,25 mm2

2 power wires highly flexible silicon 1,5 mm2

2 x connector boards, four spring contacts

8 x M1,6 x 6

Step 1: Mount sensor board
_images/image116.png
  1. Push the sensor cables through the cable channel.
  2. Place the sensor board on the pins and glue on two points.

Tips:

  • for pre fixation of the board melt the plastic pins with a soldering iron
Step 2: Mount pulleys and magnet
_images/image117.png
  1. Put in the two pulleys.
  2. Fix them with the pins.
  3. Glue the magnet into the pivot shaft.
Step 3: Place the bearings into the housing
_images/image118.jpg

Place the two bearings into the barrel-shaped housing from below.

Step 4: screw the pivot shaft into the housing
_images/image119.jpg

Put the pivot shaft into the barrel-shaped housing and tighten the nut.

Step 5: screw lid on barrel-shaped housing
_images/image120.png

Screw the lid on the barrel-shaped housing and put in the security pin.

Step 6: Solder cables to the board
_images/image121.jpg

Prepare cable tree on connector boards.

Cut on 15 cm length:

4 data wires 0,25 mm2

2 power wires highly flexible silicon 1,5 mm2

Connector side:

_images/image121A.png

Pin colour code:

F1+ white

F1 - brown

F2 + yellow

F2 - green

Step 7: Cable and solder cables to the second board
_images/image122.png

Place PCB carrier in SB

Solder cables to the second board (from below)

Carrier orientation:

_images/image122A.png

Pin colour code:

F1+ white

F1 - brown

F2 + yellow

F2 - green

Push cable tree through the joint.

Screw both connector boards to joint with four M1,6 screws.

Type 4: Hinge-Pivot

This joint type provides 2 DoFs of rotation: one along an axis parallel to the proximal joint end plane (hinge) and one along an axis perpendicular to the distal joint end plane (pivot). The angular range of rotation of the hinge is symmetric with respect to the axis perpendicular to the structural bond. Both DoFs are implemented using a combination of axles and rotational bearings.

Variety 1

This implementation uses ball bearings for the hinge and pivot to reduce the friction and increase the efficiency of the joint. The tendon cables actuating the pivot part (in red hereunder) are running through the centre of the axles of the hinge part. The absolute joint angles are measured using Hall-effect sensors and magnet rings.

Illustrations
_images/image123.png

Illustration of the Hinge-Pivot joint construction

_images/image124.png
_images/image125.png

Dimensions

H Distance between joint end planes

W Maximal width of the joint

T Maximal thickness of the joint

X Height of the hinge rotation axis

Θhinge Motion range of the joint

Θpivot Motion range of the pivot

Implemented instances

Reference JOINT-SC2-T4-V1
Corresponding DP-Class II
Dimensions H 95 [mm]
W 142 [mm]
T 78,5 [mm]
X 47,5 [mm]
Θhinge 140 [°]
Θpivot 180 [°]
M ~300 [g]

Features

Base:

  1. It holds the bearings for the hinge.
  2. Two mechanical stoppers limit the motion range of the hinge by contacting the ring mount.
  3. The structural bond (SB) is integrated on the proximal side of the base.
  4. It provides a fixation point on each side to screw a pulley-support.

Pulley-support:

  1. This part holds a pulley redirecting one of the tendon cables actuating the pivot through the hinge axle.

Ring mount:

  1. Two cable attachments (CA-SC2-T2) are provided, allowing the bidirectional actuation of the hinge.
  2. It holds two angular ball bearings for the pivot.
  3. It holds two pulleys that guide the tendon-cables for the pivot actuation towards the cable winch.
  4. It holds the two axles of the hinge, which are inserted with interference fit.
  5. The shafts are axially secured with steel sheets.
  6. Each steel sheet is secured with a cover clipped on the ring mount.
  7. A half magnet is mounted on its right side for the measurement of the hinge absolute position.
  8. The electronic board with the sensor measuring the absolute position of the pivot is mounted on its back.

Cable winch:

  1. Two tendon cable attachments are provided for the bidirectional actuation of the pivot and the round shape of the cable insures a constant lever arm.
  2. A magnet ring is mounted on the cable winch to measure the pivot absolute position.

Output shaft:

  1. The output shaft is mounted in the two angular ball bearings.
  2. The structural bond (SB) is integrated on the distal end of the output shaft.
  3. The cable winch is fixed to the output shaft with a screw with inner hole, allowing the passage of the electric cables.

Bearing cover:

  1. The bearing cover covers the two angular ball bearings.
  2. A mechanical stopper limits the motion range of the pivot.
  3. It is assembled with four screws on the ring mount.

Sensor and electrical interfaces:

  1. The sensor board for the hinge is attached on a pulley-support.
  2. The sensor board for the pivot movement is attached on the HX-ring mount.
  3. The cables routing (for the sensors) is supported by mounting clamps.
  4. The cables between the electrical interfaces of the structural bonds are guided through the output shaft.

Material and fabrication

Element name Material Fabrication processes

proximal base

ring mount

distal output shaft

cable winch

bearing cover

pulley support

axle cover

safety cable cover

cable cover

pulley external

pulley internal

Polyamide (PA)
  • laser sintering
axle Aluminium
  • machining
Sheet metal axle cover Steel
  • water jet cutting
Bearing Steel
  • purchase (standard component)
screws Steel
  • purchase (standard component)
Parallel pins Steel
  • purchase (standard component)

Type 5: Hinge-Hinge

The joint type is a combination of two hinge joints using a combination of axle and rotational bearing (principle II). It is provides 2 DoFs of rotation along two axes: the first parallel to the proximal joint end plane (proximal axis), the second parallel to the distal joint end plane (distal axis).

Variety 1: Universal Joint

The two rotation axes intersect and are perpendicular. The joint is composed of three load carrying components: the proximal, middle and distal parts. The proximal and distal parts can be mounted to other toolkit elements via the modular structural bond. The middle part connects both sides and defines the plane for both axes. Each rotation axis is implemented using two symmetrical axles, which are made up of a screw, a plain washer, a nut and a bearing. The rotation around the proximal axis is actuated by two tendon cables fixed to screws on the middle part. The tendon cables that actuate the distal axis are guided by two ceramic bushes placed on each sides of the proximal part and their ends are attached on the distal part. Both rotations can be actuated independently and each tendon cable has an almost constant lever arm with respect to the rotation axis it actuates. The two absolute angles are measured with a position sensor located in the intersection point of both axes.

_images/image126.png

Illustrations:

Overview:

_images/image127.png
_images/image128.png

Individual elements:

_images/image129.png
_images/image130.png

Dimensions:

H Distance between joint end planes

W Maximal width of the joint

T Maximal thickness of the joint

X Height of the proximal axis

Θprox Motion range of proximal rotation

Θdist Motion range of distal rotation

Implemented instances:

Reference JOINT-SC2-T5-V1
Corresponding DP-Class II
Dimensions H 115 [mm]
W 131,2 [mm]
T 86 [mm]
X 55 [mm]
Θprox 140 [°]
Θdist 110 [°]
M ~320 [g]

Features:

Proximal part:

  1. Two bearings and two screws are implemented in the proximal part.
  2. Two ceramic bushes are implemented on the proximal axis of the proximal part.
  3. The proximal structural bond (SB) is integrated on the proximal part.
  4. The topology of the part from the SB to the joint axis and the ceramic bushes is optimized to the expected loads.
  5. A bridge for attaching the position sensor (originally a joystick sensor) is located in the center of both rotation axes.
  6. The cables coming from the proximal SB connection board are guided through a tunnel to the center of the joint.
  7. The cables from the sensor are guided through a tunnel to the SIM board.
  8. The part includes an emplacement on the side to attach the SIM board.
  9. Mechanical stoppers, which collide with (17), limit the motion of range of the proximal rotation.
  10. Mechanical stoppers, which collide with (23), limit the motion of range of the distal rotation.

Middle part:

  1. The middle part holds the four axles (implemented using screws) together.
  2. Hexagonal openings allow the insertion of nuts to screw the axles in place.
  3. Cable attachments for the tendon cables actuating the rotation around the proximal axis are provided on the middle part, in the form of screws around which the tendon cables can be knotted.
  4. The tendon cables are guided on a circular arc centered on the proximal axis with a constant lever arm to the MYO-Muscle.
  5. Two aluminum sheets on each side of the circular arc reinforce the middle part, so that it is able to cope with the high forces applied by the tendon cables. Two distance spacers embedded in the middle part are used to screw the aluminum sheets.
  6. Rings and walls inside the middle part guide the electric cables from the proximal part to the distal part
  7. Mechanical stoppers, which collide with (9), limit the motion of range of the proximal rotation.

Distal Part:

  1. Two bearings and two screws are implemented in the distal part.
  2. The distal structural bond (SB) is integrated on the distal part.
  3. A bar directed towards the center of the joint allows the attachment of the magnet used with the position sensor. The distance between the magnet and position sensor is constant.
  4. Two cable attachments (CA-T2-DPX), allowing the bidirectional actuation of the rotation around the distal axis, and guides for the tendon cables are implemented.
  5. Rings and tunnels guide the electric cables coming from the middle part to distal SB connection board.
  6. Mechanical stoppers, which collide with (10), limit the motion of range of the distal rotation.

Material and fabrication:

Element name Material Fabrication processes

Proximal part

Middle part

Distal part

Polyamid (PA) laser sintering
Aluminium sheets Aluminium water-jet cutting

Bearing

Screw

Nut

Plain washer

Stainless Steel purchase (standard component)
Ceramic bush Ceramic (polished surface) purchased
Position sensor Magnet   purchased

Joint Sensor Board

The MYO-Joints are equiped with absolute position sensors. An interface board (joint sensor board) is mounted on each joint as shown in Fig. 8.1. The joint position is sent to the MYO-Ganglion via CAN. The joint sensor board reads the magnetic joint sensor (within the joint) at a rate of 16kHz. A filtered value of this joint position (moving average filter) is sent to the MYO-Ganglion at a rate of 1kHz. Up to 4 joint sensors can be connected to the MYO-Ganglion on a shared CAN bus. The DIP-switches on the joint sensor board are required to configure the CAN message ID (communication address). The DIP switches (S1, S2 and S3) are read after power-on reset. Manipulation of the switches during operation has no effect. For a 1DOF joint DIP switches 1 and 2 are used to set the address (0b00, 0b01, 0b10 or 0b11). Switches 3, 4 and 5 must be in the off position [3]. Switch 6 enables a CAN termination resistor. One (and only one) of the joint sensor boards connected to a MYO-Ganglion must have the termination resistor enabled (i.e. switch 6 ON). In general, CAN requires two \(120\Omega\) termination resistors. One of them is present on the MYO-Ganglion board and therefore only one of the joint sensors should have its termination resistor enabled.

_images/Myojoint.png

The MYO-Joint (A) with a close-up (B) of the joint angle sensor board

Connectivity

The joint sensor board is supplied with a 4-pin [4] JST connector and should be directly connected to the MYO-Ganglion using any of the 5 available CAN connectors. The address of the joint is subject to the address of the joint sensor board, using DIP switches 1 and 2 as shown in Table 8.2.

During 1DOF operation, only one CAN message with the MsgID indicated by switches S1 and S2 is sent. For 2DOF operation two CAN messages are sent, the first one has the MsgID indicated by switches S1 and S2, the second CAN message has the ID indicated with switches S1 and S2 plus 1.

CAN message IDs of the sensor board as a function of the DIP Switches S1,S2 and S3. S6 (not shown in the table) is used to switch the CAN termination on and o , S4 is for calibration and needs to be set to o during operation. S5 is currently reserved.
S1 S2 S3 messageIDs on bus
0 0 0 0x50
0 0 1 0x50 and 0x51
0 1 0 0x51
0 1 1 0x51 and 0x52
1 0 0 0x52
1 0 1 0x52 and 0x53
1 1 0 0x53
1 1 1 0x53
Joint sensor addressing scheme for 1DOF operation. In the 2DOF configuration two consecutive indices are valid, i.e. either 0 and 1, 1 and 2, or 2 and 3. The joint addresses have to be selected in such a manner that never more than one joints sends a given CAN message ID. Refer to Table 8.1 for details on CAN addresses.
S1 S2 Address / C++ index
0 0 [0]
0 1 [1]
1 0 [2]
1 1 [3]
Wiring Scheme: Joint Angle Sensor Board - Ganglion Distribution Board
Signal Name CAN-H CAN-L Gnd +5V
Sensor board, pad # 1 2 3 4
Ganglion Distribution Board, pin # 3 2 1 4
_images/cablesandconnectorsnew.png

Cables and connectors to connect the joint angle sensor board to the ganglion distribution board; red circles mark the applicable connectors on the printed circuit boards.

Wiring Scheme: Analogue joint sensor - Joint Angle Sensor Board

The analogue joint sensor are soldered straight into the soldering pad on the joint angle sensor boards. The joint angle sensor board can output 5V or 3.3V on pins 6 and 8, depending on the components configured onto the joint angle sensor board.

Signal Name Gnd Gnd +5V/3.3V +5V/3.3V AN0 AN1
Sensor board, pad # 5 7 6 8 9 10
Wiring Scheme: 5V and 3.3V configuration

The joint angle sensor board can operate with 5V or 3.3V sensors, depending on the resistors populated and solder-bridges made. Details can be seen in Fig. 8.3. Resistors R5,R6,R7 and R8 are required to divide down the sensor output, in case of the 5V configuration, to the 3.3 analogue input voltage range of the micro-controller on the sensor board. One, and only one, solder-bridge (SB) between the 5V pad or 3.3V pad and the \(V_{supply}\) pad is required to supply the sensor with the appropriate voltage. For 3.3V operations resistors R7 and R8 should be removed and R5 and R6 replaced with a 0\(\Omega\) resistor.

_images/PCBwithcomponents.png

PCB with components for 5V operation: \(R5=5k\Omega,R6=5k\Omega,R7=10k\Omega,R8=10k\Omega\) and solder-bridge (SB) implementing the connection between +5V and the sensor supply voltage \(V_{sensor}\). For 3.3V operation the solder-bridge is required between the 3.3V pad and \(V_{senosr}\). Importantly, the SB between +5V and \(V_{sensor}\) needs then be removed. In 3.3V operation R7 and R8 should be removed and R5 and R6 replaced with a \(0\Omega\) resistor (or a resistance \(<10\Omega\)). Red tracks/pads mark the PCB top, blue tracks/pads are on the bottom side of the PCB.

Calibration Procedure

The joints should be calibrated before the first operation. This makes sure that the digital outputs of the sensor board map symmetrically to the physical range of the analogue sensors. A calibrated sensor will broadcast a value of \(2048_{dec}\) in the centre position and a value between 0 and \(2048_{dec}\) at the physical negative end-stop (depending on range). The value at the positive end-stop will be between \(2048_{dec}\) and \(4095_{dec}\), again depending on the physical range. The calibration only needs to be performed once when connecting the sensor board to the physical joint and sensor, the calibration data is stored permanently in the flash memory of the joint angle sensor board. However, the procedure can be repeated if mistakes were made during calibration or if he sensor board is mounted onto another joint. The calibration data is agnostic to the to the joint address in principle. However, it is easiest to perform the calibration when joint ID zero (S0=0, S1=2) is selected. The calibration works for 1DOF and 2DOF operation. The following procedure will lead to a successful calibration:

  • S0 and S1 are set to 0 (off), S4 is off, S3 off in 1DOF operation or S3 on for 2DOF operation
  • power up joint angle sensor board
  • set S4 to on
  • move joint to negative position, hold there
  • flick S0 on and off again
  • move joint to positive position, hold there
  • flick S1 on and off again
  • set S4 to off
  • calibration has been performed
[3]Switches 3,4 are required to choose between 1DOF and 2DOF operation (S3) or to calibrate the joint (S4). Switch 5 is reserved
[4]The 4-way JST SH series connectors are available from Farnell Components, Farnell-number 1679110; connecting wires with pre-crimped connectors are available via RS components (300mm RS-number 311-6675, 150mm RS-number 311-6653).

Motor Driver

In order to drive the MYO-Muscles, a motor driver board is provided. This is illustrated in Fig. 9.1. The motor driver board is supplied with 24V and communicates with the MYO-Ganglion via a 5MHz SPI connection. It provides sockets to connect the MYO-Muscle motor as well as a further connection for the spring-displacement sensor. For further hardware developments and other extensions, there is also a CAN interface and a micro-USB connection. However, they are not required when building a Myorobot.

_images/MotorDriverBoardCutOutwithlabels.png

The Myorobotics motor driver board.

Spring Displacement Sensor

To measure the displacement of the spring (a proxy for tendon force), a spring displacement sensor is connected to the motor driver board. The sensor is supplied via the motor driver board and connected via a 6-pin JST connector [1] as depicted in Fig. 9.2.

Wiring Scheme: Spring Displacement Sensor - Motor Driver Board

This cable is NOT symmetric.

Signal Name GND EncA EncB O Idx +5V
Displacement Sensor, pin # 1 2 3 4 5 6
Motor Driver Board, pin # 5 3 2 1 4 6
_images/displacementSensorwithlabels.png

The spring displacement sensor and connector: Please note that the connector cable is not symmetric. Consequently, one end of the connector cable (marked with S or D) is plugged into the sensor board (A) and the other end (B) (marked with M) is plugged into the motor driver board (Fig. 9.1) The connectivity of the cable is described in Section 9.1.1 .

_images/Cablesandconnectors.png

Cables and connectors to connect the spring displacement sensor with the motor driver board; red circles mark the applicable connectors on the printed circuit boards.

Driver Board Mounting

To illustrate how a motor driver board is mounted on the MYO-Muscle please refer to Fig. 9.4. The connector for the spring displacement sensor should be facing the spring. Two screws are sufficient to mount the motor driver board on the MYO-Muscle as shown in Fig. 9.4.

_images/motordriverboardwithlabels.png

Motor driver board mounted on MYO-Muscle

Connectivity

The motor driver board has to be connected to the MYO-Ganglion board using the 5-pin JST connectors [2] . Depending where the motor driver board is plugged in (SPI0, SPI1, SPI2 or SPI3) the associate MYO-Muscle can be addressed with the corresponding index the flexrayusbinterface. In other words, the address of a motor driver board (and therefore the MYO-Muscle) is dependent upon the SPI connector it is connected to (see Table 9.1).

Motor driver addressing scheme
SPI Connection Address / C++ index
SPI0 [0]
SPI1 [1]
SPI2 [2]
SPI3 [3]
Wiring Scheme SPI Connector: Ganglion Distribution Board - Motor Driver Board
Signal Name SOMI SIMO Clk SS Gnd
Ganglion Distribution Board, pin# 1 2 3 4 5
Motor Driver Board, pin # 1 2 4 3 5
_images/cablesandconnectorswithlabels2.png

Cables and connectors to connect the SPI of the distribution board with the motor driver board; red circles mark the applicable connectors on the printed circuit boards.

[1]The 6-way JST SH series connectors are available from Farnell Components, Farnell-number 1679112; connecting wires with pre-crimped connectors are available via RS components (300mm RS-number 311-6675, 150mm RS-number 311-6653).
[2]The 5-way JST SH series connectors are available from Farnell Components, Farnell-number 169111; connecting wires with pre-crimped connectors are available via RS components (300mm RS-number 311-6675, 150mm RS-number 311-6653).

MYO-Ganglion

The MYO-Ganglion comprises three printed circuit boards (PCB). The PCBs of this set are linked using 2 ribbon cables, the ganglion is powered with up to 24V from simple stripped wires and there are 2 sets of Flexray connectors to connect to the FlexrayBus and daisy-chain other devices: (Fig. 10.2).

The ganglion can be mounted in 3 different ways:

  • ‘MyoRobotics carrier’ for the MyoBone - see (Fig. 10.2)
  • ‘Ganglion stack’ (Fig. 10.3)
  • ‘Ganglion mount’ ‘spider’ (Fig. 10.4)

The centre board features the main floating-point processor, the TMS570LS20216 from Texas Instruments running at 140MHz. Adjacent to the processor board are the power supply and distribution boards, respectively.

_images/myoganglionconnectivitywithlabels.png

The MYO-Ganglion PCB assembly: distribution board with CAN and SPI connections is shown on the left, the centre board is equipped with the main DSP (TMS570LS20216 on bottom side , not visible), the power supply board (24V) is mounted on the right side of the carrier.

_images/GanglionOnBone.jpg

The MYO-Ganglion mounted on bone before cables are attached.

_images/GanglionStack.png

The ganglion stack allows for stacking all 3 parts of the ganglion into a tightly integrated package. It is designed to be mounted on the side of a groove 6 aluminium profile.

_images/GanglionMount.png

Three (3) ganglion mounts are required to mount a ganglion to a groove 6 aluminium profile. The ganglion mounts can be integrated into complex structures such as bones.

Addressing

A Myorobot can have up to six MYO-Ganglions sharing the FlexRay bus. Each Ganglion has a unique address which is configured using the DIP-switches 1 to 6. In order to enable the Ganglion, one (and only one) of the DIP switches has to be in the ON position. All others have to be in the OFF position. If more than one DIP switch is in the ON position the Ganglion will not participate in the FlexRay communication. Similarly, if none of the switches are in the ON position, the Ganglion will not participate in the FlexRay communication. This provides a convenient way to temporarily disable a Ganglion that is not required (see also Table 10.1).

MYO-Ganglion addressing scheme
SW1 SW2 SW3 SW4 SW5 SW6 Address / C++ index
1 0 0 0 0 0 [0]
0 1 0 0 0 0 [1]
0 0 1 0 0 0 [2]
0 0 0 1 0 0 [3]
0 0 0 0 1 0 [4]
0 0 0 0 0 1 [5]
any other combination invalid / not connected

USB-FlexRay Bridge

In order to connect ROS with a Myorobot, a USB-FlexRay bridge is provided. This system is illustrated in Fig. 11.1. To connnect to the PC, a mini-USB lead is necessary. The bridge board is also supplied with 24V, which should be the same voltage source that supplies the Myorobot to establish a common ground connection. The connection to the Myorobot, i.e., via the MYO-Ganglions, is established through a 2-wire FlexRay interface.

_images/USBFlexRayBridgeCutOutwithlabels.png

The Myorobotics USB-FlexRay Bridge

FlexRay is a differential serial bus and the FlexRay cables used for a Myorobot are a simple twisted pair wires, such as the dedicated Flexray cable FLR09YS-YW. The two FlexRay signal lines are referred to as FRp (FlexRay Plus, the positive signal) and FRm (FlexRay Minus, the negative signal). The FlexRay cable provided with your Myorobotic system is shown in Fig. 11.2. The pink cable is used for the FRp and the green cable for the FRm signal. The MYO-Ganglions feature two pairs of FlexRay connections (see Fig. 10.1) which affords easy daisy-chaining of multiple MYO-Ganglions.

_images/FlexRayCablewithlabels.png

The FlexRay cable used for Myorobotic system: green is the FRm signal, pink the FRp signal, i.e. model FLR09YS-YW.

Other developments

Alternative concept for the MYO-Bone design

An alternative, bio-inspired MYO-Bone design was developed, composed of a monolithic 3D-printed core and peripheral tensile elements (see Fig. 12.1).

The tensile elements were implemented with Dyneema cables running in parallel to longitudinal axis of the bone and are fixed at its two ends. With the cables, the stresses in the core due to bending loads could be reduced to approx. 50% of the stresses experienced without the cables.

The monolithic core was made of a repetition of identical segments with openings which (1) allowed to access the electric cables running in the centre of the construction and (2) provided slots to attach MYO-Muscle or accessories on the MYO-Bone. The shape of the segment was topologically optimized to reduce the stress in the core in the two different modes of loading, i.e. bending and torsion.

_images/image147.png

Alternative concept for MYO-Bone design implementing the Bionic structure (+biotensegrity) concept.

To evaluate the performances of the new design regarding resistance and stiffness (with respect to both bending and stiffness), prototypes with weight and size comparable to the MYO-Bone – Type 1 design were built. Tests showed that new design could support the expected loads and that, in comparison with Type 1, it had a lower bending stiffness but a significantly higher torsional stiffness.

Unfortunately, prolonged testing revealed a severe problem: under constant loads the monolithic core experienced severe creep due to the nature of the 3D-printed material, which led to permanent deformations. For that reason, the development of this design was abandoned.

Ball-and-socket joint

Sensor principle

To ensure accurate movement and control of this type of joint (3 degrees of freedom), the challenge is to determine the exact 3D-position in the ball-and-socket joint. The initial steps towards the development of a ball-and-socket joint sensor are shown. This approach is based on an optical sensor system which is integrated in the base of the ball-and-socket-joint. The sensor shall detect a unique pattern on the spheroid surface of the ball. This pattern contains information which is used to exactly determine the absolute orientation and position in the joint. Using an optical method to determine the absolute pose of a joint-socket, with a unique pattern, gives two possibilities. The first one is to recognize a complex marker (a pattern consists of multiple markers, Fig. 12.2 - right), which requires an expensive camera. The other possibility, which is novel, uses multiple simple markers detected by two very cheap sensors, that can be seen in Fig. 12.2.

_images/image148.png

Principle scheme (left), Single code-disk (middle), pattern consitting of disk-codes (right).

Known optical orientation systems, and their pattern, require a comparatively high number of pixels. To recognize fine structures or distances e.g. a rectangle (barcode) requires a lot of pixels, presupposed the edges are not aligned with the pixel rows and lines. In three degrees of freedom systems, the rotary orientation of a target to the sensor is arbitrary. The code-disks (orientation points) in the pattern are specially designed for the mouse-sensor, considering the low resolution and variable rotation of the Images. A single code-disk can be seen in Fig. 12.2 - middle. The circular shaped code-disk is all around uniformly arranged. This means that the appearance is independent of the rotation. A rotation of the code-disk does not change the content of the frame. In the right drawing a pattern area consisting of different code-disks is shown. From the perspective of the sensor, the frame is horizontal and can always be fitted in a code-disk. This applies independent of the position or rotation of the sensor view, respectively the pattern. The horizontal frame may be located anywhere in the sensor view, whereas the alignment is fixed, that means always horizontal referred to the sensor view. Reading from left to right through the center of the code-disk enables to read the specific code in a convenient/pixel-saving way. To increase the definite recognition of a code-disk a method is used. A specific code cannot just be found in a pixel row from left to right, but also from right to left or from top to down or from down to top in a code-disk. As soon as minimum two of four of the codes are found, the possibility of a correct specific code corresponding to a code-disk are truly high. To guarantee that the found codes belong to one code-disk, the code-disk-center is used. Reading from the outside to the inside of the code-disk, the last pixel of the specific code is always located in the centre. As soon as the pixel position matches, the specific codes can be collated to the code-disk.

_images/image149.png

Test Set up

The test setup of one sensor can be seen in Fig. 12.3. The sensitivity of both systems is quite low (20 - 30 %). But possibilities for the improvement are considered. Besides an important characteristic, the Positive Predictive Value is high (85 - 95 %), which shows the reliability of the system.

Mechanical design

Although the sensing principle presented in the previous section showed promising results, open challenges remains regarding the integration of the pattern on the ball part of the joint. Therefore, the first prototype of the mechanical concept for the ball-and-socket joint was based on another sensing concept using two absolute sensors. It has a large rotation ranges for all 3 DoF: 110° for both “hinge” axes and 180° for the “pivot” axis. Those three degrees of freedom are reflected by a combination of a carriage, pivot and hinge joint-system. This structure increases the stability of the 3D joint and keeps the ball-socket into position. On both ends of the ball-socket joint, standardised electromechanical interfaces (structural bond) for other modules are implemented. The basic structure of the prototype, as illustrated in Fig. 12.4, has a weight of about 315 grams and an overall dimension of 115x156x125 mm.

_images/image150.png

Main dimensions of the ball-and-socket joint prototype

The ball-socket joint is actuated by three pairs of antagonistic tendon cables (see Fig. 12.5). Their attachment points are located centrally for a symmetrical application of the force. The moveable cable transmission systems are able to redirect the cables and provide returning forces for the whole motion space of the ball-socket joint.

_images/image151.png

Cable transmission and assembly of the ball-and-socket joint

Two different sensors that are located inside of the joint for protection reasons generate the three absolute angle positions (see Fig. 12.6). One sensor (using a magnet ring) is placed on the upper pivot joint and the other one (using a 2 DoF joystick sensor) inside of the ball-socket. Both sensors are based on a contactless, magnetic measurement principle.

_images/image152.png

Absolute position sensors for the measure of the three joint angles

Alternative concept for MYO-Muscle design using leaf spring

A new variety of MYO-Muscle Type 1 was developed as alternative to the existing design based on compression spring. In this new design (represented in Fig. 12.7), the series elastic element is implemented with two leaf springs, mounted symmetrically on the sides of the DC motor. Instead of a single tendon cable, two tendon cables are used in parallel to transmit the tendon force and are wrapping around the motor reel following the Do-Helix principle. In this way the radial forces applied by the tendon cables on the reel are balanced and no additional bearing is required to support the reel on the side opposite to the motor. Each tendon cable leaving the motor reel towards the load is passing through a set of three redirecting pulleys, the middle one being fixed to a leaf spring. When a tension force is applied in the cable, an outward force is applied on that pulley causing the deflection of the spring. In that way, elastic energy can be stored in the series elastic element. As the middle pulley moves outwards, the intensity of the lateral force component resulting from the tendon cable tension decreases, until it drops to zero when the tendon cable runs in a straight line between to two outer, fixed pulleys.

This new design has multiple benefits compared to the implementation using the compression spring. First the implementation of the series elastic element is more compact, as it is located on the sides of the motor rather than on top. This allows for example to position other modules on top of a MYO-Muscle (this was exploited for the development of the bi-articular actuation module, presented in the next section). Also, the leaf springs do not require a guiding system and springs with higher energy storage than steel (e.g. fiberglass), which can potentially reduce the weight of the module. Finally, the non-linearity of the series elastic element is more pronounced than in the previous due to the different geometry of the three redirecting pulleys locations. This allows a larger range of stiffness variation via co-contraction of two antagonistic MYO-Muscles.

_images/image153.png

Alternative implementation of the MYO-Muscle – Type 1 using leaf springs as series elastic elements

A first prototype of this promising concept was built as proof-of-concept (see Fig. 12.7) and helped identify where further developments are required. These include the dimensioning of the leaf springs and the adaptation of the redirecting pulleys dimensions. In addition, a concept for the sensing of the tendon cable tension is still required.

Bi-articular muscle modules

In parallel to the development of the new MYO-Muscle design presented in the previous section, the work on the design of a bi-articular muscle module started. The purpose of this module is to convert a MYO-Muscle, designed to actuate a single joint (i.e. as mono-articular muscle), into a bi-articular muscle.

As mono-articular and bi-articular muscles have different roles, it is generally desirable to be able to implement both of them. This poses a practical challenge because (1) the space available on the MYO-Bone is limited and (2) the tendon cables of the multiple muscles actuating the same joint should not interfere. The new MYO-Muscle design was selected as reference actuator for the bi-articular module development because of its greater compactness. As it was still under development, the MYO-Muscle was only summarily modelled.

_images/image154.png
_images/image155.png

Bi-articular muscle module. In the middle picture: (a) bi-articular module block and pulley cable, (b) output tendon cable from bi-articular module towards distal joint (here extension of asymmetric hinge joint), (c) output tendon cable from mono-articular MYO-Muscle and (d) output tendon cable from bi-articular module towards proximal joint (here flexion of asymmetric hinge joint)

The developed module is represented in Fig. 12.9. It is composed of a main casing ((2) on the top part of the figure) that can be fixed on the MYO-Bone structure and fit above a MYO-Muscle (which acts as the mono-articular muscle of the next MYO-Joint, numbered as 2 in the figure). On top of the casing, another MYO-Muscle can be mounted. The latter actuate a system of blocks and pulleys shown as (1) on the top part of Figure 3 and represented in more details on the bottom part of the same figure. When the MYO-Muscle contracts, blocks A and B are pulled together and the overall distance between the tendon cable attachments on the joints 1 and 2 shorten. When the A and B blocks move together, the length of the bi-articular muscle stays constant and the motion of both joints is coupled.

For the integration of the module, the adaptation of one of the MYO-Joint was required to provide sufficient attachment points for the multiple tendon cables. The asymmetric hinge joint was selected for this purpose and the module was integrated to mimic the Gastrocnemius muscle, which is the knee flexor - ankle extensor bi-articular muscle in the human leg.

A physical prototype from this construction was built (see Fig. 12.7), where the MYO-Muscle modules were replaced by extension springs.

_images/image156.png

Prototype of the bi-articular muscle module

Scaling of selected design primitives

The issue of scaling the design primitives to other size classes was considered for one type of each design primitives, namely:

The resulting prototypes for the joint and muscle design primitives are shown in Fig. 12.11 and Fig. 12.12 respectively. In both cases, the dimensions have been reduced significantly in comparison to joints of the size class II (see in both figures the size of the module compared to a 1 Euro coin).

_images/image157.png

Prototype of the asymmetric hinge joint for the small size class

_images/image158.png

Prototype of the muscle module for the small size class

Injection Moulding

Finally, preliminary investigations were performed towards using injecting moulding instead of 3D printing for the production of the plastic parts of the toolkit. The design of various toolkit parts (see Fig. 12.13) was adapted in order to be producible using injection moulding.

_images/image159.png

Toolkit parts adapted for injection moulding, from top left to bottom right: base of the MYO-Muscle - T1 - V1, upper and under joint forks of the MYO-Joint - T2 - V2, end-spacer of the MYO-Bone - T1- V1, clamping ring of the structural bond

Different types of moulding technologies were considered. A relatively new method, coined Rapid Tooling, turned out to be the most promising for our investigations. It uses a 3D printed mould produced with stereolithography (the 3D printing technology with the highest resolution) and made of thermoset plastic. It can be used to mould parts made of thermoplastic such as PE, PP, PS, ABS and TPE. However, the mould degrades quickly and it can only resist from 100 to 200 injection cycles. Nevertheless, given the low cost of the printed mould, we found out that it is the most cost-effective production method from a few tens up to one thousand pieces. Hence this production technique allows to nicely “close the gap” between prototyping and series production.

_images/image160.png

CAD design of the mould and mechanical adaptor (left) and moulded clamping rings (right)

Initial testing with this production technique was performed using in-house injection moulding machine. Given limitations on the total injection volume (to 12 cc), the clamping ring was chosen for the first test. The mould and the adaptors for mounting on the machine were designed (see Fig. 12.14) and a first series of 100 pieces was produced, which confirmed the feasibility of the approach. Further work is required to investigate the tolerances of the produced parts (and especially their evolution during the production, as the mould degrades) as well as the mechanical properties of the parts compared to those of parts produced with laser sintering.

Overview

Bones

There are a number of different MyoBone types:

MyoBone ‘Parallel Assemblies’ - Four Round Tube Fibres

Prepare parts
Step 1: Cut fibres to the desired length
_images/image44.jpg

Tips:

  • Lathe can create a precise cut and avoids damaging the tube
Step 2: Mill the tube ends
_images/image45.jpg

Mill the inside hole of both tube ends in order to create a rough surface for gluing.

Tips:

  • Use a round moulding cutter with an automatic screwdriver
  • Use gloves to protect you from dust
Step 3: Positioning of the tube length
_images/image46.jpg

Insert the tubes in the tube holding-support and position the tubes with the distance support. Fix the tubes with the screws.

Step 4: Gluing threaded pin in tube ends
_images/image47.jpg

Add glue evenly to the threaded pin and hole. Use the distances according to the MYO-Bone class.

Tips:

  • While drying, use a fixture to keep the thread pin and fibre centred and at the correct distance
  • Wear protective gloves
Step 5: Remove the leftover glue
_images/image48.png

Remove the glue with a cutter knife. Consider the hardening-time of the glue.

Production of spacers

Step 1: Water-jet
_images/image49.jpg

Order water-jet cut part shape (aluminium).

Step 2: Drilling and threading of holes
_images/image50.jpg

Drill and thread the holes of the flexure clamps.

Tips:

  • Put small fibers in the flexure clamps to avoid deformation caused by the pressure exerted by the drill bit
Production of end plates and flanges
_images/image51.png

End Spacer:

  • Selective Laser Sintering (Polyamide)

SB Flange plate:

  • Machining (Aluminium)
  • Selective Laser Sintering (Polyamide)

Screws, nuts and washers are standard parts.

Assembly
_images/image52.png

Material needed

4 x CFRP tubes with threaded ends

4 x spacers

16 x M2.5x10 countersunk head screw (DIN 965)

2 x end spacer

8 x M4 thin nut (DIN 39)

8 x M4 spring washer (DIN 127)

2 x SB flange plates

8 x M3x25 countersunk head screw (DIN 7991)

8 x M3 thin nut (DIN 39)

8 x M3 spring washer (DIN 6798)

Step 1: Assemble fibres and spacers
_images/image53.png

Slide the fibres (1) in the flexure clamps (2) of the spacers.

Tips:

  • Slide one fibre through all spacers, and then go on with the next fibre
  • Flexure clamp screws should be loose
  • In preparation for the next step, regroup the spacers next to each other
Step 2: Plug fibres in the end-spacer
_images/image54.jpg

Plug each fibre in one of the holes of the end-spacer.

Tips:

  • Apply sufficient pressure so that the end of the cfc tube is in contact with the shoulder at the bottom of the hole
  • Do not press the fibers firmly into the holes
Step 3: Screw fibres to the end spacer
_images/image55.jpg

Screw each of the fibers to the end-spacer using the M4 nuts and the large spring washers.

Tips:

  • Screw the nut until the spring washer is nearly flat, not more
  • (if you screw further, you may pull the threaded pin out of the tube)
Step 4: Attach the other end-spacer
_images/image56.png

Repeat steps 2 & 3 for the other end-spacer.

Tips:

  • Make sure the end-spacers are as much as possible:
  • Parallel to each other
  • Perpendicular to the fibres
  • Lay the bone on the table to ensure that it is not twisted
Step 5: Adjust the spacers
_images/image57.jpg

Arrange the spacers equidistantly between the two end-spacers.

Tips:

  • Distance between spacers: 51 to 52 mm
  • Ensure that the spacers are perpendicular to the fibres
Step 6: Check straightness
_images/image58.jpg

Check that the MYO-Bone is straight and that both end-spacers are parallel to each other.

If necessary proceed to adjustments.

Step 7: Attach the SB flange plates
_images/image59.jpg

Screw the SB flange plates to the end-spacers with the M3 screws.

Use the small spring washers together with the M3 nuts (backside).

MyoBone ‘Monolithic’ - T-Slot Profile Fraunhofer

Profile
Step 1: Cut profiles to the desired length
_images/image64.jpg

Tips:

  • Using circular saw creates a suitable cut and provides a good surface
Step 2: Thread the holes at both ends of the profile
_images/image65.jpg
  • Drill first the holes with a ∅ 4,2 mm bit
  • Thread with a M5 tap
Adaptor
Step 1: Order water-jet cut parts
_images/image66.jpg

Order water-jet cut part shape.

Step 2: Countersinking of holes
_images/image67.jpg

Countersink the M5 clearance holes for the fixation to the profile.

Assembly
_images/image68.jpg

Material needed

1X Aluminum profile with threaded ends

2X Adaptor

8X M5 countersunk head screw (DIN 965)

2X SB flange plates

8X M3x25 countersunk head screw (DIN 7991)

8X M3 thin nut (DIN 31)

8X M3 spring washer (DIN 6798)

Step 1: Assemble profile and adaptors
_images/image69.png

Screw the adaptors at the end of the profile with the M5 screws.

Step 2: Attach the SB flange plates
_images/image70.png

Screw the SB flange plates to the adaptors with the M3 screws and nuts.

Tips:

  • Use the small spring washers together with the M3 nuts (backside)
Step 3: Drill the profile for electric cables outlet (if necessary)
_images/image71.jpg

Drill an outlet for the electric cables at the suitable position.

MyoBone ‘20mm bone’ Monolithic Profile - GI Mod

The ‘20mm bone’ is a newly developed monolithic bone for affordable and robust MYO robots. It uses a 6mm groove, 20mm aluminium profile (i.e. Bosch Rexroth, Easy Systemprofile, etc.) as the base and adds laser sintered PA components for mounting muscles and joints.

_images/assembledModBone_20mm.jpg

Visualisation of assembled 20mm bone with mounted muscle and symmetric joint.

Parts List

The parts list is maintained at roboy.open-aligni.com.

External users can access it using the following credentials:

  • user: roboy
  • password: roboy
Partslist of 20mm MyoBone
Level Manufacturer P/N Manufacturer Name Part Type Description Quantity Designator
Level Manufacturer P/N Manufacturer Name Part Type Description Quantity Designator
0 Myo Bone Rexroth 20mm x 350mm GI Bones Rexroth bone assembly of bone, thread, 2 flanges 1  
1 Strebenprofil 20x20mm Nut 6 Easy Systemprofile Screws, Bolts and Rods   0.35  
1 Cut thread - M6 Easy Systemprofile Labour Gewindebohrung Rexroth 2  
1 A11 conical flange plate mod für Boschprofil Shapeways MyoCAD Myo Flange for 20mm Rexroth 2  
1 Myo Clamping Ring Set GI Accessories Ring that binds 2 flanges together 2  
2 A11 clamping half ring mod Shapeways MyoCAD Clamp ring to hold the two flange plates together. 2  
2 1018-066 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x8 4  
2 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 2  
2 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 2  
1 2534-314 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M4x8 4  
1 Nutenstein Nut 6 M4 Easy Systemprofile Screws, Bolts and Rods Nutenstein schwer Nut 6 - M4 4  
Profiles
Step 1: Cut profiles to the desired length
_images/image64.jpg

Tips:

  • Using circular saw creates a suitable cut and provides a good surface
Optional Step 2: Cut a (longitudal) thread into the core of the profile

Cut a M6 thread into the end pieces of the profile.

Adaptor
Step 1: Print or order flanges

The bone requires 2 A11 conical flange plate mod für Boschprofil as the end caps and interfaces to joints. These connections are secured using the A11 clamping half ring mod of the Myo Clamping Ring Set.

Parts can be printed using services such as shapeways.com or virtually any SLS printer.

_images/flangemod.png

A11 conical flange plate mod für Boschprofil

Assembly
Step 1: Mount flanges

Place the flanges

Step 2: Attach the SB flange plates
_images/image70.png

Screw the SB flange plates to the adaptors with the M3 screws and nuts.

Tips:

  • Use the small spring washers together with the M3 nuts (backside)
Step 3: Drill the profile for electric cables outlet (if necessary)
_images/image71.jpg

Drill an outlet for the electric cables at the suitable position.

Joints

J22 Symmetric Joint

_images/image91.jpg

Fully assembled J22 asymmetric joint showing the optional connectivity in the flange.

Parts List

The parts list is maintained at roboy.open-aligni.com.

External users can access it using the following credentials:

  • user: roboy
  • password: roboy
Partslist of J22 asymmetric joint
Level Manufacturer P/N Manufacturer Name Part Type Description Quantity Designator
0 J22 Asymmetric joint MyoRobotics Consortium Joints Asymmetric elbow joint 1  
1 J22 prox joint end GI MyoCAD Under joint fork that provides an interface for the structural bond. 1  
1 J22 dist joint end GI MyoCAD Upper joint fork that provides an interface for the structural bond. 1  
1 J22 prox lever arm adapter GI Machined parts   2  
1 J22 dist level arm adapter GI Machined parts   2  
1 J22 axle assembled GI MyoCAD This is all the parts required to make the axle pin work in the asymmetric joint 1  
2 J22 axle GI Machined parts This is the joint axle that goes through the upper and under joint fork 1  
2 626-2Z NKE Bearings Bearing 6 x 19 x 6 mm 2  
2 1950-007 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Circlip 9 x 1mm 2  
2 1950-004 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Circlip 6 x 0.7 2  
2 MyoArm Assembly GI Labour   0.17  
1 J22 cover GI MyoCAD Side cover of the joint for myorobotics elbow asymmetric 1  
1 J22 cover sensor GI MyoCAD This covers the magnet and the SIM board 1  
1 J22 cabel cover v4 GI MyoCAD This used in the asymmetric joint to decrease the risk of the cable jumping out the guiding pulley. 1  
1 J22 Guiding pulley assembled MyoRobotics Consortium Accessories Putting together of the small guided pully 1  
2 J22 pulley centre GI MyoCAD Is used to create the pulley which is then inserted in to the upper joint fork 1  
2 693-2Z NKE Bearings Bearing 3 x 8 x 4 mm 1  
2 1018-066 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x8 1  
2 MyoMuscle Assembly GI Labour   0.17  
1 J22 Cabel centering GI MyoCAD This used in the asymmetric joint to decrease the risk of the cable jumping out the guiding pulley. 1  
1 Large Hinge Pin 6x45 MyoRobotics Consortium Screws, Bolts and Rods The labour to create the groves and attach the washer 1  
2 1018-190 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Hinge pin 45 x 6 mm 1  
2 MyoArm Assembly GI Labour   0.17  
2 1956-114 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 5 mm 2  
1 Large Hinge Pin 4x25 MyoRobotics Consortium Screws, Bolts and Rods   1  
2 1018-112 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods cylindric bolt 25 x 4 mm 1  
2 MyoArm Assembly GI Labour   0.17  
2 1956-110 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 3.2 mm 2  
1 Large Hinge Pin 3x24 MyoRobotics Consortium Screws, Bolts and Rods This is the labour need to create the hinge pin groves and attach washers (was meant to be 3x25) 1  
2 1018-082 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x24 1  
2 1956-108 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 2.3 mm 2  
2 MyoArm Assembly GI Labour   0.17  
1 1956-108 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 2.3 mm 2  
1 1956-114 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 5 mm 2  
1 1956-110 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 3.2 mm 2  
1 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 5  
1 813 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 4  
1 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 4  
1 J22 pulley prox joint end GI MyoCAD This is used for the pulley for the cable to be able to move 1  
1 MyoJoint Sensor GI MyoRobotics Products Joint sensor for a MyoRobotics elbow 1  
2 Joint Angle Sensor Board (JASB) Embedded Robotic Systems LLP Microcontroller Sim board used with the magnet in the asymmetric joint 1  
2 RMM44A3A00 RLS Microcontroller Magnet for the sensor board 1  
2 Cable JASG to CAN GI Tendon, Rope, Cables CAN bus cable for the joint sensor 1  
3 SH3-SH3-28300 JST Tendon, Rope, Cables Cable, crimped, 300mm for JST SH series 4  
3 SHR-04V-S-B JST Tendon, Rope, Cables
connector housing, SH, female, 4 terminal, 1 mm range
1  
3 MyoMuscle Assembly GI Labour   0.15  
3 SPUL/1.2/3.2MMBLK SPUL/1.2/3.2MMBLK Pro Power Tendon, Rope, Cables Shrink Tube 3.2-1.2mm 0.1  
2 Cable magnetic joint sensor to JASB GI Tendon, Rope, Cables Wires that come out of the joint 1  
3 MyoMuscle Assembly GI Labour   0.75  
3 2842/19 RD005 Alpha Wire Tendon, Rope, Cables Redwire for magnet ( 30.5m, Diameter 0.688mm) 10  
3 2842/19 BL005 Alpha Wire Tendon, Rope, Cables Blue wire for magnet ( 30.5m, Diameter 0.688mm) 10  
3 2842/19 GR005 Alpha Wire Tendon, Rope, Cables Green wire for magnet ( 30.5m, Diameter 0.688mm) 10  
2 RMB20VA10BC1 RLS Sensors Magnet sensor board 1  
1 2534-278 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M3 screw cylinder 8mm into the lower joint fork 8  
1 2534-234 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M2 screw cylinder 6mm 5  
1 J22 prox lever arm adapter bonnet GI MyoCAD   2  
Upper Joint Fork
Step 1: Mount metal sheets on upper joint fork
_images/image93.jpg

Press the four M2 brass inserts into the upper joint fork using pliers or a bench vise.

_images/image94.jpg

Screw the two upper metal sheets on the sides with M2 screws.

Step 2: Mount the cable catching
_images/image95.jpg

Press the M2 brass insert into the upper joint fork on the top side.

_images/image96.jpg

Fix the cable catching mechanism with M2 screws.

Step 3: Mount the guiding pulley
_images/image97.jpg

Place the pulley between the metal sheets. Push in the pulley axle (hinge pin 25x4 mm).

_images/image99.jpg

If needed adjust the diameter of the holes of the metal sheets.

_images/image98.jpg

Secure the axle on both sides with lock washers or locktite.

Lower Joint Fork
Step 4: Mount the metal sheets on the under joint fork
_images/image100.jpg

Insert the M3 brass inserts (with heads) in the holes on the inside of the joint, and the M3 brass inserts (without heads) from the outer side.

_images/image101.jpg

Insert the under metal sheets in the appropriate slots and fix them with M3 screws

Step 5: Mount the cable fixation pin
_images/image102.jpg

Mount the cable fixation pin

  • (if needed) adjust the diameter of the mounting holes for pin (hinge pin 45x6 mm)
  • Mount the pin
  • Secure the pin on both sides with the lock washers
  • Clip on it the cable centring clip or glue in the pin
  • Note: Bearings should not be in the under joint fork at this time
Step 6: Mount the guiding pulley
_images/image103.png

Press the ball bearing into the pulley. Insert the axle pin in the ball bearing

_images/image104.jpg

Mount the assembly in to the upper joint fork

Step 7: Assemble the joint axle (part 1)
_images/image105.jpg

Mount joint axle side.

Mount on one side of the joint axle: - one of the large circlips (DIN 471 - 9 x 1) - one ball bearing - one of the small circlips (DIN 471 -6 x 0.7)
_images/image106.jpg

Insert the joint axle through the upper and under joint forks. Mount the other large circlip on the other side of the joint axle

Step 8: Assemble the joint axle (part 2)
_images/image107.jpg

Mount the other ball bearing. Mount the other small circlip. Glue the sensor magnet (use only a small drop of glue!). Note: the magnet can also be glued before mounting the joint axle.

_images/image108.jpg

Optionally: Secure the joint axle with the countersunk M3 screw.

Step 9: Mount the side covers
_images/image109.png
  • Assemble the sensor and SIM boards and the circular space in the larger side cover (glue the boards to the cover)
  • Check that the red, blue and green cables are facing upwards and the other red cables are behind
  • Screw the side covers on the under joint fork
Optional Step 10: Solder the cables on one of the SB connection boards

This step can be skipped if now SB connection boards are to be used.

_images/image110.jpg

Prepare cable tree on connector boards.

Cut on 15 cm length:

4 data wires 0,25 mm2

2 power wires highly flexible silicon 1,5 mm2

Connector side:

_images/image110A.png

Pin colour code:

F1+ white

F1 - brown

F2 + yellow

F2 - green

Optional Step 11: Guide the cables through the joint and solder them to the other SB connection board

This step can be skipped if now SB connection boards are to be used.

_images/image111.jpg

Strip all cables until the SB-pocket.

Pull cables through the connector board and solder from top. Screw both connector boards to joint with four M1,6 screws.

Connector side:

_images/image111A.png

Pin colour code:

F1+ white

F1 - brown

F2 + yellow

F2 - green

Tips:

  • Put the joint in the position of the longest cable path!
  • Avoid cable crossovers by connecting to board

Muscles

Muscle Mod Non-CE

These muscles are not CE conform due to the missing protecting bar covering the spring.

Parts List

The parts list is maintained at roboy.open-aligni.com.

External users can access it using the following credentials:

  • user: roboy
  • password: roboy
MyoMuscle Parts List
Level Manufacturer P/N Manufacturer Name Part Type Description Quantity Designator
1 JFM-0304-03 Igus Bearings Igus Gleitlager JFM 0304-03 (Guide-Pulley) 2 Cross-Guide
1 JFM-0304-05 Igus Bearings Igus Gleitlager JFM 0304-05 (Guide-Roller) 2  
1 JFM-0608-06 Igus Bearings Igus Gleitlager JFM 0608-06 (Motor Reel) 1 Tendon-Spooling
1 MCM-12-02 Igus Bearings Igus Cliplager MCM-12-02 2 Displacement-Assembly
1 2534-294 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 3x25 1  
1 4001-205 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Selbstschneidende Schraube(Blechschraube) 2  
1 2534-236 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 2x8 2 Cross-Guide
1 1160-043 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Senkkopfschraube M 2,5x10 3  
1 1018-082 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x24 1 Cross-Guide
1 1018-076 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x18 1  
1 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 2 Cross-Guide
1 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 3  
1 M12 main body allConfig CE - new MyoRobotics Consortium MyoCAD body 1  
1 M11 main body cover Shapeways MyoCAD body cover 1  
1 M11 cable pulley horizontal Shapeways MyoCAD cable pulley 1  
1 M11 cross guide cover Shapeways MyoCAD cross guide cover 1 Cross-Guide
1 M11 cross guide roller - new Shapeways MyoCAD cross guide roller 1 Cross-Guide
1 D-311 Gutekunst Federn Springs Feder D-311 1 Displacement-Assembly
1 myoMotorDriver Embedded Robotic Systems LLP Boards Motor Driver Board 1  
1 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 1  
1 Spring Displacement Sensor Board Embedded Robotic Systems LLP Boards Sensor Board 1 Displacement-Assembly
1 MyoMuscle Assembly GI Labour   0.75  
1 Cable-Displacement-Sensor GI Tendon, Rope, Cables Displacement Sensor Cable 1 Displacement-Assembly
2 SHR-06V-S-B JST Tendon, Rope, Cables Connector Male - 1.0mm pitch/Disconnectable Crimp style connectors, with protrusions 2  
2 SH3-SH3-28150 JST Tendon, Rope, Cables Cable, crimped, 150mm for JST SH3 series 6  
2 MyoMuscle Assembly GI Labour   0.25  
1 458375 Maxon Motors Maxon Motor-Getriebe-Encoder-Kombination 1  
1 ISO 7379-4-M3-20 Ganter Griff Screws, Bolts and Rods ISO 7379 Passschrauben mit Bund Stahl, Festigkeit 12.9 2  
1 Complete pulley spring displacement shaft without spring GI Machined parts Complete assembly of pulley, shaft, magnetic strip, threaded rod, but NO spring 1  
2 Assembly of pulley fork for displacement shaft GI Machined parts Pulley in fork to be installed on displacement shaft 1  
3 MyoMuscle Assembly GI Labour   0.12  
3 GN 751-4-8-M4-SL-AL Ganter Griff Screws, Bolts and Rods Gabelgelenke GN 751 aus Aluminium bestehen aus dem Gabelkopf DIN 71752 und einem Bolzen mit axialer KL- oder SL-Wellensicherung. 1  
3 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 1  
2 Displacement shaft GI Machined parts Shaft holding the magnetic strip of the displacement sensor 1  
2 2210-850 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 976 Gewindestangen 12 Displacement-Assembly
2 KBEE5-1.2KL50 Bogen Electronic Sensors Linear Magnetic Scale Incremental 5 Displacement-Assembly, Displacement-Sensor
2 M11 spacer sleeve Shapeways MyoCAD spacer sleeve 1  
2 MyoMuscle Assembly GI Labour   0.5 Assemble parts
2 2012-104 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 315 Flügelmuttern kleine Flügelform 1 Displacement-Assembly
2 1544-020 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 4,3 x 20mm Kotflügelscheiben 1 Displacement-Assembly
2 2896-150 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 934 Sechskantmuttern 1  
2 1900-144 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Fächerscheibe Az 4.3 (für M4) 1  
1 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 2  
1 M11 motor reel GI Machined parts Cable Winch 1 Tendon-Spooling
1 M11 Spring Sensor Wedge GI MyoCAD Wedge for holding in the magnetic encoder of the displacement sensor 1 Displacement-Assembly
1 2118-924 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 913 Gewindestifte mit Kegelkuppe, mit Innensechskant “Madenschraube” 1 Tendon-Spooling
1 1708-844 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Federringe B2 (for M2) 2 Cross-Guide
1 1556-202 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts
washers, outer diameter = 3x screw diameter
1  
_images/image137.png

Visualisation of a fully assembled muscle unit.

Step 1: Mount the plain bearings into the housing
_images/image138.png

Install the gliding bearings into the muscle housing.

Put the plain bearing (1) and the clip plain bearings (2) into the housing.

Put the two M2 inserts (3) in the holes of the housing.

Step 2: Assemble the pulley yoke and the spring guide shaft
_images/image139.png

Assemble the pulley yoke and displacement or spring guide shaft

Put screw glue into the screw thread of the pulley yoke (1) and connect it with the threaded rod (2).

Stick the magnetic strip (3) in the longitudinal groove in the spring guide shaft (4). The magnetic strip should be as near as possible to the pulley yoke as you can see in the example.

Slide the washer (5) down the threaded rod to the pulley yoke.

Slide the pulley yoke with the threaded rod from the right through the clip plain bearings (6) and put it in position.

Slide the spring guide shaft from the left through the clip plain bearings so that the threaded rod passes in its middle. Fix the rod on the shaft with the nut and washer (7).

Step 3: Mount the spring
_images/image140.png

Mount the spring.

Slide first the spring (1) then the spacer sleeve (2) from the left over the spring guide shaft (4) axle.

Use the washer (3) to push the spacer sleeve until it starts to preload the spring.

Then fix in place with the wing nut (5).

Step 4: Assemble the cross-guide
_images/image141.png

Assemble the cross guide of the displacement shaft.

Insert the plain bearings (1) into the guide-roller (2) and insert the cylindrical pin (3).

Insert this assembly into the cross-guide (4).

Mount the cross-guide (4) into the housing.

Then screw in the two screws (5) to hold it in place.

Step 5: Assemble the cover
_images/image142.png

Assemble the muscle cover and tendon guide.

Press the three M3 inserts (1) into the cover (2).

Insert the plain bearings (3) in the cover and place the printed pulley (4) between the plain bearings.

Fix the printed pulley to the cover by inserting the cylindrical pin (5) through both the pulley and the plain bearing. The pin must be pressed in the pulley.

Step 6: Mount the cover and the pulleys on the housing
_images/image143.png

Placement of guiding pulleys in muscle housing.

Insert the screws (2) and (3) from the back of the housing in holes (a), (b) and (c). One black screw (3) must be in hole (a).

The other black screw (3) goes in hole (c) as an axle for one of the bearings (1) and other black screw in hole (a) acts as another axle for the other bearing (1).

Mount the cover (4) on the housing and tighten all screws. Make sure that the brass pulley can still rotate freely.

Step 7: Mount the reel on the motor shaft
_images/image144.png

Fixing tendon reel on motor shaft.

Put screw glue on the setscrew (2).

Mount the reel (1) using the setscrew on the shaft of the motor (3).

Step 8: Mount the motor and the motor driver board
_images/image145.png

Mounting motor and driver board to muscle housing

Use the three screws (1) to mount the motor to the housing.

Connect the motor to the motor driver board (2).

Mount the board with the screws (3) to the housing.

Step 9: Connect to the dispacement sensor to the Motor board
_images/image146.png

Mounting of the displacement sensor on the muscle unit and cabling to the motor driver board.

The motor board (3) should already be attached by the screws in previous step.

Insert the DS header (displacement sensor pins) on wire (2) into the displacement sensor (1).

Then the MD header (motor driver board pins) on wire (2) into the motor board.

Then place the displacement sensor (1) into the slot on top of the housing unit and secure it using the wedge (4) as shown in the photo on the right.

The side of the displacement sensor shown Fig. 4.17 should be on the inside of the muscle houseing, close to the magnetic strip on the displacement shaft.

Applications

There are a number of different MyoBone types:

MyoArm

The MyoArm is a 13 myo muscle system. 9 muscles actuate the shoulder complex, 2 muscles the upper arm and 2 muscles the lower arm (1DOF hand, forearm rotation).

Partslist

The parts list is maintained at roboy.open-aligni.com.

External users can access it using the following credentials:

  • user: roboy
  • password: roboy
Partslist of MyoArm
Level Manufacturer P/N Manufacturer Name Part Type Description Quantity Designator
Level Manufacturer P/N Manufacturer Name Part Type Description Quantity Designator
0 gi-myo-assemly-arm-hand GI MyoRobotics Products 13 motor Robotic arm with Myo-Bones and Roboy Hand 1  
1 MyoShoulder ‘MyoArm’ MyoRobotics Consortium MyoRobotics Products MyoArm inspired shoulder 1 joint
2 Muscle MyoRobotics Consortium Muscles   9  
3 JFM-0304-03 Igus Bearings Igus Gleitlager JFM 0304-03 (Guide-Pulley) 2 Cross-Guide
3 JFM-0304-05 Igus Bearings Igus Gleitlager JFM 0304-05 (Guide-Roller) 2  
3 JFM-0608-06 Igus Bearings Igus Gleitlager JFM 0608-06 (Motor Reel) 1 Tendon-Spooling
3 MCM-12-02 Igus Bearings Igus Cliplager MCM-12-02 2 Displacement-Assembly
3 2534-294 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 3x25 1  
3 4001-205 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Selbstschneidende Schraube(Blechschraube) 2  
3 2534-236 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 2x8 2 Cross-Guide
3 1160-043 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Senkkopfschraube M 2,5x10 3  
3 1018-082 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x24 1 Cross-Guide
3 1018-076 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x18 1  
3 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 2 Cross-Guide
3 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 3  
3 M12 main body allConfig CE - new MyoRobotics Consortium MyoCAD body 1  
3 M11 main body cover Shapeways MyoCAD body cover 1  
3 M11 cable pulley horizontal Shapeways MyoCAD cable pulley 1  
3 M11 cross guide cover Shapeways MyoCAD cross guide cover 1 Cross-Guide
3 M11 cross guide roller - new Shapeways MyoCAD cross guide roller 1 Cross-Guide
3 D-311 Gutekunst Federn Springs Feder D-311 1 Displacement-Assembly
3 myoMotorDriver
Embedded Robotic Systems LLP
Boards Motor Driver Board 1  
3 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 1  
3 Spring Displacement Sensor Board
Embedded Robotic Systems LLP
Boards Sensor Board 1 Displacement-Assembly
3 MyoMuscle Assembly GI Labour   0.75  
3 Cable-Displacement-Sensor GI Tendon, Rope, Cables Displacement Sensor Cable 1 Displacement-Assembly
4 SHR-06V-S-B JST Tendon, Rope, Cables Connector Male - 1.0mm pitch/Disconnectable Crimp style connectors, with protrusions 2  
4 SH3-SH3-28150 JST Tendon, Rope, Cables Cable, crimped, 150mm for JST SH3 series 6  
4 MyoMuscle Assembly GI Labour   0.25  
3 458375 Maxon Motors Maxon Motor-Getriebe-Encoder-Kombination 1  
3 ISO 7379-4-M3-20 Ganter Griff Screws, Bolts and Rods ISO 7379 Passschrauben mit Bund Stahl, Festigkeit 12.9 2  
3 Complete pulley spring displacement shaft without spring GI Machined parts Complete assembly of pulley, shaft, magnetic strip, threaded rod, but NO spring 1  
4 Assembly of pulley fork for displacement shaft GI Machined parts Pulley in fork to be installed on displacement shaft 1  
5 MyoMuscle Assembly GI Labour   0.12  
5 GN 751-4-8-M4-SL-AL Ganter Griff Screws, Bolts and Rods Gabelgelenke GN 751 aus Aluminium bestehen aus dem Gabelkopf DIN 71752 und einem Bolzen mit axialer KL- oder SL-Wellensicherung. 1  
5 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 1  
4 Displacement shaft GI Machined parts Shaft holding the magnetic strip of the displacement sensor 1  
4 2210-850 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 976 Gewindestangen 12.0 Displacement-Assembly
4 KBEE5-1.2KL50 Bogen Electronic Sensors Linear Magnetic Scale Incremental 5.0 Displacement-Assembly, Displacement-Sensor
4 M11 spacer sleeve Shapeways MyoCAD spacer sleeve 1  
4 MyoMuscle Assembly GI Labour   0.5 Assemble parts
4 2012-104 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 315 Flügelmuttern kleine Flügelform 1 Displacement-Assembly
4 1544-020 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 4,3 x 20mm Kotflügelscheiben 1 Displacement-Assembly
4 2896-150 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 934 Sechskantmuttern 1  
4 1900-144 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Fächerscheibe Az 4.3 (für M4) 1  
3 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 2  
3 M11 motor reel GI Machined parts Cable Winch 1 Tendon-Spooling
3 M11 Spring Sensor Wedge GI MyoCAD Wedge for holding in the magnetic encoder of the displacement sensor 1 Displacement-Assembly
3 2118-924 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 913 Gewindestifte mit Kegelkuppe, mit Innensechskant “Madenschraube” 1 Tendon-Spooling
3 1708-844 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Federringe B2 (for M2) 2 Cross-Guide
3 1556-202 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts
washers, outer diameter = 3x screw diameter
1  
2 myoGanglion
Embedded Robotic Systems LLP
Boards SIM 3 Ganglion
2 Tendon Guide Shoulder - Angel Öse GI MyoCAD   6  
3 Aufnahme Gegenstück GI MyoCAD   1  
3 Aufnahme Angelöse GI MyoCAD   1  
3 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 2  
3 2534-278 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M3 screw cylinder 8mm into the lower joint fork 2  
3 2534-236 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 2x8 2  
3 2.6*8# Fishing rod guide THKFISH Bearings Fishining line guide to be installed on top of fishing rod, 2.6mm rod tip diameter 1  
2 Shoulder Joint MyoRobotics Consortium Joints MyoArm inspired shoulder joint 1  
3 Schultergelenk Mod MyoRobotics Consortium MyoCAD Modified shoulder socket for ball-in-socket joint 1  
3 Aufnahme Angelöse Schulter Gegenstück MyoRobotics Consortium MyoCAD Counter part for fixing fishing rod guide to joint 3  
3 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 6  
3 2.6*8# Fishing rod guide THKFISH Bearings Fishining line guide to be installed on top of fishing rod, 2.6mm rod tip diameter 3  
3 2534-236 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 2x8 6  
2 Schulterplatte vorne GI Machined parts   1  
2 Schulterplatte hinten GI Machined parts   1  
2 Verbindungsplatte GI Machined parts   1  
2 Ganglion Stack GI MyoCAD   3 Ganglion
2 Nutenstein Nut 10 M4 Easy Systemprofile Screws, Bolts and Rods Nutenstein schwer Nut 10 - M4 3 Ganglion
1 Myo Roboy Upper Arm MyoRobotics Consortium MyoRobotics Products Roboys Humerus - Myorobotics Edition 1  
2 a - oberarm GI MyoCAD Roboy type MyoRobotics bone with mounts for muscles and ganglion and internal cableing 1  
2 p - oberarm deckel - 2 GI MyoCAD cover for internal cabling of Roboy inspired Roboy arm 1  
2 p - oberarm - decker v01 mod GI MyoCAD (lower?!) cover for internal cabling of Roboy inspired Roboy arm 1  
2 DIN 319-KU-40-M10-E Ganter Griff Nuts, rings, inserts Ball knob with threaded bushing, D1=40mm, M10 1 Ball in socket joint
2 Muscle MyoRobotics Consortium Muscles   2  
3 JFM-0304-03 Igus Bearings Igus Gleitlager JFM 0304-03 (Guide-Pulley) 2 Cross-Guide
3 JFM-0304-05 Igus Bearings Igus Gleitlager JFM 0304-05 (Guide-Roller) 2  
3 JFM-0608-06 Igus Bearings Igus Gleitlager JFM 0608-06 (Motor Reel) 1 Tendon-Spooling
3 MCM-12-02 Igus Bearings Igus Cliplager MCM-12-02 2 Displacement-Assembly
3 2534-294 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 3x25 1  
3 4001-205 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Selbstschneidende Schraube(Blechschraube) 2  
3 2534-236 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 2x8 2 Cross-Guide
3 1160-043 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Senkkopfschraube M 2,5x10 3  
3 1018-082 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x24 1 Cross-Guide
3 1018-076 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x18 1  
3 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 2 Cross-Guide
3 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 3  
3 M12 main body allConfig CE - new MyoRobotics Consortium MyoCAD body 1  
3 M11 main body cover Shapeways MyoCAD body cover 1  
3 M11 cable pulley horizontal Shapeways MyoCAD cable pulley 1  
3 M11 cross guide cover Shapeways MyoCAD cross guide cover 1 Cross-Guide
3 M11 cross guide roller - new Shapeways MyoCAD cross guide roller 1 Cross-Guide
3 D-311 Gutekunst Federn Springs Feder D-311 1 Displacement-Assembly
3 myoMotorDriver
Embedded Robotic Systems LLP
Boards Motor Driver Board 1  
3 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 1  
3 Spring Displacement Sensor Board
Embedded Robotic Systems LLP
Boards Sensor Board 1 Displacement-Assembly
3 MyoMuscle Assembly GI Labour   0.75  
3 Cable-Displacement-Sensor GI Tendon, Rope, Cables Displacement Sensor Cable 1 Displacement-Assembly
4 SHR-06V-S-B JST Tendon, Rope, Cables Connector Male - 1.0mm pitch/Disconnectable Crimp style connectors, with protrusions 2  
4 SH3-SH3-28150 JST Tendon, Rope, Cables Cable, crimped, 150mm for JST SH3 series 6  
4 MyoMuscle Assembly GI Labour   0.25  
3 458375 Maxon Motors Maxon Motor-Getriebe-Encoder-Kombination 1  
3 ISO 7379-4-M3-20 Ganter Griff Screws, Bolts and Rods ISO 7379 Passschrauben mit Bund Stahl, Festigkeit 12.9 2  
3 Complete pulley spring displacement shaft without spring GI Machined parts Complete assembly of pulley, shaft, magnetic strip, threaded rod, but NO spring 1  
4 Assembly of pulley fork for displacement shaft GI Machined parts Pulley in fork to be installed on displacement shaft 1  
5 MyoMuscle Assembly GI Labour   0.12  
5 GN 751-4-8-M4-SL-AL Ganter Griff Screws, Bolts and Rods Gabelgelenke GN 751 aus Aluminium bestehen aus dem Gabelkopf DIN 71752 und einem Bolzen mit axialer KL- oder SL-Wellensicherung. 1  
5 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 1  
4 Displacement shaft GI Machined parts Shaft holding the magnetic strip of the displacement sensor 1  
4 2210-850 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 976 Gewindestangen 12.0 Displacement-Assembly
4 KBEE5-1.2KL50 Bogen Electronic Sensors Linear Magnetic Scale Incremental 5.0 Displacement-Assembly, Displacement-Sensor
4 M11 spacer sleeve Shapeways MyoCAD spacer sleeve 1  
4 MyoMuscle Assembly GI Labour   0.5 Assemble parts
4 2012-104 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 315 Flügelmuttern kleine Flügelform 1 Displacement-Assembly
4 1544-020 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 4,3 x 20mm Kotflügelscheiben 1 Displacement-Assembly
4 2896-150 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 934 Sechskantmuttern 1  
4 1900-144 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Fächerscheibe Az 4.3 (für M4) 1  
3 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 2  
3 M11 motor reel GI Machined parts Cable Winch 1 Tendon-Spooling
3 M11 Spring Sensor Wedge GI MyoCAD Wedge for holding in the magnetic encoder of the displacement sensor 1 Displacement-Assembly
3 2118-924 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 913 Gewindestifte mit Kegelkuppe, mit Innensechskant “Madenschraube” 1 Tendon-Spooling
3 1708-844 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Federringe B2 (for M2) 2 Cross-Guide
3 1556-202 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts
washers, outer diameter = 3x screw diameter
1  
2 myoGanglion
Embedded Robotic Systems LLP
Boards SIM 1  
2 2896-146 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts M3 hex normal nut 8 muscle fixation
2 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 8 muscle fixation
2 2896-162 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts DIN 934 Sechskantmuttern M10 2 Ball in socket joint
1 J22 Asymmetric joint MyoRobotics Consortium Joints Asymmetric elbow joint 1  
2 J22 prox joint end GI MyoCAD Under joint fork that provides an interface for the structural bond. 1  
2 J22 dist joint end GI MyoCAD Upper joint fork that provides an interface for the structural bond. 1  
2 J22 prox lever arm adapter GI Machined parts   2  
2 J22 dist level arm adapter GI Machined parts   2  
2 J22 axle assembled GI MyoCAD This is all the parts required to make the axle pin work in the asymmetric joint 1  
3 J22 axle GI Machined parts This is the joint axle that goes through the upper and under joint fork 1  
3 626-2Z NKE Bearings Bearing 6 x 19 x 6 mm 2  
3 1950-007 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Circlip 9 x 1mm 2  
3 1950-004 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Circlip 6 x 0.7 2  
3 MyoArm Assembly GI Labour   0.17  
2 J22 cover GI MyoCAD Side cover of the joint for myorobotics elbow asymmetric 1  
2 J22 cover sensor GI MyoCAD This covers the magnet and the SIM board 1  
2 J22 cabel cover v4 GI MyoCAD This used in the asymmetric joint to decrease the risk of the cable jumping out the guiding pulley. 1  
2 J22 Guiding pulley assembled MyoRobotics Consortium Accessories Putting together of the small guided pully 1  
3 J22 pulley centre GI MyoCAD Is used to create the pulley which is then inserted in to the upper joint fork 1  
3 693-2Z NKE Bearings Bearing 3 x 8 x 4 mm 1  
3 1018-066 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x8 1  
3 MyoMuscle Assembly GI Labour   0.17  
2 J22 Cabel centering GI MyoCAD This used in the asymmetric joint to decrease the risk of the cable jumping out the guiding pulley. 1  
2 Large Hinge Pin 6x45 MyoRobotics Consortium Screws, Bolts and Rods The labour to create the groves and attach the washer 1  
3 1018-190 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Hinge pin 45 x 6 mm 1  
3 MyoArm Assembly GI Labour   0.17  
3 1956-114 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 5 mm 2  
2 Large Hinge Pin 4x25 MyoRobotics Consortium Screws, Bolts and Rods   1  
3 1018-112 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods cylindric bolt 25 x 4 mm 1  
3 MyoArm Assembly GI Labour   0.17  
3 1956-110 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 3.2 mm 2  
2 Large Hinge Pin 3x24 MyoRobotics Consortium Screws, Bolts and Rods This is the labour need to create the hinge pin groves and attach washers (was meant to be 3x25) 1  
3 1018-082 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x24 1  
3 1956-108 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 2.3 mm 2  
3 MyoArm Assembly GI Labour   0.17  
2 1956-108 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 2.3 mm 2  
2 1956-114 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 5 mm 2  
2 1956-110 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Lock washer 3.2 mm 2  
2 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 5  
2 813 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 4  
2 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 4  
2 J22 pulley prox joint end GI MyoCAD This is used for the pulley for the cable to be able to move 1  
2 MyoJoint Sensor GI MyoRobotics Products Joint sensor for a MyoRobotics elbow 1  
3 Joint Angle Sensor Board (JASB)
Embedded Robotic Systems LLP
Microcontroller Sim board used with the magnet in the asymmetric joint 1  
3 RMM44A3A00 RLS Microcontroller Magnet for the sensor board 1  
3 Cable JASG to CAN GI Tendon, Rope, Cables CAN bus cable for the joint sensor 1  
4 SH3-SH3-28300 JST Tendon, Rope, Cables Cable, crimped, 300mm for JST SH series 4  
4 SHR-04V-S-B JST Tendon, Rope, Cables
connector housing, SH, female, 4 terminal, 1 mm range
1  
4 MyoMuscle Assembly GI Labour   0.15  
4 SPUL/1.2/3.2MMBLK SPUL/1.2/3.2MMBLK Pro Power Tendon, Rope, Cables Shrink Tube 3.2-1.2mm 0.1  
3 Cable magnetic joint sensor to JASB GI Tendon, Rope, Cables Wires that come out of the joint 1  
4 MyoMuscle Assembly GI Labour   0.75  
4 2842/19 RD005 Alpha Wire Tendon, Rope, Cables Redwire for magnet ( 30.5m, Diameter 0.688mm) 10.0  
4 2842/19 BL005 Alpha Wire Tendon, Rope, Cables Blue wire for magnet ( 30.5m, Diameter 0.688mm) 10.0  
4 2842/19 GR005 Alpha Wire Tendon, Rope, Cables Green wire for magnet ( 30.5m, Diameter 0.688mm) 10.0  
3 RMB20VA10BC1 RLS Sensors Magnet sensor board 1  
2 2534-278 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M3 screw cylinder 8mm into the lower joint fork 8  
2 2534-234 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M2 screw cylinder 6mm 5  
2 J22 prox lever arm adapter bonnet GI MyoCAD   2  
1 Myo Roboy Lower Arm MyoRobotics Consortium MyoRobotics Products Roboy Radius and Ulna - Myorobotics Edition 1  
2 Muscle MyoRobotics Consortium Muscles   2 Hand, lower arm rotation
3 JFM-0304-03 Igus Bearings Igus Gleitlager JFM 0304-03 (Guide-Pulley) 2 Cross-Guide
3 JFM-0304-05 Igus Bearings Igus Gleitlager JFM 0304-05 (Guide-Roller) 2  
3 JFM-0608-06 Igus Bearings Igus Gleitlager JFM 0608-06 (Motor Reel) 1 Tendon-Spooling
3 MCM-12-02 Igus Bearings Igus Cliplager MCM-12-02 2 Displacement-Assembly
3 2534-294 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 3x25 1  
3 4001-205 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Selbstschneidende Schraube(Blechschraube) 2  
3 2534-236 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M 2x8 2 Cross-Guide
3 1160-043 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Senkkopfschraube M 2,5x10 3  
3 1018-082 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x24 1 Cross-Guide
3 1018-076 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x18 1  
3 812 000 020.800 Kerb Konus Nuts, rings, inserts Brass Insert M2 2 Cross-Guide
3 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 3  
3 M12 main body allConfig CE - new MyoRobotics Consortium MyoCAD body 1  
3 M11 main body cover Shapeways MyoCAD body cover 1  
3 M11 cable pulley horizontal Shapeways MyoCAD cable pulley 1  
3 M11 cross guide cover Shapeways MyoCAD cross guide cover 1 Cross-Guide
3 M11 cross guide roller - new Shapeways MyoCAD cross guide roller 1 Cross-Guide
3 D-311 Gutekunst Federn Springs Feder D-311 1 Displacement-Assembly
3 myoMotorDriver
Embedded Robotic Systems LLP
Boards Motor Driver Board 1  
3 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 1  
3 Spring Displacement Sensor Board
Embedded Robotic Systems LLP
Boards Sensor Board 1 Displacement-Assembly
3 MyoMuscle Assembly GI Labour   0.75  
3 Cable-Displacement-Sensor GI Tendon, Rope, Cables Displacement Sensor Cable 1 Displacement-Assembly
4 SHR-06V-S-B JST Tendon, Rope, Cables Connector Male - 1.0mm pitch/Disconnectable Crimp style connectors, with protrusions 2  
4 SH3-SH3-28150 JST Tendon, Rope, Cables Cable, crimped, 150mm for JST SH3 series 6  
4 MyoMuscle Assembly GI Labour   0.25  
3 458375 Maxon Motors Maxon Motor-Getriebe-Encoder-Kombination 1  
3 ISO 7379-4-M3-20 Ganter Griff Screws, Bolts and Rods ISO 7379 Passschrauben mit Bund Stahl, Festigkeit 12.9 2  
3 Complete pulley spring displacement shaft without spring GI Machined parts Complete assembly of pulley, shaft, magnetic strip, threaded rod, but NO spring 1  
4 Assembly of pulley fork for displacement shaft GI Machined parts Pulley in fork to be installed on displacement shaft 1  
5 MyoMuscle Assembly GI Labour   0.12  
5 GN 751-4-8-M4-SL-AL Ganter Griff Screws, Bolts and Rods Gabelgelenke GN 751 aus Aluminium bestehen aus dem Gabelkopf DIN 71752 und einem Bolzen mit axialer KL- oder SL-Wellensicherung. 1  
5 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 1  
4 Displacement shaft GI Machined parts Shaft holding the magnetic strip of the displacement sensor 1  
4 2210-850 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 976 Gewindestangen 12.0 Displacement-Assembly
4 KBEE5-1.2KL50 Bogen Electronic Sensors Linear Magnetic Scale Incremental 5.0 Displacement-Assembly, Displacement-Sensor
4 M11 spacer sleeve Shapeways MyoCAD spacer sleeve 1  
4 MyoMuscle Assembly GI Labour   0.5 Assemble parts
4 2012-104 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 315 Flügelmuttern kleine Flügelform 1 Displacement-Assembly
4 1544-020 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 4,3 x 20mm Kotflügelscheiben 1 Displacement-Assembly
4 2896-150 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods M4 DIN 934 Sechskantmuttern 1  
4 1900-144 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Fächerscheibe Az 4.3 (für M4) 1  
3 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 2  
3 M11 motor reel GI Machined parts Cable Winch 1 Tendon-Spooling
3 M11 Spring Sensor Wedge GI MyoCAD Wedge for holding in the magnetic encoder of the displacement sensor 1 Displacement-Assembly
3 2118-924 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods DIN 913 Gewindestifte mit Kegelkuppe, mit Innensechskant “Madenschraube” 1 Tendon-Spooling
3 1708-844 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts Federringe B2 (for M2) 2 Cross-Guide
3 1556-202 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts
washers, outer diameter = 3x screw diameter
1  
2 a unterarm GI MyoCAD Roboy Radius and Ulna - Myorobotics Edition 1  
2 2896-146 Wegertseder GmbH - Schrauben Shop Nuts, rings, inserts M3 hex normal nut 8 motor fixation
2 SZU4-13 U604ZZ YongTian bearing Co.,Ltd. ( NBZH Precision Bearings ) Bearings Roller Bearing U groove 604UU 4*13*4mm 1 tendon guide
2 ISO 7379-4-M3-20 Ganter Griff Screws, Bolts and Rods ISO 7379 Passschrauben mit Bund Stahl, Festigkeit 12.9 1 tendon guide
2 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 1 tendon guide
2 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 8 motor fixation
2 lower arm spring Gutekunst Federn Springs placeholder spring 1 lower arm rotation
2 Tendon Dyneema Spectra Fishing Line Herkules Pro Tendon, Rope, Cables Tendon 0.6  
1 Roboy Hand scaled GI MyoCAD Roboy hand, scaled and with flange 1  
2 a hand rechts komplett v01 mod GI MyoCAD Roboy hand cad 1 The hand
2 p fingerkuppe 12.4 mod GI MyoCAD Roboy hand finger tip 4 fingerpads of digits
2 p fingerkuppe 18 mod GI MyoCAD Roboy hand finger tip 1  
2 z sensor dummy mod GI MyoCAD Roboy hand sensor dummy 1  
2 hand springs Gutekunst Federn Springs placeholder spring for hand 2  
2 Schwarz 27,5 kg Ladung 0.6mm Dia Nylon Angelschnur Gewinde Rolle 100 M 10# sourcingmap Tendon, Rope, Cables   220.0  
2 p deckel handrücken GI MyoCAD Roboy back of hand cover 1  
1 Myo Arm Stand GI Accessories Stand for the Myo Arm 1  
2 Myo Stand Base plate GI Machined parts Metal base plate for the myo arm 1  
2 GN 343.4-60-M16-125-G Ganter Griff Screws, Bolts and Rods Levelling feet Threaded stud steel, zinc plated / Foot plastic 3  
1 USB-to-FlexRay Adapter
Embedded Robotic Systems LLP
Boards USb to Flexray adapter 1  
1 MyoArm Assembly GI Labour   32.0  
1 FLR09YS-YW Kromberg & Schubert Tendon, Rope, Cables FLR09YS-YW is a FlexRay data cable with a cross-section of 2 x 0.35 mm². 300.0 Flexray cable
1 0.5m Myo power cable GI Tendon, Rope, Cables Power cable for the shoulder motors 11  
2 Assembly blank cable GI Labour   3  
2 PP001078 Pro Power Tendon, Rope, Cables Wire, heatresistent, flexible silicone, 0.5 mm², 16 x 0.2mm 0.5  
2 PP001077 Pro Power Tendon, Rope, Cables Red Wire, heatresistent, flexible silicone, 0.5 mm², 16 x 0.2mm 0.5  
1 Myo Upper Arm Power Cable GI Tendon, Rope, Cables Power cable for the upper arm items 4  
2 PP001077 Pro Power Tendon, Rope, Cables Red Wire, heatresistent, flexible silicone, 0.5 mm², 16 x 0.2mm 1.0  
2 PP001078 Pro Power Tendon, Rope, Cables Wire, heatresistent, flexible silicone, 0.5 mm², 16 x 0.2mm 1.0  
1 Myo Lower Arm Power Cable GI Tendon, Rope, Cables Power cable for the lower arm items 2  
2 PP001077 Pro Power Tendon, Rope, Cables Red Wire, heatresistent, flexible silicone, 0.5 mm², 16 x 0.2mm 1.5  
2 PP001078 Pro Power Tendon, Rope, Cables Wire, heatresistent, flexible silicone, 0.5 mm², 16 x 0.2mm 1.5  
1 Myo Muscle Control Cable GI Tendon, Rope, Cables SPI cable to control the Myomuscles 13  
2 Assembly Displacement S. Cable GI Labour   0.1  
2 SH3-SH3-28300 JST Tendon, Rope, Cables Cable, crimped, 300mm for JST SH series 5  
2 SHR-05V-S-B JST Tendon, Rope, Cables Male plug, 5 -polig, 1 mm 2  
1 Tendon Dyneema Spectra Fishing Line Herkules Pro Tendon, Rope, Cables Tendon 5.5  
1 Myo Clamping Ring Set GI Accessories Ring that binds 2 flanges together 4  
2 A11 clamping half ring mod Shapeways MyoCAD Clamp ring to hold the two flange plates together. 2  
2 1018-066 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderstift 3x8 4  
2 2534-288 Wegertseder GmbH - Schrauben Shop Screws, Bolts and Rods Zylinderkopfschraube M3x18 2  
2 852 000 030.800 Kerb Konus Nuts, rings, inserts Brass Insert M3 2  

Firmware, FlexrayUSBInterface

The MYO-Ganglion implements the linear-feedback controllers for the MYO-Muscles. Currently, five control modes are possible: raw, position, velocity, force and torque. In the raw mode, no feedback controller is enabled. Rather, the muscle is driven in an open-loop mode where the motor supply voltage can be varied between \(\pm 100\%\). The remaining four control modes use the freely configurable linear-feedback control topology depicted in Fig. 1.1.

_images/linearfeedbackcontroller.png

The linear feedback controller topology: the controller is freely con figurable within the flexrayusbinterface and runs on the MYO-Ganglion. Four motor controllers run in parallel, controlling the four MYO-Muscles. The control frequency is currently limited to a maximum of 2.5kHz and is also confi gurable.

To be clear, these controllers run on the MYO-Ganglion autonomously. They are configured via flexrayusbinterface (control parameters, cycle time, etc) during the start-up phase of the user’s high-level controller running within flexrayusbinterface. By default, the gains are all set to zero, so no control action is issued. During run-time, flexrayusbinterface sends the reference values to the controllers which can happen at any point in time and with arbitrary update rates. Furthermore, the control parameters can also be changed during runtime. Note, however, that the control parameters are not stored on the MYO-Ganglion. Following reset, all the controllers need to be re-configured.

Configuring a Controller

Todo

Turn the descripton into sphinx/breathe doxygen type documentation

The flexrayusbinterface interface (internally as well as externally) makes heavy use of mapbox variants and one should be familiar with the concept to use the library, as well as develop it.

Below are step by step explanations of how to use the interface. See the complete example at the Roboy/flexrayusbinterface repo

Parsing the parameters

Flexrayusbinterface takes a FlexRayBus object generated from a configuration yaml using the provided yaml-cpp based parser. This yaml file contains all parameters required to instantiate the controllers. An example configuration file can be found here: RobotDescription.yaml

#include "flexrayusbinterface/Parsers.hpp"
auto node = YAML::Load("/path/to/yaml/file");
node = node["FlexRay"];
FlexRayBus fbus = node.as<FlexRayBus>();
Instantiate the interface / connect to the flexray

Using the FlexRayBus object we can try to instantiate the ‘FlexRayHardwareInterface’. This interface returns a variant:

  • It will return the FlexRayHardwareInterface upon successful instantiation or
  • return a std::pair<FlexRayBus, FtResult>.
FlexRayBus fbus = node.as<FlexRayBus>();
while (FlexRayHardwareInterface::connect(std::move(fbus))
           .match(
               [&](FlexRayHardwareInterface &flex) {
                 ROS_INFO_STREAM("Connected");
                 MyoMotor motor{std::move(flex)};
                 blink(motor); // do something with the motors
                 return false;
               },
               [&](std::pair<FlexRayBus, FtResult> &result) {
                 ROS_ERROR_STREAM("Could not connect to the myo motor: "
                                  << result.second.str());
                 fbus = std::move(result.first);
                 return true;
               }))
Use the interface

FlexRayHardwareInterface provides an interface to the individual motors, allowing to read their state, activate different controllers and program the setpoints.

It spins an additional thread in the background, that will exchange data (thereby reading the state of the motors) with the flexraybus at the update rate specified in the yaml file.

Todo

Update this following the found, hardcoded update rate of 100 Hz

The interface offers 3 control modes as enumerated with ‘ControlMode’:

  • Position
  • Velocity
  • Force

Which can be used to ‘set’ a command as shown in the ROS service definition below:

class MyoMotor {
public:
  /*
  * Implements the service to move the motors.
  */
  bool moveMotor(myo_blink::moveMotor::Request &req,
                 myo_blink::moveMotor::Response &res) {
    if (req.action == "move to") {
      flexray.set(req.muscle, ControlMode::Position, req.setpoint);
      res.is_success = true;
    } else if (req.action == "move with") {
      flexray.set(req.muscle, ControlMode::Velocity, req.setpoint);
      res.is_success = true;
    } else if (req.action == "keep") {
      flexray.set(req.muscle, ControlMode::Force, req.setpoint);
      res.is_success = true;
    } else {
      res.is_success = false;
    }
    return true;
  }

  FlexRayHardwareInterface flexray;

  MyoMotor(FlexRayHardwareInterface &&flexray) : flexray{std::move(flexray)} {}
};

The four parameter array constant, linear, quadratic, cubic describe the non-linear mapping of the spring displacement measurement to a force.

_images/localmusclecontroller.png

The internal structures required to confi gure a local (firmware) muscle controller. This shows an example from the old MYODE code.

Communication Timing

Before a snippet of example code is presented, let us briefly consider the timing behaviour of this (partly) asynchronous communication system. In principle, four different timing cycles can be distinguished and they are illustrated in Fig. 1.3. At the highest level is the user application (UA). Typically, the cycle time of this control loop is in the tens of milliseconds range (e.g. \(20ms\)) and is set by the user. Since a standard Ubuntu installation is used, it is important to note that the cycle time of the UA is not ‘hard real-time’ and some variance on the timing is to be expected. In the UA, data from the Myorobot is read, such as motor velocity or joint angles, or set in the case of tendon force and motor position.

_images/cycleandcommunicationtimes.png

The cycle and communication times of the complete Myorobotics communication chain. Red arrows indicate that this communication parameter is user con gurable. From left to right, the user application (UA), the USB interface (UI), the USB-FlexRay bridge (UFR) the linear-feedback controller (LFC) and the motor-driver board(MD) are illustrated, including the implementation and communication media.

Data is exchanged with the Myorobot via a thread that is hidden from the user by the FlexRayHardwareInterface and sometimes called USBI. It exchanges the data from the UA with the FlexRay2USB Adapter. The USBI also runs as a ‘soft real-time’ system with a nominal update rate of 500Hz. In other words, data exchange between the UA (via the USBI) and the Myorobot is also limited to a minimum update rate of 2ms.

The next level of communication is realised with the USB-FlexRay bridge (UFR) (aka Flexray2USB Adapter) (see Section 11). Here, the USB data is exchanged with the ‘hard real-time’ FlexRay bus that forms the communication backbone of the Myorobot, allowing the exchange of data between the UFR and the MYO-Ganglions in a fully synchronous and time-trigger fashion at a rate of 1kHz.

The lowest level in this communication chain is formed by the linear-feedback controllers (LFC) (see Fig. 1.1) running on the MYO-Ganglions. The controllers run in a ‘hard real-time’ loop on the MYO-Ganglion and exchange data with the FlexRay bus and the motor driver boards (MD); see Section 9. As explained above, the cycle time of the linear-feedback controllers is user configurable by setting the float32 timePeriod variable of the structure control_Parameters_t. The minimum cycle time is \(400\mu s\) representing an update rate of \(2.5kHz\).

Introduction

Danger

This control section describes the old MYODE architecture. While most parts of the hardware and firmware are unchanged, the high-level control is very different. The remaining, valid information will be incorporated into the above section.

Todo

Integrate and update D4.1_update.rst

A heterogeneous distributed control architecture has been developed to allow the modular configuration and control of compliant muscolosceletal robots. This architecture has been designed specifically to facilitate further research into the control of highly coupled muscolosceletal robotic systems by removing the initial hardware development phase required to undertake such research. Toward this end, the embedded control architecture sustains a transparent interface between the physical design primitives (joints, links, muscles and sensors) and a PC based simulation, development and test environment (Caliper and MYODE). This report provides a comprehensive description of the component parts that make up the release version of the control architecture and provides testing results of the various operational modes that it supports. It is intended that this page will serve as a technical reference manual for end users to understand the system, visualise its performance and appreciate its constraints.

Tis page is composed of 3 sections; A technical description of the various components that make up the control architecture; A comprehensive guide to the connectivity between components necessary to build a MYO-Robot; and finally a collection of integrated test results that have been designed to demonstrate the performance and capabilities of the system in a number of robot control scenarios.

Hardware Description

Danger

This control section describes the old MYODE architecture. While most parts of the hardware and firmware are unchanged, the high-level control is very different. The remaining, valid information will be incorporated into the above section.

Principles

The Myorobotic control system comprises four main components. The highest level of the control system is formed by the Caliper environment and the associate MYODE plugin suite. Caliper and the MYODE plugins are software applications that run on Ubuntu 12.04 and communicate with the rest of the control system via a 10Mbit/s FlexRay bus. The FlexRay bus forms the back-bone of the Myorobotics communication infrastructure. Along the robot’s FlexRay bus, up to six MYO-Ganglions can be attached. The MYO-Ganglions are local control and communication units. Each MYO-Ganglion can control up to four MYO-Muscles in various control modes. Each MYO-Muscle has its own motor driver unit, and communication with the MYO-Ganglion is achieved via a 2 Mbit/s SPI interface. In addition, each MYO-Gangion has up to four joint angle sensors attached to it. They communicate on a shared 1 Mbit/s CAN bus with the MYO-Ganglion. This CAN bus is also shared with up to 12 MYO-receptors, external sensors that can provide various external values to the Myorobot, e.g. pressure, temperature etc. The message (or sampling) rate of the joint sensors is \(1\frac{message}{ms}\), the MYO-Receptors only provide their sensor status every 10ms. This asymmetry allows good utilisation of the CAN bus, whilst guaranteeing a sufficient update rate for the joint angles, important for their control.

An overview of the communication and control infrastructure is given in Fig. 3.40. In the following sections, we will introduce and describe the relevant subsystems and explain how the several linear control schemes are implemented.

_images/heterogmyorob.png

Overview of the heterogeneous Myorobotics control infrastructure.

Modules

MYO-Ganglion

Danger

This control section describes the old MYODE architecture. While most parts of the hardware and firmware are unchanged, the high-level control is very different. The remaining, valid information will be incorporated into the above section.

The MYO-Ganglions are main control and signal processing units, distributed along the robots links. They are based on the TMS570LS20216, a 32-bit floating point digital signal processor from Texas Instruments. This micro-controller is based on their ARM Cortex RISC CPU, provides analogue and digital I/O and several relevant communication interfaces. The 140MHz clock and the floating point unit enable high-performance signal processing and control algorithms to be implemented. Together with the appropriate motor drivers (see section Section 3.2.3), a MYO-Ganglion is able to control up to four actuators. Fully transparent access to motor and sensor data from MYODE is possible through the integrated 10Mbit/s FlexRay interface, using a ’FlexRay typical’ 1ms control loop. At this communication rate, up to 24 MYO-Muscles are controllable using six MYO-Ganglions on each FlexRay bus. Each ganglion is assigned a fixed communication ID (Ganglion ID) in the range from 0 to 5. Currently this is achieved during the programming of the on-chip Flash memory. In the next instantiation of the MYO-Ganglion, a small bank of DIP switches will allow the end user to configure the Ganglion ID. As a consequence, all MYO-Ganglia can run on the same software and no re-programming is necessary for high-level users. Similarly, an additional bank of DIP switches will allow the user to configure how many motor driver boards are connected to the MYO-Ganglion.

_images/myoganghardware.png

The MYO-Ganglion hardware, a densely packed 4 layer printed circuit board (communication connectors below). Heatsinks are mounted on the microcontroller and the multi-voltage regulator. Size: \(\approx 25mm \times 55mm\).

In addition to the FlexRay interface, the MYO-Ganglion provides a CAN communication bus (1 Mbit/s) to allow the connection of joint angle sensors (Section 3.2.2) and MYO-Perceptors, the external sensors (Section 3.2.5). Communication to the motor driver boards is established with four [1] dedicated SPI links, each running at 2 Mbit/s.

_images/circuitdiagram.png

Circuit diagram of the MYO-Ganglion (without power supply).

Joint Angle Sensor Board (JASB)

The position of each joint is measured using a joint angle sensor that communicates with the MYO-Ganglion on a shared 1Mbit/s CAN bus. This printed circuit board, that interfaces with the actual sensor, is based on the dsPIC33FJ128GP802 from Microchip. It is supplied with 5V DC and communicates with the MYO-Ganglion CAN bus (see Fig. 3.40). The actual joint sensor can be a simple potentiometer or a hall-effect based absolute position sensor. Any of those sensor is supplied with 3.3 V from the JASB and must provide an analogue output.

The joint angle interface board senses joint angles on analog input zero and one (AN0, AN1). This information, encoded as a 12-bit unsigned integer in byte 0 and 1 (little endian), is broadcast on the CAN bus every 1ms. The CAN message ID (MsgID) can be adjusted with the 2 DIP-switches (on switch bank SW2) beween 0x50 and 0x53, using switch 1 (S1) (lsb) and switch 2 (S2) (msb). In order to configure the sensor board for 1DOF, switch 3 (S3) needs to be off. For 2DOF operation, S3 needs to be on. With S6 the CAN termination can be switched on (1) or off (0). S4 is used for joint calibration and needs to be in the off position during normal operation, see below.

In case of 1DOF operation, only one CAN message with the MsgID indicated by switches S1 and S2 is sent. For 2DOF operations, two CAN messages are sent, the first one has the MsgID indicated by switches S1 and S2, the second CAN message has the ID indicated with switches S1 and S2 plus 1.

CAN message IDs of the sensor board as a function of the DIP Switches S1,S2 and S3. S6 (not shown in the table) is used to switch the CAN termination on and off, S4 is for calibration and needs to be set to off during operation. S5 is currently reserved.
S1 S2 S3 messageIDs on bus
0 0 0 0x50
0 0 1 0x50 and 0x51
0 1 0 0x51
0 1 1 0x51 and 0x52
1 0 0 0x52
1 0 1 0x52 and 0x53
1 1 0 0x53
1 1 1 0x53

The DIP switches (S1, S2 and S3) are read after power-on reset. Manipulation of the switches during operation has no effect. The analogue inputs are 16 times oversampled (16kHz) and the CAN output data is the moving average of the last 16 measurements.

LED1 on the sensor board blinks at 1 Hz, indicating operation. LED2 blinks as a function of the AN0 value, the lowest frequency is 1Hz, the highest frequency is 500Hz (AN0=0). In other words, a low frequency (i.e. a large period) corresponds to a large AN0 reading. This allows simple visual inspection of the operation of the joint sensor. LED3 is only on when the board is connected to a non-functioning CAN bus, i.e. the red LED is on during various CAN error states. In a CAN error state, LED1 and LED2 only function correctly when in 1DOF mode.

Calibration

The mounting of the magnetic position sensor can lead to a situation where the output signal experiences a zero-crossing (over or underflow) when the joint goes through its motion range. This is not desirable and it is therefore possible to calibrate this out of the joint. This is a software process and no mechanical manipulation. This calibration only has to be performed once, the calibration values are stored in the EEPROM/FlashMemory of the JASB microcontroller. The calibration can be repeated if necessary. Procedure:

  • adjust S1, S2 and S3 according to joint configuration (i.e. address and DOF).
  • power joint up.
  • put S1 and S2 to off, S3 can remain in current position.
  • switch S4 on.
  • move joint in negative direction until at end stop, hold in position and flick S1 on and off again.
  • move joint in positive direction until at end stop, hold in position and flick S2 on and off again.
  • joint end positions are now stored, flick S4 back to off to write position into EEPROM/FlashMemory.
  • bring S1 and S2 back to correct address position.
  • calibration has been performed and joint angle measurement values will now move through continuous range without zero-crossing or overflow.

When calibrating a 2DOF joint, move both degrees of freedom to there negative and positive end position at the same time when performing this calibration procedure.

_images/jointangletopview.png

Top View of the joint angle sensor board: LED1, LED2 and LED3 indicate basic functionality, sensor reading on AN0 and CAN error states. Size: \(\approx 14mm \times 19mm\)

_images/jointsensorangleboard.png

Joint sensor angle board PCB layout to illustrate sensor connections.

Brushless-DC Motor Driver

The MYO-Muscles are (at this stage of the project) series elastic actuators, driven by brushless DC motors from Maxon. In order to drive these motors (for different size categories) a driver board was developed. This driver board is based on the dsPIC33FJ128MC802 from Microchip, a micro-controller particularly suited for motor control applications.

In brief, the functionality of the motor driver board is as follows:

Commutation: only 3-phase brushless DC motors can be driven. Commutation feedback from the motor via hall-effect sensors is required.

Position feedback: The motor shaft position can be sensed via an incremental encoder interface with differential inputs. The microcontroller is configured in \(4 \times\) - mode, e.g. a shaft rotation with an encoder of 512 pulses/rotation will increment the internal encoder counter by 2048.

For our medium sized MYO-Muscles the motor assembly has an encoder with 512 counts/rotation. In addition the motor output shaft is driven via a 1:53 gear box. Consequently, the output shaft resolution is \(r_{output}=512 \times 4 \times 53 = 108544 \mbox{ } counts/rotation\)

Spring Displacement: The spring displacement (indicating the tendon strain) is sensed via a magnetic strip and a hall-effect based sensor. The magnetic strip (for illustration pictured below) provides magnets with a distance of 2.4mm between pole pairs. The sensor provide 40 encoder pulses per magnet (pole pair).

The sensor provides an incremental encoder interface which is read by the micro-controller. Similar to the motor shaft position feedback, the encoder interface is configured in \(4 \times\) - mode, so that resolution is of \(\frac{2.4 mm}{40 \times 4} = 15 \mbox { } \mu m/count\) , i.e. \(r_{displacement}=66.\overline{6} \mbox{ }counts/mm\).

_images/jointanglesensor.png

Circuit diagram of the joint angle sensor interface board.

_images/driverboard.png

Brushless-DC motor driver board. Size: \(\approx 40mm \times 55mm\)

_images/operprinciple.png

Operational principle of the spring displacement sensor using the AS5306 from AMS.

_images/circuitboardwithspring.png

Circuit board with the spring displacement sensor, the AS5306 from AMS.

Motor current: The motor current is sensed via two shunt-resistors, one in phase A and one in phase B of the motor. For the medium sized motors, \(10m\Omega\) resistors are used as shunts. A differential amplifier gains the voltage drop on the resistors by a factor of 20 and the output of the amplifier supplies the ADC of the microcontroller.

With 10-bit ADC, supplied by a \(3.3V\) reference, the sensed and amplified current is represented as an integer in a range between \([0..1023]\). The resistor-amplifier arrangement has a gain of \(G_{RA} = 0.01 \frac{V}{A} \times 20 = 0.2 \frac{V}{A}\). The ADC gain is \(G_{ADC}=\frac{1024 \mbox{ } counts}{3.3V} = 310.\overline{30} \frac{counts}{V}\). Taken together, the ADC gain for the current measurement is

\[G_{IADC} =0.2 \mbox{ }\frac{V}{A} \times 310.\overline{30} \frac{ \mbox{ } counts}{V} = 62.\overline{06} \frac{ \mbox{ }counts}{A} \mbox{ .}\]

In other words, the smallest current that can be measured is \(1 /( 62.\overline{06} \frac{ \mbox{ }counts}{A}) =16.11 \mbox{ }mA\).

SPI communication: The motor driver boards communicate with the MYO-Gangion with a 3-wire SPI interface. The MYO-Ganglion is the bus master and communicates motor control parameters to the motor driver boards. The motor driver board supplies the MYO-Ganglion with shaft position, shaft velocity, motor current, spring displacement and various error codes. Details of this communication protocol can be found in Section 4.

CAN communication: For testing and de-bugging but also in order to use the motor driver board in different applications, a 1Mbit/s CAN interface has been implemented. This non-essential communication interface is not described further in this page.

Power and Communication Distribution

In order to distribute power and communication signals from MYO-Bone to MYO-Bone as well as connecting motor drivers and sensor to the MYO-Ganglion, a distribution circuit has been designed. This printed circuit board sits inside the MYO-Bone and can be wired-up by the Myorobotics users.

MYO-Perceptor

The MYO-Perceptors have not been finalised at this stage, since they form an optional part, not relevant to the core control infrastructure. However, as mentioned above, they will be similar to the joint angle sensor and will communicate with the MYO-Ganglion via a CAN bus with a message rate of 100Hz, i.e. they distribute their state every \(10ms\). We envisage simple tactile sensors, temperature sensor etc. From an electronics design point of view, this constitutes a simple modification of the joint angle sensor board.

_images/brushlessdcmotor.png

Circuit diagram of the brushless-DC motor driver.

_images/printedcircuitboard.png

Printed circuit board for power and communication distribution.

Connectivity

In order to connect motor drivers, MYO-Ganglions, spring displacement sensor and joint angle sensors, various cable connections are required. The connections between the boards are not 1 to 1 and not all connecting cables are symmetric, i.e. it is important which connector goes where. In the following, details of the connector cables are given.

Spring Displacement Sensor \(\Longleftrightarrow\) Motor Driver Board
Signal Name GND EncA EncB O Idx +5V
Displacement Sensor, pin # 1 2 3 4 5 6
Motor Driver Board, pin # 5 3 2 1 4 6
_images/cablesandconnectorsto.png

Cables and connectors to connect the spring displacement sensor with the motor driver board; red circles mark the applicable connectors on the printed circuit boards.

This cable is not symmetric!

SPI: Distribution Board \(\Longleftrightarrow\) Motor Driver Board
Signal Name SOMI SIMO Clk SS Gnd
Distribution Board, pin# 1 2 3 4 5
Motor Driver Board, pin # 1 2 4 3 5
_images/cablesandconnectorstoSPI.png

Cables and connectors to connect the SPI of the distribution board with the motor driver board; red circles mark the applicable connectors on the printed circuit boards.

This cable is symmetric!

SPI:MYO-Ganglion \(\Longleftrightarrow\) Distribution Board
Signal Name SOMI SIMO En CS2 CS1 CS0 Clk Gnd
MYO-Ganglion, pin# 1 2 3 4 5 6 7 8
Distribution Board, pin # 8 7 6 5 4 3 2 1
_images/cablesandconnectorstoSPI2.png

Cables and connectors to connect the SPI of the distribution board with the MYO-Gangion; red circles mark the applicable connectors on the printed circuit boards.

This cable is symmetric!

CAN 1: MYO-Ganglion \(\Longleftrightarrow\) Distribution Board
Signal Name CAN-H CAN-L
MYO-Ganglion, pin# 1 2
Distribution Board, pin # 2 1
_images/cablesandconnectorstoSPI3.png

Cables and connectors to connect the CAN of the distribution board with the MYO-Gangion; red circles mark the applicable connectors on the printed circuit boards.

This cable is symmetric!

FlexRay 1: MYO-Ganglion \(\Longleftrightarrow\) Distribution Board
Signal Name BP BM
MYO-Ganglion, pin# 1 2
Distribution Board, pin # 2 1
_images/cablesandconnectorstoflex.png

Cables and connectors to connect the FlexRay of the distribution board with the MYO-Gangion; red circles mark the applicable connectors on the printed circuit boards.

This cable is symmetric!

Joint Angle Sensor Board \(\Longleftrightarrow\) Distribution Board
Signal Name CAN-H CAN-L Gnd +5V
Sensor board, pad # 1 2 3 4
Distribution Board, pin # 3 2 1 4
_images/cablesandconnectorstojointangle.png

Cables and connectors to connect the joint angle sensor board to the e distribution board; red circles mark the applicable connectors on the printed circuit boards.

Magnetic joint sensor \(\Longleftrightarrow\) Joint Angle Sensor Board

The magnetic joint sensor are soldered straight into the soldering pad on the joint angle sensor boards.

Signal Name Gnd Gnd +3.3V +3.3V AN0 AN1
Sensor board, pad # 5 7 6 8 9 10
magnetic sensor cable colour blue orange red red green white
_images/colourcodesandpadnumber.png

Colour codes and pad number for connecting the magnetic angles sensors with the joint angle sensor board; red is +3.3 V, orange is Gnd and white is the sensor signal output. For 1DOF only AN0 is supplied with a sensor output, for 2DOF AN0 and AN1 are supplied with one sensor output each. Make sure to solder the opposite side to the red wires that go to the distrbution board (see 2.3.6).

Software

Danger

This control section describes the old MYODE architecture. While most parts of the hardware and firmware are unchanged, the high-level control is very different. The remaining, valid information will be incorporated into the above section.

The core of the operation of the controller infrastructure is software running on a network of MYO-Ganglions, combined with supporting tasks running on sub-networks of motor drivers and exteroceptive sensors. Each MYO-Ganglion can control up to 4 motors via an SPI communication bus, and can be provided with real-time commands direct from the Caliper environment via a high speed FlexRay bus, which also allows the MYO-Ganglions to relay all sensor information to the MYODE plugins. Exteroceptive sensors can communicate directly with each MYO-Ganglion via a local (to each MYO-Ganglion) CAN bus.

The software system is made up of a number of interacting sub-components which will be described in the following sections: communication, consisting of well defined protocols for each communication network; sensor access, what sensor information is gathered by each component in the system, and how that data is processed; motor drivers, the software running on each motor driver board; controller, the software structure that is used for the controllers, including the simple to use, user extensible, API; controller commands and tuning, the messaging structure used to allow the MYODE plugin suite to command and tune the controllers.

Communication

Communication between a MYO-Ganglion and up to 4 motor driver boards is performed using an SPI bus. In each communication cycle the MYO-Ganglion sends a duty cycle period demand and some command data, and receives the sensor values for the muscle it is actuating in return. The data structure for the SPI message frame is shown in Fig. 4.18. There are two types of message that can be sent to a motor driver, command and diagnostic. Command is the standard motor command, while diagnostic requests that the motor driver uses the standard data fields to report diagnostic data for error handling (instead of sensor data). The command flags allow requests for specific operations to be performed by the motor controller. The sensor data relayed via SPI is that which is directly related to the motor, i.e., motor position, velocity, drive current, and displacement in the series elastic element connected; additionally, provision has been made for two additional sensors to allow communication of possible further data from each motor driver board. The error flags field allows the motor driver to report error conditions to the MYO-Ganglion, error handling is then performed by the MYO-Ganglion, and dependent on the error message this might also trigger a diagnostic message to be sent in the next communication cycle to allow full error analysis and reporting.

_images/datastructureofSPI.png

Data structure of an SPI data frame. The MYO-Ganglion transmits data in the first 4 elements, the others are used to trigger data transmission by each motor driver.

Each MYO-Ganglion has 2 CAN channels, one designed to allow the user to interface directly with the controller for debugging and initialisation of the FlexRay parameters, and the other for connection of ’smart’ exteroceptive and joint sensors that have their own microcontroller to allow communication over CAN. It is anticipated that, when implemented, these sensors will communicate with their attached MYO-Ganglion at a frequency of at least 1kHz. The framework for both of these tasks is included in the MYO-Ganglion API but specific uses of these facilities have yet to be developed.

In order for the control of a Myorobotics assembly from Caliper to be transparent to the user, a high speed FlexRay bus is utilised to relay control commands to each MYO-Ganglion, and for the MYO-Ganglia in turn to report their sensor information to the MYODE suite. In addition controllers and controller parameters that have been optimised in MYODE can be easily loaded onto each MYO-Ganglion.

FlexRay is a deterministic, high speed bus system (operating at 10MBit/s), in each communication cycle there is a static segment of predetermined frames for regularly transmitted data, and a dynamic segment for occasionally transmitted data. In a MYO-Ganglion network, the static segment is used for command and sensor data, and the dynamic segment for updating controller parameters; the dynamic segment is also used for fault reporting by the MYO-Ganglions.

All static frames must be the same size, and the largest (and most prevalent) frame type is the sensor data frame, the composition of which is shown in Table 4.2. Each static frame is sized to allow a MYO-Ganglion to transmit sensor data for up to 4 muscles, including the possibility of 1 joint per muscle (muscle 0 reports data for joint ID 0x50, muscle 1 joint ID 0x51 etc.), and 12 16-bit words [2] for exteroceptive sensor data. This data plus the FlexRay message header amounts to 48 16-bit words, and as we are aiming for a baseline control loop of 1ms, this allows transmission of 8 static frames, with a dynamic segment of 114 words (2 word times are required for the network idle time used in bus clock synchronisation). Allowing for 32-bit set point values, 4 of which may be required per MYO-Ganglion, commands for up to 6 MYO-Ganglia can be contained in one static frame. The MYODE suite requires an additional static frame to provide mode control commands for the controllers on each MYO-Ganglion, which may be indicators of the presence and purpose of data in the dynamic frame (see Section 4.4). Hence, up to 6 MYO-Ganglia may be commanded with a 1ms refresh rate, allowing the control of up to 24 muscles, the structure of data in a communication cycle is shown in Fig. 4.19.

FlexRay communication data size.
Data Size (Words) comment
Joint Position 2  
Actuator Position 2  
Actuator Velocity 2  
Actuator Current 1  
Tendon Displacement 1  
Total per Muscle 8  
Total Muscle Data 32 4 muscles per MYO-Ganglion
External Sensors 12 per MYO-Ganglion
Frame Overhead 4  
Total per Ganglion 48  
_images/structureofflexray.png

Structure of a FlexRay communication cycle. Static frames are shown in blue, the dynamic segment is shown in green, and network idle time in orange.

Motor Drivers

Controller

The MYO-Ganglion controller API is written in C++, to allow both simple user extensibility and a single set of API functions to intuitively command a controller regardless of the underlying processes. However, it is important to note that as the interrupt service routines are written in C, a set of bridging functions are provided to allow them to access the underlying controller objects. The operation of the bridging functions requires that the underlying controller objects must all inherit a parent controller class, and implement its core set of (pure virtual) functions. These functions allow the getting and setting of the controller type and parameters (utilising a controller parameters union), and the invocation of the control loop with the desired set point (\(sp\)) and current process variable (\(pv\)) values.

A MYO-Ganglion has an array of controller objects, containing a controller for each available control mode, for each motor connected to it. Which controller is active for each motor is determined by part of the command in the controller mode frame (see Section 4.4). Each motor has an independent control loop frequency, and each iteration (if the currently selected controller is enabled) it calculates the needed demand signal to be sent. In the core API we have implemented linear feedback PID controllers, which are used to control a variety of process variables, as well as a raw control mode that allows direct setting of the motor driving PWM duty cycle. Each process variable is calculated from the raw sensor data provided by the motor driver board, to allow transparent tuning of PID gains via MYODE; the implemented process variable controllers, and their conversion factors are described in Table 4.3. The means for user extensibility of the controller infrastructure is detailed in the API documentation.

Implemented control modes, and conversion factors from raw sensor values to process variables. Note that the conversion from spring displacement to tendon strain is non-linear so uses a 4 term polynomial.
Process Variable Conversion Factor
Actuator Position Rad/Encoder count
Actuator Velocity Rad/Encoder count and control loop frequency
Actuator Force Torque Constant
Tendon Strain 4 term polynomial

In order to increase the safety of operation, the user is able to set limits for both the output drive signal, and the process variable demand, for each controller. These limits are included within the parameter set for each controller, and must be set during controller initialisation and parameter updates. Safe limits should be automatically generated by MYODE, or set by the user, during specification and simulation of a Myorobotics assembly, so that they can be loaded on to each MYO-Ganglion. The limits are enforced by each controller, and commands that try to exceed them will be limited to prevent them from doing so and generate fault messages transmitted as a dynamic frame. As an additional safety precaution controller, output is always checked against maximum drive values for the connected MYO-muscle to prevent user set limits from allowing maximum drive values to be exceeded.

Linear Feedback Controller Implementation

The linear feedback controller we have implemented on the MYO-Ganglion is a PID controller, with an additional feed-forward term using the desired set-point (sp), and optional dead-band and integral wind-up limiting. The gain for each control term (pgain, igain, dgain, forwardgain) must be set on controller initialisation and can be tuned during robot operation via MYODE; some process variables may not require all terms, and in this case the gain of unused terms is set to zero. Limits (\(outputPosMax\) and \(outputPosMax\)) for the control output are used to ensure safe operation.

_images/blockdiagramoflinearfeedbackcontroller.png

Block diagram of the linear feedback controller: note the amplifier gain of \(\frac{1}{4000} \times 24V\).

These control limits are also used to limit integral saturation, by not adding to the accumulated integral on a control loop iteration when the output is in saturation and a control error is still present. Integral wind-up is implemented with thresholds (IntegralPosMax and IntegralNegMax) beyond which the integral cannot be increased. The symmetric dead-band is implemented similarly with minimum error thresholds (\(deadBand\) and \(-1\times deadBand\)) required to trigger a change in control effort. To ensure jerk-free operation when switching between control modes, the integral term is reset to zero when control modes are changed.

Code

Below (Fig. 4.21) the C++ code of the linear feedback controller is shown. Note, the controller parameters (gains etc.) are class variables for the pidController class.

_images/c++method.png

C++ method of the linear feedback controller.

Parameter Modification and Modes

In addition to a controller set point frame, MYODE also transmits a mode command frame that allows selection of the operating mode, and control mode of each controller. Hence, in the mode frame each MYO-Ganglion has 4 8-bit words (one for each controller) to issue the operating mode commands, and 4 8-bit words to issue the control mode commands. The operating mode commands determine the operation that will be performed using the controller selected in the control mode command.

There are 3 operating mode commands that can be issued: initialise controller, set point update (normal operation mode), and disable controller. The first operating mode indicates to a motor that the controller selected in the control mode command will have its parameters set, and so to expect parameter data in a dynamic frame that communication cycle. The parameters used by the currently implemented PID controller is a total of 84 bytes, so only one controller in the whole assembly may be updated during each communication cycle, due to the small size of the dynamic segment. However, as the communication cycle operates with a 1ms period, initialising one controller each for the maximum number of motors would only take 24ms. The initialisation operation mode is also used to tune the parameters for the selected controller, e.g., in the case of a PID controller the tunable parameters are the PID gains, and the operating frequency, although other parameters such as control limits may also be updated. It is important to note that the initialise controller mode does not change whether or not a controller is enabled; hence, during initialisation of a MYO-robot all controllers needed can be initialised before any are enabled. The set point update mode enables the selected controller and updates the set point to be used in its control loop; if the controller selected has not been initialised or safety limits are exceeded, an error is reported in the dynamic frame, and it is not enabled. Enabled controllers can be disabled using the disable controller mode.

Dynamic Frame Control Parameters

The configuration parameters are transmitted in the following structure

typedef struct
{
  uint32 tag;/*!<Tag to indicate data type when passing the union*/
  sint32 outputPosMax; /*!< maximum control output in the positive direction in counts, max 4000*/
  sint32 outputNegMax; /*!< maximum control output in the negative direction in counts, max -4000*/
  float32 spPosMax;/*<!Positive limit for the set point.*/
  float32 spNegMax;/*<!Negative limit for the set point.*/
  float32 timePeriod;/*!<Time period of each control iteration in microseconds.*/
  float32 radPerEncoderCount; /*!output shaft rotation (in rad) per encoder count */
  float32 polyPar[4]; /*! polynomial fit from displacement (d)  to tendon force (f) f=polyPar[0]+polyPar[1]*d +polyPar[2]*d^2+ +polyPar[3]*d^3+ +polyPar[4]*d^4 */ //mjp-3rd order?
  float32 torqueConstant; /*!motor torque constant in Nm/A */

  parameters_t params; //the PID or RAW controller Paramters

}control_Parameters_t;

Here it is important to note that the first parameter, tag, indicates the controller type the paramters for. Tag is a value from the following enumeration

 typedef enum comsControllerMode
{
  Raw=0,
  Torque,
  Velocity,
  Position,
  Force,
  JointPosition,
  JointVelocity,
  NoControllers//not a usable control mode, but used on the ganglion to set up the array of controllers
}comsControllerMode;
 typedef union
{
  pid_Parameters_t pidParameters;
  //raw_Parameters_t rawParameters;
}parameters_t;
 typedef struct
{
  float32 integral;/*!<Integral of the error*/
  float32 pgain;/*!<Gain of the proportional component*/
  float32 igain;/*!<Gain of the integral component*/
  float32 dgain;/*!<Gain of the differential component*/
  float32 forwardGain; /*!<Gain of  the feed-forward term*/
  float32 deadBand;/*!<Optional deadband threshold for the control response*/
  float32 lastError;/*!<Error in previous time-step, used to calculate the differential component*/
  float32 IntegralPosMax; /*!<Integral positive component maximum*/
  float32 IntegralNegMax; /*!<Integral negative component maximum*/
}pid_Parameters_t;
Caliper Integration

In order to set motor control parameters as well as the controller reference values manually, a GUI for MYODE plugin suite has been created. Based on the QT4 framework, this interface allows the real time display of all process states which are supplied via the FlexRay bus.

The Myorobot plugin (see Fig. 4.22) for Caliper presents the component parts of the embedded control infrastructure as a tree. The robot has a number of ganglions, each with a number of connected muscles (motors in this case), each muscle has a set of control modes which each have a set of parameters. This tree structure is generated based on the robot configuration file generated by the virtual assembly toolbox, and represents the underlying data structures created. To allow easy testing of a Myorobot, the sensor data transmitted via FlexRay from each ganglion is displayed in the Status column in the row of the associated control mode for each connected muscle. Additionally, control reference values or controller parameters may be sent to the Myorobot via FlexRay by entering them in the ‘Setting Value‘ column. Ranges for each value are automatically enforced, and are only sent to the robot when ‘Send Data’ is pressed; selection of the control mode, and whether to enable or disable each motor is performed using the check boxes.

_images/myorobotPlugin2.png

Sceenshot of the Myorobot plugin GUI.

Controller Tests

Danger

This control section describes the old MYODE architecture. While most parts of the hardware and firmware are unchanged, the high-level control is very different. The remaining, valid information will be incorporated into the above section.

In this section the basic functionality of the controller infrastructure is demonstrated. The results are not all encompassing and further testing is still ongoing. However, these preliminary results show that the infrastructure in principle is functional, the sensory system is of high quality and linear control of the MYO-Muscles is achievable.

All controller test where carried out by changing the control parameters in the MYODE robot control GUI and then transmitting them via the FlexRay bus to the MYO-Ganglion. The MYO-Ganglion runs the actual linear controllers and communicates with the motor driver in order to read the motor state and set the PWM drive signal.

Position Motor Control

For the first demonstration of the controller capabilities the position controller running at 100Hz was selected. The demand or reference value was set to 10 rad (shaft position) from an initial position of 0 rad. Fig. 5.12 shows the result with a slightly under-gained PI controller. It is observable that the final position is reached after approximately \(300ms\). During the control phase, the control output saturates at a duty cycle of \(100\%\) and a maximum velocity of approximately \(35 rad/s\) is achieved. Please note that no tendon is attached to the motor and the only ‘load’ is the motor gearbox.

_images/test1Expr1.png

PI control of motor shaft position: motor position in rad (top); duty cycle (DC) of PWM signal (centre); shaft velocity in rad/s (bottom).

In the next experiment (Fig. 5.13), the PI gains were increased and it is observable how the control system overshoots and a slight second-order oscillation is visible.

_images/test2Expr1.png

PI control of motor shaft position: motor position in rad (top); duty cycle (DC) of PWM signal (centre); shaft velocity in rad/s (bottom).

In order to reduce this overshoot, the controller is enhanced with a D component and it is clearly visible in Fig. 5.14 that the overshoot is reduced.

_images/test3Expr1.png

PI control of motor shaft position: motor position in rad (top); duty cycle (DC) of PWM signal (centre); shaft velocity in rad/s (bottom).

Overall, this brief set of experiments demonstrates the PID controller’s capabilities and the principle operation. Note, that it was not our intention to tune the system ‘perfectly’ or test all control modes but to merely demonstrate the principle operation of the system. Further tests are required. However, the reader may note the good signal quality and the almost ‘textbook’ plots. All signals shown here are unfiltered and obtained from real experiments.

Velocity Motor Control

The next set of experiments demonstrate the velocity control mode. Here, a sample rate of \(1KHz\) is chosen and the controller is configured as a PI controller. The step response to a velocity demand is shown in Fig. 5.15 and Fig. 5.16. It is clearly observable how the P element of the controller leads to a very fast increase in shaft velocity and how the I element of the controller then slowly increases the velocity until the reference is reached asymptotically.

_images/test1Expr2.png

PI control of motor shaft velocity:shaft velocity in rad/s (top) ; dutcy cycle (DC) of PWM signal (bottom).

_images/test2Expr2.png

PI control of motor shaft velocity:shaft velocity in rad/s (top) ; dutcy cycle (DC) of PWM signal (bottom).

The velocity signals is obtained by simple numerical differentiation of the encoder signal. The blue line in the plot shows the measured signal and the black line shows the filtered velocity signal (2nd order Butterworth, cut-off frequency 1/5 of Nyquist frequency for the given sample rate). Fig. 5.15 is merely a zoomed in version of Fig. 5.16.

As for the position control, only a small part of the controllers functionality is demonstrated in this summary of work and further tests are ongoing.

Position Control of 1-DOF Arm

We conclude this page by demonstrating simple position control of the MYO-Muscle with an attached arm. This is a 1-DOF experiment with a single muscle, the counterforce is produced by gravity as can be understood from Fig. 5.17.

_images/Bristol1DofExp1.jpg

Simple Myorobotic test rig: Only the upper MYO-Muscle is attached via the tendon with the distal bone. The experimenter deflects the bone to demonstrate the compliant nature of the system and the sensing capabilities.

In this experiment, the linear feedback controller is configured as a pure P position controller of the MYO-Muscle. To limit the motor velocity and to demonstrate the functionality of the output saturation system, the PWM duty cycle was limited to \(15\%\). The plots in Fig. 5.18 show the joint angle, the motor shaft position and the spring displacement. At \(t \approx 1200 ms\) the motor shaft reference value is changed and it is observable that with the change in motor shaft position the joint angle changes too. The steady state is reached at \(t\approx 2400ms\).

_images/test2.png

1DOF arm control: the plots show the change of motor, joint and spring position.

It is interesting to note that during the first phase of the motion (from 1200ms to 2400ms) the spring of the MYO-Muscle is not deformed. Only later, at \(t\approx 4000ms\), when the experimenter applies an additional vertical force to the distal bone, is a spring displacement and a change in joint angle observable. What is demonstrated here is the inherent compliance of the musculoskeletal approach. Clearly, under a great load or greater accelerations, a spring displacement is also expected during the change in joint position without external disturbances.

_images/test1.png

1DOF arm control: the plots show the motor shaft velocity (blue raw signal, black LP filtered) and the duty cycle (DC) of the motor control signal.

Also note that the change in motor shaft position is negligible, i.e. the position controller holds the position despite the external disturbances. In other words, the system is passively compliant and not dependent on ‘softly tuned’ motor controllers.

_images/test0.png

1DOF arm control: normalised plot of MYO-Muscle control states.

To further demonstrate the quality of control system, Fig. 5.20 shows the normalised signals of several motor states. Here it is important to note that the signals are only normalised to allow their display in a single plot in order to demonstrate how they correlate. They are not post-processed for plotting which demonstrate the low-noise nature of our control and signal acquisition system.

[1]In this first instantiation of the design primitives, only three SPI channels are accessible, this will be changed to four for the second instantiation of the design primitives.
[2]In the context of FlexRay, a word is 16 bit. Note that the MYO-Ganglion controller is a 32-bit processor.

Embedded Robotic Systems

Embedded Robotic Systems produces and develops the electronic components.

General Interfaces

General Interfaces can provide fully assembled solutions based on MyoRobotics components.

Fraunhofer IPA

Fraunhofer develops the muscle units and electronics for MyoRobotics.

Roboy

The MyoArm is based on the same artificial muscle systems developed for Roboy. Roboy is a humanoid robot being develop at the Technical University of Munich (TUM) in Germany. He is probably the most human robot in the world, with a human-like skeleton, muscle structure, and incredibly cute looks.