OpenServo.com Forum Index OpenServo.com
Discussion of the OpenServo project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Question about precision and repeatability
Goto page 1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    OpenServo.com Forum Index -> Hardware
View previous topic :: View next topic  
Author Message
zoidicus



Joined: 25 Jan 2008
Posts: 2

PostPosted: Fri Jan 25, 2008 10:09 pm    Post subject: Question about precision and repeatability Reply with quote

How good can linear potentiometers possibly be, in a hobby-friendly price range? Lots of people talk about servo resolution, but that's not at all the same as accuracy.

I've looked into OpenServo, and other real digital servos such as the AX-12+. I've also pondered the "digital" hobby servos (still PWM controlled), but if they're all based off pots, none can be any better than the pot itself.

My current application swings a range finder and feeds back range and distance values. After much circuitry experimentation and mathematical backflips, I have very accurate, linear distance readings. To my dismay, the servo I'm using (for aiming) has very bad angular linearity, and I'm wondering how much I have to spend to get a spot-on servo.

For reference, I have some stepper motor experience I could draw on for ridiculously precise angles, but I didn't want to endure the current requirements. This is a battery powered (robotics) application.

Are any servos (OpenServo modified or otherwise), capable of .1 degree accuracy (not resolution) across the 180 degree range?
Back to top
View user's profile Send private message
bren



Joined: 01 Jul 2007
Posts: 79

PostPosted: Sat Jan 26, 2008 12:02 am    Post subject: Reply with quote

Quote:
Are any servos (OpenServo modified or otherwise), capable of .1 degree accuracy (not resolution) across the 180 degree range?


You want be able to find any tat fine as 180 degrees at 0.1 would be 1800 positions the best you will find are 1024. I use DX-117 for my biped and there very good but very expensive. All the servo's I used want give you that resolution. I have tried any experiments with my openservo's but I think that you right in thinking most pots aren't accurate for your purpose. But then again some one else here might no some other way.

You could also try replacing the standard POT with a high precision replacement this would probably give you the best solution with a servo with metal gears or build your own with a motor gearbox plus high precision POT.

Bren
Back to top
View user's profile Send private message
zoidicus



Joined: 25 Jan 2008
Posts: 2

PostPosted: Sat Jan 26, 2008 12:21 am    Post subject: Reply with quote

Thanks for the reply. I could actually get away with 0.5 degree res, which 10-bits would handle easily. However, with PWM I have a great deal more resolution (if I actually needed it), and there are "ultra precision" "digital" PWM servos claiming as high as 5900 steps per revolution (JR DS8231), but i still wonder if they're really linear. My current cheapo servo has all the steps-per-rev I need, but the number of steps in one 5-degree arc do not equal the steps in an adjacent 5-degree arc, and that is throwing off my measurements. I don't want to have to plot a curve, particularly a really lumpy one, for every servo I use in this application.

I'll buy a better servo if that will actually solve the problem, but if the final answer is that hobby servos are simply not reasonably linear at any price level, then I'll go for a stepper solution and spend the extra $ on juice.
Back to top
View user's profile Send private message
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1030
Location: Manchester, UK

PostPosted: Sat Jan 26, 2008 8:45 pm    Post subject: Reply with quote

Hi,

The main problem with pots is that they are very noisy. The accuracy gained with a higher quality pot will probably be offset by a lower accuracy ADC reading in hardware. Although we use digital filtering and analysis of the data returned from the AVR, the H-bridges introduce a small error.
As Bren pointed out, with OpenServo you are limited to a 10bit reading, and the AVR uses successive approximation hardware with an accuracy of +/- 2LSB. This will give a total accuracy deviation on die of 1%

While some of these "digital" servos claim the crazy resolutions, in the real world I find that is not really the case. Mechanical play in the gear train, general wear of the bearings and external noise tends to make them significantly lower resolution than the claims. Maybe on paper they can achieve these resolutions, but in real life, not a chance.

The only real solution to your problem (without using a stepper) would be to use an internal encoder inside of the servo. This is on the OpenServo wishlist, but as yet it has not been scheduled for code release. There are also inherent issues with using encoders inside of a servo, such as space and retrofitting issues, but is achievable.

In a nutshell... pots stink.

