A sensor that will always tell me which way is down?

I need a small electronic sensor, for a robot that I am building, that will be able to always tell what direction it is pointing in no matter how much it is bounced or twirled arond. It does not need to be too complicated, I just need to be able to always know which way is down. By its nature this robot will never move smoothly, so the sensor needs to be able to work quickly and be able to stand a constantly bumpy ride. I was thinking about something involving Hall-effect transistors, but wanted to get your inputs first.

Here is a site with moderately inexpensive accelerometers/gyroscopes (solid state) which might help.

Have to post some pictures of your bot when you’re finished!!

b.

A couple orthogonal pendulums would work. Each would be connected to a pot. May have to damp the pendulums with some kind of fluid.

Better yet, find a pre-packaged transducer that does all of this for you.

Wow! I know nothing about robotics and I was thinking “rock on a string.” Little did I know there was a better name in “orthogonal pendulum” :slight_smile:

A plumb bob always finds “down”. I have never seen one which was broken and pointed any other way.

A plumb bob on a moving platform does certainly not always point down. Hang a plumb bob from your rear view mirror and drive around a while and see if it always points down. A plumb will point down if it has a still platform long enough for oscillations to die down but that makes it useless for a robot.

A small globe with a lot of metal sensors sticking into it; and enough mercury in the globe to always be able to connect 2 of the sensors.

The problem is that any device which works by measuring down via gravitational force - including a pendulum, mercury switch, or solid-state accelerometer or inclinometer - will only give a true down vector when your robot is not accelerating forwards or backwards. When your robot speeds up or slows down the robot will think it’s being tipped forward or backwards. To get a true downward direction you may have to use some kind of gyroscopic sensor.

Darn it. You guys sure that there is no way to do it without a mechanical sensor? This thing will be moving pretty darned violently and I would like to avoid the complication that a mechanical part would bring.

There’s several books out there on building fighting robots, which might have a solution to your problem. Since the robots tend to operated rather violently, one would think that one of those folks might have come up with a solution.

What about using an Artificial Horizon from an aircraft? They are basically a stabilised gyro and can be either powered electrically or by airflow, they are not very big either. They do suffer very slightly from acceleration forces but it’s minor and should be suitable.

I thought this was what gyroscopes were for?
I remember owning one - once you got it spinning - no amount of violence to it could alter it’s direction.

Yes. Go to the link I gave you. An accelerometer /piezogyro will do what you want, and the link even shows some simple circuits. No mechanical device required. This is how the Segway stands upright. Yes, even when moving.

b.

Don’t Radio-Control helicopters depend on small gyros for stable flight? I bet you can find some inexpensive examples in the back of an RC hobbyist magazine.

The problem is not so easy to solve. Some suggestions:

1> If the robot moves in pretty much in a plane. Have a light source (IR if you must) outside which the robot queries t o find its location/angle. If its not a plane and you need 3D, you’ll need 3 sources.

2> You can make the robot move on a steel (iron) sheet. Put a magnetic sensor to find the down now, but again any acceleration may still disturb your readings, though not to such an extent.

If you could get the sensor far away enough from the robot’s body so that the Earth’s magnetic field does not get too badly distorted, you could measure the magnetic field vector with three Hall sensors. The robot could calibrate this in a position where its orientation is known.