Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Unique ways of controlling your robot (driving) (http://www.chiefdelphi.com/forums/showthread.php?t=66557)

Shadow503 04-04-2008 12:24

Re: Unique ways of controlling your robot (driving)
 
I love our steering wheel:

Alan Anderson 04-04-2008 13:07

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by JesseK (Post 730468)
With a single joystick, in code I can create a system that has some variables (aka coefficients). Based upon the variables I can determine different integral-based rotational neutral zones, scale within certain regions of joystick movement, how the robot reacts based upon its direction, and can eliminate jerky joystick movements that translate to jerky bot movements for both rotation and lateral at the same time. For tank drive, doing all of these things requires at least twice the code so you can determine a rotation vector, where as single-joystick drive rotation is a direct input.

To convert dual-joystick tank-style control to single-joystick arcade-style control is two lines of code.

Code:

speed = left + right;
 turn = left - right;

I have left off scaling and offset, because some people like to keep the 0-254 range and others like +/- 127 instead (the TechnoKats Overdrive code this year actually uses +/- 100 for all internal computations).

Qbranch 04-04-2008 17:35

Re: Unique ways of controlling your robot (driving)
 
Really, and this is the programmer side of me talking, you have to taylor-make the controls to the driver/operator. Everybody's brain is wired different, so there isn't any one great answer.

In 2006 (I think) I saw a team that had a mechanum drivetrain that used a single joystick drive with a twist (:rolleyes: pun)... they added a twisting handle to one of the white joysticks to control the spin motion that a mechanum drive is capable of. Cool idea.

As a driver (hopefully I'm not alone on this and someone has a similar experience) some people just 'get' a tank (2 joystick/differential) drive system. Our driver we had through the 2006 season wouldn't take anything else really... he could feel the way the robot drove and found it simplest to do tank drive.

Personally, I agree. Our robot runs most efficiently if we run down our homestretch going forwards, grab the ball, and use the bounce of the ball running into the opposite wall of the field to speed up our acceleration comming back on the other side of the track. This requires me to be able to drive the robot backwards, something that I think would be much more difficult with any other kind of input system I can think of.

-q

thefro526 04-04-2008 17:41

Re: Unique ways of controlling your robot (driving)
 
I'm my experience, I've grown to love a two Joystick Tank system. Usually the programmer will set the maxes so that max forward is always perfectly straight. I've used a lot of different controls with my vex robot's and the only time I don't use a tank is when I'm using my custom mecanums.

s_forbes 04-04-2008 18:02

Re: Unique ways of controlling your robot (driving)
 
We used the normal tank drive system in 2006 and 2007. To make it a little easier to control, we hacked off the long joystick arms. It worked alright, but it was still pretty difficult to conrol when trying to manipulate turns. Going in a gradual in high gear was also near impossible!

This year we decided to go with a controller used for racing remote control cars, and it worked amazingly well (photo here). The guts of the controller were removed, and it was programed to work with feedback from gear tooth sensors in the transmission.

The steering wheel allows for fine control during high speed maneuvers, something that is very useful for this years game. Turning the wheel without throttling makes the bot turn in place, and reversing the throttle makes it behave like a car driving backwards. I think everyone on the team who tried our new drive system agreed that it was much easier to control than the tank style.

Protronie 04-04-2008 18:37

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by Qbranch (Post 730671)
Really, and this is the programmer side of me talking, you have to taylor-make the controls to the driver/operator. Everybody's brain is wired different, so there isn't any one great answer.

In 2006 (I think) I saw a team that had a mechanum drivetrain that used a single joystick drive with a twist (:rolleyes: pun)... they added a twisting handle to one of the white joysticks to control the spin motion that a mechanum drive is capable of. Cool idea.

As a driver (hopefully I'm not alone on this and someone has a similar experience) some people just 'get' a tank (2 joystick/differential) drive system. Our driver we had through the 2006 season wouldn't take anything else really... he could feel the way the robot drove and found it simplest to do tank drive.

Personally, I agree. Our robot runs most efficiently if we run down our homestretch going forwards, grab the ball, and use the bounce of the ball running into the opposite wall of the field to speed up our acceleration comming back on the other side of the track. This requires me to be able to drive the robot backwards, something that I think would be much more difficult with any other kind of input system I can think of.

-q

I'm, guessing it really helps if the driver and programmer just happen to be the same person.
Only one question... when something goes south and your bot slams the wall on turn three... who do you blame? :p

Kev 04-04-2008 21:37

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by EricH (Post 729996)
...
  • DDR pad

is there a video of this?

BHS_STopping 04-04-2008 21:53

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by s_forbes (Post 730685)
We used the normal tank drive system in 2006 and 2007. To make it a little easier to control, we hacked off the long joystick arms. It worked alright, but it was still pretty difficult to conrol when trying to manipulate turns. Going in a gradual in high gear was also near impossible!

This year we decided to go with a controller used for racing remote control cars, and it worked amazingly well (photo here). The guts of the controller were removed, and it was programed to work with feedback from gear tooth sensors in the transmission.

The steering wheel allows for fine control during high speed maneuvers, something that is very useful for this years game. Turning the wheel without throttling makes the bot turn in place, and reversing the throttle makes it behave like a car driving backwards. I think everyone on the team who tried our new drive system agreed that it was much easier to control than the tank style.

As the main driver of Team 1726 this year, I can vouch for this system. It is, without a doubt, so much easier to operate than a standard 2-joystick tank drive system. I urge other teams immensely to consider this type of controller to test out. I found it so much easier to use than a standard tank drive system (which I have become accustomed to over the past few years), and the switch to a new system was incredibly easy to get used to.

With a bit of programming, you can make a 6WD system drive perfectly straight and steer like an ackermann type drive train, while still retaining the maneuverability and on-the-spot turning of a tank drive system. A picture of our setup can be found here.

Again, I urge all teams to give it a shot! I can guarantee that it will improve the performance of your robot and reduce the strain on your driver.

AmoryG 05-04-2008 14:16

Re: Unique ways of controlling your robot (driving)
 
1 Attachment(s)
Here is code for the system I used. I created this system and I used it in the competition. I apologize that it might be hard to read and understand.

-One joystick control
-Uses a function that changes turning rate

You can view the code by opening the attachment below. I didn't want to copy+paste the text directly in the post, it's too long. Also, note this is old code. In the actual competition we made some minor adjustments, but besides that it's almost identical to the newer version.

Curt_Bagne 05-04-2008 14:59

Re: Unique ways of controlling your robot (driving)
 
I am really happy with 2 stick tank drive. It gives me lots of control and allows me to do things with the robot that I'm not sure I could do with other control systems.

This may be a bad metaphor but think of tank drive as a car with a manual transmission and some other trick control system as a car with an automatic. An automatic is easy to use and a new driver can do very well with it but it takes control away and gives it to a computer that in most cases doesn't know when you are approaching a turn or anything else. A manual transmission takes longer to get used to but once it is mastered, it is faster in most racing situations. Once you master the basics of tank steer(going straight, smooth turns, inverting inputs when the robot is going towards the driver) it can be made to do some amazing things.

I could be completely wrong as I don't have any experience driving a robot with anything other than tank steer but I think what I said is true.

Greg Peshek 05-04-2008 15:31

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by BHS_STopping (Post 730785)
As the main driver of Team 1726 this year, I can vouch for this system. It is, without a doubt, so much easier to operate than a standard 2-joystick tank drive system. I urge other teams immensely to consider this type of controller to test out. I found it so much easier to use than a standard tank drive system (which I have become accustomed to over the past few years), and the switch to a new system was incredibly easy to get used to.

With a bit of programming, you can make a 6WD system drive perfectly straight and steer like an ackermann type drive train, while still retaining the maneuverability and on-the-spot turning of a tank drive system. A picture of our setup can be found here.

Again, I urge all teams to give it a shot! I can guarantee that it will improve the performance of your robot and reduce the strain on your driver.

We built an Ackermann steering system this year, and as driver of the robot and a RC Car racer, your system is something I wanted to try out (I actually have that same pistol grip TX for my recreational driving cars). Unfortunately none of us knew how to setup the "guts" of the controller. Would your team be willing to create a white paper, or a general how-to for the setup of this system (although it's likely that we'll have a new control system, it's something I would like to look into). I'm sure many teams would be in debt to your team if you were to do this. Thanks.

-Greg P.

James Tonthat 06-04-2008 15:53

Re: Unique ways of controlling your robot (driving)
 
We use one joystick.

Having mechanums, we can move in any direction. Being of the video game generation, I had it programmed like a helicopter. Forward is forward, back is back, left is a left straife, right is a right straife, twist left is a left rotation, twist right is a right rotation. It makes a bunch of intuitive sense. You can think of it as a helicoper or think of it as a first person shooter. We use a Saitek Avaitor USB joystick, attached to a USB chicklet. The top buttons are for the launch, arm pick up, and arm drop.

More techie description:
+Y = Forwards
-Y = Backwards
+X = Right Straife
-X = Left Straife
+Z = Right twist (right turn)
-Z = Left twist

Shadow503 06-04-2008 17:46

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by jtkellertx (Post 731499)
We use one joystick.

Having mechanums, we can move in any direction. Being of the video game generation, I had it programmed like a helicopter. Forward is forward, back is back, left is a left straife, right is a right straife, twist left is a left rotation, twist right is a right rotation. It makes a bunch of intuitive sense. You can think of it as a helicoper or think of it as a first person shooter. We use a Saitek Avaitor USB joystick, attached to a USB chicklet. The top buttons are for the launch, arm pick up, and arm drop.

More techie description:
+Y = Forwards
-Y = Backwards
+X = Right Straife
-X = Left Straife
+Z = Right twist (right turn)
-Z = Left twist

That's a sweet control scheme. How long did it take your drive team to adjust? Do you have any videos of your robot in action?

James Tonthat 06-04-2008 22:13

Re: Unique ways of controlling your robot (driving)
 
Err, too bad I don't have any cool video of it but it didn't take that long to adapt to, probably 1 or 2 minutes to stop running into walls and another 3 or so minutes to drive it pretty well. You learn to drift your turns to smooth them out, just a thing you naturally develop with time.

Edit: Actually, you'll see us at us at the Championships so maybe you can check it out there.

usbcd36 06-04-2008 23:31

Re: Unique ways of controlling your robot (driving)
 
Quote:

Originally Posted by lukevanoort (Post 730032)
We do it like one-stick but we split the x and y axis out onto different joysticks (kind of like Halo). This makes it really easy to drive dead straight (just let go of the turning joystick), gives a bit finer "feel" to the controls than one-stick, and is much more intuitive than tank drive. We have tried other methods, and some of our members prefer to drive tank-style; however, myself and last year's driver both found Halo-style to be the best compromise, so that is what we've used.

That's what we did this year too. A lot of the potential drivers hated the system, but they didn't show up to most of the driving practices, so I never changed it, and drove myself. The other nice thing about using this system was that I could use the Y-axis joystick with my left hand and grab it near the bottom (since it's a right-handed stick anyway), then use my left hand for the buttons and the desensitized X-axis (since we didn't need the power spin).


All times are GMT -5. The time now is 04:37.

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