Tuesday, October 25, 2016

How hard is it to make a cleat based Powermeter?

I woke up this morning and I saw that Brim Brothers had quit. I’m sure if I had ever met Barry Redmond I’d likely be asking the question that probably kept him and his team working so hard. 

“How do you know the crank angle, or the appropriate relative angle between pedal and crankset?”

So if you want the short answer – It’s hard! It’s VERY VERY VERY hard.

I predicted this was going to be a nearly impossible problem with inertial sensors and I hate that I was right (Or wrong, you’ll see at the end – no comfort for Pre-order people, but the tech is out there). I had played with inertial sensors in University while working on active vehicle suspension design for automotive. And I said things like “I’ll just double integrate acceleration to get position” to which my Masters supervisor said “Doesn’t work” and I marched on my way to find that no matter what I did position drifted and accelerated away in under 2 seconds. The accelerometer was taped down to a heavy old wooden table and the math said it was flying away at 1000m/s. You have two options then; believe that I invented a new form of transport… or accept that the math didn’t work.

So below is a picture that will take a couple of paragraphs to explain, but the short is Brim Brothers measured force on the cleat in two directions (purple) and could be resolved into a single force and direction (red), but not all this force made torque (green, perpendicular to the crank). There are two angles relative to the world (the reference frame I’m using).

A really good inertial algorithm using accelerometers and gyro’s and any other MEM’s could figure out the angle of the shoe (theat_shoe). Those two things only tell us the vertical component and the horizontal in the “world” reference frame. Without knowing the crank angle very precisely you have no idea what torque is. We know the force and direction relative to the shoe and we can convert that to the world, but not the crank reference frame.


In fact, if we leave all the forces the exact same and only change the crank angle the resulting torque is different and reversed. This isn’t even unrealistic as the “lazy leg” has to be lifted by the other. Try cycling with one leg and see how tiring it is (those with Power Cranks are exempt).


We have zero different information (not really, but I’m getting to that). Accelerometers on the shoe state this is the position and angle using a simple algorithm. Let’s ignore time history integration for a second and only look at data which can determine reliably orientation in 3D space. The shoe angle is known, the force vector is known, but we know nothing about the relative orientation against the crank.

So basic inertial is useless because we can’t resolve torque, so that means two things

1) The Luck shoe is 1/100th where the Brim Brothers were years ago and only senses in one direction therefore it can never accurately get power. Some sort of half baked tuned version

2) Brim Brothers were into some very advanced predictive methods to predict and calculate crank angle

Ignoring point one, lets say we can integrate the velocity. Keep in mind we are moving outside and we can only figure out velocity relative to the world (this is how accelerometers work, the reference is the world with gravity vector being “down”). So we know the velocity which is a circle except when we move forward. Then the velocity profile is more of a spirograph. So from this we can figure out just about where we are in the crank rotation as velocity should be tangent to the crank + some averaged forward velocity + some drift. So assuming the filtering cleans up the drift and we can remove the forward velocity component we now have a vector that tells us crank position.

EXCEPT – well, it’s an estimate of crank position. It’s not necessarily true crank position, and it’s a weak filter since we never directly measure truth. So now we must supplement it some how. We can use the cyclic nature of the accelerometer going up and down and that helps stabilize the reference. OR we can use this to find the top and bottom of the pedal stroke, calculate cadence and use that estimate crank position allowing you to calculate torque.

Except if you change how your feet are angled like getting out of the saddle could change expected orientation, or small vibrations, or a speed bump, or even angle change due to starting to ride up a hill.

This is only one example of the problems associated with all this inertial sensor stuff. I don’t really know for certain what was the real problem, but my speculation puts it in the inertial algorithm area. Any time with a powermeter you have to make a guess like estimate an angle, or estimate a position, the answer is wrong. There hasn’t been a powermeter that works reliability that has an algorithm beyond a rotation measurement and been proven accurate yet. That doesn’t mean their won’t be, but when a company uses the words algorithm in terms of power sensing be wary. My suggestion is to avoid anyone who says  algorithm too much until you can test their product.

However, I also read today about something that is using inertial sensing to figure out position, orientation, velocity, and acceleration… cheaply ($1500 USD for 32 points). It’s a full body motion capture suit (NOITOM) and it is amazing. It’s been used on a lot of videos. Normally motion capture is IR camera’s and reflective balls with a lot of software. This is just inertial, calibrated to positions, and some amazing filtering algorithm. I’m not sure it would be accurate or fast enough for what the Brim Brothers needed, nor know if it would give enough to back out crank angles without multiple placements, but it’s amazing to see a company able to put together a system that must have a build cost of only 500 – 700 dollars so they can sell for $1500 for the 32 node version. Check it out. It’s this tech which could enable a successor.

From Tom’s Hardware