Hello Everyone,
Haven't been quite as active on the forums the past few days while getting the attachments designed for the k-ceptor cases. Still waiting to get the 3D prints to actually attach the sensors, so in the meantime I typed up my build log.
Going forwards, I will use this thread to post progress update and issues related to this project.
Goal
Our goal is to build a motion capture system that can be used to capture walking kinematics anywhere. This is necessary because we are using motion capture for slip and fall studies. Combining a standard motion capture system with a harness to protect the subject from fall related injuries is difficult, and made much easier by Chordata's features. Additionally, it allows us to take captures anywhere, with real time data streaming to our algorithm - no computer necessary. To do this, I run the Notochord with "./notochord --raw --scan localhost" and receive the data in a python program. Because of this, I have a small library of highly configurable OSC listeners that can read, sort, label, and print or re-transmit much of the code from Notochord. I would be happy to share these if anyone has any use or need - for instance, logging data on the Raspberry Pi until the OSC redirect is fixed. You can find the algorithm version on GitHub, here. It's not perfect, and it probably has more than a few redundancies, but it works.
If interested, you can find some previous research done by our head professor in the form of an accurate 5-IMU slip detection algorithm here. This is also the algorithm that we are currently running on the pi.
Build Log
The system came into my hands as the fully soldered k-ceptors and hubs. I know my limits with soldering, so we decided to enlist the help of our more practiced lab tech.
Initial Setup
First things first, to anyone reading this at any time before they turn the system on (because it can't be said enough):
DON'T LIVE PLUG K-CEPTORS IF YOU ARE DIRECTLY POWERING THE HUB. YOU WILL BURN THE CONVERTER. This caused some confusion, but we use the 3v3 rail now and everything works fine. I have live-plugged k-ceptors while using the 3v3 rail for power (for instance, when calibrating many sensors at a time) and have not noticed any adverse effects.
The docs page doesn't make this very clear because of the way everything is presented, but jumpers are necessary no matter which configuration you use. For the 3v3 rail, you need 1x microUSB and 5x jumpers. For the dedicated power source, you need 2x microUSB and 4x jumpers.
The SBC setup by itself is very well documented. However, if you're missing a keyboard and monitor like I was, the referenced chapter 1.6 does not exist. You can find the instructions I used at this link, make sure to enable SSH while you're in there.
Got stuck on plugging in multiple k-ceptors for a while. Took me a while to figure out, but the system only detects the second k-ceptor in a string if it's plugged in the reverse way from the other two. Like (HUB -- OUT/ID_0/IN -- IN/ID_1/OUT -- OUT/ID_2/IN). Not sure if this is intentional or not, because I didn't notice anything about it in the docs.
The blender documentation is the other piece of the documentation that's well done. Even with no experience in the software, I was able to get it up and running quickly. I might add that currently the stats node is a little off, so if the system stops on you, try deleting it from the node view.
Calibration
I tried to use the printable box, but due to difficulty and paper size I ended up making my own method. I wrote down the numbers and letters from the box, and folded it into a small cube. I used this to practice a few times before calibrating the sensor with no box. In case anyone else has similar trouble, see below. It's not Picasso but it did what I needed it to.
This was and still is the most infuriating step for me. First, I calibrated them near my computer not thinking about the magnetometer interference. After reading the forums more, I took my sensors outside to calibrate. Even with nothing around, in the middle of my yard, with the new calibration procedure, using a terminal app on my phone to run it (I realize the phone may have caused some interference, now that I'm writing this out) some sensors just don't calibrate properly. Using the same cable, same location, same hub slot, same procedure for every sensor, about half of my sensors are rock solid, a quarter have slight drift (but major over time), and a quarter have major drift. Since then I've been experimenting with recalibrating to try to get a proper solid calibration but with enough properly calibrated and working sensors for my purposes, further calibration has fallen to the wayside for the moment.
Attaching the sensors to the body
This is where I'm at currently. All of the parts (3d prints, screws, nuts, straps, etc.) were just ordered today, so this will be the next update with pictures and STL files. For the raspberry pi, the case that came with the kit was used, with holes drilled for the jumpers. I decided to use the hub case and back brace attachment method that I saw @NakedRabbit use here. I also decided to use his hub case, shown in the same thread. The k-ceptor cases were custom designed, however. Note if you use screws as I am (#2-56), to use brass ones so that they don't have any change of messing with the magnetometer. Pictures below. Will update with pics of the physical cases when I pick them up later this week!
Previous forum posts regarding this setup and issues:
output raw sensor data to pi
calibration errors broken magnetometer