|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#61
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
Below I have provided an overview detailing our swerve drives for the years 2009-2012:
2009 This was the first year that we decided to use a swerve drivetrain. Our drivetrain was split down the middle of the robot. On the left side, both of the drive wheels were paired together and powered by 1 CIM motor through a single speed belt reduction that used timing pulleys. The left wheels were also paired together for turning. The turning was powered by a banebots RS-545 though a banebots planetary transmission. The right side of the robot was a mirror image of the left side. 2010 The drive for the wheels were again coupled together in pairs. Both of the left wheels were driven together and both of the right wheels were driven together. To power this drive, each pair of wheels was powered by two CIM motors through a two-speed transmission that was a re-packaged AM supershifter gear-set with some custom modifications. For turning, the front left and back right wheels were paired together and the front right and back left wheels were paired together. This enabled both translational motion in any direction and rotation of the robot about its origin when it was not translating. Each turning pair was powered by a single fisher price motor through our custom gearbox with purchased gears. 2011 The wheel pairings were the same as in 2010, but the turning motors were banebots RS-775 motors. Our drive transmissions were custom two-speed transmissions that were optimized for our swerve system. The turning transmissions were custom as well. Also, we cut all of our gears in house and they were made from steel. 2012 In 2012, our drivetrain consisted of four independent wheel modules. Each wheel module’s drive was powered by one CIM motor with a two-speed custom gearbox. Our wheel module’s turning was powered by a single banebot RS-550 with a custom transmission. All of our gears were made from aluminum and they were cut in house. In an upcoming post we will provide some pictures of the 2012 modules and describe them a little more thoroughly. Last edited by jakemochas : 16-06-2012 at 22:03. |
|
#62
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
And the countdown for what could be one of the greatest posts ever begins...
|
|
#63
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
Jake, what method were you using to cut your gears in house? Are they stacked plate gears?
Also, you said your team had 2 speed transmissions optimized for your swerve, what iterations did your transmissions go through in order to optimize for a swerve? Thanks for all the great insight! -Akash Last edited by Akash Rastogi : 16-06-2012 at 22:25. |
|
#64
|
|||||
|
|||||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
I believe it was cut using the 4th axis (Tormach CNC?). They were definitely not stacked gears and were pocketed very nicely. -RC |
|
#65
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
Quote:
http://www.mcmaster.com/#gear-cutters/=i19i2u ![]() We buy round stock and from that we make gear stock. I have included a sample picture of a piece of gear stock below. ![]() In order to make the gear stock, we use the process shown in the video link posted below. In the video, however, they are making a single gear. We use this same process to make an entire piece of gear stock. After we make the gear stock, we part it off in a lathe to make the individual gears. http://www.youtube.com/watch?v=sCuf6RqM7e0 |
|
#66
|
||||
|
||||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
I'm going to start out with two assumptions that I hope people can help me verify: 1. A gyro... has quick repsonse, but is subject to drift 2. A Magnetometer does not drift but has a slow response (lag) If these assumptions are correct (to the way I'm thinking they work), then I'd propose the idea of having them work together to yield a quick reponse heading that remains fairly accurate. I've solved this kind of problem before at work and since you are a c++ programmer... I'll show you the code where I do this. right here: Code:
size_t GetPlayPos()
{
DWORD playpos;
//size_t SampleOffset=0;
size_t SampleOffset=(size_t)(0.038 * m_SampleRate);
m_lpdsb->GetCurrentPosition(&playpos,NULL);
playpos/=m_BlockAlign; //convert to samples
//Note: This design assumes the buffer size (of our secondary buffer) is the same size as the sample rate. This is fine for now, but at some
//point I may need to make a distinction if I have to change the buffer size.
time_type CPUClock=((__int64)time_type::get_current_time()+m_ClockPhaseOffset) % 10000000;
double CalibratePlayPos=(double)CPUClock*m_SampleRate;
int PhaseOffset=(int)playpos-(int)CalibratePlayPos;
int iSampleRate=(int)m_SampleRate;
//Check wrap-around case
if (PhaseOffset > iSampleRate>>1)
PhaseOffset= ((int)playpos-iSampleRate) - (int)CalibratePlayPos;
else if (PhaseOffset < -(iSampleRate>>1))
PhaseOffset= playpos - ((int)CalibratePlayPos-iSampleRate);
double Current_ClockPhaseOffset=(double)m_ClockPhaseOffset + (((double)PhaseOffset / m_SampleRate) * 10000000.0);
//check math
//CPUClock=((__int64)time_type::get_current_time() + (__int64)Current_ClockPhaseOffset) % 10000000;
//CalibratePlayPos=(double)CPUClock*m_SampleRate;
//printf("Test-> playpos %d, %d \n",playpos,(size_t)(CalibratePlayPos));
const double dSmoothingValue=0.1;
//blend the current phase error to the current phase offset
m_ClockPhaseOffset=(__int64) (((1.0-dSmoothingValue) * (double)m_ClockPhaseOffset) + (dSmoothingValue * Current_ClockPhaseOffset));
//debug_output(p_debug_category,L"playpos %d, %d, %d\n",playpos,(size_t)(CalibratePlayPos),PhaseOffset);
size_t Error=abs(PhaseOffset);
//printf("\r%d ",Error);
//if (Error>1000)
// debug_output(p_debug_category,L"%d\n",Error);
return AdvancePosition((size_t)(CalibratePlayPos),SampleOffset);
}
![]() |
|
#67
|
|||||
|
|||||
|
Re: 2012 FRC Team 1717 Uncut
(Sorry to totally deviate from the robot design discuss, but i have a question..)
Maybe because this is so radically different then the way my team is structured, but this statement seemed a little odd to me. Is it by design or accident that the team is all seniors? If by design, then why? I am very curious.. |
|
#68
|
||||
|
||||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
IIRC, each grade focuses on a specific aspect of engineering - so the students get a well-rounded background - before they participate in FRC. |
|
#69
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
Hi everyone,
I am trying to answer all of your questions and I have many responses ready to go. At the moment, however, the thread will not let me post links or images to the forum. Many of the answers would be incomplete without this content. We are working as quickly as possible to get your answers up! Thanks, Jake FRC Team 1717 |
|
#70
|
||||
|
||||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
The BeachBots have had the pleasure of knowing and competing with team 1717 for several years now and have seen them grow into a powerhouse team. They continue to improve each year and are wonderful competitors and friends. On May 26th the D’Penguineers had an open house at their new engineering academy building in Goleta and invited the BeachBot team, as well as many others, up to visit. Many of us took the drive (3.5 hours that should have been 2) to go visit with them. As many of us know, Amir's program and foundation at Dos Pueblos High with which he created the "Dos Pueblos Engineering Academy" is a great example of what can be done to promote, inspire, and educate students, not just in engineering, but in many disciplines that have a significant contribution to our culture and future. I don't know if it's all in the “New Cool” book about them or not (that’s still on my reading list), but if you have any interest in replicating what they are doing (and you should) I think these notes will give you a bit of an idea of how to go about it. ================================================== ========================== Engineering Academy notes: Key: Curriculum is approved by the University of California schools so it counts toward entrance requirements. Parents prefer their kids take courses that help them get into college. Without this approval it's a nice program, but parents won't invest as much into it and won't want their kids to invest time in it since it wouldn't count towards college entrance requirements. [There are many universities that recognize FIRST students and offer scholarships to them, but the time invested with the team is not often recognized as satisfying a university entrance requirement] Steps to make it happen (how it can be replicated): 1. It starts with someone passionate about it to drive it (thanks Amir!). 2. Build a board of directors - a few or all of these people are to emphasize funding and organization. They provide the Board of Directors for the 501(c)3 corporation. 3. Create a 501(c)3 organization - the foundation. This includes creating a mission statement and creating the financial structure needed (bank accounts, double signature approval process), financial accountability, etc. A lawyer and an accountant on the board would help greatly with this. 4. Study and replicate DPEA's curriculum: Art, Science, Math, Engineering (technology). Art is important as it leads to design and creativity. DPEA (Amir) has done all the legwork, just replicate his curriculum, he seems glad to share it. Again, the curriculum is critical as without the UC approval it's just a nice club. Note that FIRST robotics is a part of the program for the second half of the senior year. It’s not a robotics program but an engineering program. FRC is just the last project (in a long line of increasingly more complicated projects) for the seniors. http://www.dpengineering.org/academy/plan/four_year2 - Read the example projects and course descriptions on this page (really, take some time to review this stuff): http://www.dpengineering.org/academy/plan/courses2 5. Design a plan: building needs, number of kids, equipment needs, personnel needs - paid and qualified teachers and engineers. Finding or training the right teachers will be important. Even to the point of having them spend time with Amir if possible. Define a budget, organization, and implementation schedule. 6. Begin to seek funding, both initial and on-going commitments. Develop a presentation for fundraising that includes detailed goals, costs, budget, etc. Include some students in the presentation to local businesses, corporations and foundations. 10 minutes long, no more. In person presentations if at all possible. 7. Develop a website and marketing materials leading into step 8 below. 8. Build energy in the community. Promotions, awareness, value to kids and community. I think this too is critical. DPEA works well since Santa Barbara is a small town community (well to some of us). Marketing to the local businesses, television station, newspapers, and the people in general works better since they all identify with the community (businesses want to be seen as participants, giving back; people want to see local schools, teams, doing well; etc.) In a metropolitan area you would have to define what your support community is and build lines of communication, marketing, awareness, value, and excitement about the project, etc. 9. Based on funding, create a timeline and identify resources needed at each point. Then for sustainment. 10. Begin implementation. Identify qualified instructors. Retired engineers? Possibly even seek donation of current engineer's time from corporations (4 hours, twice a week, who knows). Art teachers. Math & Science teachers. Advantages from using Amir's work: - curriculum approved by UC schools so it counts toward entrance requirements - he's already done a lot of the leg work on all this - visibility of his program I think it would be good to have those at DPEA take a look first, to see if there's anything I missed that they think would be helpful to add. Could be something big I'm overlooking that they could point out. |
|
#71
|
|||||
|
|||||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
|
|
#72
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
Quote:
A thought I've always had as to "Why 1717 haven't been to Einstein/been champions" is the fact that they're all FRC rookies every year. But they're not. They spend 4 years completely surrounded by FRC. Plus, as the poster from 1515 said, they(1717 students) do go on to mentor. |
|
#73
|
||||
|
||||
|
Re: 2012 FRC Team 1717 Uncut
I had a few questions regarding encoders:
We're working on our drivetrain over the summer. The past two years we have used CAN with our Jaguars, connected to a 2Can, but it has been riddled with problems. So we are switching to PWM which I know you guys use and plugging the encoders into the sidecar. Since each encoder can take 2 I/O ports, how did you manage that-did you fill one up? (if so, did you use more than one sidecar?) How did your sensor arrangement work, did you use many others besides the encoders and the gyro? Thanks for taking the time to answer these questions, it is greatly appreciated! Last edited by dcarr : 24-06-2012 at 13:20. |
|
#74
|
||||
|
||||
|
Re: 2012 FRC Team 1717 Uncut
One more thing...the swerve modules seem to rotate a lot as you stop and prepare to shoot. Is this part of re-zeroing the gyro for each shot, or some other reason?
|
|
#75
|
|||
|
|||
|
Re: 2012 FRC Team 1717 Uncut
Hi everyone! Our answer to the gear cutting question has been approved and can be seen above at post #65. The post is above because it was posted on the 18th, but it didn’t show up until today. We are working hard to post all of our other answers as well! Thank you for your patience.
Quote:
We had many sensors on our robot that were wired to the analog and digital slots of the cRIO. For our swerve drive, we used two types of sensors: we used magnetic encoders on the analog board for wheel orientation and optical encoders for the wheel drive. Also, the gyro was attached to an analog port. For the shooter, we used a magnetic encoder attached to the analog breakout to detect the platform position. For the hood angle, we used a multi-turn potentiometer on the analog breakout. To detect flywheel speed, we read from a light sensor that was attached to the digital sidecar I/O. The rotation of the wheels when we prepare to shoot is mostly from re-zeroing, but some of the turning is from fine adjustments the driver makes while lining up for the shot. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|