![]() |
Re: Single Joystick Tank Drive
It does say 0.0 at the beginning, but after driving it for a bit then letting go, it doesn't always center perfectly.
Both of our joysticks do that :\ |
Re: Single Joystick Tank Drive
Quote:
|
Re: Single Joystick Tank Drive
They're clean outta the box ones... :'(
|
Re: Single Joystick Tank Drive
Quote:
Try loading the default code that came with the LabVIEW installation and run it and see if it does the same thing. |
Re: Single Joystick Tank Drive
After updating and running stuff again, joysticks center within 0.05 from center. Still not a perfect 0.
However, after playing around with various types of if statements, I'm starting to get the impression that the default way is the only way of making it operate smoothly. If you look at the http://web.goodrobot.com/blog/wp-con.../tankdrive.png diagram clockwise, by default we get the "motor forward x3, motor off, motor backward x3, motor off" pattern.. That way there is never a situation where the motor has to abruptly switch directions. If swapping the reverse directions, we get "motor forward x3, motor backward x3, motor off, motor backward, motor off". That way at some point there's an abrupt change in motors from going backwards to forward. That is the issue I've been having and at this point I see no way of avoiding it. If I'm wrong, please correct me. |
Re: Single Joystick Tank Drive
Quote:
I believe the pseudo-code below implements the behavior shown in the diagram you referenced: Code:
float Xj, Yj, L, R;Code:
float Xj, Yj, L, R;*if using Jaguars, you may want to experiment with putting the jumper in the "coast" setting to avoid abrupt motor braking when transitioning into/out_of the deadband zone |
Re: Single Joystick Tank Drive
I've tried having a dead zone, treating everything within 0.1 from the axis, as 0.
Then problem is that when you move the joystick all the way right to turn on the spot, then move it slightly forward, then slightly backwards, you can hear the motors clicking as they're going from "left forward right backwards" to "left backwards right forward". I tried to play around with giving it more of a dead zone when turning on the spot Code:
//x, y = joystick positionI think my driver will have to get used to driving the way it was originally, with swapped reverses. |
Re: Single Joystick Tank Drive
Quote:
You could install the gyro and use it so that the driver interface would allow the driver to issue field-centric commands. The driver points the joystick, and the vehicle turns and goes in that direction at a speed determined by the magnitude of the joystick displacement. |
Re: Single Joystick Tank Drive
I love the concept, but it's a little bit more advanced than I can manage at the moment :\ This is our rookie year, and there's a lot more to figure out. Maybe in the future!
Thanks so much for your help :) |
Re: Single Joystick Tank Drive
This is a great subject. I am working on the same concept using Visual Basic. I have a scaled Picture box with -128,128, 128,128 set as the scaled box points. Center is 0 (zero) with adjustable deadbands in both X & Y centered.
Moving a joystick OR mouse sends the Xj, Yj or Xm, Ym directly to the motor controller, after calculations. I am using pythagorean for vector speed (Vel) based on joystick/mouse angle and distance from center. This works great in direct Y and -Y vectors ( both treads move at same speed and direction). -X, X will rotate Left and Right tank treads in opposite directions at equal speed. When steering slightly left and forward (Xj=-20, Yj=50) the total vector is the Sin(Angle)* Vel. This does well when transitioning from full forward to left/right steering. I'm still working out some bugs. I have not considered Tan2 yet or using a Gyro to steer by. The motor controller is a Sabertooth 2x50 and using 0-127 as speed with direction tokens. One thing to consider however, is when going from full forward to all-stop. This can tip the robot or cause problems with stability. I programmed a ramp-down speed Vel=Vel-ramp^2. this allow VERY smooth and quick stopping transitions. Keep in touch! Doyle |
Re: Single Joystick Tank Drive
As for the gyro-guided driving, I know that labview has a rotate axis vi built in. Not sure if java has it or not but the challenge is finding a way to get it to turn completely because as it comes closer to the direction your pointing the joystick the less exaggerated the turn becomes because you are moving closer to 0 on the x-axis and if your turning too fast then your gyro loses its accuracy. Good luck :)
|
| All times are GMT -5. The time now is 11:21. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi