Difference between revisions of "How to Add Encoders to a Robot"
(→Encoder Hardware) (Tag: Visual edit) |
(Tag: Visual edit) |
||
(21 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | This is a practical guide to adding [[encoders]] to a robot. Encoders are | + | This is a practical guide to adding [[encoders]] to a robot. Encoders are attached to a robot's drive motors in order to track wheel speed, distance traveled, and/or implement [[Speed Control#Closed Loop|closed loop speed control]]. |
In addition to the encoders themselves, extra components and circuitry are needed to interface with and keep track of the encoder output over time. This guide will cover how to select the correct options to add encoders to a robot kit and go into more detail about the required components. | In addition to the encoders themselves, extra components and circuitry are needed to interface with and keep track of the encoder output over time. This guide will cover how to select the correct options to add encoders to a robot kit and go into more detail about the required components. | ||
==Adding Encoders to a Robot Kit== | ==Adding Encoders to a Robot Kit== | ||
− | If you're purchasing a robot from SuperDroid Robots | + | If you're purchasing a robot from SuperDroid Robots and want to add encoders to the robot then follow these guidelines when selecting options. |
− | *Motors: Make sure to select motors with encoders! Most kits will have options for motors with and without encoders. To have encoders on the robot, you will need to select an option that says "with Encoders". | + | *[[Motors]]: Make sure to select motors with encoders! Most kits will have options for motors with and without encoders. To have encoders on the robot, you will need to select an option that says "with Encoders".<br /> |
− | [[File: | + | [[File:motorOptionExample2.png|center|frame|Example Motor Options on an IG42 Robot Kit]] |
− | * | + | *[[Motor Controller Support|Motor Controllers]]: We offer three types of motor controllers with our robot kits: Roboclaw, Sabertooth, and Roboteq. Both Roboclaw and Roboteq motor controllers are able to connect directly to the encoders, keep track of the number of pulses observed, and perform closed loop speed control on the motors using the encoder information. Sabertooth motor controllers are not able to directly connect with encoders. We address this by instead using an Encoder Buffer Board and a microcontroller together to read encoder pulses. We do not provide a closed loop speed control solution with Sabertooths. <br />If you are using encoders, we highly recommend going with a '''Roboteq''' motor controller as there is a plethora of built-in functionality and failsafe options in the software. We do, however, offer encoder options for each motor controller. <br />[[File:motorControllerOptionExample.png|center|frame|Example Motor Controller Options on an IG42 Robot Kit]] |
− | *Encoder Options: | + | *Encoder Options: Pick the Encoder Kit that corresponds to your selected Motor Controller. Note that there are three versions of Sabertooth Hookup Kit (<sdr item id=3122>Dual</sdr item>, <sdr item id=3123>Triple</sdr item>, and <sdr item id=3124>Quadruple</sdr item>) because they each come with a different version of the <sdr item id=1523>Encoder Buffer Board</sdr item> based on the number of wheels that need to be monitored. The <sdr item id=3121>Roboclaw</sdr item> and <sdr item id=3120>Roboteq</sdr item> kits are only designed for 2 encoders and will simply come in a set of 2 when three or four wheels will have encoders.<br /> |
+ | [[File:encoderKitOptionExample.png|center|frame|Example Encoder Kit Options on an IG42 Robot Kit]] | ||
<br /> | <br /> | ||
Line 19: | Line 20: | ||
===Motors with Encoders=== | ===Motors with Encoders=== | ||
− | [[File:TD-044-078 ig42 motor encoders.jpg|thumb|230x230px|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Our IG32, IG42, and IG52 gear motors come in variants with and without encoders. In the picture to the right, the encoder is inside the black end cap. There are four wires coming out of the encoder unit that provide access to the encoder power and [[Encoders#Encoder | + | [[File:TD-044-078 ig42 motor encoders.jpg|thumb|230x230px|link=https://wiki.sdrobots.com/index.php/File:TD-044-078_ig42_motor_encoders.jpg]]Our IG32, IG42, and IG52 gear motors come in variants with and without encoders. In the picture to the right, the encoder is inside the black end cap. There are four wires coming out of the encoder unit that provide access to the encoder power and [[Encoders#Encoder Output|quadrature]] A and B pulse signals. |
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
Line 51: | Line 52: | ||
===Roboteq Motor Controller=== | ===Roboteq Motor Controller=== | ||
Roboteq motor controllers include built-in functionality to connect directly with the encoder A and B quadrature signals, detect pulses, and maintain a count of the number of pulses observed. Roboteqs can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]]. | Roboteq motor controllers include built-in functionality to connect directly with the encoder A and B quadrature signals, detect pulses, and maintain a count of the number of pulses observed. Roboteqs can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]]. | ||
+ | [[File:roboteq db15 encoder schematic.png|center|frame|Roboteq SDC2160 with Encoders Schematic]] | ||
+ | <br /> | ||
+ | |||
+ | *<sdr item id=1169> RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)</sdr item> | ||
+ | *<sdr item id=1834> RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)</sdr item> | ||
+ | *<sdr item id=2233> RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)</sdr item> | ||
+ | |||
===Roboclaw Motor Controller=== | ===Roboclaw Motor Controller=== | ||
− | Roboclaw motor controllers are able to connect directly to the encoder quadrature signals and keep track of the number of pulses observed. Roboclaws can use the measured encoder data to perform [[Speed Control#Closed Loop| | + | Roboclaw motor controllers are able to connect directly to the encoder quadrature signals and keep track of the number of pulses observed. Roboclaws can use the measured encoder data to perform [[Speed Control#Closed Loop|closed loop speed control]]. |
− | + | [[File:Roboclaw Encoders Schematic.png|center|frame|Roboclaw 2x15 with Encoders Schematic]] | |
− | + | <br /> | |
− | <sdr item id= | + | *<sdr item id=2627>RoboClaw 2x15A (TE-331-215)</sdr item> |
+ | *<sdr item id=2629>RoboClaw 2x30A (TE-331-230)</sdr item> | ||
+ | *<sdr item id=2628>RoboClaw Solo 30A Motor Controller (TE-331-130)</sdr item> | ||
− | + | ===Encoder Buffer Board=== | |
+ | This board is always an option when the robot's motor controller (such as a Sabertooth) does not support encoder reading. This device uses the LS7366R chip and connects directly to the encoders, maintains a count of the encoder pulses, and provides a SPI interface to read the counts with a microcontroller. We sell this board in 1-, 2-, 3-, and 4-channel variants. The board provides optional pullup resistors for the encoder A and B signals so no additional circuitry is required. | ||
− | <sdr item id=2398>Triple LS7366R Encoder Buffer Board (TE-183-003)</sdr item> | + | *<sdr item id=2397>Single LS7366R Encoder Buffer Board (TE-183-001)</sdr item> |
+ | *<sdr item id=1523>Dual LS7366R Encoder Buffer Board (TE-083-002)</sdr item> | ||
+ | *<sdr item id=2398>Triple LS7366R Encoder Buffer Board (TE-183-003)</sdr item> | ||
+ | *<sdr item id=2418>Quadruple LS7366R Encoder Buffer Board (TE-183-004)</sdr item> | ||
− | |||
[[Category:Sensors]] | [[Category:Sensors]] | ||
[[Category:Encoders]] | [[Category:Encoders]] | ||
+ | |||
+ | [[Category:How to Build a Robot]] |
Latest revision as of 15:51, 16 April 2021
This is a practical guide to adding encoders to a robot. Encoders are attached to a robot's drive motors in order to track wheel speed, distance traveled, and/or implement closed loop speed control.
In addition to the encoders themselves, extra components and circuitry are needed to interface with and keep track of the encoder output over time. This guide will cover how to select the correct options to add encoders to a robot kit and go into more detail about the required components.
Contents
Adding Encoders to a Robot Kit
If you're purchasing a robot from SuperDroid Robots and want to add encoders to the robot then follow these guidelines when selecting options.
- Motors: Make sure to select motors with encoders! Most kits will have options for motors with and without encoders. To have encoders on the robot, you will need to select an option that says "with Encoders".
- Motor Controllers: We offer three types of motor controllers with our robot kits: Roboclaw, Sabertooth, and Roboteq. Both Roboclaw and Roboteq motor controllers are able to connect directly to the encoders, keep track of the number of pulses observed, and perform closed loop speed control on the motors using the encoder information. Sabertooth motor controllers are not able to directly connect with encoders. We address this by instead using an Encoder Buffer Board and a microcontroller together to read encoder pulses. We do not provide a closed loop speed control solution with Sabertooths.
If you are using encoders, we highly recommend going with a Roboteq motor controller as there is a plethora of built-in functionality and failsafe options in the software. We do, however, offer encoder options for each motor controller. - Encoder Options: Pick the Encoder Kit that corresponds to your selected Motor Controller. Note that there are three versions of Sabertooth Hookup Kit (Dual, Triple, and Quadruple) because they each come with a different version of the Encoder Buffer Board based on the number of wheels that need to be monitored. The Roboclaw and Roboteq kits are only designed for 2 encoders and will simply come in a set of 2 when three or four wheels will have encoders.
Encoder Hardware
Encoders can either come attached to the motor or installed separately as standalone units.
Motors with Encoders
Our IG32, IG42, and IG52 gear motors come in variants with and without encoders. In the picture to the right, the encoder is inside the black end cap. There are four wires coming out of the encoder unit that provide access to the encoder power and quadrature A and B pulse signals.
Wire Color | Function |
---|---|
Brown | 5V Power Input |
Green | Ground |
Blue | Quadrature A |
Purple | Quadrature B |
With these encoders, the A and B signals must have 1k pull-up resistors connected between each signal and the encoder 5V power. When we install these on our robots we include these resistors on either a Roboteq DB15 Breakout Board, Encoder Buffer Board, or Encoder Pullup Board, depending on the motor controller used.
Standalone Encoders
There are standalone encoder units that can be purchased and installed on a robot separately from the motors. These are less convenient since they need to be mechanically mounted and somehow coupled to the motor or drive shaft instead of being part of an all-in-one solution. We don't usually offer these as options but we do use them in situations where the motors do not offer encoder variants (such as on the HK1000, which uses wheelchair motors).
Reading Encoders
We have a few preferred methods for tracking and reading encoder values.
Roboteq Motor Controller
Roboteq motor controllers include built-in functionality to connect directly with the encoder A and B quadrature signals, detect pulses, and maintain a count of the number of pulses observed. Roboteqs can use the measured encoder data to perform closed loop speed control.
- RoboteQ SDC2160 - 2x20A 60V Motor Controller with Encoder Input (TE-144-060)
- RoboteQ MDC2460 - 2x60A 60V Motor Controller with Encoder Input (TE-240-060)
- RoboteQ XDC2460 - 2x150A 60V Motor Controller with Encoder Input (TE-286-150)
Roboclaw Motor Controller
Roboclaw motor controllers are able to connect directly to the encoder quadrature signals and keep track of the number of pulses observed. Roboclaws can use the measured encoder data to perform closed loop speed control.
- RoboClaw 2x15A (TE-331-215)
- RoboClaw 2x30A (TE-331-230)
- RoboClaw Solo 30A Motor Controller (TE-331-130)
Encoder Buffer Board
This board is always an option when the robot's motor controller (such as a Sabertooth) does not support encoder reading. This device uses the LS7366R chip and connects directly to the encoders, maintains a count of the encoder pulses, and provides a SPI interface to read the counts with a microcontroller. We sell this board in 1-, 2-, 3-, and 4-channel variants. The board provides optional pullup resistors for the encoder A and B signals so no additional circuitry is required.