Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

Newbie Question: Gyros, Accelerometers, IMUs...

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
7 postsPage 1 of 1
7 postsPage 1 of 1

Newbie Question: Gyros, Accelerometers, IMUs...

Post by Kess » Tue Nov 20, 2007 10:28 pm

Post by Kess
Tue Nov 20, 2007 10:28 pm

I'm just getting to grips with a new Bioloid and I'm keen to experiment with its programming with the aim of making it as autonomous as possible. I'm anticipating that I'll need some kind of sensor(s) to provide feedback to the CPU regarding the robot's orientation and state of balance.

I've seen mentions of gyros, accelerometers, IMUs, tilt sensors and so on. Do these all do pretty much the same job or does each perform a unique function? Can anyone provide (or point me to) a quick summary of the pros and cons of each type of device in a robotic application?

Thanks,
Kess
I'm just getting to grips with a new Bioloid and I'm keen to experiment with its programming with the aim of making it as autonomous as possible. I'm anticipating that I'll need some kind of sensor(s) to provide feedback to the CPU regarding the robot's orientation and state of balance.

I've seen mentions of gyros, accelerometers, IMUs, tilt sensors and so on. Do these all do pretty much the same job or does each perform a unique function? Can anyone provide (or point me to) a quick summary of the pros and cons of each type of device in a robotic application?

Thanks,
Kess
Kess
Robot Builder
Robot Builder
Posts: 18
Joined: Sun Nov 18, 2007 7:56 pm
Location: The Cotswolds, UK

Post by JonHylands » Wed Nov 21, 2007 1:32 am

Post by JonHylands
Wed Nov 21, 2007 1:32 am

Okay, I'll throw in my two cents here...

A gyro measures rotational velocity. They are often called "rate gyros" because they measure the rate of change in angle.

An accelerometer measures linear acceleration. When the only acceleration present is due to gravity, an accelerometer becomes a tilt sensor.

An IMU (inertial measurement unit) is a composite sensor that combines rate gyros and accelerometers, typically on six axes. Three linear axes of acceleration and three rotational axes are measured.

IMUs are often used in general robotics work for dead reckoning navigation. In humanoid robotics, we tend to use them for "balance" sensors, so the robot can sense and respond to outside forces acting on it.

These sensors have gotten much smaller and cheaper over the past couple years, to the point where you can buy a full six-axis IMU that is custom designed for the Bioloid humanoid for $250. (Disclaimer - yes, I make and sell this six-axis IMU)

- Jon
Okay, I'll throw in my two cents here...

A gyro measures rotational velocity. They are often called "rate gyros" because they measure the rate of change in angle.

An accelerometer measures linear acceleration. When the only acceleration present is due to gravity, an accelerometer becomes a tilt sensor.

An IMU (inertial measurement unit) is a composite sensor that combines rate gyros and accelerometers, typically on six axes. Three linear axes of acceleration and three rotational axes are measured.

IMUs are often used in general robotics work for dead reckoning navigation. In humanoid robotics, we tend to use them for "balance" sensors, so the robot can sense and respond to outside forces acting on it.

These sensors have gotten much smaller and cheaper over the past couple years, to the point where you can buy a full six-axis IMU that is custom designed for the Bioloid humanoid for $250. (Disclaimer - yes, I make and sell this six-axis IMU)

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by Kess » Wed Nov 21, 2007 8:23 am

Post by Kess
Wed Nov 21, 2007 8:23 am

Jon,

Thanks for that, it summarizes things nicely. From my point of view an accelerometer sounds most useful, although a full-blown IMU would be good - I'll take a look at yours.

One other question. Have you found that the bus on a bioloid can cope with everything? I mean, if you have 18 or more AX-18's to manage, and perhaps an AX-S1, and add an IMU, then even at 1Mbps I'm wondering if the single bus could start to run out of bandwidth.

Kess
Jon,

Thanks for that, it summarizes things nicely. From my point of view an accelerometer sounds most useful, although a full-blown IMU would be good - I'll take a look at yours.

