About gyroscopes

Hi,

I’m working on a motion capture project, that needs to measure rotation (not position) of a hand in space. I have a few questions about it :

-drifting problems. Your thread about IMU is interesting, but quite vague. You say ‘use an IMU (inertia measurement unit) rather than just a gyroscope as it helps compensate for drift’. How ? Should i use an average value between the two given angles (one from gyro and one from accelerometer) ?

-There is a lot of gyros in your catalogue. Nothing in the tech specs concerns drift. How to choose ? Is it relied to accuracy ? A 500 deg/sec is better than a 150 ?

-i found the WIImote gyro, the InvenSense IDG-650 available on the net, but not in your catalogue. Have you considered to distribute that item ? It seems to have cheap price and good features, like a scale range of 2,000°/sec (4 times your best product) and they are about to propose a digital output version.

I need the best ratio price/quality for that project. About microcontroller, i’m thinking of the Arduino solution. Is it a good choice in terms of reliabilty and signal stability ?

That’s all for today ! I hope to have a quick answer, because I need your advices to purchase !

Eric

Dear Coleman,

Thanks for your reply, that is very helpful. But i’m not very much advanced, because when i look to your catalogue, there are 10 different brands, with 6,8 different controllers in each. That gives about eighty microcontrollers to compare ! Sorry to tell, but the real tech specs are difficult to find. Why don’t you make a simple comparison chart between your controllers, with speed, resolution, memory and i/o easily viewables ?
According to you, speed processing and resolution are key features. So, which one could you propose ? Which one is really significantly the best ? And which gyro that could fit well with that platform ?
Thanks,

Eric

Dear Coleman

I’ve been actively searching for other solutions. First one, Data Acquisition Boards, which seems to be more powerful than microcontrollers. Another one, the RoBoard, very interesting. Because it has analog inputs, we are evaluating the process power compared to microcontrollers and DAQ (data acquisition boards). What do you think ? Another question : we need more than 8 analog inputs from sensors. What is PWM ? Could it be used as an analog input ?
We are close to our decision, and the RoBoard seems to be the best.
Thanx for your help ! I’m waiting for your answer.

Eric

dear Coleman,

I’m presently studying the SPI sensors solution. According to what you said, they must be better and low the drift because they have a built-in A/D (so i assume that they grab every movement). But the problem is now how to control those sensors. The roBoard has a SPI interface, but it’s the only solution that i found in your catalogue. Do you think it’s a good solution ? Any idea to control them ?
Thanx.

Eric

Hi riton_v,

Welcome to the RobotShop Forum.

The drifting problem is mainly caused by the fact that a microcontroller can only process so much data at a given time, and the values between those readings are lost. The Arduino boards are certainly not the fastest boards and their ADC also presents a problem (if you use an analog sensor).

Using an IMU and well-written code can help significantly with drift (taking an average of the values is a start, but there are far more complex equations out there in an attempt to reduce drift to a minimum. Several projects also use multiple IMUs placed at different angles (for example rotated 45 degrees). and seemingly eliminate drift entirely.

Should you use an Arduino, the ACD converts the analog signal to 1024 unique values. If you use a 150 degree/s sensor (+/- 150 degrees) you would divide 1024 by 300 to get the accuracy. If you use a 500 degree/s sensor, it can pick up a far greater angular rate of change, but the resolution goes down because you are dividing 1024 by 1000 (2x500 degrees/s) to get the accuracy. The greater the ADC conversion (8-bt, 10-bit, 12-bit etc.) the more accurate your readings will be.

We do not yet offer the IDG650. Should it be available through one of our suppliers, we will consider carrying it. Should oneof our existing suppliers already carry it, you may be able to special order it through RobotShop. Your interest has been noted for future product consideration.

The Arduino is an excellent “all around” microcontroller, though the ADC is not as good as it could be. The MEGA uses the ATMega1280, which has 10 bit ADC. You will find that some other microcontrollers offer 12-bit. The ideal situation would be a custom board with 16 bit ADC, a very fast processor and two IMUs (if you only measure rotation, then two gyros).

If you want accurate results with little drift, you will need to do significant research on equations used (start with a “Kalman filter”, then look at research papers on gyroscope drift). If anyone has successfully reduced drift by other means, we welcome them to post here.

Hope this helps,

Hi riton_v,

We have had many requests for comparison tables, which will start to be implemented later this month. These tables will grow in detail and allow you not only to compare microcontrollers, but a range of other products.

The majority of microcontrollers we offer have 10 bit ADC. The Parallax Propeller modules may be the best microcontroller we currently offer fo that task, but programming it may take some time to get used to. The Propeller chips are new and quite powerful. The ideal approach would be to have a 12 bit (or higher) dedicated ADC chip with one channel per sensor output, and a multi-tasking microcontroller, able to read those values almost immediately. Unfortunately we don’t offer all these products yet.

Since you are new to robotics, the Arduino seems to be the best “all around” option, though it won’t be able to provide the fastest ADC. You would pair this with the 6DOF Razor from Sparkfun or the ArduPilot. It is important to note that you won’t be able to reduce drift completely.

Hope this helps,

Hi Eric,

PWM stands for “Pulse Width Modulation” and is generaly associated with digital lines and the timing between on (5v) and off (0V). The A/D on the RoBoard is still 10-bit, but the processor is the fastest we offer, and it can run a standard operating system. There are analog to digital convertors on the market which offer higher resolution and we hope to offer more of a selection. These allow you to use digital I/O with analog sensors. You can connect several Phidget 8/8/8 Interface kits to the RoBoard to give you all the inputs you need.

Hope this helps,