As for you linearity issue... odd. Pots are designed in such a way thay they should be linear across the range of motion. I will have to look at my cheapo servos to see if I have this issue. I guess the pot is really bad in those servos!

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
wurpfel



Joined: 20 Dec 2006
Posts: 25
Location: swiss

PostPosted: Wed Feb 13, 2008 9:39 am    Post subject: Reply with quote

Hi folkz


I use this 12bit magnetic encoder on a mill with steppers.
now I will make new axis with BLmotors and OPENSERVO-soft.


http://www.austriamicrosystems.com/03products/products_detail/AS5046/description_AS5046.htm


This guys have a sample service Wink
maybe we pool an order??



for the RCservos I use the encoder directly mounted in the rudderaxe of taller airplanes or the 10bit variant in ships. the rudder stays at the position what they have to be Wink

work great, now a new generation of BLmotor have to be integrated,
maybe also under OPENSERVO.

It`s also interesting to see what`s travel a rudder do under load, like fludder or aeroelastic deformations Idea
_________________
not to old to play with scrap
Back to top
View user's profile Send private message
engr.eric



Joined: 06 Apr 2009
Posts: 8

PostPosted: Mon Apr 06, 2009 10:05 pm    Post subject: I just ordered some samples Reply with quote

So I have been looking at open servo for a few weeks now trying to get acquainted with the project.

My biggest concern is the accuracy and repeatability of the position measurement. I have currently been using hs-311 standard servos in a small biped I have been designing and I was dissapointed to say the least with the results I have been getting, and trying to mathematically correct each individual servo works to some degree but still lacks the elegance and functionality I'm looking for from a servo.

I am new to the project so many of my concerns may have already been addressed but the potentiometer feedback seems to be a fundamental hindrance.

I took a look at the AS5046 and it seemed to be a great part so i ordered some samples and ill have to make a pcb at home to test it out, I'm too cheap to buy a demo board, and I have a good background of hardware prototyping and software development.

My biggest goal would be to devise a way to integrate this or a similar encoder into the servo housing itself and interface it to the open servo v3 platform

Let me know if I seem offtrack or anyone else is interested
Thanks!
Back to top
View user's profile Send private message AIM Address
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1030
Location: Manchester, UK

PostPosted: Mon Apr 06, 2009 10:42 pm    Post subject: Reply with quote

Hi engr.eric, and welcome!

This topic has come up more than once on this forum, and with good reason.

You can probably see from my post above that I don't think pots are up to the task, and this sentiment is echoed throughout this forum.

You might want to read this (small) thread where someone proposed using the AS5046 on OpenServo
http://www.openservo.com/forums/viewtopic.php?t=821
Although nothing came of this particular discussion, it wasn't forgotten.
As the AS5046 uses I2C protocol to communicate, we can't use the AVR built in I2C module, as this is already reserved for outside communications. What was discussed off thread was implementing a basic bit banging I2C driver to allow this encoder to work.

another workable alternative is something like this mod
http://www.portlandrobotics.org/howto/quadrature.php?link_id=14&usg=__14VrOtvT34msQAnWleaFgiLc3JM=

This was given great consideration, and unfortunately the discussions lead nowhere. Not many people were interested in hacking a servo to those extremes.

Encoders in general are a real pain to implement, as the current OpenServo software relys on the ADC module for a lot of functions. This problem is remedied in the v3-dev branch, as the system clocks, adc functions, and position measurement modules are now decoupled from the ADC subsystems. Because of this change we can get down to implementing encoder support.

I will be releasing a simple encoder module fairly soon which will show how we can utilise a magnetic hall sensor (Infineon TLE4966) in place of the conventional position measurement. Initially this will allow only standard servo rotation, but will later be expanded to support continuous rotation.

There is still some way to go over implementing all encoder types, but at least we now have a fighting chance of pulling it off.

I highly recommend you use the v3-dev software branch in any future experiments you do, as it will remove some of the obstacles currently presented.

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
jharvey
co-admin


Joined: 15 Mar 2009
Posts: 362
Location: Maine USA

PostPosted: Mon Apr 06, 2009 11:52 pm    Post subject: Reply with quote

Sounds like I should pipe up a bit. I've been looking into the encoder thing as well.

