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)

AmoryG 03-04-2008 18:23

Unique ways of controlling your robot (driving)
 
The 2008 competition is mine and my team's rookie year. This year I was the sole student programmer with about no experience with programming. I received tons of help from my mentors and I was able to help program the robot with their assistence. Because of this a lot of the time I was doing things on my own and I did a lot of experimenting.

With my mentors, we came up with quite a few ways of driving the bot. I won't share the code right away (I need to get it first), but would anyone like to share and explain their methods of controlling the driving of the robot? I'm really curious what you guys did.

These are the things we tried (I'll share the code when I get it)...

1. Double Joystick: very hard to control. We tried a lot to make it more controlable, but it never worked out well.

2. Single Joystick 1: One speed, 4 ways of moving robot. Push the joystick up and it moves forward. Push it down it moves backwards. Left it turns a bit left and right it turns a bit right.

3. Other single joystick controlls: We made a few other single joystick control systems. One we used in the competition.

I apologize in advance if broke some sort of rule :o

EricH 03-04-2008 18:28

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

Originally Posted by AmoryG (Post 729994)
The 2008 competition is mine and my team's rookie year. This year I was the sole student programmer with about no experience with programming. I received tons of help from my mentors and I was able to help program the robot with their assistence. Because of this a lot of the time I was doing things on my own and I did a lot of experimenting.

With my mentors, we came up with quite a few ways of driving the bot. I won't share the code right away (I need to get it first), but would anyone like to share and explain their methods of controlling the driving of the robot? I'm really curious what you guys did.

These are the things we tried (I'll share the code when I get it)...

1. Double Joystick: very hard to control. We tried a lot to make it more controlable, but it never worked out well.

2. Single Joystick 1: One speed, 4 ways of moving robot. Push the joystick up and it moves forward. Push it down it moves backwards. Left it turns a bit left and right it turns a bit right.

3. Other single joystick controlls: We made a few other single joystick control systems. One we used in the competition.

I apologize in advance if broke some sort of rule :o

These are all acceptable in competition and here.

Most teams use the double-stick method. Some use single. Others have been known to use the following:
  • DDR pad
  • Steering wheel
  • R/C controller
  • Game controller of some form

Herodotus 03-04-2008 18:30

Re: Unique ways of controlling your robot (driving)
 
My favorite form of driving the base of the robot so far has been double joysticks, because it gives a great deal of control, in my opinion. This year, however, we went with a single joystick with the idea that it would leave my other hand free for some push button semi-automatic controls such as u-turns and lane shifting. That hasn't panned out (yet) but with a little bit of work we've gotten our controls working decently well, the single joystick needs a little more tweaking than dual joysticks.

Our joystick itself was fairly unique though(one of a kind as far as I know), what with being a weighted companion cube.

Grant Cox 03-04-2008 18:53

Re: Unique ways of controlling your robot (driving)
 
My personal favorite is a PS2 controller with the USB chicklet. The two analog sticks act the same as joysticks, but it just feels a lot more natural and allows you to have more control than sticks (imo).

fimmel 03-04-2008 19:48

Re: Unique ways of controlling your robot (driving)
 
we attempted a mechanum drive this year but never got the strafing to work right. but we had forward backward on the left y axis and left / right steering on the right x axis (along with strafing on the left x axis but that didn't work like i said) and it made it very easy to drive strait since you could tweak the direction with your right hand and just keep ur left at the speed you like.

i recommend people try this cause its nice and very intuitive

...forest

lukevanoort 03-04-2008 19:51

Re: Unique ways of controlling your robot (driving)
 
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.

AmoryG 03-04-2008 20:59

Re: Unique ways of controlling your robot (driving)
 
Well, one of the reasons why I as the driver (and I think most of my team) didn't like the tank control/duel joystick was partially because our robot was so powerful. The gearing ratio made it so actually stearing the it was one thing, but making it turn gradually and not suddenly turn around in a great circle was another thing. We tried all different things with the programming, but it never worked as well as we hoped. I eventually came up with a system that I used in the competition. The results were the best I could hope for. When you turned the joystick to the top left hand corner, it made a nice curve and just by turning it a bit, I could change the turning direction so if there were robots in the way I could easily menuver around them.

When we first entered the competition we only used 1/4th the power our robot was capable of. Because the rug made it so the robot was slower but a lot more controllable we upped it to 1/2 the power and added a turbo trigger. If the joystick is in a certain area the robot will automatically go straight at max speed. I think I could bring up the code, I have it on my computer somewhere....

mluckham 03-04-2008 21:52

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

We do it like one-stick but we split the x and y axis out onto different joysticks (kind of like Halo)
Nice! Like Mode 1 in Radio Control airplane transmitters (one stick rudder, one stick elevator), versus Mode 2 (single-stick). I'm gonna have the guys try that, next year.

Battering_Ram 03-04-2008 22:11

Re: Unique ways of controlling your robot (driving)
 
I have been driving two years (171) and we have had tank drive both years. I really like this because it isolates the two sides of bot. But I will admit that I want to try the halo style so i will email my programmer right away. In my opinion I believe the one joystick is cramming to much onto one contoller, I'd rather isolate and have more precision(imo). But variety is the spice of life so I think its great how everyone does something different.

Racer26 04-04-2008 11:16

Re: Unique ways of controlling your robot (driving)
 
I suspect you had trouble with twin stick control because you did not map the values to a cubic curve to desensitize it.

Jimmy Cao 04-04-2008 11:42

Re: Unique ways of controlling your robot (driving)
 
We do something rather unique to our drive system.

There are two joysticks. On one of them, we use both axis. The X axis translates the robot left and right, and the Y axis translates the robot forwards and backwards.

We only use one axis on the other joystick. This joystick is responsible for the rotation of the robot. By using both sticks together, the software places an imaginary point in space that the robot "rotates" around. However, this control system only works on an omni directional drive system.

BigJ 04-04-2008 11:43

Re: Unique ways of controlling your robot (driving)
 
For our mecanum setup, we used one stick for all translation (sliding while facing same way, includes forwards/backwards) and another stick for the rotation on the X-axis.

The drivers had different preferences as to which side they were on so they were interchangeable.

jester_assault 04-04-2008 11:46

Re: Unique ways of controlling your robot (driving)
 
For our Mecanum drive system, 357 uses a 3-axis joystick. The X axis and the Y axis are used for forward/backward/ and translation motions, while the Z axis is used for spin. In the past we used a 2 axis joystick and isolated translational movement to only occur when the drive held the trigger of the joystick.

E. Wood 04-04-2008 12:00

Re: Unique ways of controlling your robot (driving)
 
Team 1629 has always used a single joy stick to drive and an array of buttons and switch sto control the functions until this year. This year, while the buttons and switchs are still there, we used a steering wheel to drive. We figured "hey its a race right, race cars already work well, so we will drive it just like a race car." (If you havent checked out our drive train check it out at http://www.team1629.com Its pretty cool.)

JesseK 04-04-2008 12:23

Re: Unique ways of controlling your robot (driving)
 
I like that halo idea. Things seem more intuitive and less pressure if you can train each hand to do a different task.

Here are some arguments to try single-joystick driving instead of classical tank drive. Keep in mind this is just my opinion. I also have a control systems background so I feel it's easier and more advantageous to do a system rather than leave some things up to driver control.

Personally, I think classical "tank" drive puts too much of the drive processing on the driver, and agree with the OP that it's harder to control. Movements aren't as smooth as they could be and it's hard to process inputs for improvements in the code. Driving backwards and driving while the bot is pointed at the driver also becomes harder without alot of practice. Think about a bunch of cones setup on the track and you have to slalom through them while also making the left-hand turns around the track. Without alot of practice, tank drives will usually make it through such a course slower/quirkier than the single-joystick setup. This year, the slalom consists of 5 other dynamically placed bots and 3 other trackballs on the field, so I believe this comparison is valid.

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. Some of this stuff isn't easy to do, and sometimes isn't even necessary depending on the way the driver naturally drives.

Some drivers can intuitively drive without all of the fancy code. Yet imagine how much more they could concentrate on game strategy if they didn't have to focus so much on the drive itself. Just my .02.


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

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