For us, the way the right stick worked was by doing self.joystick.getRawAxis(x) and self.joystick.getRawAxis(y) IN the teleop period. Our self.joystick was defined as self.joystick = wpilib.Joystick(0) IN the robotinit().
Replace the X and Y in the arguments with 5 or whatever number that shows up in your dashboard.
Exactly what we tried, however still no response. I can see the 5 axis moving in the driver station, but when we sim it, nothing. Our team is still slapping together their drive train, so I’m hoping this will change on a standard bot.
Any luck getting the tank drive to work? We have been able to get it working with the left stick y axis but not the right stick y axis. None of the available axes seem to respond to that input.
We have had limited access to the drive base until this evening. So we will try that and hope that it works. Thanks for the clarification. I will forward it on to our programmer.
The tank drive code works great, using getRawAxis(1) for the left stick, and getRawAxis(5) for the right.
however, the sim still does not detect the right axis. This was a fresh install pulled from pip, so I’m wondering if the github code isn’t integrated into the pip install at this time?
Important part is that it drives though! Now I just need to figure out how to make it drive…easier. The sticks having such small amounts of travel mean it’s very easy to not have them be perfectly in sync, meaning our robot drifts right or left instead of driving straight. any suggestions?
however, the sim still does not detect the right axis. This was a fresh install pulled from pip, so I’m wondering if the github code isn’t integrated into the pip install at this time?
What version of pyfrc do you have installed – when you run the sim, it shows the version in the title bar of the window. I just did a clean install of 2016.1.5 from pip, and the axis shows up. Screenshot attached – is that what you see? Note how there are 6 axis + a POV.
Important part is that it drives though! Now I just need to figure out how to make it drive…easier. The sticks having such small amounts of travel mean it’s very easy to not have them be perfectly in sync, meaning our robot drifts right or left instead of driving straight. any suggestions?
Use a bigger joystick instead.
An often used solution is to square the inputs to make them less sensitive at lower speeds. RobotDrive.tankDrive accepts a parameter ‘squaredInputs’ that will do this if you set it to true. Other people use xbox controllers, I suggest searching CD (not just python, but Java and C++ too) to see what kinds of solutions others have employed to solve this problem.