Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Python (http://www.chiefdelphi.com/forums/forumdisplay.php?f=187)
-   -   Tank drive on Xbox Controller (http://www.chiefdelphi.com/forums/showthread.php?t=142139)

onenerdyguy 19-01-2016 15:59

Tank drive on Xbox Controller
 
I'm having difficulty getting a tank drive up and running on an Xbox controller. For some reason, it won't detect the right stick.

according to the driver station, our right stick Y axis is axis 5. My code is as follows:

self.leftstick = wpilib.Joystick(0,1)
self.rightstick = wpilib.Joystick(0,5)

The drive code is the very simple
self.myRobot.tankDrive(self.leftStick, self.rightStick)


The left stick works fine. Right stick doesn't even appear. Is there something I'm missing?

team-4480 19-01-2016 16:08

Re: Tank drive on Xbox Controller
 
Quote:

Originally Posted by onenerdyguy (Post 1526743)
I'm having difficulty getting a tank drive up and running on an Xbox controller. For some reason, it won't detect the right stick.

according to the driver station, our right stick Y axis is axis 5. My code is as follows:

self.leftstick = wpilib.Joystick(0,1)
self.rightstick = wpilib.Joystick(0,5)

The drive code is the very simple
self.myRobot.tankDrive(self.leftStick, self.rightStick)


The left stick works fine. Right stick doesn't even appear. Is there something I'm missing?

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.

onenerdyguy 19-01-2016 17:02

Re: Tank drive on Xbox Controller
 
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.

virtuald 19-01-2016 17:27

Re: Tank drive on Xbox Controller
 
The simulation only supports 4 axis at the moment. It should be pretty straightforward to add a fifth axis, could you file a bug on pyfrc's github?

Also, the robotpy-wpilib-utilities has an XBoxController class, you may find that useful.

onenerdyguy 19-01-2016 17:30

Re: Tank drive on Xbox Controller
 
well hot dang, that's exactly what I needed to hear before we bashed our heads in trying to figure out what the heck we were doing wrong!

I'll look into this class, it could be very helpful!

WubbaDuck 21-01-2016 11:29

Re: Tank drive on Xbox Controller
 
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.

virtuald 21-01-2016 11:42

Re: Tank drive on Xbox Controller
 
Quote:

Originally Posted by WubbaDuck (Post 1527790)
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.

On the robot or on the simulator? The real robot should work on up to 12 axes -- if that doesn't work, let me know.

On the simulator, if you upgrade pyfrc to the latest version it will support all of the axes and POV for a xbox controller.

WubbaDuck 21-01-2016 12:53

Re: Tank drive on Xbox Controller
 
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.

onenerdyguy 22-01-2016 08:21

Re: Tank drive on Xbox Controller
 
Sorry, just got to this. Been a busy week.

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?

virtuald 22-01-2016 10:28

Re: Tank drive on Xbox Controller
 
1 Attachment(s)
Quote:

Originally Posted by onenerdyguy (Post 1528262)
The tank drive code works great, using getRawAxis(1) for the left stick, and getRawAxis(5) for the right.

Great.

Quote:

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.

Quote:

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. :p

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.


All times are GMT -5. The time now is 19:49.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi