The Iron Girl Project - Computerized Exoskeleton System

Got the hinge mostly functional. Now working up the bicep while I contemplate how to mechanically/electronically lock the wrist cuff into place when putting on the suit...

Forearm with hinge.png

~LK
 
No doubt you've already considered it, but I would think its probably wise to design in to any application of enveloping a bodypart a safe release mechanism incase you lose power etc - I suppose cost/ease/design wise mechanically would be preferable for an interlock. But then fun/interesting would be electronic ;)
 
No doubt you've already considered it, but I would think its probably wise to design in to any application of enveloping a bodypart a safe release mechanism incase you lose power etc - I suppose cost/ease/design wise mechanically would be preferable for an interlock. But then fun/interesting would be electronic ;)

Yea, I've been chewing on that one for a while mentally. (I keep thinking of the end of IM1, where he's trying to pull bits of the damaged suit while fighting Iron Monger on the roof). I think what I'm going to do is - at least for the first version - put a micro servo directly below the back hinge for the wrist support arm, then put ~95° worth of spur gears on the support arm, then add another spur gear to the servo. This'll allow for a 2:1 gearing (more torque, yay!) and also give the wrist a good amount of leverage against the servo's drive axis. When the servo has no power, you should be able to push the servo arm down with the bottom of your wrist. I might also add two small neodymium magnets to the inner lip of the cuff to "click" into place (and eventually a contact sensor for the HUD, because why not). Once I get the gear generator update for Fusion 360, I'll try it out and see if I can get an estimate of the force required to get the thing off.

Servo Spur Gear Drive.png

Awesome work! What CAD software are you migrating to, @Lexikitty?

Thanks! I'm hopping between Inventor (had a student license floating around) and Fusion 360. I really like Inventor, but workflows are much faster in Fusion 360, so I'm only using Inventor for stress simulations. Fusion 360 Ultimate comes out in...well, three days, and it's supposed to have animation, simulation environments, and stuff like gear generators and part libraries. Both also now support direct modelling and sculpting, which will be helpful down the line.

~LK

P.S. Also, thanks to everybody who's commented/liked/provided valuable input. This is a lot of work (I knew what I was getting myself into, but still). Every time I get frustrated or discouraged on something new, I simply come back here and scroll through the pages. Gets my fire roaring again right away. :D
 
More attachment hinge ideas. The previous method required an awkwardly placed motor (directly driven), and wasn't a very good solution. So I went back to the IM1 film and watched how the arm attached itself during the Mk 3 sequence. And I came up with a vague interpretation of that. Orientation of the pieces can be flipped, so hypothetically the motor/servo can be mounted under the wrist. Proof of concept:

Closed (rear view):
Forearm Closed.png

Open (rear view):
Forearm Open.png

Wireframe of the whole thing:
Wireframe.png

Wrist on the left, elbow on the right. One day I'll stop obsessing over the details on this thing and actually have more to show, I swear.....

Cheers,
~LK
 
Haha, @Zephyranthes, well timed. Just as I was starting to draft this post.

So! Been a bit quiet for a bit, but I've been fairly busy finding a slightly larger platform to migrate the HUD systems to. The biggest contenders were PyGame and Blender Game Engine, but PyGame presented the same 3D animation issues that Processing did, and Blender Game engine was lovely besides the incredibly painful lag (~3-20 seconds) on live video textures. CryEngine was also on the table, but got nixed since I couldn't verify a few things. Sorry for the delay, but I've been literally learning a game engine to see if a specific few things work, finding out they don't, and then learning an entirely new game engine for the last few months.

So the latest one I've tested, and the one I think I'm going with, is Unity3D.

UnityHUD3.png

I've got support for dynamic text working (hence the live time, being updated from the system clock), it barely drops below 40FPS even when I move the camera around a ton, and I can directly build it to Linux/Windows/Mac, and potentially Android. This, in combination with either an Android tablet or something like Intel's Compute Stick, is where the data systems and HUD are moving.

UnityHUD2.png

Seems pretty lightweight on the CPU, and that's running inside the editor (should be slightly better standalone). Anyway, I hope to have Mk 0.5 pre-alpha up in the next two weeks on GitHub as a .exe, depending on licensing. I'm in the process of trying to acquire an educational license, since my job qualifies me for some of that stuff, but otherwise the license is 1500$, which is a nice chunk of change. Either way, the HUD will most likely have a Unity educational or trial watermark, but it'll be available for free, so I don't think that will be an issue. If anybody's willing to test it on their machine, please do and let me know of any performance issues. I have 4 machines total in my shop, but that's nowhere near representative of a wide computing audience.

Oh, and Happy New Year!

Cheers,
~LK

UnityHUD3.png


UnityHUD2.png
 
Last edited by a moderator:
That's awesome. I wouldn't have thought of using Unity. Count me in for testing. I have a few boxes here of different flavors, as well as a couple different iOS, Windows, and Android tablets. I'm still working out how I can do a stereoscopic hidden cam setup with an in-helmet HUD.

I've been pulled away from working on my suit as well. Holidays and all that...

Glad to see you still rocking it!
 
Ladies and gentleman, I present a working serial data stream with a 720p webcam feed, low CPU usage, and ~55-60FPS.

SerialDataWorking.png

*performs happy Lexikitty dance*

I'm going to build this out to an .exe and whatever else I can tonight, since I have no idea what the expiration of the trial will break. I'll push it up to GitHub tomorrow or Wednesday. If I can't change the port in the script afterwards and build it, then I guess it'll be locked to COM3 until I get my Educational license. We shall see.

