Go to Post Boy you guys try to make my job harder every year. - Al Skierkiewicz [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 20-12-2010, 13:58
Dillon Carey's Avatar
Dillon Carey Dillon Carey is offline
6wd swerve, it has been done
AKA: TinyHippo
FRC #1625 (Winnovation)
Team Role: Alumni
 
Join Date: Jun 2008
Rookie Year: 2007
Location: Winnebago IL
Posts: 93
Dillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by AustinSchuh View Post
Which work best on flat ground. Not a problem in 2009 when the ground was flat, but I wouldn't have been willing to put them on our robot this year.
We had a setup very similar to this (http://www.chiefdelphi.com/media/photos/32440) on our 2010 robot. It was only used during autonomous, but it could have been used during the match if we had reason to.

Because of this we used a servo to pick it up during teleop. The only thing that may have worried me a little is going the plywood bump, but the omni wheel seemed to handle it fine.
(the only time we really damaged it was due to people not paying attention when setting the bot on the cart)
__________________
"More power 'till it breaks or you win."
- Keith Carey
  #17   Spotlight this post!  
Unread 20-12-2010, 14:05
Jogo Jogo is offline
Registered User
FRC #0353 (Pobots)
Team Role: Programmer
 
Join Date: May 2009
Rookie Year: 2007
Location: NY
Posts: 83
Jogo is on a distinguished road
Re: Holonomic + gyro/PID

Alright, I'm starting to understand. In the case of holonomic, there is usually joystick 1 (fow/rev and strafe), and joystick 2 (rotation). Would it be advisable to use a P/PID function that controls the rate of rotation of the robot? For example, if joystick 2 is at (0,0) but the gyro senses 5deg/sec, make some corrections. No reason to use P/ID on fow/rev and strafe?
  #18   Spotlight this post!  
Unread 20-12-2010, 14:12
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by Jogo View Post
Alright, I'm starting to understand. In the case of holonomic, there is usually joystick 1 (fow/rev and strafe), and joystick 2 (rotation).
That is one of four popular ways to do it. It's called Halo-style. See this link for 2 other ways. A fourth way is to use a 3-axis joystick: X, Y, and Z (twist).

Quote:
Would it be advisable to use a P/PID function that controls the rate of rotation of the robot? For example, if joystick 2 is at (0,0) but the gyro senses 5deg/sec, make some corrections.
If your drivetrain is well-designed and balanced, and your wheels are carefully aligned and the mec rollers spin freely, and you use PID to control the 4 wheel speeds, it shouldn't be necessary.

But you can if you want. Here's one way.

Quote:
No reason to use P/ID on fow/rev and strafe?
Right. Besides, how are you going to sense fwd/rev and strafe speeds for the PID process variable input? With a couple of idler wheels?






Last edited by Ether : 20-12-2010 at 14:25.
  #19   Spotlight this post!  
Unread 20-12-2010, 14:22
Jogo Jogo is offline
Registered User
FRC #0353 (Pobots)
Team Role: Programmer
 
Join Date: May 2009
Rookie Year: 2007
Location: NY
Posts: 83
Jogo is on a distinguished road
Re: Holonomic + gyro/PID

Cool, even if it isn't necessary during driver control, it would likely be for autonomous mode.

Thank you so much!
  #20   Spotlight this post!  
Unread 21-12-2010, 08:18
EricS-Team180's Avatar
EricS-Team180 EricS-Team180 is offline
SPAM, the lunchmeat of superheroes!
AKA: Eric Schreffler
FRC #0180 (SPAM)
Team Role: Engineer
 
Join Date: Apr 2002
Rookie Year: 2001
Location: Stuart, Florida
Posts: 561
EricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond reputeEricS-Team180 has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by Ether View Post
What was disastrous about it?

...insufficient testing to uncover errors in the steering motor's output logic coupled with a bad Cypress board and a hardware issue with our CAN bus. Using the sensor to determine field orientation angle worked fine. We ditched the Cypress board, fixed the CAN issues and reverted back to robot-oriented control and what you are calling a halo-style driving scheme. We just did not have time to untangle the logic.
__________________

Don't PANIC!
S. P. A. M.

Last edited by EricS-Team180 : 21-12-2010 at 08:28.
  #21   Spotlight this post!  
Unread 21-12-2010, 08:46
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by EricS-Team180 View Post
...insufficient testing to uncover errors in the turning motors' output logic.
Yeah, I was wondering if that's what you meant. I've been thinking about this problem for a while; it has many subtle nuances. For example, if a wheel is going in direction "theta", and the command says "go in direction theta+180", do you turn the wheel or reverse the wheel's rotation? What if the command is theta+175? Do you turn 175 degrees or do you reverse motor direction and turn 5 degrees? What about theta+100 or theta+95? How does the wheel's speed affect these decisions? What about wheel "wind up" (assuming you're not using slip rings), e.g., What if the wheel rotation is limited to +/- N turns? What if the wheel is limited to +/- 180 degrees, or +/- 90 degrees, or whatever... how does this affect the logic and where do you put the "discontinuity" for least impact on the driving? If the commands can change more rapidly than the motors can respond (both the turning motor and the driving motor), then it seems that every control iteration you would need to compare the process variables to the commands to determine the best course of action - your logic must have access to the process variables.

I'm not asking you to answer all those questions (unless you want to, which would be great). Those are just the questions I've been thinking about - if anybody wants to discuss.




Last edited by Ether : 21-12-2010 at 11:13.
  #22   Spotlight this post!  
Unread 21-12-2010, 13:41
kamocat's Avatar
kamocat kamocat is offline
Test Engineer
AKA: Marshal Horn
FRC #3213 (Thunder Tech)
Team Role: Mentor
 
Join Date: May 2008
Rookie Year: 2008
Location: Tacoma
Posts: 894
kamocat is just really nicekamocat is just really nicekamocat is just really nicekamocat is just really nicekamocat is just really nice
Send a message via AIM to kamocat Send a message via MSN to kamocat
Re: Holonomic + gyro/PID

I know in 2009, team 1983 Skunkworks used swerve drive. They didn't have continuous-turn potentiometers, and so when they needed to turn past a certain point, they would flip the module 180 degrees and reverse the direction of their drive motors. It worked surprisingly smoothly, but that may be in part due to the low coefficient of friction.
Here's a drawing of their drive base:
http://www.chiefdelphi.com/media/photos/32444
__________________
-- Marshal Horn
  #23   Spotlight this post!  
Unread 21-12-2010, 14:19
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by kamocat View Post
I know in 2009, team 1983 Skunkworks used swerve drive. They didn't have continuous-turn potentiometers, and so when they needed to turn past a certain point, they would flip the module 180 degrees and reverse the direction of their drive motors. It worked surprisingly smoothly, but that may be in part due to the low coefficient of friction.
Do you know where they positioned the discontinuity?

I'm certainly not recommending this, but suppose for example they located it at the 12 o'clock (straight-ahead) position. I can imagine a lot of weird wheel movement going on when trying to drive straight ahead with small directional changes. So I wonder where's the best place to put it. Perhaps it depends on the game played played.


  #24   Spotlight this post!  
Unread 21-12-2010, 14:37
kamocat's Avatar
kamocat kamocat is offline
Test Engineer
AKA: Marshal Horn
FRC #3213 (Thunder Tech)
Team Role: Mentor
 
Join Date: May 2008
Rookie Year: 2008
Location: Tacoma
Posts: 894
kamocat is just really nicekamocat is just really nicekamocat is just really nicekamocat is just really nicekamocat is just really nice
Send a message via AIM to kamocat Send a message via MSN to kamocat
Re: Holonomic + gyro/PID

Well, it was a 7/8ths turn potentiometer, so they definitely had some leeway.
I think they didn't switch it until they had to; instead of switching at 3 and 9, they switched at 5 when turning CW, and 7 when turning CCW.
__________________
-- Marshal Horn
  #25   Spotlight this post!  
Unread 21-12-2010, 17:23
BEEKMAN BEEKMAN is offline
Registered User
AKA: Brendan McLeod
FRC #0190 (Gompei and the Herd)
Team Role: Mentor
 
Join Date: Feb 2009
Rookie Year: 2008
Location: Londonderry, NH
Posts: 138
BEEKMAN is a splendid one to beholdBEEKMAN is a splendid one to beholdBEEKMAN is a splendid one to beholdBEEKMAN is a splendid one to beholdBEEKMAN is a splendid one to beholdBEEKMAN is a splendid one to behold
Re: Holonomic + gyro/PID

Hi,

We used a field oriented drive system this year, it definitely made Breakaway SO much easier.

We originally used a compass to read the directions, but quickly realized that there was too much interference around the sensor. We then used a gyro to do it. The WPILib version of holonomic drive is NOT advised, we found many small errors in it, in addition to the fact that the code was labeled as "Experimental". The Error you are referring to is likely the walking of the gyro. We noticed little to no error after only the 2.5 mins of a match, even while crossing the bumps 3-5 times per match. Actually, using a holomonic drive system made this easier.

The field oriented drive system allows us to have many usefull features:
1) Easier control: Anyone can use it...point in a direction, and the bot goes that way!
2) Auto aligning features: Hit a button and line up for the bump automatically, while all you do it point in the direction of the bump.
3) Auto hang aligning: Again, hit a button and drive directly towards the tower; bot will align to it by itself
4) Drive in a direction: We refer to it as "the trigger". While we are driving towards a ball, regardless of if the bot is facing towards the ball, as we drive to it (using the shortest possible distance) the bot will turn in that direction, eliminating the need to stop, turn, then drive.

