Continuous Rotation Servo Android Studio Encoders

As I discussed in the introduction to servos, one of the consequences of hobby servos' intended use is that rotation range is limited to about 180 degrees. In this post, I will talk about two exceptions to this general rule: continuous-rotation servos and multi-turn servos. Each of these products loses some features in return for increased rotational range, so none of them are the ideal actuators many would like them to be. There are some specialty servos developed for robot applications that get around the limitations, but those servos are not as standardized and do not really fit into the hobby servo category, so I am not going into any more detail on those beyond mentioning that they exist.

Before getting to the details of continuous-rotation and multi-turn servos, I should point out that a large part of what makes a hobby servo a standardized product is the servo interface, but that very interface is not capable of supporting servos that can offer precise position control over an arbitrary number of turns. As a quick review, the servo interface consists of a pulse whose duration (pulse width) corresponds to the desired servo output position. To support arbitrarily many rotations of the output shaft, the pulse would have to get arbitrarily long. If we instead wanted the standard pulse range of 0.5-2.5 ms to represent a very large number of rotations, then a very small variation in the pulse width would correspond to a large movement of the output, making that approach unfeasible.

Continuous-rotation servos

Continuous-rotation servos are basically mutilated normal servos that technically do not deserve to be called servos because they lack the feedback control that is the hallmark of any servo system. Let's begin with a quick review of the basic parts of a servo and how they are logically connected. Physically, the parts look like this:

Identification of the major components of a disassembled servo.

  1. Motor
  2. Gearbox
  3. Position sensor
  4. Motor control electronics

A block diagram shows how the components are logically connected in a closed-loop system, making a complete servo:

A continuous-rotation servo does away with the position sensor (or its connection to the output) and thereby tricks the feedback control circuit into continually driving the motor. For instance, if the feedback value given to the control circuit is fixed to zero degrees, and we tell the servo to go to 45 degrees (remember, we don't get to actually specify degrees in the interface), it will drive the motor in one direction to try to get there; since the feedback sensor always reports zero degrees, the servo will keep rotating until we tell it to go to zero degrees. If we ask for −45 degrees, the servo will turn the other way, and if we ask for −60 degrees, it will turn faster. There is some limited range of pulse widths where we can effectively control the speed of the motor; once we tell the servo to go to a position that is far enough from where it thinks it is, the motor will always just get full power. So to continue the earlier example, telling the servo to go to −60 degrees might make the shaft spin at full speed, and asking for −70 degrees will not get any more speed.

The appeal of continuous rotation servos is that you can get a motor, gearbox, and motor controller in a relatively neat package and for a relatively low price. Many normal servos can be modified for continuous rotation, so a large range of sizes and powers is available. But, keep in mind that the continuous rotation comes at the expense of position control.

Stock continuous-rotation servos

A few manufacturers have responded to the demand for continuous-rotation servos by offering them as stock items needing no user modifications. These servos often replace the feedback potentiometer with a trimmer potentiometer that can be accessed through a hole in the side of the servo case. The trimpot allows the user to calibrate the servo so that it does not move when it receives a 1.5 ms pulse.

Continuous-rotation servo PCB showing trimpot installed instead of feedback potentiometer.

These servos manufactured for continuous rotation are convenient since you do not have to make any modifications, but I have only seen them in standard-size versions and without any of the exotic or high-performance options like special gear materials or high-power motors.

Modifying servos for continuous rotation

Most servos are not made for continuous rotation, but many can be modified for continuous rotation. The amount of effort required to modify a servo can vary greatly, so make sure you look into the feasibility of modifying a servo before getting too carried away with your plans for it. There are many step-by-step tutorials online for specific servos, so I recommend checking to see if someone has already modified the particular model you are considering modifying. Generally speaking, you need to be able to do two things:

  1. Enable the gearbox to mechanically allow for full rotations.
  2. Disconnect the feedback potentiometer from the output shaft

The first step can be arbitrarily difficult; for instance, this servo would be almost impossible to modify for continuous rotation:

The final gear on this servo does not have teeth all the way around it.

This particular picture is of an S04 servo that is maybe five years old, so it is not necessarily representative of the final gear being used in current units. Fortunately, the final gear not allowing continuous rotation is relatively rare. What is common is some kind of end stop mechanism that prevents the servo from rotating beyond the range supported by the potentiometer, which typically has weak end stops that would be destroyed if a servo went past its limits. This mechanism is most commonly some kind of nub that is molded into a plastic final gear or a dowel pin in a metal gear:

Over-rotation prevention pin on a metal-geared servo.

The protrusion on the final gear works with corresponding end stops in the servo case. Cutting or grinding the nub off of the output gear is often enough to enable full rotation, but you might need to check the case to make sure nothing interferes with the final gear.

The other basic step in modifying a servo for continuous rotation is decoupling the potentiometer from the final output shaft. This can also be arbitrarily difficult, especially if the potentiometer shaft mechanically supports the output shaft (servos with ball bearings are more likely to mechanically work well without a potentiometer in place). The servo control circuit board still needs to be given a fake position feedback, so you must keep the potentiometer in the circuit, with the shaft in the middle of its range, or replace the potentiometer with a pair of equal resistors.

Full-turn and multi-turn servos

Unlike continuous-rotation servos, multi-turn servos are genuine servos in that they allow closed-loop position control over one or more full revolutions of the output shaft. However, because of the interface limitation I mentioned earlier and because the feedback mechanism is still a potentiometer, you can get at most a few full rotations.

A multi-turn servo is effectively a normal servo with a multi-turn potentiometer, which is a potentiometer that can be turned through multiple revolutions. In practice, a multi-turn servo can use a normal (i.e. one-turn, which is actually more like 270 degrees) potentiometer that is not connected directly to the output but is instead connected by gears such that the servo output turns several rotations for one rotation of the potentiometer. Because the output can turn through several rotations, the servo cannot have the mechanical end stops that regular servos have, so some kind of clutch is required to prevent destruction of the potentiometer if the servo goes out of range. This means that if a multi-turn servo goes past its limit, its absolute position can get reset since the output shaft gets rotated without corresponding rotation of the potentiometer (which is at its limit).

The main tradeoff with multi-turn servos is that you get more rotational range for less angular resolution and accuracy. That means that if you have a system, including your servo pulse generation scheme, that gives you better than half-degree resolution on a normal servo (say you have 256 positions covering 90 degrees), you will get almost two degrees between positions on a full-turn servo (since those 256 positions are now spread over the full 360 degrees).

Like stock continuous rotation servos, multi-turn servos are relatively rare. They are apparently targeted toward model sailboats, so they are often called sail winch servos. Pololu carries the GWS S125, but GWS makes it relatively difficult to keep in stock. I found only a few other models at major hobby stores, and they tend to have much higher prices than normal servos. So, while a multi-turn servo can be perfect if the size and performance happens to match your project, you are probably out of luck if you need a micro multi-turn servo or a high-speed multi-turn servo.

princehistion.blogspot.com

Source: https://www.pololu.com/blog/24/continuous-rotation-servos-and-multi-turn-servos

0 Response to "Continuous Rotation Servo Android Studio Encoders"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel