Go Down

### Topic: Self-leveling table (Read 9119 times)previous topic - next topic

#### sbright33

#15
##### Sep 11, 2013, 05:28 pmLast Edit: Sep 11, 2013, 05:35 pm by sbright33 Reason: 1
What is the precision in degrees that a cheap Accelerometer can detect gravity with no movement?  Which model is best for this purpose?  It's OK to average readings since the requirement is not fast.  Can we do a comparison of different IC's?  Does it matter if the X-axis is pointed straight up?  In this case which axis would be most precise (in degrees) X or Y?  Would it be more precise (degrees) if X,Y,Z were all about 45 degrees from up?

#### retrolefty

#16
##### Sep 11, 2013, 05:41 pm

While servicing a minicomputer in the 70s I saw a optical bench table in use at the Lawrence Livermore National Laboratory. It was a massive 12 foot long 8 foot wide thing (or it seemed that large in my memory). You could apply force on one corner by pushing down on it and see the table readjust to level. I asked someone there what it cost and they said if you have to ask you can't afford one.

Lefty

#### AmbiLobe

#17
##### Sep 11, 2013, 06:04 pmLast Edit: Sep 11, 2013, 06:10 pm by AmbiLobe Reason: 1
"a massive 12 foot long 8 foot wide thing " was a metal table for microscopes. The four legs were air-suspension cylinders with diaphrams. See the picture for leveling hardware. You can sit on a corner and it will adapt and level the table, while floating on air (If you weight little).

