by StuartL » Fri May 23, 2008 8:13 pm
by StuartL
Fri May 23, 2008 8:13 pm
Upon receipt of Jon's IMU board I purchased the Sparkfun 5-degrees of freedom IMU. I bought it in the US since I'm here for business. I didn't bother with the third degree of gyroscopic freedom just because it wasn't really relevant to what I'm doing.
The IMU (found
here) is available either as the bare board (my choice) or the complete unit.
As supplied the bare board came with the fittings, hardware and mount to slip nicely into the chest cavity of the standard humanoid. It still leaves enough space to bundle up the 6-way adapter and the wires comfortably. After soldering the 5-deg IMU onto Jon's bare IMU host board it slotted in first time.
A little care is required to ensure that the nuts, washers and spacers are installed correctly as they have notches to avoid impeding on components on the board, but this is obvious when you assemble it. If it doesn't fit easily you've made a mistake
Integrating the IMU into my software was trivial. Jon's host software emulates an approximation of the AX12/AXS1 behaviour, allowing the read/write/ping software to work with little modification. Because of the library previously written (which I promise will come out soon!) putting the IMU code in was very very easy, requiring the addition of a function prototype, a C struct and a four-line function.
To my surprise everything worked first time. The accelerometers and gyros are sensitive enough that you get approx 1-2 bits of noise when your robot is stationary and a good degree of response when it's moved. The sensors are stable enough to accurately determine gravity orientation.
1G is approximately '64' on my accelerometers, with about 10% tolerance across the 3 axis. Some simple calibrations in a header file flatten the profiles and a 8-cycle (running at 40Hz, so about fifth of a second) smoothing loop makes everything nicely stable. The third gyroscope axis (rotation about the z-axis) unsurprisingly generates a LOT of noise as it's completely unconnected, but zeroing that in software costs only one cycle, approx 160 nano-seconds, an affordable cost
In short, while relatively expensive compared to home-brewing an IMU, the unit works perfectly out of the box, fits nicely into the chest and most valuably doesn't involve you arguing about PCB manufacture prices with your choice of manufacturer or debugging boot loaders or bus software for weeks on end. I'm now wondering about a second one for the quadruped...
Upon receipt of Jon's IMU board I purchased the Sparkfun 5-degrees of freedom IMU. I bought it in the US since I'm here for business. I didn't bother with the third degree of gyroscopic freedom just because it wasn't really relevant to what I'm doing.
The IMU (found
here) is available either as the bare board (my choice) or the complete unit.
As supplied the bare board came with the fittings, hardware and mount to slip nicely into the chest cavity of the standard humanoid. It still leaves enough space to bundle up the 6-way adapter and the wires comfortably. After soldering the 5-deg IMU onto Jon's bare IMU host board it slotted in first time.
A little care is required to ensure that the nuts, washers and spacers are installed correctly as they have notches to avoid impeding on components on the board, but this is obvious when you assemble it. If it doesn't fit easily you've made a mistake
Integrating the IMU into my software was trivial. Jon's host software emulates an approximation of the AX12/AXS1 behaviour, allowing the read/write/ping software to work with little modification. Because of the library previously written (which I promise will come out soon!) putting the IMU code in was very very easy, requiring the addition of a function prototype, a C struct and a four-line function.
To my surprise everything worked first time. The accelerometers and gyros are sensitive enough that you get approx 1-2 bits of noise when your robot is stationary and a good degree of response when it's moved. The sensors are stable enough to accurately determine gravity orientation.
1G is approximately '64' on my accelerometers, with about 10% tolerance across the 3 axis. Some simple calibrations in a header file flatten the profiles and a 8-cycle (running at 40Hz, so about fifth of a second) smoothing loop makes everything nicely stable. The third gyroscope axis (rotation about the z-axis) unsurprisingly generates a LOT of noise as it's completely unconnected, but zeroing that in software costs only one cycle, approx 160 nano-seconds, an affordable cost
In short, while relatively expensive compared to home-brewing an IMU, the unit works perfectly out of the box, fits nicely into the chest and most valuably doesn't involve you arguing about PCB manufacture prices with your choice of manufacturer or debugging boot loaders or bus software for weeks on end. I'm now wondering about a second one for the quadruped...