Go to Post At this point I think I've absorbed more aluminum into my blood than the iron that was already there. - hectorcastillo [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #16   Spotlight this post!  
Unread 04-04-2008, 12:24
Shadow503's Avatar
Shadow503 Shadow503 is offline
printf("\r\n Moo!");
no team
Team Role: Human Player
 
Join Date: Mar 2007
Rookie Year: 1991
Location: na
Posts: 92
Shadow503 will become famous soon enoughShadow503 will become famous soon enough
Re: Unique ways of controlling your robot (driving)

I love our steering wheel:
  #17   Spotlight this post!  
Unread 04-04-2008, 13:07
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by JesseK View Post
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).
  #18   Spotlight this post!  
Unread 04-04-2008, 17:35
Qbranch Qbranch is offline
wow college goes fast.
AKA: Alex
FRC #1024 (Kil-A-Bytes)
Team Role: Alumni
 
Join Date: Apr 2006
Rookie Year: 2006
Location: Indianapolis
Posts: 1,174
Qbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond reputeQbranch has a reputation beyond repute
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 ( 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
__________________
Electrical Engineer Illini
1024 | Programmer '06, '07, '08 | Driver '08
  #19   Spotlight this post!  
Unread 04-04-2008, 17:41
thefro526's Avatar
thefro526 thefro526 is offline
Mentor for Hire.
AKA: Dustin Benedict
no team (EWCP, MAR, FRC 708)
Team Role: Mentor
 
Join Date: Aug 2006
Rookie Year: 2005
Location: New Jersey
Posts: 2,599
thefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond reputethefro526 has a reputation beyond repute
Send a message via AIM to thefro526 Send a message via MSN to thefro526
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.
__________________
-Dustin Benedict
2005-2012 - Student & Mentor FRC 816
2012-2014 - Technical Mentor, 2014 Drive Coach FRC 341
Current - Mentor FRC 2729, FRC 708
  #20   Spotlight this post!  
Unread 04-04-2008, 18:02
s_forbes's Avatar
s_forbes s_forbes is offline
anonymous internet person
FRC #0842 (Falcon Robotics)
Team Role: Engineer
 
Join Date: Jan 2006
Rookie Year: 2006
Location: Phoenix, AZ
Posts: 1,151
s_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond reputes_forbes has a reputation beyond repute
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.
  #21   Spotlight this post!  
Unread 04-04-2008, 18:37
Protronie's Avatar
Protronie Protronie is offline
Have big wrench...and will use it!
no team
 
Join Date: Dec 2006
Rookie Year: 2006
Location: North Carolina
Posts: 617
Protronie has much to be proud ofProtronie has much to be proud ofProtronie has much to be proud ofProtronie has much to be proud ofProtronie has much to be proud ofProtronie has much to be proud ofProtronie has much to be proud ofProtronie has much to be proud of
Send a message via ICQ to Protronie Send a message via Yahoo to Protronie
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by Qbranch View Post
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 ( 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?
__________________
Protronie rule 5 - When the big wrench starts swinging, get out of the way!
  #22   Spotlight this post!  
Unread 04-04-2008, 21:37
Kev Kev is offline
The Greatest
FRC #0614 (Nighthawks)
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Fairfax County
Posts: 16
Kev is an unknown quantity at this point
Send a message via AIM to Kev
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by EricH View Post
...
  • DDR pad
is there a video of this?
__________________
  #23   Spotlight this post!  
Unread 04-04-2008, 21:53
BHS_STopping's Avatar
BHS_STopping BHS_STopping is offline
The Freshman
FRC #0842 (Falcon Robotics)
Team Role: Mentor
 
Join Date: Jan 2006
Rookie Year: 2006
Location: Sunnyvale, CA
Posts: 176
BHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant futureBHS_STopping has a brilliant future
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by s_forbes View Post
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.
__________________
[/The Freshman]
  #24   Spotlight this post!  
Unread 05-04-2008, 14:16
AmoryG AmoryG is offline
Registered User
FRC #2423 (KwarQs)
Team Role: Alumni
 
Join Date: Mar 2008
Rookie Year: 2008
Location: Watertown, MA
Posts: 221
AmoryG has much to be proud ofAmoryG has much to be proud ofAmoryG has much to be proud ofAmoryG has much to be proud ofAmoryG has much to be proud ofAmoryG has much to be proud ofAmoryG has much to be proud ofAmoryG has much to be proud of
Re: Unique ways of controlling your robot (driving)

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.
Attached Files
File Type: txt code.txt (3.5 KB, 52 views)

Last edited by AmoryG : 05-04-2008 at 14:20.
  #25   Spotlight this post!  
Unread 05-04-2008, 14:59
Curt_Bagne's Avatar
Curt_Bagne Curt_Bagne is offline
Registered User
FRC #0573 (Mech Warriors)
Team Role: Electrical
 
Join Date: Mar 2007
Rookie Year: 2006
Location: Troy Michigan
Posts: 6
Curt_Bagne is an unknown quantity at this point
Send a message via AIM to Curt_Bagne
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.
__________________
Curt Bagne, driver and electronics leader
Team 573
2007 GLR Champions
2008 Pittsburgh semifinalists
2008 GLR quarterfinalists
  #26   Spotlight this post!  
Unread 05-04-2008, 15:31
Greg Peshek Greg Peshek is offline
Registered User
FLL #2054
 
Join Date: Feb 2006
Rookie Year: 2011
Location: Seattle
Posts: 195
Greg Peshek is a name known to allGreg Peshek is a name known to allGreg Peshek is a name known to allGreg Peshek is a name known to allGreg Peshek is a name known to allGreg Peshek is a name known to all
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by BHS_STopping View Post
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.
  #27   Spotlight this post!  
Unread 06-04-2008, 15:53
James Tonthat James Tonthat is offline
Registered User
FRC #0148 (Robowranglers)
Team Role: Mentor
 
Join Date: Feb 2008
Rookie Year: 2008
Location: Greenville, TX
Posts: 303
James Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond repute
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
  #28   Spotlight this post!  
Unread 06-04-2008, 17:46
Shadow503's Avatar
Shadow503 Shadow503 is offline
printf("\r\n Moo!");
no team
Team Role: Human Player
 
Join Date: Mar 2007
Rookie Year: 1991
Location: na
Posts: 92
Shadow503 will become famous soon enoughShadow503 will become famous soon enough
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by jtkellertx View Post
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?
  #29   Spotlight this post!  
Unread 06-04-2008, 22:13
James Tonthat James Tonthat is offline
Registered User
FRC #0148 (Robowranglers)
Team Role: Mentor
 
Join Date: Feb 2008
Rookie Year: 2008
Location: Greenville, TX
Posts: 303
James Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond reputeJames Tonthat has a reputation beyond repute
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.
  #30   Spotlight this post!  
Unread 06-04-2008, 23:31
usbcd36's Avatar
usbcd36 usbcd36 is offline
Registered User
AKA: "DOS"
FRC #2399 (The Fighting Unicorns)
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 2006
Location: Solon, OH
Posts: 151
usbcd36 is a jewel in the roughusbcd36 is a jewel in the roughusbcd36 is a jewel in the rough
Re: Unique ways of controlling your robot (driving)

Quote:
Originally Posted by lukevanoort View Post
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).
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
surefire ways to break you robot XXShadowXX General Forum 159 06-02-2009 19:03
Whats unique about your website? Trashed20 Website Design/Showcase 7 26-11-2002 13:50
Controlling a FIRST robot with a Lego RCX Controller? archiver 2001 5 24-06-2002 04:19
Favorite NEW unique aspect of a robot archiver 2001 1 24-06-2002 03:57
What's unique about your Regional? Digo Regional Competitions 11 14-04-2002 14:37


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

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


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