I have used these air tables that level themselves with hissing air transfers on four corners.
(Image from http://assets.newport.com/web600w-EN/images/1238499.gif )

#### Henry_Best

#18
##### Sep 11, 2013, 07:08 pm

I don't see the big deal. I think the 3 of four legs adjustable should work.

Given an infinitely stiff table and floor, a four-legged table will actually sit on three legs. Of course nothing is really infinitely stiff and typically a table will flex enough to sit on all four legs on a flattish floor. However, as soon as you introduce an uneven floor, you can't get all four legs taking weight unless you have a feedback system. No matter what order to try to adjust the legs, it will always end up with three legs taking the weight. Remember that in the case you describe where you start by adjusting one leg, initially one leg will be in the air and you don't know which one it is.

Lengthen each leg in turn, until it makes the level worse. All legs are then touching the ground. Now shorten each leg in turn until either level or no difference can be detected (leg is off the ground). If leg off ground, readjust other legs and retry.

#### Henry_Best

#19
##### Sep 11, 2013, 07:13 pm

I don't see the big deal. I think the 3 of four legs adjustable should work.
Here -

Mount accelerometer so the axis point across the table corner-to-corner.
In code:
• Retract all adjustable legs
• Extend ONLY the leg across from non-adjustable leg until that axis is level.
- the table will no lean towards one of the remaining legs.
• Now, extend one leg on other axis (the one the table is leanin gtoward) until table hits "level" on that axis.
• Extend remaining leg until table us unlevel on that axis (TOO HIGH on that leg), retract same leg until it becomes level again.

Should now have a level table.

That's exactly how I envision it.

Quote
EDIT:
Worst case, may need to attach some minor "switch/button" on legs to ensure they are all touching the ground. As long as all legs touch ground/floor....I don't see how it would tip from shifting weight.

I don't see any need for switches.

#### Henry_Best

#20
##### Sep 11, 2013, 07:16 pm

However doesn't all this require the user to orient the table so the fixed leg is on the high side of the floor?

The 'fixed' leg will have a manually adjustable foot for just such an eventuality.

#### AWOL

#21
##### Sep 11, 2013, 07:24 pm
Quote
was a metal table for microscopes.

The budget version is a paving slab laid on an inflated bicycle inner-tube.
"Pete, it's a fool (who) looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.
I speak for myself, not Arduino.

#### PeterH

#22
##### Sep 11, 2013, 07:31 pm

as long as the legs all touch the ground

Given a situation where they do not initially all touch the ground, how do you bring all the legs into contact with the ground, unless you have some feedback mechanism?

You can achieve it mechanically, at the cost of considerable complexity, but just stepping legs up and down individually without any feedback doesn't do it.

#### 1ChicagoDave

#23
##### Sep 11, 2013, 07:41 pm

as long as the legs all touch the ground

Given a situation where they do not initially all touch the ground, how do you bring all the legs into contact with the ground, unless you have some feedback mechanism?

You can achieve it mechanically, at the cost of considerable complexity, but just stepping legs up and down individually without any feedback doesn't do it.

Define "feedback".

#### retrolefty

#24
##### Sep 11, 2013, 07:48 pm

as long as the legs all touch the ground

Given a situation where they do not initially all touch the ground, how do you bring all the legs into contact with the ground, unless you have some feedback mechanism?

You can achieve it mechanically, at the cost of considerable complexity, but just stepping legs up and down individually without any feedback doesn't do it.

Define "feedback".

Feedback meaning an active measurement from some sensor that changes with table levelness. Used in the program to change an output that will correct for the error until error equals zero. Probably need multiple feedback values to implement a self-leveling table.

Lefty

#### 1ChicagoDave

#25
##### Sep 11, 2013, 08:30 pm

as long as the legs all touch the ground

Given a situation where they do not initially all touch the ground, how do you bring all the legs into contact with the ground, unless you have some feedback mechanism?

You can achieve it mechanically, at the cost of considerable complexity, but just stepping legs up and down individually without any feedback doesn't do it.

Define "feedback".

Feedback meaning an active measurement from some sensor that changes with table levelness. Used in the program to change an output that will correct for the error until error equals zero. Probably need multiple feedback values to implement a self-leveling table.

Lefty

Right. (Nice definition.)

I would've thought that,
Quote
...accelerometer... ... axis point across the table corner-to-corner.

would have fit that description.

#### PeterH

#26
##### Sep 11, 2013, 10:05 pm
I think I see what you mean. You can just adjust a leg up and down and see whether it affects the level to work out whether that leg is touching the ground. I don't think it's quite as simple as your pseudocode suggests (you can't assume which way the table is going to rock) but I agree that it would be possible to do without any additional sensors.

#### 1ChicagoDave

#27
##### Sep 11, 2013, 10:30 pmLast Edit: Sep 11, 2013, 10:34 pm by 1ChicagoDave Reason: 1

I think I see what you mean. You can just adjust a leg up and down and see whether it affects the level to work out whether that leg is touching the ground. I don't think it's quite as simple as your pseudocode suggests (you can't assume which way the table is going to rock) but I agree that it would be possible to do without any additional sensors.

Right. Code will be interesting, at the least. I do think, with some creative forethought, it could determine which way it is leaning....if while adjusting one leg it caused table to rock towards the other leg....switch parameters to compensate for that....etc....
But, I think what I am assuming (right or wrong?) is that the creator of this leveling table will be the one using it, and will be present while it is 'leveling'. So, that person can sort of "help" it along by making sure a few of these other variables are under control. So, no, it would not be completely & reliably 100% self leveling.  ....that would be just a tad more complex.  :~

But very cool!
--

#### Henry_Best

#28
##### Sep 11, 2013, 10:59 pm

But, I think what I am assuming (right or wrong?) is that the creator of this leveling table will be the one using it, and will be present while it is 'leveling'. So, that person can sort of "help" it along by making sure a few of these other variables are under control. So, no, it would not be completely & reliably 100% self leveling.  ....that would be just a tad more complex.  :~

But very cool!
--
You assume correctly. It will be my table and I would be the one setting it up.
Quote

That's probably on gimbals with a large weight hanging under it. No electronics needed.

Now that the basic logic is sorted, how would I mechanically drive a bolt (in both directions) with a stepper motor, seeing that the bolt will move up and down relative to the leg. Obviously, I cannot fix the motor to the leg unless some sort of sliding mechanism is used.

#### Henry_Best

#29
##### Sep 11, 2013, 11:03 pm

I think I see what you mean. You can just adjust a leg up and down and see whether it affects the level to work out whether that leg is touching the ground.
Correct.
Quote
I don't think it's quite as simple as your pseudocode suggests (you can't assume which way the table is going to rock)
You can't assume it, but you can detect it.

Go Up