Adaptive thing desk model

  • by

With its profits UST funds several EngD students, and a byproduct of one EngD (by Gennaro Senatore) has been the adaptive truss. It is quite a sophisticated bit of kit, covered in sensors and actuators, and with some proper programming behind it, that allows it to detect its movements and compensate by changing shape to produce a flat surface under a variety of loads. Without the help of its actuators, it moves quite a bit:

Aside from being an interesting machine and demonstration on Expedition’s ability to create things, the adaptive truss has a more fundamental lesson to teach – that in the design against permanent and variable loads they need not always combine them and then allow the design to be dominated by stiffness.

An adaptive structure will always need to be strong enough to sustain the loads that will be placed on it, but it doesn’t need to so stiff as to deflect less than some strict limit under every load case, including ones that are quite rare. For the most extreme loads an adaptive structure can change shape¬† compensating for large movements. A structure that adapts like this will need less material but adds complexity and power usage to compensate. Like so many things, the initial gains of small amounts of adaptability are large and the costs small – for example the retensioning of cables in a pre-stressed slab (one time adaption) as additional floors are added, or mechanically operated sun-screens on the sides of buildings (daily adaption). The marginal benefit of added adaptability quickly decreases and becomes negative, with the most extreme cases relying on adaptive mechanisms to prevent excessive vibration – like a pair of noise cancelling headphones. This results in systems where the overall energy use and cost are greater than with no adaptability at all – the lower weight of material is more than compensated by the energy consumed in use.

The adaptive truss has now done the rounds – ¬†‘almost everyone we really want to see it has seen it’. It is looking for a more permanent home, and Expedition is looking for a way to convey its message to visitors to the office in a more manageable form.
The desk model needs to be conducive to play and experimentation by visitors – and demonstrate its ideas to, sometimes, unconvinced audiences. The desk model also needs to show something beyond what has been shown with the larger adaptive truss, largely that adaptive structures could be beneficial in many areas – it could be a bike suspension system, a facade support system, or anything between and beyond.

The first model has been made as simple as possible: it has a small, simple structure, cheap and basic sensors and actuators, and the minimum of complexity in its programming. Hopefully, the process of developing it will show potential pitfalls in producing more sophisticated models and give others an idea of what can be quickly and cheaply achieved.

The basic design involves a very soft, movable truss (powered by a small stepper motor), ultrasonic distance sensor and arduino uno to co-ordinate the two – it also has a small dot matrix display, mostly to help diagnose problems.

The truss is a three pin arch: two compression members with an offset cable placed below. This cable changes length as a stepper motor winds it in, this allows the bridge to move up and down. An elastic band built into the cable makes the entire structure very soft, with large changes in position resulting from about the weight of a mobile phone applied and taken away.

The basic structure, loaded by blackberry

The basic structure, loaded by blackberry

The arduino uno makes the electrical aspect of the circuit extremely easy, with each component being individually wired to input and output pins – it is really a combination of around 3 circuits in parallel connected by a program. There weren’t any complications due to interactions between circuits so I could reuse existing. The program controlling the truss was as simple as possible, it just checks the distance to the bridge from the sensor every second, if the bridge is too far away, it lowers the bridge, and vice-versa.

Creating the program was also relatively straightforward, especially at such a low level of sophistication. Each second, the ultrasonic sensor is pinged, it returns a duration for the ping to bounce off the bridge and return, and the arduino instructs the motor to wind appropriately for a period of slightly under a second.

#include <LedControlMS.h>
#include <NewPing.h>
#include <Stepper.h>

//create the various components

//locate these on arduino board
LedControl lc=LedControl(12,11,10,64);
Stepper myStepper(200, 4, 6, 5, 7);
#define trigPin 2
#define echoPin 3

String digits= "0123456789";

int duration = 1;
int distance = 1;
int number = 1;
int oldnumber = 5;

int ultrasonicnumber() {
digitalWrite(trigPin, LOW);
digitalWrite(trigPin, HIGH);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
int height = 1080; //larger numbers are higher
int sensitivity = 20; //smaller numbers are
number = constrain(((duration-height)/sensitivity)+5,0,9);
return number;

void displaynumberondot(int number) {
lc.displayChar(0, lc.getCharArrayPosition(digits[number]));
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

void shiftstepper(int number) {
if (number>5){
if (number<5) {

void setup() {
Serial.begin (9600);
for (int i=0; i< 2; i++){

void loop() {
number = ultrasonicnumber();

//returns number that describes bridge position


//display this number on the led dot matrix

Complications arising due to more sophisticated control mechanisms, for example some type of proportional control which would require interrupts, have been avoided for now.
Initially, the ultrasonic sensor was a great success, it seemed to detect objects quickly and reliably:

However, the ultrasonic sensor had much greater difficulty detecting the underside of the bridge – perhaps it was not large enough, or the wooden structure below the main deck was confusing to the chip packaged with the ultrasonic sensor. It was also hard to diagnose issues as it was not at all obvious what the sensor was detecting when it gave bad readings. For the next iteration a laser distance finder seems the most appropriate tool, though they are quite expensive.
Most other issues were down to my own lack of competence, but most were eventually solved.
A small custom set of characters were made for the dot matrix display, the digits, each with one half of an arrow next to them – the intension being to reflect the arrow in a small mirror. This was achieved with small alterations to an existing arduino library.

In all the truss is quite striking, and design choices to keep all complexity off the main span of the bridge seem to have been effective. In reality, it is probably advantageous to have the equipment used for producing adaptiveness away from the permanent structure anyway for ease of maintenance.
The truss is also a good proof of concept that a small adaptive truss model can be made quickly and cheaply, paving the way for more sophisticated models in later versions. Improvements needed to reach a ‘minimum viable product’ are probably: a smooth, reasonably fast control system, much greater reliability and robustness, greater [any] attention to structural detail and manufacture and finding a way for the model to explain itself quickly and clearly. Suggestions include 3D printed components, hydraulic linear actuators, vertically aligned trusses, augmented reality goggles (ambitious) and proper control systems with more sophisticated visual feedback, we shall see.

Oh, and here it is in action:

Leave a Reply