Go to Post If you're destroying game pieces left and right, you're doin' it wrong. - Ian Curtis [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
  #1   Spotlight this post!  
Unread 16-04-2007, 16:33
Jimmy Cao Jimmy Cao is offline
Registered User
AKA: Jimmy Cao
no team
 
Join Date: Sep 2006
Rookie Year: 2004
Location: San Francisco, CA
Posts: 295
Jimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant futureJimmy Cao has a brilliant future
Re: Crab / Swerve drive joystick control scheme

Quote:
Originally Posted by BRosser314 View Post
469 had 2 joysticks, one for translation and one for the rotation, this setup was very simple, even for me which just drove the joysticks for about 3 minutes, and i thought it was simple
To start with a concept: The robot is always rotating around an imaginary point, somewhere. Putting the point at infinity causes the robot to go straight.

To be a little more in depth about our controls, we used one stick to control the magnitude and direction of translations. The other one controlled the magnitude of rotations. We use both the X and Y axis on translation, and only the X axis for rotation.

Through a direct ratio of the 2 sticks (since the robot can only be outputting 100% power at any time, therefore it cannot be rotating at 100% and translating at 100% at the same time), the "imaginary point" was decided via software. The point was placed along a line, generated by the angle of the translation stick, and the exact point being dictated by the magnitude of the rotation stick. If the rotating stick stayed at 127, then the point is off at "infinity" (or actually 1618 feet or something, due to software limits on handling large numbers (we needed to square that number)). The further the rotation stick moved away from 127 the closer the "imaginary point" got to the robot.

Now, we draw an imaginary line from the "imaginary point" to each of the wheels, and draw another line perpendicular to that first line. The second line is where the wheels should be pointing to achieve the desired translation/rotation/combination of both.

For example, if the translation stick is at 127, and the rotation stick is at 255, the imaginary point would be placed in the center of the robot, and the wheels will be placed perpendicular the the line between that point and the wheel (via closed loop PID control). Since only the rotation stick is being used, 100% of the power output of the robot will be dedicated to rotations.

Now, lets say the rotation stick is at 127 and the translation stick is at (0,127) which is completely left. The point will be placed infinitely far in front of the robot (infinitely being 1618 feet) away from the robot, and put the wheels perpendicular to the line leading from the point the each of the wheels. Then, 100% of the drive power is devoted to translating (which is actually not true, it's devoted to rotating about a point VERY far away).

The advantage of this system is that it's capable of both translating, rotating, and both at the same time, with relative ease (well that's a lie... it's hard to program)

By the way, this is only possible for 4 independently steered wheels. I have no idea how to do it if you use linked. I guess the easiest way is to use 1 stick purely for translations, and one purely for rotations, skid stearing. With translations, it's easy, point in that direction, and move. With rotations, I would say point them all forward and turn... like a normal 4wd system.

If you want to know more feel free to PM me and i'll explain the system to the best of my knowledge.
__________________
Jimmy Cao

Team 469 2006-2010 Student/Alumni
Team 830 2011-2012 Mentor

Last edited by Jimmy Cao : 16-04-2007 at 19:16.
  #2   Spotlight this post!  
Unread 16-04-2007, 17:53
Dave Scheck's Avatar
Dave Scheck Dave Scheck is offline
Registered User
FRC #0111 (WildStang)
Team Role: Engineer
 
Join Date: Feb 2003
Rookie Year: 2002
Location: Arlington Heights, IL
Posts: 574
Dave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond reputeDave Scheck has a reputation beyond repute
Re: Crab / Swerve drive joystick control scheme

We have used the same basic crab control on all of our robots since 2002 (I wasn't on the team prior to that, so I don't know how those were controlled).

The X-axis of the left stick controls the crab angle. Since we use a closed loop system, when the joystick is centered, the wheels point straight ahead.

The right stick is where the interesting stuff happens. If we are trying to crab (based on the value of crab stick X), only the Y-axis of the right stick is used, and it becomes our throttle. When we aren't trying to crab, the right stick acts as a single stick differential drive.

This setup is similar to a FPS video game control except we don't attempt to strafe and rotate at the same time.
  #3   Spotlight this post!  
Unread 16-04-2007, 18:47
CraigHickman
 
Posts: n/a
Re: Crab / Swerve drive joystick control scheme

What we planned to do on a theoretical crab that we haven't built yet (we've only built one, and it was uncontrollable...) is have a single joystick with only the y axis enabled for throttle, and have a pot with a handle on an outstretched bar for pointing the wheels. The scoring mechanism would be on a turret, so translating as well as crab steering wouldn't really be necessary.
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
Simple Swerve/Crab Rob2713g Technical Discussion 4 20-03-2007 19:00
Swerve drive control system dpick1055 Programming 8 22-01-2007 19:06
Swerve/Crab Rob2713g Technical Discussion 5 12-11-2006 22:05
Control Scheme Drok00 Control System 5 19-01-2006 16:57
Swerve/crab drive and tank turning activemx Technical Discussion 9 23-02-2004 18:26


All times are GMT -5. The time now is 02:38.

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