these are only a couple features that we had. This is a quick video we made while testing: http://www.youtube.com/watch?v=HT3WhTcQvw4 Not all features are noted here

I should also note we used a 3 axis joystick, so there was only one-easy to use-joystick for robot motion control. If you saw us in action at some later competitions (mostly off season) you can see us "having fun" on the field sometimes.
__________________
WPI Robotics Engineering & Mechanical Engineering Class of 15

iRobot Mechanical Engineering Intern
  #26   Spotlight this post!  
Unread 21-12-2010, 18:15
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by BEEKMAN View Post
2) Auto aligning features: Hit a button and line up for the bump automatically, while all you do it point in the direction of the bump.
4) Drive in a direction: We refer to it as "the trigger". While we are driving towards a ball, regardless of if the bot is facing towards the ball, as we drive to it (using the shortest possible distance) the bot will turn in that direction, eliminating the need to stop, turn, then drive.
These are very innovative ideas. Nice work!

What type of drivetrain did you use?



  #27   Spotlight this post!  
Unread 21-12-2010, 18:34
Dillon Carey's Avatar
Dillon Carey Dillon Carey is offline
6wd swerve, it has been done
AKA: TinyHippo
FRC #1625 (Winnovation)
Team Role: Alumni
 
Join Date: Jun 2008
Rookie Year: 2007
Location: Winnebago IL
Posts: 93
Dillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by Ether View Post
For example, if a wheel is going in direction "theta", and the command says "go in direction theta+180", do you turn the wheel or reverse the wheel's rotation? What if the command is theta+175? Do you turn 175 degrees or do you reverse motor direction and turn 5 degrees? What about theta+100 or theta+95? How does the wheel's speed affect these decisions? What about wheel "wind up" (assuming you're not using slip rings), e.g., What if the wheel rotation is limited to +/- N turns? What if the wheel is limited to +/- 180 degrees, or +/- 90 degrees, or whatever... how does this affect the logic and where do you put the "discontinuity" for least impact on the driving? If the commands can change more rapidly than the motors can respond (both the turning motor and the driving motor), then it seems that every control iteration you would need to compare the process variables to the commands to determine the best course of action - your logic must have access to the process variables.

I'm not asking you to answer all those questions (unless you want to, which would be great). Those are just the questions I've been thinking about - if anybody wants to discuss.
For our swerve in 2010 we used an Ma3 encoder to track the position of the wheels. In you example of "direction theta+180" we did not reverse the drive motors. we decided against trying to make the drive motors reverse because we didn't want robot to move inconsistently if the driver told the modules to turn faster than they could. We made up for this by gearing the turning motors as fast as we could, although it didn't fix the problem entirely. If we were to do a swerve again we would consider either adding more motors, or using more powerful motors, and gearing up the turning speed even higher.
As for "wrap up", we have never had a problem with this since we use co-axial swerve modules.
__________________
"More power 'till it breaks or you win."
- Keith Carey
  #28   Spotlight this post!  
Unread 21-12-2010, 18:52
AdamHeard's Avatar
AdamHeard AdamHeard is offline
Lead Mentor
FRC #0973 (Greybots)
Team Role: Mentor
 
Join Date: Oct 2004
Rookie Year: 2004
Location: Atascadero
Posts: 5,526
AdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond reputeAdamHeard has a reputation beyond repute
Send a message via AIM to AdamHeard
Re: Holonomic + gyro/PID

Quote:
Originally Posted by Ether View Post
Yeah, I was wondering if that's what you meant. I've been thinking about this problem for a while; it has many subtle nuances. For example, if a wheel is going in direction "theta", and the command says "go in direction theta+180", do you turn the wheel or reverse the wheel's rotation? What if the command is theta+175? Do you turn 175 degrees or do you reverse motor direction and turn 5 degrees? What about theta+100 or theta+95? How does the wheel's speed affect these decisions? What about wheel "wind up" (assuming you're not using slip rings), e.g., What if the wheel rotation is limited to +/- N turns? What if the wheel is limited to +/- 180 degrees, or +/- 90 degrees, or whatever... how does this affect the logic and where do you put the "discontinuity" for least impact on the driving? If the commands can change more rapidly than the motors can respond (both the turning motor and the driving motor), then it seems that every control iteration you would need to compare the process variables to the commands to determine the best course of action - your logic must have access to the process variables.

I'm not asking you to answer all those questions (unless you want to, which would be great). Those are just the questions I've been thinking about - if anybody wants to discuss.


We had a coaxial crab drive which had no limits on rotations (mechanically or with sensors).

If we were moving, we would keep motor direction and go the long way (a full 180 degree turn if necessary). If we were not moving, we would never move more than 90 degrees, and set the motor direction as necessary.

The reasoning behind this was that we wanted to take it easy on the bevel gears.

Last edited by AdamHeard : 21-12-2010 at 19:08.
  #29   Spotlight this post!  
Unread 21-12-2010, 18:59
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,125
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by Dillon Carey View Post
In you example of "direction theta+180" we did not reverse the drive motors. we decided against trying to make the drive motors reverse because we didn't want robot to move inconsistently if the driver told the modules to turn faster than they could. We made up for this by gearing the turning motors as fast as we could, although it didn't fix the problem entirely. If we were to do a swerve again we would consider either adding more motors, or using more powerful motors, and gearing up the turning speed even higher.
Thanks Dillon. I need to ask a question to make sure I am properly understanding what you said. Consider this scenario:
- robot is slowly moving straight forward

- driver pulls joystick straight back (because he wants robot to stop and back up)
In the above scenario, are you saying your logic would not just reverse the motors to back up, but rather would turn the wheels 180 degrees?



  #30   Spotlight this post!  
Unread 21-12-2010, 21:06
Dillon Carey's Avatar
Dillon Carey Dillon Carey is offline
6wd swerve, it has been done
AKA: TinyHippo
FRC #1625 (Winnovation)
Team Role: Alumni
 
Join Date: Jun 2008
Rookie Year: 2007
Location: Winnebago IL
Posts: 93
Dillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond reputeDillon Carey has a reputation beyond repute
Re: Holonomic + gyro/PID

Quote:
Originally Posted by Ether View Post
Thanks Dillon. I need to ask a question to make sure I am properly understanding what you said. Consider this scenario:
- robot is slowly moving straight forward

- driver pulls joystick straight back (because he wants robot to stop and back up)
In the above scenario, are you saying your logic would not just reverse the motors to back up, but rather would turn the wheels 180 degrees?


Yes. The wheels would turn 180 degrees.

We did however have another mode that turned the wheels 90 degrees from forward and used only the x values from the joystick to determine drive direction.

This mode was made for the sole purpose of playing defense on 469. It would allow us to strafe back and forth as quickly as possible while keeping our accumulator pointed toward our side of the field.

Although it was developed for only that, it ended up being used more often than the "normal" swerve code.
__________________
"More power 'till it breaks or you win."
- Keith Carey
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
Holonomic issues dwodrich NI LabVIEW 11 02-02-2010 21:19
Holonomic Programming??? sknkmeistermatt Programming 2 12-02-2008 15:47
Gyro PID User drive - How we did it adamdb Programming 17 26-02-2007 20:16
Holonomic... Greg Perkins Technical Discussion 2 02-02-2005 11:59
holonomic drives Max Lobovsky Technical Discussion 5 10-03-2004 21:31


All times are GMT -5. The time now is 03:41.

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