Search  
Tuesday, January 06, 2009 ..:: Forum ::.. Register  Login
 HomePage Minimize

 Print   

 Products Minimize

 Print   

 MSRS Minimize

 Print   

      
 RoboticsConnection Forum Minimize
SearchForum Home
  Discussions  Serializer Robot Controller  Servo Control...
 Servo Control
 
 10/18/2007 4:35:56 PM
robtWagner
6 posts


Servo Control
How can one query the servo position?  I don't see a command for that in the manual.  Also, what units does the [-99,100] range refer to?  I attached a servo protractor to one of my servos and issued a few move commands.  It seems highly nonlinear.

Bob
 10/26/2007 11:37:14 AM
jason
158 posts
5th


Re: Servo Control

Bob,

Sorry to take so long to respond...We have had higher than usual order volume, and we're just now getting caught up.

Currently you cannot query servo position.   You must simply store the last position that you sent to the Serializer (if you indeed get an ACK back).

The -99 to 100 range refers to the position range of the servo, where -100 is disabled.   A position of -99 sets the position of the servo all the way to the left, 0 centers the servo, and 100 sets the servo position all the way to the right.  Values between these extents will command the servo to position itself in between.  So, if you command the servo to go to position 50, then it's going to rotate the servo halfway between 0 and 100.  We decided to go with this range to make it easier to visualize the servo's position (instead of using 500 usec to 2500 usec).

I see that I need to add a better explanation to the Serializer User Guide.  I'll do that this weekend, as I have some other updates I need to make.

What do you mean by "it seems highly nonlinear"?

Best Regards!


Jason Summerour
President,
Summerour Robotics Corp
Microsoft MVP
www.roboticsconnection.com
 10/27/2007 12:45:56 PM
robtWagner
6 posts


Re: Servo Control
Thanks for taking the time to reply.  What I meant by "highly nonlinear" was the impulse response.  I attached a servo protractor (http://www.servocity.com/html/servo_protractor.html ) to determine the mapping between the input range [-99,100] and the output range in degrees.  From the manual, I did expect the behavior that you just described.  What I didn't expect was the variance in the steps in between.  More explicitly, from position zero, I commanded the servo using the Serializer interface to go to postion 50 in steps of 10 and noted the value of the protractor.  I noticed a variance in the amount of movement in the measured angle for each step, which I did not expect.  It was a nonlinear increase as the input value increased.  I didn't write down the numbers.  I can perform another test when I get some free time.

Have you done similar tests?

Thank you,
Bob
 10/27/2007 1:07:49 PM
ringo
36 posts


Re: Servo Control

What we did was to make sure the pulse width the serialzer generates is linear from -99 to 100. What the servo does with the pulse we cannot control. What brand and part number are you using and I'll see if I have something similar to test with.

Ringo


Ringo Davis, Hardware Technical Lead RoboticsConnection.com
 10/27/2007 2:50:52 PM
robtWagner
6 posts


Re: Servo Control

I have a HiTec digital servo part no. HS-5475HB that has been modified to have a range of 180 degrees by HiTec.  I just did some more tests.  Using the both the Serializer and the SSC-32 servo controller board I have found the free range to be [-75,75] degrees.  I’m new to working with these types of servos so I don’t know if that is normal or not.

Anyway, my first test exhibited the behavior that I was seeing before.  If the input vector is x = [0, 10, 20], I got  y1  = [6, 14, 53], y2 = [8, 53, 53] for two separate trials, where x is the is the value “servo 2:x” and y are the readings on the protractor for different tests after power cycling the board. 

I also tried the negative range with much better consistency: x = [0:-10:-90], y  = [8, 0, -10, -19, -28, -37, -46, -55,- 63, -73].  After that I did another test in the positive direction and got better results x = [0:10:70], y = [6,14,24,33,42,51,60, 69].  I’m using Matlab notation here.

The negative direction looks good.  But, It looks like there is some intermittent behavior in the positive direction.  These are always the hardest to track down.

I have a couple of other servos I can try at some point.  One is a standard HS-5475HB and the other is HS-475HB.

  Discussions  Serializer Robot Controller  Servo Control...

SearchSearch  Forum HomeForum Home    Print   

Copyright 2004-2007 Summerour Robotics Corp   Terms Of Use  Privacy Statement
DotNetNuke® is copyright 2002-2009 by DotNetNuke Corporation