I've been looking at that tree trunk filled with unused PCB space. If the trunk near the branches were a bit wider, it could hold the AS chip. I've been thinking of the AS5043, because it's good enough for me, and is pin compatible for the AS5046.

I've posted some files that include step files for the TSSOP and SSOP forms used by the AS chips. I've also included a rough draft of the KICAD schematic and board layout. The KICAD files are very rough, and not very usable yet. These files can be found here.

http://jaredharvey.com/openservo

Here are some pictures of what I was thinking.







I was thinking of a magnet similar to this.

http://www.amazingmagnets.com/index.asp?PageAction=VIEWPROD&ProdID=345

These folks offer custom magnets, some that are potable. I've been tempted to inquire how much a custom D shaped magnet would cost.

Any one know of a D shaped diametrically magnetized magnet? Something that fits in the POT hole would be nice.
Back to top
View user's profile Send private message Visit poster's website
Cliff



Joined: 23 Jan 2007
Posts: 150
Location: Saratoga, CA

PostPosted: Tue Apr 07, 2009 12:59 am    Post subject: Reply with quote

A few quick comments:

The chip center location needs to be constrained to the center of the pot shaft, not to the servo case.

The pot shaft needs its own bushing/bearing - pot shaft to servo gear connection is too sloppy.

The most useful design would work inside the servo case, but would also work as a stand alone pot for applications using other motor types.

The recommended magnet diameter is equal to or greater than 6mm. If the diameter is smaller, the tolerance for centering the chip to the magnet center gets much tighter (spec. is +/- 10mil with 6mm magnet)

The pot shaft must be non-magnetic or separated from the magnet by non-magnetic material that has a thickness that is, at least, 1/2 the diameter of the magnet.

Notes on magnet requirements can be found here: http://www.austriamicrosystems.com/eng/content/view/download/13858

Cliff
Back to top
View user's profile Send private message
jharvey
co-admin


Joined: 15 Mar 2009
Posts: 362
Location: Maine USA

PostPosted: Tue Apr 07, 2009 10:22 am    Post subject: Reply with quote

About the POT shaft vs servo case. I agree it would be better, I'm not sure if it's required. I like the idea about making an encoder POT. Perhaps we can find and gut a POT, send the shaft to a place to have a custom magnet made, and make our own PCB board to replace the wiper board.

I understand that they make potable magnetic materials, that you pot, then run through a magnetic field to magnetise. I believe the forms either are, or can be, a wax or cast material. So there is a chance we can use an existing POT shaft as a form, for the mold.

One of the problems I see with this, is that the PCB that might fit in a POT, may be to big for the .120 clearance in the tree trunk.

Are there any suggested POT's?
Back to top
View user's profile Send private message Visit poster's website
engr.eric



Joined: 06 Apr 2009
Posts: 8

PostPosted: Tue Apr 07, 2009 9:27 pm    Post subject: Reply with quote

I like the TLE4966 idea. I would assume that you are going to place a magnet on one the gears, then extend the TLE4966 down and sense the gear, 1 tick/pulse for each revolution. I don't know how many revolutions = 1 degree of shaft rotation, but this sounds, if its going to work the way I'm envisioning it, very good.

The only benefit the AS5046 gives is an absolute index position of the shaft when the servo resets as opposed to the TLE4966 method which I'm guessing the start position would be found by the potentiometer then using the TLE4966 to find direction and pulses. I like that since the pulses would be an absolute measurement. That cuts down the math correction of each servo to 1 value for the potentiometer on each servo, and only affects the start index position.

Now i would think that the potentiometer would still drift due to temperature and environment, is this true?

By the way, the AS5046 method would still need a 1 value correction since it would be impossible to make all your servos with the exact same AS5046/magnet placement.

But I like the simplicity of the TLE4966, this seems very reasonable, and you seem to have made significant progress in this direction already. I like having reasonable goals.

Let me know if my assumptions are correct and more importantly if there is anything I can contribute with. I still need to buy an open servo v3 to start experimenting with, the links i found to place an order seem broken. But I do have all the development tools i need, like an mk2 debugger, etc... I've worked a lot with avrs

Thanks
Back to top
View user's profile Send private message AIM Address
ginge
Site Admin


Joined: 14 Jan 2006
Posts: 1030
Location: Manchester, UK

