The most recent version of this article can be found at this link.
Introduction
In a previous tutorial we’ve shown how to use the RC mode of the RoboClaw in a simple manner. However, there are options available in RC mode that allow for functionality beyond basic RC control. In this tutorial we will cover the advanced options available to the user of a RoboClaw in RC mode. Each option will be explained and use cases discussed.
Mixing
This setting is for use with a differential drive configuration in which only two motors are used for forwards/backwards movement as well as left/right steering. Tank robots are a classic example of where is setting is applicable.
MCU mode
This setting allow a microcontroller to send RC-like servo pulses in place of using a typical RC receiver. There are several things to note when using this mode however. First, note that in this mode the RoboClaw does not need a constant pulse train. The RoboClaw will use the value of the last pulse received and execute that until a new pulse is sent. Also of note is that the RoboClaw does not auto-calibrate the pulses sent to it in this mode.
Exponential
The exponential setting affects the sensitive of the controls, whether that be with a radio transmitter or microcontroller. When exponential is enabled the controls are less sensitive at the beginning of their range and more sensitive at the outside of their range. If you are using a transmitter, you’ll notice that small movements of the sticks will produce very little change in the motors. However, if you move the sticks towards the outside of their range you’ll notice a larger change. In effect it tends to make a system easier to control as it makes small movements in the control signal produce less output. The essence of it is a “softening” of the controls.
RC Flip/Mode switch
This setting allows for an input on S3 to flip the control direction of a motor attached to the RoboClaw. When the checkbox is selected it allows for an RC receiver output to be the control signal that flips the control scheme of the motor. If the box is left unchecked a low TTL signal on S3 will accomplish the same thing. Note that when in RC mode the S3 setting only needs to be left in default for this behavior to work.
Deadband
This setting allows for there to be zero motor response within a user-settable range of the system’s input. For example, with a transmitter, you would have a range of stick motion where there would be no response from the motors. If both the min and max settings are left the same you receive the same amount of deadband on either side of a control input. If the values are not the same the amount of deadband will vary on either side of a control input. Deadband settings can be used to solve issues with mechanical imperfections in your system.
Enable Encoder
This setting allows you to enable one or two encoders if you have them attached. The RoboClaw uses encoders for closed-loop control of position and velocity. This means that given a position or velocity the RoboClaw will do the work of maintaining that value. For example, with encoders, a robot climbing a hill would be able to maintain a constant speed despite the change in load on the motors. Prior tuning of the encoders if necessary to use them properly. We will be covering tuning encoders in another article.