Archive for March, 2015

Updated low-level communication routines

Monday, March 9th, 2015

Over the last weeks I’ve updated the low-level com­mu­ni­ca­tion rou­tines in the embed­ded code. This should be the end of the clean-up and update of the com­mu­ni­ca­tion inter­faces over the last two month. Now the USB and the Blue­tooth inter­faces should behave iden­ti­cal, apart from the lower band­width of the Blue­tooth inter­face. Fur­ther, both inter­faces are now dou­ble buffered giv­ing a slightly bet­ter per­for­mance. Over­all these changes should not affect high level usage of the mod­ules. What remains to be done is to actu­ally merge the com­mu­ni­ca­tion log­ics of the two dif­fer­ent inter­faces. Now there is a lot of code dupli­ca­tion, not more than before but just much more obvi­ous. How­ever, for now I’m con­tent with the state of the code and I don’t think I will do this in the near future.

Some­what adjusted control-scripts and cal­i­bra­tion scripts:

OpenShoe_Matlab_scripts

Cal­i­bra­tion

Espe­cially, in the cal­i­bra­tion script I’ve added a pac­ing beep for plac­ing the cal­i­bra­tion body on the dif­fer­ent sides for roughly the same time.

Edit:  I’ve not updated the com­mu­ni­ca­tion pro­to­col doc­u­men­ta­tion jet. I hope to do that before I for­get about it. How­ever, the changes are very small, essen­tially that the USB inter­face sup­ports loss­less com­mu­ni­ca­tion just like the Blue­tooth interface.

Dual OpenShoe foot-mounted tracking modules — 10x10min walks around our office

Tuesday, March 3rd, 2015

Today I did some ten 10 min­utes walks around our lab (the film runts at x20). Some bet­ter, some worse, noth­ing cen­sored. Two MIMU22BT mod­ules on the top of the forefeet and a Sam­sung Galaxy S3 Android phone were used. Step-wise iner­tial nav­i­ga­tion and wire­less trans­mis­sion of the steps to the phone where the dead reck­on­ing was per­formed. No mag­ne­tome­ters, only accelerom­e­ters and gyros. Fusion of the two dead reck­on­ing sys­tems on the phone.

The shown tra­jec­to­ries are rather benign. Plain walk­ing in a bounded area will cer­tainly not stress the sys­tem but I hope it gives you a feel­ing for the per­for­mance of the mod­ules dur­ing a rea­son­ably real­is­tic sce­nar­iou and not a worst case sce­nar­iou (straight line) which I would typ­i­cally use to assess the performance.

I did 5 walks, charged the mod­ules, and then did 5 more walks. I let the mod­ules warm up for 20 min­utes before the walks. Yes, the mod­ules can give worse per­for­mance dur­ing warm-up.

The map is man­u­ally adjusted to the first lap of the tra­jec­tory. No per­fect fits. Dif­fi­cult with clumsy fin­gers on a small screen. I did not want to adjust it after the first lap since it would be cheat­ing. The bars around the edges of the screen indi­cate 5 meters. The build­ing is roughly 15x50 meters. Con­se­quently each walk is around 700m.

The mod­ules were cal­i­brated a few hours before the walks.

Why 10 min­utes? Well, we have a lim­i­ta­tion in our Android soft­ware which means we can plot at most 10 min­utes of his­tory. Also, over 10 min­utes, the errors are rea­son­ably small such that the results don’t look too messy. Note that the earth rotates some 2.5° over 10 minutes.

What you see is a play­back of what I saw dur­ing the walks. That’s why you see a charg­ing sym­bol every now and then. Simul­ta­ne­ous screen cap­ture would require four arms or reli­able WiFi over the floor. I had neither.