Run Amok Combat Robotics Programming R/C Transmitters for Combat Robotics
You bought a fancy computerized radio system for your combat robot 'cause it has failsafes and simple mixing for single stick control of the 'bot. Cool, but you probably wonder about some of the other features the radio has that you haven't even looked into. The Futaba manual for their 6XAPs radio system (available here: http://www.futaba-rc.com/manuals/6xas-hs-manual.pdf) prominently claims that it is,
"...not just a translation - it has been carefully written from scratch to be as helpful to you, the new owner, as possible."
It probably is helpful if you're working with something that flies, but if you don't know an aileron from a knife-edge turn it's about as clear as powder coated titanium. Not to worry -- I'm here to help.
I'll try to avoid aircraft related names when describing the radio functions but I will leave them in where required to allow reference to the manual or labels on the transmitter. The information provided here is intended to clarify the transmitter functions for combat robot applications -- refer to the manual for details on activating and setting specific functions.
I currently use a Futaba 6XAPs PCM radio system converted to 75 MHz for US operations and an equivalent system on 40 MHz for Robot Wars in England. Although my notes are specific to this system, much of the information here will apply to all programmable R/C systems.
Note: a 40 MHz transmitter obtained in England had switches D and E reversed from the positions shown above.
Simple radio control systems have a direct relationship between the transmitter inputs and the receiver outputs. On such systems, if you move the stick for input channel 1 on the transmitter only the device plugged into receiver output channel 1 responds. Computerized transmitters (like the Futaba T6XAPs) allow for much more complex relationships between the transmitter inputs and the receiver outputs. Moving the stick for transmitter input 1 on such a system may result in multiple receiver outputs responding, at differing rates and in differing directions!
Why bother with all this digital magic? The simple answer is ease of control. A single stick on the transmitter may be used to control power to both sides of the robot for forward and backward motion. A second transmitter stick can then 'mix' its input with that from the first stick to speed up one side of the 'bot and slow or reverse the other to turn or spin the 'bot around. This differential control is much more precise and natural than the alternative 'tank steer' method.
I will refer to conditions where two transmitter inputs have an influence on both their own and each other's receiver outputs as 'mixing', whereas a single input channel impacting multiple receiver outputs without itself being influenced by the other involved inputs will be called 'coupling'. Mixing is of much greater interest to combat robots than is coupling. The Futaba T6XAPs transmitter in airplane configuration comes with...
Three pre-programmed mixes:
Channel 1 - channel 6 (Flaperon)
Channel 2 - channel 4 (V-tail)
Channel 1 - channel 2 (Elevon)
Three pre-programmed couplings:
Master channel 1 to slave channel 4
Master channel 6 to slave channel 2
Master channel 2 to slave channel 6
Two user programmable couplings:
PMX1 - master channel X to slave channel Y
PMX2 - master channel X to slave channel Y
If you switch the transmitter into the helicopter configuration you get a different set of mixes and couplings, but they are highly specialized for rotor-wing flight and largely useless for ground robotic applications. If you uncover anything in the helicopter mode that looks promising, let me know!
About Transmitter Modes:
There are two 'standard' ways that the two main control sticks may be assigned to input channels:
Mode 2 is the U.S. standard with the throttle (input channel 3) assigned to the vertical stick axis on the left of the transmitter, and the elevator (input channel 2) assigned to the vertical stick axis on the right side of the transmitter.
Mode 1 is the European standard and has these two assignments reversed; throttle on right and elevator on left.
Computerized transmitters usually have a software method of switching between modes. For the 6XAPs, a special menu that allows changing the transmitter mode (and for reversing the channel 3 input stick) can be accessed by turning on the transmitter while holding down both of the "MODE" buttons. Set STCK to 1 or 2 for the corresponding transmitter mode.
Since we can plug any of our servos/switches/controllers into any of the receiver outputs we like, there are only two reasons that modes are of any interest to us in this discussion:
Input channel 3 has special features for dual rates, exponential response, and failsafes that may not be desirable for robot use.
The pre-programmed mixes have input channels pre-assigned and it may be useful to remember that input channels 2 and 3 can be switched between either of the two control sticks.
Here is the basic setup matrix for modes, mixes, and receiver outputs to put the controls on the sticks you want to use:
Left Stick Steering
Right Stick Steering
Left Stick Throttle
Mode: 1 Mix: VTAL Outputs: 2 and 4
Mode: 1 Mix: ELVN Outputs: 1 and 2
Right Stick Throttle
Mode: 2 Mix: VTAL Outputs: 2 and 4
Mode: 2 Mix: ELVN Outputs: 1 and 2
If you are starting with a T6XAs transmitter (the 'A' is for airplane) in the U.S. standard "Mode 2" configuration, the left stick throttle (input channel 3) is 'ratcheted' rather than spring center-loaded. Helicopter systems (like the T6XHs) come with a friction-damped throttle. Both transmitters have all the same mixing and programming options and can be considered identical except for the throttle.
For robot applications, you may find it desirable to have the left stick spring-centered, particularly if you are using it for throttle control! You can access the stick mechanisms by removing the four small screws on the back of the transmitter. You may then swap the ratchet mechanism and the spring loading bits from one stick to the other. This is not overly difficult -- I converted two transmitters while having breakfast in the caterer's double-decker bus at Robot Wars using a bent paper clip and a Phillips screwdriver. If you're squeamish about such things, the old guy behind the counter at your local R/C hobby shop has done this many times and will be happy to help.
Alternately, you may order the parts needed to convert the ratcheted throttle to spring loaded so that all axis on both sticks self-center. The parts are available from Hobby Services (firstname.lastname@example.org).
For the T6X transmitter series, the parts you want are:
HSP60620 J50060 SCREW + PMS 2X14
HSP55375 8M00F00101 ST-36 HEAVY SPRING
HSP50105 1M10A03401 ST-16 SPRING HOOK
HSP50120 1M10A04301 ST-36 SWING ARM
I'd been told that I'd need the 'HSP50125 1M10A04401 ST-36 TRIM BRACKET' as well, but all of my T6X transmitters have the bracket already. If yours doesn't, or if you just want to make sure you have the part, order the bracket.
If you have the four-channel T4VF transmitter, substitute 'HSP50095 1M10A03201 ST-23 SWING ARM' for the one listed above. The T4VF requires no trim bracket.
Total price for the parts is only a couple of bucks -- plus a fairly hefty shipping charge. You might want to pool your order with some friends and split the shipping. The parts don't come with instructions, but you can use the other stick as a template to see where the pieces go.
Get a good night's sleep, have a triple espresso, take a deep breath, and open the Futaba manual.
The fancy digital tricks done by the T6XAs come in two 'flavors'. Functions labeled "Transmitter Level" below act on the transmitter inputs and will effect all outputs that may be controlled by that input channel. Functions labeled "Receiver Level" effect single receiver output channels only, independent of channel mixing or coupling.
Example: Adjusting a stick trim on the transmitter will cause a change in all receiver outputs that are mixed into that stick's control channel (Transmitter Level). Adjusting a subtrim will effect only the device plugged into that output channel on the receiver (Receiver Level).
What follows are my notes on the various functions and how they relate to robotic combat applications.
The notes in red are specific settings that are used for our two-wheeled differential steer robot 'The Gap' (photo at right).
'The Gap' is setup in Mode 1 for throttle on the left stick (transmitter input channel 2) and steering on the right stick (transmitter input channel 1). Our pneumatic flipping weapon is activated by output channel 5 (switch E).
ATV (Adjustable Travel Volume): (Receiver level)
This function sets the range of response of a device plugged into a specific receiver output. Full transmitter stick input can be set to produce anywhere between 0% and 120% of normal response at the receiver. Response may be set independently for each side of the center 'neutral' position.
If your speed controller doesn't have a gain control, ATV can adjust throttle response to make certain that you're getting full power output at both full forward and full reverse stick positions. This is also useful to limit the travel of mechanical servos used for switch activation or internal combustion engine throttle control.
D/R (Dual Rates): (Transmitter level)
Flip a switch on the transmitter and transmitter stick input channels 1 and 2 can have their maximum response and sensitivity reduced or increased. Why do this? When the adrenaline starts pumping, there is a tendency for drivers to throw full steering input when only a modest amount is needed. This can send a two-wheeled 'bot into a wild and ineffectual spin. By selecting a reduced maximum response rate for the steering stick, your 'bot will remain composed in battle. If you need a full-rate attack spin or victory dance, a flip of the dual-rate switch will give you full response instantly. Cool!
By default, activation of dual rates for input channels 1 and 2 are controlled by two separate transmitter switches:
channel 1 - activated by switch 'C' (aileron D/R) above the right-hand stick
channel 2 - activated by switch 'A' (elevator D/R) above the left-hand stick
Note that switch 'A' also deactivates the programmable mixes if flipped up. This is rarely a problem in combat robots because channel 2 is usually assigned to throttle which is not usually assigned dual rates.
It is also possible to activate dual rates for input channel 4 should you decide to assign steering control to the left stick. Go to the DRSW function in the PARA menu (see below) and set dual rate mode 2. This moves activation of all dual rates to transmitter switch 'C', and as a bonus allows you to set dual rates for transmitter input channel 4.
Gap setup: Channel 1 at 50% normal, 100% activated. This allows fine control under normal operation and still gives a high spin rate at a flick of the dual rate switch. See ELVN mixing for details.
Very handy! Negative values here on the steering input channel allow for slow, fine control near neutral stick positions and greater response out at the ends for bigger moves. This makes the 'bot much more controllable.
Note that the transmitter input 3 'neutral position' is not at the center but at the bottom 'cause aircraft guys use this for throttle on their unidirectional engines. Neutral position may be moved to the top via the TREV function in the mode-set menu (see 'About Modes' above), but cannot be set to center neutral.
Gap setup: channel 1 set to minus 50%.
REV (servo REVersing): (Receiver level)
Oops... When you push the throttle forward, the 'bot backs up or spins in a circle. No problem. This function allows the response of each receiver output channel to be reversed. If you spin in a circle, reverse one motor output -- if you back-up, reverse both of them.
Gap setup: reverse output channels 1 (left motor) and 5 (weapon).
STRM (Sub TRiM): (Receiver level)
The trim settings by the sticks on the transmitter control the whole output from that stick. We will be mixing the output from the throttle stick to control two motor controllers plugged into two receiver outputs. STRM lets us trim those two receiver outputs so that both motors power up together at slow speed rather than one motor turning on first resulting in a very slow turn instead of a slow forward crawl.
To set subtrims, prop the drive wheels off the ground and push the throttle forward slowly 'til one motor just starts to turn. Cursor over to the receiver channel the other motor is plugged into and slowly increase the STRM setting 'til both motors turn. Check the reverse start points too. If you cannot get both motors to respond together in both forward and reverse, you may have the gain control on one motor controller improperly set.
Gap setup: channel 1 (minus 4), channel 2 (plus 0).
FLPR (FlaPeRon mixing): (Transmitter level)
Channel mixing allows one or more transmitter inputs to control multiple receiver outputs at different rates and directions. Note that you may use only one mix from the FLPR / ELVN / VTAL set at any time. Most tank-steer robots will use either elevon or V-tail mixing. For flaperon mixing:
Input to input channel 1 effects both receiver output channels 1 and 6; and
Input to input channel 6 effects both receiver output channels 1 and 6.
FLTR (Flap Trim): (Transmitter level)
This function controls the amount of response from all receiver outputs mixed into the transmitter knob (input channel 6). To adjust the response only for the device controlled by receiver output 6, use ATV (receiver level) for that receiver output.
ABRK (AirBraKe): (Transmitter level)
Causes a set amount of response to both transmitter inputs 2 and 6 when transmitter switch B (inboard, above the right transmitter stick) is flipped.
VTAL (V-TaiL mixing): (Transmitter level)
Input to transmitter channel 2 effects both receiver output channels 2 and 4; and
Input to transmitter channel 4 effects both receiver output channels 2 and 4.
Used to combine throttle and steering onto the left transmitter stick in mode 1. May also be used for throttle on right and steering on left in mode 2. Follow the setup instructions in the manual, substituting "steering" for "rudder" and "throttle" for "elevator".
Check to make sure that you're getting full throttle at the motor controllers at full transmitter input. If your steering response is too touchy, dial in some negative exponential response on channel 4.
Increasing or decreasing the channel 4 mix percentage will increase or decrease the maximum turning rate of the 'bot. Don't get carried away with high turn rates! In combat there is a tendency to overdo transmitter inputs. Keep the turn rate reasonable and remember that a little forward throttle added to a conservative turn rate will spin the 'bot right around.
ELVN (EleVoN mixing): (Transmitter level)
Input to transmitter channel 1 effects both receiver output channels 1 and 2; and
Input to transmitter channel 2 effects both receiver output channels 1 and 2.
Many tank-steer robots use elevon mixing for control of throttle and steering all on the right transmitter stick in mode 2. Follow the instructions in the manual, substituting "steering" for "aileron" and "throttle" for "elevator".
Check to make sure that you're getting full throttle at the motor controllers at full transmitter input. If your steering response is too touchy, dial in some negative exponential response on channel 1.
Increasing or decreasing the channel 1 mix percentage will increase or decrease the maximum turning rate of the 'bot.
Gap setup: CH1 to 100%, CH2 to 100%. This gives steering control on the right stick and throttle on the left stick in transmitter mode 1. I also swapped the throttle ratchet from the left stick with the center spring load mechanism from the right stick to give a center-loaded throttle. This is an unusual set-up, but I got used to this arrangement early in my R/C days and it just stuck with me.
The turning rate is too fast for most work but rather than decrease the channel 1 mix rate here, I've set a dual rate for channel 1 to keep good control and still allow rapid spins with a flick of the aileron dual rate switch.
1->4 (aileron to rudder coupling): (Transmitter level)
Input to transmitter channel 1 effects both receiver output channels 1 and 4.
6->2 (flap to elevator coupling): (Transmitter level)
Input to transmitter channel 6 effects both receiver output channels 6 and 2.
2->6 (elevator to flap coupling): (Transmitter level)
Input to transmitter channel 2 effects both receiver output channels 2 and 6.
Input to transmitter channel X effects both receiver output channels X and Y.
These are really cool! You get to pick a 'master' channel for the transmitter input and the 'slave' channel for the receiver output, and then set the amount and direction of the slave channel response for each side of the master channel's neutral setting. Each of these by itself is technically a coupling, but they may be combined to create a true mix if desired. Futaba calls them mixes, so I'll call them that as well to avoid confusion.
Once programmed and activated, the elevator dual-rate switch (switch A above the left transmitter stick) turns these mixes on (down) and off (up). If your custom mixes aren't working, check the position of this switch!
Programmable mixes can be used to automatically reset a weapon whenever the 'bot backs up, provide an extra dual rate adjustment, or effectively disable another mix element. Note that the programmable mixes do not override other mixes but rather add into the mix a percentage of the existing response: a +100% will double the existing mix rate, and a -100% will reduce it to zero -- so be careful here.
F/S (Fail Safe function - PCM mode only): (Receiver level)
This function allows you to program the PCM receiver (if you're using one) with instructions on what to do with each of its six outputs when it detects no transmitter signal. There are two options for each channel:
HOLD: locks the output in the last position held before signal loss;
FAILSAFE: moves the output to a pre-determined level.
For robot use, you will want any motors that are controlled by the receiver to FAILSAFE to an 'off' position. Check your competition rules for what other devices should do -- I have my pneumatic system HOLD on loss of signal, rather than violently and unexpectedly return to a rest position.
Gap setup: FAILSAFE channels 1, 2, 3, 4 to neutral -- HOLD channels 5, 6
PARA (PARAmeter menus): (Transmitter level)
If you're using dual rates, consider setting the DRSW (Dual Rate Switch) sub-function to mode 2. This combines activation of all dual rates onto the aileron D/R switch and avoids a conflict with the programmable mix activation on the elevator D/R switch. See the D/R discussion above for details. Other parameters are largely one-time settings and are adequately covered by the manual.
COPY (COPY model): (Transmitter level)
The transmitter can remember up to six different setups; you can have one setup for your tank-steer two-wheeled heavyweight and another for your pivot-steer four-wheeled antweight and switch between them with the MODL function (see below).
It's a good idea to 'backup' a setup to a spare memory slot so you can experiment and still have the original to return to if needed.
TMEM (Trim MEMory): (Transmitter level)
Once you get the stick trims set the way you want them, this function saves them in model memory and lets you move the physical trims back to neutral. Note that input channel 3 trim is not saved (aircraft guys use this trim to set idle speed and kill the engine).
The STRM function is the receiver level equivalent for this transmitter lever function and is used to adjust individual receiver outputs, where the TMEM saves trims for the transmitter inputs.
MODL (MODeL select): (Transmitter level)
As discussed in COPY (see above), this function lets you switch from one set-up to another for different robots or situations. This function takes too much time to use in battle, so don't even think about a separate model for inverted operation. Set inverted functions up with the custom mixes and switch them in and out with a single switch.
Please do write the name of the 'bot that corresponds to each model number on an adhesive label on your transmitter. You'll be glad you did.
Troubleshooting Robot Control Problems:
Given forward command, only one motor responds -- given right command, only the other motor responds.
You have either all mixing turned off, or both transmitter mixing and speed controller mixing turned on. Adjust so one and only one mixer is active.Given forward command, robot backs up straight.
Use the Servo Reversing (REV) feature to reverse the directional setting for the two channels that feed your motor controllers(s).Given forward command, robot spins in place.
Use the Servo Reversing (REV) feature to reverse the directional setting for the channel that feeds the controller for the motor that is backing up.Given right turn command, robot turns left, and vice versa.
Swap the receiver plugs for the two channels that control the motor controller(s). If you are using channels 1 and 2, unplug the receiver connectors and replug the connector that was in channel 1 into channel 2 and vice versa. You may have to correct the servo reversing for the two channels after doing this to get correct forward/reverse motion, but turning control will be correct when you're done.Robot control is like on/off switch. No low speed control.
Consult the manual for your motor controller for proper set-up of throttle end points. For servo-based drive, reduce the Adjustable Travel Volume** (ATV) value for the motor control channels until full stick input just barely gives full motor speed. Remember to do this for both forward and reverse. Some transmitter manufacturers refer to 'Adjustable Throttle Volume' as 'Travel Adjust'.Robot has full range of control, but throttle is too 'touchy' at low speeds.
Entering a negative value into the Exponential Rate Response (EXP) for the throttle control stick will reduce the sensitivity of the stick near the neutral control point.Robot difficult to turn smoothly, enters 'spin' mode too easily.
If you're using Elevon mixing (ELVN), decreasing the channel 1 mix percentage will reduce the maximum spin rate of the robot and make it more stable in turns. You may also try setting a moderate negative value for EXP on channel 1 to reduce sensitivity near neutral but retain the high spin rate at full stick input.
Allternate solution: set the Dual Rate (D/R) switch for the steering input to restrict maximum turn rate for smooth maneuvering, but still allow full spin rate for special attacks at the flip of a switch. Try about 50% normal, 100% activated.
Two-wheeled robot difficult to drive in straight line, or robot with more wheels difficult to carve smooth turns.
Here's what happens to a skid-steer robot when it's upside down:
Differential steering is still correct. Each side of the 'bot is now responding in the opposite direction, but since the drives are now on opposite sides the two negatives cancel out.
Throttle is reversed. Forward moves you backward and vice-versa.
I've tried a number of tricks with the two programmable mixes (PMX1, PMX2) to get throttle reversal by turning on/off the mixes with switch "A". Several things that work in theory just don't work in the real world. A couple of things that actually do work require serious limitations on your other programming options. I've temporarily given up on the use of these mixes for inverted operation and use the following trick for my antweight that uses elevon mixing:
Open the menu
Scroll down to the ELVN setting
Select the input channel for the stick you use for forward/reverse
Position the cursor over the +/- on the percentage setting
Leave the menu open while in combat. If you go inverted, reach down and hit the "-" menu button and the throttle response is instantly reversed. Back upright? Punch the "+" button and you're back in business. The disadvantage of this set-up is that the + and - buttons are small and may require you to take your eyes off the battle for a second to operate. You may need to adjust your trims and sub-trims to get rid of "creep" in both normal and inverted operation.
I haven't entirely given up on the programming mixes -- I'll update the guide with any progress I make on inverted operation.
Corrections to prior versions of this guide:
1. Previous versions of this guide incorrectly identified the PMX mixes as operating at the transmitter level. They are receiver level functions.
2. Previous versions of this guide incorrectly implied that the PMX mixes could reverse the direction of response of a pre-programmed mix. The method listed for accomplishing this does not work. See the revised notes in the PMX1/PMX2 section of the guide for more info.
Please send notes for improvement, correction, or clarification to email@example.com.
Copyright 2002, 2004, 2006 Mark Joerger, Team Run Amok