Specifically with all the new ways for the robot to move how do you let the driver utilize this new freedom in control. For instance maybe 1 joystick controls the direction of the wheels and another the speed. How would u incorporate spinning on the spot into this mix. I wish to know how all you guys accomplish this task of putting in a lot of controls for one driver.
Two joysticks (in our case, 1 controller with 2 thumbsticks).
One joystick controls robot X and Y movement with respect to the field. If you push this one forwards, the robot moves away from you regardless of which way it’s facing. If you push it right it always moves to the right. If you push diagonally, the robot moves diagonally, etc. AKA “Field Oriented” drive.
The other joystick controls robot rotation. The further you push it to the left, the faster it rotates counterclockwise. The further you push it to the right, the faster it rotates clockwise.
My team is new to swerve drive (started working on it about 3 weeks ago).
So far, our drivers have settled on using 1 joystick for X, Y and rotation. Like @pkrishna3082 we are using field-oriented drive where moving the joystick forward the robot will always move forward, and moving it sideways makes the robot always move sideways. For the joystick we are using Logitech Extreme Pro joystick which allows the driver to twist the joystick to rotate the robot.
Our controls are identical to those mentioned above except, that we use the right trigger to control the speed.
By doing this we get the exact same control as everyone else, but instead of just the magnitude of the thumb sticks altering the speed, the trigger does as well. For some this is slightly less intuitive, but it makes driving a lot like a combination of a racing game and a first person shooter. If you did hold down the right trigger all the way while you’re driving, it’d be just like the other controls since the magnitudes of the sticks still affect the speed.
We use a PS4 controller.
Wait so how does this work if the right trigger control speed then what do the 2 joysticks control
So, you can think of the right trigger as a speed multiplier. It multiplies the output speeds of each wheel by the value of that trigger (0 to 1). Just like the control scheme that everyone else uses, our left joystick is used for the direction and the right is used for the rotation (only the x axis on the right is used).
With how the swerve math works, the magnitudes of each stick are taken into account, so lets say the left stick has a vector of (.5, .5) and the rotation is 1.0, it will slowly move diagonally while spinning. Then, we just multiply the speeds of each wheel by the trigger. It’s just an extra step compared to how other teams do it, but the math is all the same.
By using the trigger, we are able to point the wheels where we want to go and slowly ramp up the speed. In my opinion, this gives us more control because we don’t have to constantly nudge the left joystick for small movements.
Tha is for the clarification
We have two joysticks. One is for x and y and moves it field centric. The other joystick is for spin and we twist it to spin the robot rather than move it side to side as described above. We also have a trigger that puts the robot in field centric while held.
Like most here, I’d love to learn how to operate a robot with those sick spin moves we saw yesterday. Where you turned the corner spinning completely around the defender.
Our answer is less complete with a crab more than swerve setup, but dual joystick with second being turning only was the plan. Reality for us was single joystick mostly doing car steer and some strafing, but want to make it next year. Field centric seems like a must to do it right.
Like others our left joystick gives x and y movement. The right joystick when moved side to side gives rotation. We also use field centric control so that the robot goes in the direction that the left stick is pushed. Push the stick foward the robot goes down field. Pull the stick back the robot comes back. We also added the ability to switch to robot centric when the left stick trigger is pulled. When in robot centric mode pushing the stick forward makes the robot move straight forward in the direction the robot is facing. It allows the driver to switch back and forth between modes as needed. Release the left trigger and the robot is back in field centric mode. To do the “spin” moves requires practice.
We use a joystick for vector movements, and a banebot wheel on a potentiometer with springs that bring it back to it’s center. The wheel only rotates about 90° in either direction so the further the wheel turns, the faster the robot spins. We have used this for 2 years now and it is very easy to use and get used to.