This repository holds the code, logs and other relevant materials for the LEGO arm exoskeleton designed and developed by students at the Technical University of Denmark as part of the ReHyb project.
The system consists of a low-cost 2 DOF upper-limb exoskeleton made out of LEGO and the software system which makes it possible that this hardware interactively communicates with Unity, is able to log the user's movements and provide supportive or nudging movements.
On the Wiki pages tutorials can be found on how to set up the software system. Here, a short introduction to the construction is presented.
The system has been used as part of apparatus for master thesis projects and special courses at the Technical University of Denmark in the field of neurorehabilitation. The exoskeleton acted as feedback device or controller to Unity scenes or games. Some of the simple Raspberry Pi scripts for these projects has also been uploaded here to serve as inspiration. You can find them in this folder.
In order to set up the arm exokeleton you need to assemble the Lego hardware. The manual can be found in the repo as a PDF document.
For additional information and the specific needed brick list please open the model folder. Here you can find 3D models of the exoskeleton which can be opened and edited with the BrickLink Studio program.
Furthermore, there is an XML file with the needed parts. This XML contains ALL of the needed LEGO parts (including EV3 Large Servo motors and the Mindstorms cables). This XML file can be imported into one of the known LEGO brick database websites (Bricklink or BrickOwl) as wanted set-list and therefore can be ordered.
To power up the system it needs a 9-12V battery. BrickPi's solution is having 8 AA batteries which are sitting in a battery rack. However the motors are draining the battery quite fast, so a more robust solution fits better. We recommend this XTPower powerbank which has DC output out of the box and can provide 12V output which allows the motors to function fast and strong enough.
The exoskeleton is powered by a Raspberry Pi extended by a BrickPi extension board which provides the interface to the Lego EV3 sensors. Follow the instructions on BrickPi's website to assemble the acryllic case. The case can be attached to the right side of the model at the upper-arm part. (NB: This orientation can be changed by restructuring the exoskeleton a little bit)
For the software setup, also follow the corresponding BrickPi documentation.
In order to use the wireless communication feature of the exoskeleton, the Raspberry Pi needs to be connected to the same network as the host on which the Unity program runs. For connecting the Raspberry Pi to a wireless network please see the official documentation.
- Give the server (the computer which is running the Unity program) and the Raspberry Pi a static IP (usually in the admin interface of your router)
- The python program by default is set up as the following:
- SERVER_IP = '192.168.0.69'
- SERVER_PORT = 5013
- CLIENT_IP = '192.168.0.4'
- CLIENT_PORT = 5011
- If you wish to change these settings you can do so in the python program
- Make sure that in Unity the ports and IP addresses are the same
The recommended way of putting the exoskeleton on the arm is the following:
- Open the wrist lock the widest position and lock it. (To unlock the wrist lock move the black gears to the center of the circle. To lock it, move the black gears back to the linear gear, that way locking it in. See pictures)
- Bend the exoskeleton at the elbow joint so the upper-arm part is bended over the wrist part.
- Slowly move the hand through the wrist cuff.
- Unlock the wrist cuff, tighten it gently, but well to the user's wrist. The cuff should be located a bit above the wrist bones.
- Bend the upper-arm part on the user's arm. Make sure that the elbow joint gears are sitting right at the elbow and are aligned.
- Use the velcro straps to tighten the structure to the arm.