One other question. Have you found that the bus on a bioloid can cope with everything? I mean, if you have 18 or more AX-18's to manage, and perhaps an AX-S1, and add an IMU, then even at 1Mbps I'm wondering if the single bus could start to run out of bandwidth.

Kess
Kess
Robot Builder
Robot Builder
Posts: 18
Joined: Sun Nov 18, 2007 7:56 pm
Location: The Cotswolds, UK

Post by jerome » Wed Nov 21, 2007 10:17 am

Post by jerome
Wed Nov 21, 2007 10:17 am

Current MEMS accelerometers seem to be very precise. With some filtering I have the impression we could achieve to get the rotational speed as precisely as a gyro. Is this true?

Of course an accelerometer cannot measure rotation in the plane perpendicular to gravity.

Jerome.
Current MEMS accelerometers seem to be very precise. With some filtering I have the impression we could achieve to get the rotational speed as precisely as a gyro. Is this true?

Of course an accelerometer cannot measure rotation in the plane perpendicular to gravity.

Jerome.
jerome
Robot Builder
Robot Builder
Posts: 16
Joined: Fri Oct 26, 2007 12:56 pm

Post by JonHylands » Wed Nov 21, 2007 12:12 pm

Post by JonHylands
Wed Nov 21, 2007 12:12 pm

Kess,

It really depends on how often you are trying to update everything, and (more specifically) get updates from everything.

It turns out that there's lots of bandwidth, the real problem is latency in the USB drivers.

Jerome,

Accelerometers cannot measure rotation. If you are rotating around a point that is not the center of the device, you can measure a certain amount of centripetal acceleration, but that's not the same thing as what a gyro measures, and it is indistinguishable from a sideways push.

- Jon
Kess,

It really depends on how often you are trying to update everything, and (more specifically) get updates from everything.

It turns out that there's lots of bandwidth, the real problem is latency in the USB drivers.

Jerome,

Accelerometers cannot measure rotation. If you are rotating around a point that is not the center of the device, you can measure a certain amount of centripetal acceleration, but that's not the same thing as what a gyro measures, and it is indistinguishable from a sideways push.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by jerome » Wed Nov 21, 2007 2:00 pm

Post by jerome
Wed Nov 21, 2007 2:00 pm

Jon,

In a not too shaky environment, the mean acceleration the sensor measures is gravity. Knowing the direction of gravity allows you to know the posture of the sensor (even if the direction in the plane perpendicular to gravity cannot be resolved). I tried this with a Wii remote, and I can see the acceleration increasing along one axis, and decreasing along the other when I incline the Wiimote. And it seems fairly precise. I did once the calculation, but all I remember is that it is somewhat precise with current sensors ...

Of course the acceleration must be heavily filtered, probably averaged over 1/3 to 1 second (roughly). So I am not sure if it is valuable to determine if the robot is falling.

Jerome (thinking as writing)
Jon,

In a not too shaky environment, the mean acceleration the sensor measures is gravity. Knowing the direction of gravity allows you to know the posture of the sensor (even if the direction in the plane perpendicular to gravity cannot be resolved). I tried this with a Wii remote, and I can see the acceleration increasing along one axis, and decreasing along the other when I incline the Wiimote. And it seems fairly precise. I did once the calculation, but all I remember is that it is somewhat precise with current sensors ...

Of course the acceleration must be heavily filtered, probably averaged over 1/3 to 1 second (roughly). So I am not sure if it is valuable to determine if the robot is falling.

Jerome (thinking as writing)
jerome
Robot Builder
Robot Builder
Posts: 16
Joined: Fri Oct 26, 2007 12:56 pm

Post by JonHylands » Wed Nov 21, 2007 3:15 pm

Post by JonHylands
Wed Nov 21, 2007 3:15 pm

Yes, of course, that is what I said in my original post (acceleration due to gravity).

The point is not that you can't use an accelerometer as a balance sensor, it is that an accelerometer does not measure rotation, and a gyro does.

- Jon
Yes, of course, that is what I said in my original post (acceleration due to gravity).

The point is not that you can't use an accelerometer as a balance sensor, it is that an accelerometer does not measure rotation, and a gyro does.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada


7 postsPage 1 of 1
7 postsPage 1 of 1