~LK
 
Interestingly, my Unity trial expired today, and I switched to the Free license. Annnnnnnd.....nothing's broken. Yet. According to their license page, a Pro license is required for streaming, but....it works. So I'm going to keep working with the current file until Unity realizes I'm not supposed to be doing that.

I've imported the old .PNG overlay transparencies from the Processing builds, and started figuring out alignment, placement, and such.

UnityFree1.png

I've uploaded test builds to the Experimental branch of my GitHub Mk 0.5 repository, located here: https://github.com/Lexikitty/Iron_Girl_Mk_0.5/tree/experimental

Sample projects are available for Windows, Linux (x86/64), and OS X (Universal). This build will write whatever it finds on COM3 to the Debug Log, and will look for any system webcam with a 1280x720 resolution @30FPS. If it doesn't find that, it'll try to use the closest match it can find. Please post all the ways that it breaks for you here, at least until I get a post up on my blog that people can report issues on.

Also, I think I might switch to a different distribution method (Dropbox or GDrive) for distributing builds, as GitHub takes forever, and it's not really useful for compiled examples. I'll just post scripts there, as I get the them working.

Cheers,
~LK
 
Well....considered maybe using the newer Raspberry Pi 2? It's got a quad core CPU now and 1 gig of memory....which should help tremendously with this type of processing....

I've got 2 of them atm, 1 setup in my living room as a Retropie gaming station (it's seriously much faster than the RPi, SNES games like Starfox don't slow down at all now unlike with the original RPi). I haven't bothered adding it to my Iron Man suit yet, but it's something I'm slowly working on.

I'd gladly test whatever code you've got whipped up if you built it for Linux in a non-x86 environment.

Anyway, just logging in to say I'm impressed with the progress.
 
Well....considered maybe using the newer Raspberry Pi 2? It's got a quad core CPU now and 1 gig of memory....which should help tremendously with this type of processing....

I've got 2 of them atm, 1 setup in my living room as a Retropie gaming station (it's seriously much faster than the RPi, SNES games like Starfox don't slow down at all now unlike with the original RPi). I haven't bothered adding it to my Iron Man suit yet, but it's something I'm slowly working on.

I'd gladly test whatever code you've got whipped up if you built it for Linux in a non-x86 environment.

Anyway, just logging in to say I'm impressed with the progress.

Just got my Raspberry Pi 2, and they are quite snappy. I haven't compiled Processing for it yet to see if the performance is any better, but I really like the power of Unity behind the HUD, rather than Processing (more flexibility in animation, scripting, and so on). Unity can build out to Android, as well as Linux x86/64, so if the Compute Stick from Microsoft ends up being a flop, I can use an Android tablet or phone, either Google Cardboard-style or with a MHL adapter.

Unfortunately, my day job has been extremely busy recently, so learning and developing for Unity has been going slow, blargh. :/ But the project is still very much alive, just a bit sluggish.

~LK
 
Small progress report.

After a bunch of Unity training and some playing around with screen resolutions and stereoscopic stuff, I tore down most of what the first Unity HUD was and remade it using GUI elements instead, so now it can be used on any screen, no matter the size (shown below). I've also just got in a few Google Cardboard VR headsets, which I'll use along with their SDK to play around with for viability.

Resizing2.png
Resizing1.png

Also, regretfully, I'm suspending most work on physical parts of the Iron Girl suit. My girlfriend and I may be moving this year to a larger space, where I'll have more room to set up fabrication, but until then I'll only be doing HUD programming and CAD work on the interior skeleton, at least until things have settled down. On the plus side, room for a mill and a welder will be most welcome.

Cheers,
~LK
 
  • Like
Reactions: nWo
Boring/nerdy/short post, but all the data parsing work is done. This just means that Unity can take apart all the individual data pieces from the raw serial stream (pictured on the far right), put them into the individual variables (code in the center bottom), and format them into new stuff (left-hand box). Basically, Unity's now caught up to where the Processing sketch was, but with a few more stability improvements (still working on the perfect update speed), and a lot of cleaned-up code. :) Hopefully, I'll be able to add the values the HUD panels in the next week.

IMU1 Data Parser.png

~LK
 
HUD values now work! Sorry for spamming my own thread....

FeedToHUD.png

As you can see, the condensed the data stream coming in from the Arduino, then parsed out to variables I can play with. In this case, the background of the HUD contains a script that "pushes" the values down to the HUD info panels. Having the info panels retrieve it didn't seem to work so well (although I did a hasty transcription of my JS script into C#, so that may have also been the issue). Either way, I like keeping it all in one script and pushing it to other panels - makes it a bit more modular. Performance (framerate, VRAM usage, and CPU (not pictured because Dropbox suddenly started using high CPU)) seem to be quite low (~1% CPU), so hopefully this will continue to stay lightweight. If anybody is actually testing the development builds, let me know and I'll build this out to all platforms. If not, then....I'll go over here and dance like a squid! *dances*

Cheers,
~LK
 
All HUD variables incorporated! Tweaked some of the code for stability and speed, added a test animation for framerate benchmarks, blah blah geeky stuff. More details on my blog, if anybody is interested.

Next week, I'll try to create an artificial horizon and link it up to this data. Oh, and happy Pi day! I'm going to go find pizza to celebrate - that's a kind of pie, right?

5Var.png

~LK
 
Back
Top