Controls

We have a robot (of course) that uses 12 motors
4 base
4 lift
1 mogo lift
2 turbo four bar
1 claw
what’s the best controls to use for one driver to control a robot with this many functions? Open to all suggestions so pls comment!

Our controller set up is tank drive, intake on the right dpad, mg on the left dpad, lift on the left bumpers, adjustment arm on the right bumpers, and we have a toggle button on one of our dpads that swaps the adjustment arm and mg intake controls so when we need to we can deliver mg’s without having major pauses to press the mg dpad buttons.

Ours is literally the exact same. Except we don’t have the switch controls thing. We have a toggle for the rollers auto-in thing though, also on the right D pad

@Easton would making the roller intake function in channels 1 and 4 on the joysticks be a good idea? it wouldn’t involve you moving your hands to the pads

If it’s just one person, here is my personal preference:

One stick is for driving arcade style.
A pair of trigger buttons near this stick for the mobile goal lift.
One stick is for both the lift and 4bar (assuming that’s what’s on the lift). Up (forward) - back (down) with the stick, which left-right would be in-out with the 4bar.
A pair of trigger buttons near this second stick for the claw.

This way you can use everything without ever having to take your fingers off of any of the controls at all. No fishing around and moving back and forth. But some people don’t drive arcade style well, while others don’t drive tank style well.

I have on joystick for driving, one for mogo, one pair of triggers for lift and one for fourbar. I would put the claw on the buttons above the mogo joystick.

Your should ask your driver for his preference. Some people prefer the tank drive meaning each joystick controls each side of the robot or arcade style which means left joystick for forward and backward and right joystick for turning. If your driver is confused or doesn’t know which one he prefers then you can test out both of the controls and choose which one to use. Also check out the controller modification that Antichamber did, which is also a pretty good modification. In terms of me I use sensors to help me with the game which can be complicated and may not work 100% of the time but its a pleasure to drive when it does work. Anyway good luck with your robot.

i am the driver lol @mhab8037 and i’ve seen that video and i don’t like how you have to hold the back down so i doesn’t press the button, if you slip you could mess up bad

@callen i’ve never tried driving arcade style, i might have to give that a shot.

No you program it so that it only runs the function when unpressed. Essentially, it’ll only do the thing when you press the lever

how would that look in a program? @SkinnyPanda Robotics

If (!vexRT[btn7U]) {
    // do stuffs
}

You should add the toggle, it actually really helps, since you don’t have to lose time to lowering the mg intake.

Well I’ve gotten to the point where I can control the mogo lift and drive at the same time, I just shift my fingers up and use my pointer finger to do it and use middle and ring finger on the bumpers

Noice.

@ZachDaChampion so if you put a “!” in front of vexRT, it will make it to where it has to be released to do a certain function?

The “!” operator is the logical “not”.

It has the effect of reversing a condition. When condition has a value of true, “! condition” has the value of false.

Also, here’s something that’s so baked in to a C programmer he/she might not even think about it. Any non-zero value evaluates to “true”. Only a zero value is false. This is why you don’t need a comparison for something like testing the value of a button. If it’s pressed, the value is 1, so it’s true. So ! button will be false.

While I’m not my team’s driver, so I did not choose our control scheme, here is what I think the best layout should be for one driver:

Due to the amount of mechanisms you have to control in this game (unless you have an autostack), I think arcade drive on one joystick is preferable to tank drive. Your secondary lift will be on the buttons above the drive joystick, and the intake on the triggers on that same side. The arm will be on the opposite joystick, and the mogo on the triggers on that side. This allows you to control the arm, secondary lift, and intake all at the same time so that you don’t have to switch your fingers around, allowing for the most efficient stacking you can. This also allows you to control the drive and mogo with different fingers, so you can operate them at the same time for skills and general driving.

However, I think for this season partner controllers are the best option. If someone does drive/mogo and someone does lift/secondary lift/intake, it will allow you to multitask when stacking field cones (meaning moving around while you’re stacking), making the best use of your time. Of course, this wouldn’t be possible unless you’re really in sync with your partner, but if you can take the time to practice with them, it’s undoubtedly the best way to go.

In RobotC I would say


if(vexRT[Btn7U] != 1)
{
     //do stuffs
}

Here’s what our controls are:
right joystick is forward & reverse
left joystick is turn left & right on Ch4, and Ch3 is our secondary lift
mogo lift is on DPad 7
left trigger buttons control intake
right trigger buttons control dr4b