Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Holonomic + gyro/PID (http://www.chiefdelphi.com/forums/showthread.php?t=88012)

Jogo 21-12-2010 21:23

Re: Holonomic + gyro/PID
 
Quote:

Originally Posted by BEEKMAN (Post 987373)
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.

I'm curious as to the theory of how this is accomplished. For example, we've done the same thing without holonomic wheels (called it 'Vector Drive'). However, this was accomplished using "skid" (speeding up one side of the robot, slowing down another). Is there a different principle involved for holonomic?

Ether 21-12-2010 21:43

Re: Holonomic + gyro/PID
 
Quote:

Originally Posted by Jogo (Post 987492)
I'm curious as to the theory of how this is accomplished. For example, we've done the same thing without holonomic wheels (called it 'Vector Drive'). However, this was accomplished using "skid" (speeding up one side of the robot, slowing down another). Is there a different principle involved for holonomic?

A mecanum, or a full-swerve drive*, can rotate as it is translating. If you have field-oriented control, you can easily maintain a fixed heading as you rotate. The coordinate translation keeps the robot going in the same direction while it is rotating. It's a beautiful thing to see - looks like an ice-skater.

So, as the robot is heading toward the target, it simultaneously rotates until its yaw angle is aligned with the heading angle.




*i.e. 4 independently controlled wheels

BEEKMAN 22-12-2010 06:33

Re: Holonomic + gyro/PID
 
Quote:

Originally Posted by Ether (Post 987503)
A mecanum, or a full-swerve drive*, can rotate as it is translating. If you have field-oriented control, you can easily maintain a fixed heading as you rotate. The coordinate translation keeps the robot going in the same direction while it is rotating. It's a beautiful thing to see - looks like an ice-skater.

So, as the robot is heading toward the target, it simultaneously rotates until its yaw angle is aligned with the heading angle.




*i.e. 4 independently controlled wheels


Yes, by simply doing the normal field controls, and adding the turning code (increase one side's speed, decrease another's) you have a beautiful turning and driving bot.

Its important to remember, that in mechanum, each wheel operates individually, and can put its vectors in any of the 45 degree directions at a time.


Oh, and when using the trigger in an open area, it acts like a car the way it drives...no matter what direction it is driving in, the bot it facing frontwards!

EricS-Team180 22-12-2010 09:36

Re: Holonomic + gyro/PID
 
Quote:

Originally Posted by Ether (Post 987036)
Yeah, I was wondering if that's what you meant. ...

We used AnyMark swerves and had about 330deg of rotation before we would get wire wind-up and pull the connectors apart. So we calculated a "keepout" zone based on whether the wheels were commanded forward or reverse. If your current steering request put you in the keepout zone, then flip the wheel and reverse the wheel direction. We used a -180 < 0 < 180 compass for the steering calculations.

Hurdle #1 was getting the angle bookkeeping right.

However, this could produce a "shopping cart" shuck in the steering, as we tried to also use a field-centric stick, and the driver commanded forward and reverse near the keepout.

I finally concluded that you need to track the last pass steering command and bookkeep a 180deg reverse direction +/- a ...say...10deg band. If your current steering request put you in that band, then what you really wanted to do was reverse wheel direction. Then you could compare this new commanded steering angle and wheel direction to your keepout.

I never got to try this. After the Florida Regional, we reverted to robot-oriented sticks and finished the season with them.

Ether 22-12-2010 09:53

Re: Holonomic + gyro/PID
 
Quote:

Originally Posted by EricS-Team180 (Post 987616)
We used AnyMark swerves and had about 330deg of rotation before we would get wire wind-up and pull the connectors apart. So we calculated a "keepout" zone based on whether the wheels were commanded forward or reverse. If your current steering request put you in the keepout zone, then flip the wheel and reverse the wheel direction. We used a -180 < 0 < 180 compass for the steering calculations.

Hurdle #1 was getting the angle bookkeeping right.

However, this could produce a "shopping cart" shuck in the steering, as we tried to also use a field-centric stick, and the driver commanded forward and reverse near the keepout.

I finally concluded that you need to track the last pass steering command and bookkeep a 180deg reverse direction +/- a ...say...10deg band. If your current steering request put you in that band, then what you really wanted to do was reverse wheel direction. Then you could compare this new commanded steering angle and wheel direction to your keepout.

I never got to try this. After the Florida Regional, we reverted to robot-oriented sticks and finished the season with them.

Thanks for the detailed explanation. What you described above largely parallels the thinking process I went through. I've got scribbled notes and had planned to write it up but haven't had a chance yet.




EricS-Team180 22-12-2010 10:14

Re: Holonomic + gyro/PID
 
...changing directions a bit...heh...

A field-oriented driving scheme requires that a yaw rate sensor and a steering motor pot or encoder become primary sensors. I've given fault detection and accomodation lip-service over the years, but have never really implemented anything other than a switch that gives the driver tank or skid steering if the sensor feedback goes to heck in a hand-basket. I wonder if any teams out there have had the opportunity to advance FDA at all?

Thanks,
Eric

Dave McLaughlin 23-12-2010 00:50

Re: Holonomic + gyro/PID
 
Quote:

Originally Posted by Ether (Post 987252)
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.


Seeing as no one else from Team 1983 has replied, I think I will speak up from the shadows as a Skunkworks alum.

We positioned the potentiometers such that the discontinuity was facing toward the rear of the robot as was mentioned by the team member from 3123. The pots we were using had a 20 degree dead band, so, to address the issue of having unlimited mechanical rotations possible but only about 340 degrees of sensing range we implemented the "wheel flip power change" also mentioned by the astutely informed member of 3123.

However, prior to competing in the World Championships that year, out team decided to make a switch to MA3 magnetic absolute encoders. As the driver that year, I can tell you that there was a noticeable change in performance and handling. In addition, I can also say with much certainty that had we been playing on a carpet field, the method we used with the potentiometers would not have yielded any positive success.


All times are GMT -5. The time now is 23:07.

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