Upper body exoskeleton for exercise in VR.
The exoskeleton printed for verification of mobility.
JPEG Image - 104.28 kB - 10/16/2017 at 00:35
Calibration: Motors wind back, hit the limit switch, and advance forward to determined location.
Get Rotation Angles: Arduino board receives angles of each joint from mounted potentiometers.
Pass to Unity: Via USB.
Holding?: Unity determines if the user is holding a weight or not.
NO) Return 'rest': send value to motors to position not in contact with brake.
YES) Get rotations: read rotations.
Run DH calculation: Runs Denavit-Hartenburg calculations to determine torque values.
Return torque values: Sends these values to the motor controllers.
Get brake position and unity return: Compares requested position to current position.
Adjust brake: Adjusts to desired position if previous step shows a difference.
Return brake position: Sends position back to confirm final placement.
I'm using Unity to build up the virtual environment and the HTC Vive to represent the environment itself. I'm also using Blender to create the 3D files and texture mapping. Overall, it's more involved than I had originally thought it would be. Luckily, I'm stubborn and have somehow made it work.
It may not look like much, but it's a working environment. It's still a work-in-progress, but I wanted to show it off. The barbell in the upper left on the rack is interactable with the handheld controllers of the Vive. Each barbell that will be used is coded with the variable representing its weight. This will allow the PC to do the required math for the torque values and send the associated brake positions.
In future iterations, I would like to have background individuals walking around, but at this point in time, that is not happening. For now, I'll finish populating the dumbbells in the gym and optimize for rapid calculations.
With everything finally designed (at this point) I thought it a good idea to make it available for others. Finding an open source exoskeleton is near impossible, let alone one that has a solution for scapular movement. So look for the link below. (119 MB zip file on GoogleDrive)
The hardware used for the joints are 1/4" nuts with associated bolts. The cables to be used are 0.3mm in diameter and will fit a standard brake sheath from a bowden cable. I also used ball bearings found here.
Today was planned to test the PETG components with the new collar to verify strength. That did not happen. What did happen was a frustrating series of failed prints even though no configurations had changed between the two print times. After struggling with it for a couple hours, I decided to return to PLA prints. While not ideal in strength, it does actually print.
Once this component has finished printing (80% infill this time) I will run tests to verify strength and find its limit. Once I find that, I can determine the prototype's limits for experimentation.
Today I'm trying to focus on t,he strength of the elbow. I printed the original elbow in PLA and then used it to test the strength of my braking setup. Things were going well until *snap*, the joint mount delaminated and I was left with a useless plastic. Since then I've been spinning wheels trying to enhance the part.
All this to say I'm now looking at testing PETG as the elbow. The first test didn't survive first contact with the aluminum bar I'm using as an arm bar.
The reinforced one I printed also delaminated in the same manner. In frustration I took a break.
I've since developed a collar that will be printed separately and goes around the top of the mount. It is printed perpendicular to the rest of joint and will also have a mount for the velcro straps to hold the arm in place. Now to bake the PETG to work out any water and get to printing.