|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Crab / Swerve drive joystick control scheme
Quote:
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. Last edited by Jimmy Cao : 16-04-2007 at 19:16. |
|
#2
|
||||
|
||||
|
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
|
|||
|
|||
|
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.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
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 |