PostPosted: Wed Apr 08, 2009 12:52 am    Post subject: Reply with quote

Quote:
I like the TLE4966 idea. I would assume that you are going to place a magnet on one the gears, then extend the TLE4966 down and sense the gear, 1 tick/pulse for each revolution. I don't know how many revolutions = 1 degree of shaft rotation, but this sounds, if its going to work the way I'm envisioning it, very good.


Exactly right!

Quote:
The only benefit the AS5046 gives is an absolute index position of the shaft when the servo resets as opposed to the TLE4966 method which I'm guessing the start position would be found by the potentiometer then using the TLE4966 to find direction and pulses.


Doing well... 2 for 2

Quote:
Now i would think that the potentiometer would still drift due to temperature and environment, is this true?


Yes, but we can pretty much ignore the pot once we have the initial position. We may want to read it occasionally to see if we missed pulses, but even that should be unlikely to introduce massive error. We at least have a chance of being much closer than pure pot measurements, even if we use both the pot and the encoder simultaneously.

Quote:
By the way, the AS5046 method would still need a 1 value correction since it would be impossible to make all your servos with the exact same AS5046/magnet placement.


Yeah, the thought occured, but i'm not really too sure on how we should go about the one time calibration. It could prove to be fairly tricky without accurate measurement tools on the servo output.


Quote:
Let me know if my assumptions are correct and more importantly if there is anything I can contribute with.


Yes, spot on. If you have some ideas about how we should deal with the encoder and calibration, please express them.

Quote:
I still need to buy an open servo v3 to start experimenting with, the links i found to place an order seem broken. But I do have all the development tools i need, like an mk2 debugger, etc... I've worked a lot with avrs


http://www.robotfuzz.com is the preferred supplier. The Pendragon robotics site is down at the moment. The bad news is a university just purchased the last 200 of them. I am looking at about 8 weeks lead. On the flip side I should be able to reduce the price this time around as I don't need to pay retooling fees.

Barry
_________________
http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/


Last edited by ginge on Wed Apr 08, 2009 10:38 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
jharvey
co-admin


Joined: 15 Mar 2009
Posts: 362
Location: Maine USA

PostPosted: Wed Apr 08, 2009 10:29 am    Post subject: Reply with quote

Sounds like I should get a move on with the PCB order. I just submitted Cliff's latest to FreeDFM, and should hear back shortly. When I place an order, I'm kind of thinking I should do one board to confirm all is OK, then a larger order.

However, Cliff's design feels very good to me, so I'm also tempted to just go for a large order.

Should we try ordering together? I suspect the larger batch size would help keep the component costs down.
Back to top
View user's profile Send private message Visit poster's website
jharvey
co-admin


Joined: 15 Mar 2009
Posts: 362
Location: Maine USA

PostPosted: Wed Apr 08, 2009 10:36 am    Post subject: Reply with quote

engr.eric wrote:
I like the TLE4966 idea.

I'm not quite up to snuff with the TLE4966 idea. I think it's much like the fellow that painted the gear, and used a photo eye, but in this design it uses a magnet instead of the optics. Is that right? So a fair bit of case modification.

If we assume the gears are metal, you could use a variable reluctor approach. This is a very common design used in auto-ignition systems. They basically have a magnet, and the encoder wheel directs the flux such that it passes the hall. They work very reliably and have many designs available to function as a draft design.

I like the idea of a direct POT replacement idea, because it can be used on much more than just this application.
Back to top
View user's profile Send private message Visit poster's website
wurpfel



Joined: 20 Dec 2006
Posts: 25
Location: swiss

PostPosted: Wed Apr 08, 2009 5:37 pm    Post subject: Reply with quote

Hi folkz

the AS504x-devices use one "normal" magnet to read the position with 10 or 12bit accuracy. they also have an analog or quadrature or commutive output. no need to swiss-precission-placement, you can monitore throug service-pins your hotglue work..


also the "center" position can be set by SW, no mech-jerks needed.


when you use the analog output you can directly substitute the original poties.




really simpel way to enjoy 10bit resolution with openservo! Twisted Evil
_________________
not to old to play with scrap
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    OpenServo.com Forum Index -> Hardware All times are GMT
Goto page 1, 2, 3, 4, 5  Next
Page 1 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group