|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
Adams Coprocessor Solution
Hello, teams! I am the programming captain of team 245, the Adambots. My team and I have been working for a very long time in doing a few ideas for robot programming that are a bit out there. We made a makefile and a makefile generator (configure.py) for WINE so that teams that were interested in using Linux could flash code onto the FRC.
Last year, we began development on a coprocessor project. It was inspired by work done in kinematics the previous year that simply didn't turn out due to the tedium of using trig functions in C. (Yes, we know, lookup tables, thank you). A coprocessor is another computer that does the processing instead of the Microchip. This is a great way to get around many limitations of the Microchip, as almost any coprocessor has more processing power than the Microchip (on our Gumstix coprocessor last year, we ran 5 independent PID loops without any slowdown or overhead!). Having tested our code last year, we have decided that it is finally time to release it to the public. Now anyone can try their own coprocessor on for size. The coprocessor is very easy to test. Simply hook any Linux machine to your FRC Controller through the Serial Port (on the coprocessor side) and the Program Port (on the FRC Side). Then, you can flash the FRC with our prewritten code to turn it essentially into a hub and run our python script on your coprocessor. The robot will then be running off of your machine! Skippable: The Short Details- Our coprocessor solution turns the Microchip 18F8722 into a dummy. All it does is sends and recieves signals such as PWMs and radio data to the coprocessor. The coprocessor then does all important processing on this information and spits the output back to the 18F8722. The code on the FRC is a stripped-down version of the default code that communicates through the program port with Kevin Watson's serial code. The code on the coprocessor was written from scratch and uses python libraries, due to the ease of programming, and just because we like python. For reference: With some work, the coprocessor infrastructure that we created could interface with many languages. That is, you could be programming in whatever language you want, although we haven't written that code for you. To take a look at what we're all about, you can see our website athttp://adambots.gotdns.com/cgi-bin/v...in/CoProcessor Also, if you just can't wait, you can download documented code at the bazaar branch http://adambots.gotdns.com/bzr/kickoff-polish/ (Note, to branch you need bzr, a version control system downloadable at http://bazaar-vcs.org/ |
|
#2
|
|||||
|
|||||
|
Re: Adams Coprocessor Solution
This is some pretty sweet stuff.
Is it legal to put another processor on board the robot? What company/model processor did you use on yours? I tried this once by myself with no success. Thank you, Jacob |
|
#3
|
||||
|
||||
|
Re: Adams Coprocessor Solution
Yes other processors are legal as long as they pass the cost accounting rules(under $200 for any electronic component). I believe they used a GumStix<www.gumstix.com>.
|
|
#4
|
||||
|
||||
|
Re: Adams Coprocessor Solution
Yes, we specifically used a gumstix last year. It is a bit fragile perhaps for robot use. We are still deciding whether or not we will use gumstix or MicroATX (Just a regular small motherboard) this year.
|
|
#5
|
||||
|
||||
|
Re: Adams Coprocessor Solution
I'm courious how long it takes a gumstix to boot?
|
|
#6
|
||||
|
||||
|
Re: Adams Coprocessor Solution
Because we customized a version of Linux to put it on there, we got boot time to around six seconds, I believe. Also, I forgot to respond to the earlier question.
Yes! Coprocessors are 100% FIRST legal so long as each individual component costs no more than $200. |
|
#7
|
||||
|
||||
|
Re: Adams Coprocessor Solution
Do you know the boot time before you customized it?
|
|
#8
|
|||
|
|||
|
Re: Adams Coprocessor Solution
This is a really great system. Our team tried to utilize something similar with the gumstix, but ultimately we ran into too many problems to actually get it off the ground (only one person really could work with it and wasn't in the greatest of health).
Having a nice code base to turn the PIC18 into a dummy for communication with the "master" gumstix (two master controllers are better than one ;]) is a great way to help teams get started with implementing a coprocessor solution. I'll check more into this tomorrow, thanks for the information! |
|
#9
|
|||
|
|||
|
Re: Adams Coprocessor Solution
Sounds interesting! I'm afraid that when I went to the "/bzr/kickoff-polish" link, it showed up empty.
I'm very glad you are showing us this stuff. Last edited by Samuel H. : 24-01-2007 at 21:41. Reason: rephrase |
|
#10
|
||||
|
||||
|
Re: Adams Coprocessor Solution
Samuel H - The bzr/kickoff-polish/ directory is not actually empty. It is a Bazaar branch. In order for you to get the code, you must first download Bazaar (a version control system that we have found to be incredibly useful {and I use all the time in personal applications}). Bazaar can be found at http://bazaar-vcs.org/.
Then, simply go to whatever directory you want to put our code into and use the command Code:
bzr branch http://adambots.gotdns.com/bzr/kickoiff-polish/ |
|
#11
|
|||
|
|||
|
Encoders Module?
Is there an "encoders module" that we may use to use an encoder in our robot?
By the way, thank you very much for the python scripts. We found it very useful so far. |
|
#12
|
|||
|
|||
|
Re: Encoders Module?
Quote:
|
|
#13
|
|||
|
|||
|
Re: Adams Coprocessor Solution
Sorry for the confusion... as soon as I get a chance I will get Bazaar and check it out.
|
|
#14
|
|||||
|
|||||
|
Re: Adams Coprocessor Solution
I plan to get working with this some starting tomorrow. I'm hoping that with the great boost that 245 is offering I will have some nice modules completed and available for later usage. Good luck everyone.
If anyone is wondering here's what we are using this year for a coproccessor: http://www.jkmicro.com/products/omniflash.html |
|
#15
|
||||
|
||||
|
Re: Adams Coprocessor Solution
Impressive, cuog!
For reference, soon some changes will be made to the code to protect some intellectual property. We're all in this together, after all. Once I make these changes, I will alert you all. There should be no significant changes in functionality. Thank you all for being so patient. (Note: The encoder modules are very old, and I haven't looked at them in a while. Use at your own risk, although I'd be more than willing to give you some support!) |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Using Vex Brain as FRC Coprocessor | Tom Bottiglieri | General Forum | 25 | 18-04-2006 22:36 |
| VEX + Coprocessor? | ForgottenSalad | FIRST Tech Challenge | 4 | 13-04-2006 17:45 |
| Offboard coprocessor! | Ben Englert | Programming | 19 | 28-03-2006 18:34 |