Sports Biomechanics Lab > Blog > Finally finished the bicycle!
Personal tools

Finally finished the bicycle!

by Jason Moore — last modified Dec 27, 2010 03:40 PM

I spent most of Christmas Eve this year testing the complete rigid rider setup on the instrumented bike and it seems to be working, hallelujah!

One of the main aspects of my project is to build an instrumented bicycle capable of collecting data about the dynamics of the bicycle and rider with control inputs in mind. I've been working on building this for just over a year now and have finally got something that is ready to take some data. I didn't get into full swing of the design and construction of the bicycle until about June and for the last 7 months I've been working on it pretty much nonstop (except for my 2 week India vacation and our two week trip to the Netherlands for the Bicycle/Motorcycle conference). Construction photos can be found here: The bike has taken a couple of forms. Luke and I had originally planned to combine both of our bikes into one design, but that didn't play out as planned and we wasted some time trying to make that a reality. We were able to hire Gilbert for the summer to help us get back on track and made lots of progress with his and the undergraduate interns' help. The original goal was to do most of the experiments in the Fall quarter of 2010 so I'm about a quarter (10-11 weeks) behind schedule.
Rigid Rider Instrumented Bicycle
The complete rigid rider instrumented bicycle.


The bicycle is equipped with a multitude of sensors:
  • Inertial Measurement Unit: outputs the three dimensional orientation and angular rotation of the bicycle frame plus the acceleration of one point on the frame and the local magnetic field. The unit is from VectorNav.
  • Steering characteristics: Steer angle with a potentiometer, angular rate about the steer axis, and steer torque
  • Wheel speed with a dc generator
  • Pull force: We can attach a rope to any point on the bicycle and pull for input disturbances and measure the force with a load cell (a custom built amplifier built by Cal Stone in the late 80's amplifies the strain gage signals)
The on-board data aquisition is made up of:
  • Asus EEEPc net book
  • National Instruments NI USB-6218
  • Matlab and customized DAQ software to take data from the VN-100 and NI USB-6218
We are using an Amped Bikes rear hub motor, 7lb 36v lithium ion battery, and their speed controller so that the rider's pedaling doesn't become a confounding factor in the data analysis. The human is restrained from movement with a body cast which is attached to the bicycle frame, magnetic knee restraints and clipless foot pegs.

The good and the bad

Most of the design and construction went fairly smooth (mainly because I helped build a similarly instrumented at TU Delft) but there were some hiccups along the way. Here is some details about what did and didn't work:

Steer Torque

The steer torque measurement design seems to be giving very good signals that are not at all affected by non-torque moments and forces applied to the handle bars and front fork. The zero-backlash telescoping double universal joint from Sterling Instruments does the trick. I also have a "slip" clutch from Sterling Instruments that protects the steer torque sensor and universal joint from being damaged. The clutch is advertised as a slip clutch but it is more akin a break away clutch. When you think of columb friction with a static and sliding coefficient of friction, those aren't usually largely different, especially for metal objects. So if we ever do hit the torque limit (20-23 Nm) we will potentially lose control of the bike. I will test this out though and see if the low slipping torques will be enough to guide the bicycle to safety. The second issue with the slip clutch was that I ordered a custom set clutch for 150 in-lbs +/- 10% but when I tested the clutch after getting it (8 week lead time), the clutch broke away around 260 in-lbs. Turns out that their slip clutch specs are for 1800 rpm which is not stated anywhere in their catalogs. After sending the device back and finally getting to talk to someone about the issue I got I new clutch that breaks away around 180 in-lb for low speeds (of course I had to pay the shipping to get it there and back). The new slip clutch has a little backlash too, so I have to figure out how to take it out. If I do this again, I think I'd make my own slip clutch.
1/28/2011 Update: I found the manufacturer of the slip clutch: and they have much better information on the product than Sterling Instruments. I wish I had found this long ago. I could have bought this more locally through Applied Mechatronics.

Data aquistion

We decided to buy the VectorNav VN-100 IMU to share for each of our bikes and it outputs two types of serial protocols SPI (through the 20 pin header) and RS-232 (through a D-Sub connector, the header or USB). I intended to plug both the VN-100 and the NI USB-6218 in through two usb ports on the EEEPC and sample them simultaneously. But if you want simultaneous sampling, that doesn't work. When we purchased both devices I was under the impression that I could sample the VN-100 with the NI USB-6218 but that turned out to not be so true. I ended up syncing the data after the fact by sampling an identical event with both the VN-100 and the USB-6218. You can read about that on the software design page. If I were to do it again I would buy a DAQ card that can that can sample both SPI and analog data (open source solutions exist: Python and something like LabJack or Arduino). Furthermore, the AHRS capabilities of the VectorNav seem quite limited. It seems to track orientation with its on-board Kalman filter if you just hold it in your hand, but if it is in a noisier environment (like a bicycle with motors and sensors), the orientation measurements are no good, even with lots of attempts at tuning the filter and removing the magnetic noise. I gave up on the AHRS and am simply using it as an IMU. Luke is working on a smarter Kalman filter that I may use on the data after the fact.


I used Matlab's DAQ toolbox to communicate with the USB-6218 and the Serial Toolbox to communicate with the VectorNav. Then I wrote a front end gui to collect data smartly. You can enter in all the info about the run and the data collection is triggered by a button on the handlebar.
Matlab GUI Screenshot
Screenshot of the program used to collect data.
Document Actions


Avatar Posted by Jason Moore at Apr 18, 2011 12:00 PM
Curious.. Were you able to gather any information on our motors as far as torque, speed, efficiency?

reply to information

Avatar Posted by Jason Moore at Apr 18, 2011 12:08 PM
we aren't studying the motors, so no

Add comment

You can add a comment by filling out the form below. Plain text formatting.

Please enter your name.
Enter the word