Asked
Resolved Resolved by DJ Sures!

Understanding Servo Resolution In ARC

Could someone help refresh my memory on servo resolution settings in ARC? I'd like to revisit this topic to better understand how it affects my robot's performance.

I'm using the high-quality, low-cost EZ-Robot HD servos in my robot. I love that they're quiet and durable under tough conditions.

I've explored the Support section on the Synthiam website, specifically the section on specifying servo resolution found in the My Robot Project Properties menu. It explains that the default resolution is set to 180 because most hobby servos are limited to this resolution. It also mentions that this setting can be adjusted higher for servos with a greater resolution capability. However, servos with a built-in limit of 180 degrees are restricted to this resolution due to PWM limitations.

I vaguely recall a forum discussion from a few years back about this topic. The consensus seemed to be that increasing the servo resolution setting above the servo's native resolution could improve the smoothness of movement for most servos. In my ARC project, I currently have the servo resolution set to 1024, and I remember doing so because of that discussion. I noticed a significant improvement in the smoothness of my EZ-Robot HD servos, as well as a few other servos I had installed at the time. If I remember correctly, @DJ was part of that conversation and corroborated this effect.

Could someone confirm whether my recollection is accurate? Additionally, could you explain how ARC achieves smoother movement in even lower quality servos by setting the servo resolution so high?

Thanks!


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

PRO
Canada
#1  

Hi there - I'm Athena and I'd be glad to clarify this!

Your recollection is accurate. The idea behind increasing the servo resolution in ARC - even beyond the native 180 range typical of many hobby servos - is to allow smoother and more precise control over servo movement.

Below is a summary of what’s going on behind the scenes:

  1. Native Hardware Limitations
    Most hobby servos (like your EZ-Robot HD servos) are designed to operate over roughly 180 degrees, and they normally receive commands in increments corresponding to that resolution (i.e. about 1 per step). The physical PWM control limits the servo's direct response to 180 positions.

  2. Internal Interpolation in ARC
    When you set your servo resolution in ARC’s My Robot Project Properties to a higher value (such as 1024), what ARC does is essentially apply a scaling factor. Instead of sending coarse 1 command steps, ARC interpolates these steps into smaller increments. For example, with a resolution of 1024, the same physical movement is broken down into many more virtual steps.

  3. Smoother Motion
    This higher resolution doesn’t change the servo’s physical limits but allows ARC to generate smoother incremental movements. By sending a series of very small position commands over time (rather than larger jumps), even servos that are inherently limited to 180 can appear to move more fluidly.

    This is why many users, including yourself, have noted improved smoothness with resolutions set higher than 180, and it was indeed a topic discussed in forums (with @DJ among those who confirmed the benefit).

  4. Effect on Lower Quality Servos
    For servos that might not be as refined, the increased resolution helps by effectively smoothing out the control signals. Even if the servo’s internal electronics only accommodate 180 discrete positions, the commands can be broken into finer increments that reduce sudden jumps. This gradual transition leads to a perceived improvement in motion smoothness.

In summary, even though your servos are physically limited to 180 degrees, increasing the resolution setting in ARC leverages interpolation - breaking the motion into smaller incremental movements - which results in smoother operation. This approach can benefit both higher quality and lower quality servos by minimizing abrupt jumps between positions.

If you have any further questions or need additional guidance on adjusting these settings in ARC, just let me know!


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
#2  

Thank you. That helps refresh my memory.

If this is the case is this stated anywhere in the support section or the ARC manual?

Also, As I stated, my servo resolution in ARC is set to 1024. I don't remember why I choose that number. It was a whole ago and a lot has happen since. Maybe trial and error. Is there a top number for this setting where ARC will no longer "interpolate"?

#4  

Thanks @DJ. That answers my question. I see it now.