View Single Post
  #2   Spotlight this post!  
Unread 23-01-2016, 15:08
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,042
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Only half of the robot turns

Quote:
Originally Posted by Team5119Dmitri View Post
We are having a peculiar issue with our arcade drive, when we drive forward or backward everything works normally, but when we try turning only the right side of our robot turns, whether we are turning left or right, while the left side doesn't move at all.

This is the code we have for driving in teleop:
Code:
myRobot.arcadeDrive(stick);
So this code works normally for going forward or backwards, which is why I don't think it is a wiring issue, but somewhere in the code.
Sounds like it might be Cheezy drive? I seem to recall seeing something about WPILib incorporating Cheezy Drive into their Arcade code. Or maybe I just imagined that...

Quote:
Originally Posted by AustinSchuh View Post
Cheezy Drive is split arcade on steroids. It can best be described as making your robot drive like a car. This has the side effect of not letting you turn in place, so there is a button that when held bypasses the car steering part and switches back to split arcade. This button is called 'Quick Turn'.

Code:
adjusted_wheel = SensitivityRemap(wheel);
Vl = throttle + adjusted_wheel * abs(throttle) + inertia compensation terms;
Vr = throttle - adjusted_wheel * abs(throttle) - inertia compensation terms;
The end result is that when the robot is tuned properly, it feels consistent through a wide range of motions. The robot reacts the same to the joystick inputs at high and low speeds. Arcade has the problem that when you want to drive in an arc at slower speeds, you end up over-steering since you need to only use a small range of stick movements to get the turns you want. The inertia compensation terms add extra power to start the robot turning and stop it again when the wheel angle changes. This helps the robot feel 'psychic' and start turning as the driver starts demanding a turn, not after.

Reply With Quote