RoboClaw Advanced RC Options

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 while in RC mode. Each option and it’s usage will be explained.

Figure 1: The location of the advanced RC options.

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. The effect is that it makes 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.

Figure 2: Curves showing the difference between exponential and no exponential.

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 an RC receiver output is 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.

Figure 3: Curve showing the lack of output for a given range of input.

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 when a speed or position is set 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. See this article to learn how to tune encoders.