pic: Team 830's electronic box



Team 830's electronic box can be detached from the robot in a matter of minutes, just unplug a few plugs and pull out the box, it even has a handle for carrying.

Request : Team 830 would appreiciate comments and questions on our robot.

whats the custom circuitry for?

They are a simple circuit that takes an off the shelf encoder pulse output and converts it to a voltage.

This “plug and play” electronics box allows us to remove the entire electronics package by unplugging a few connectors and pulling it out of our bot. We then can plug it into our diagnostic board which has a similiar set up of motors and sensors as out robot so we can debug our programming away from the chaos of the pit area. It also allows us to keep the delicate electronics away from any machining we are doing to the chassis between rounds.

The picture shown is actually our prototype electronics box. Here is the final one (yes…that is last years controller…it’s just a place holder):

http://www.freebmw.net/don/first/small/electronics1.jpg
http://www.freebmw.net/don/first/small/electronics2.jpg
http://www.freebmw.net/don/first/small/electronics3.jpg
http://www.freebmw.net/don/first/small/electronics4.jpg
http://www.freebmw.net/don/first/small/electronics5.jpg
http://www.freebmw.net/don/first/small/electronics6.jpg

wow that looks so nice that I totally hate you! :c) We managed to get all our electonics on a single panel that we can slide out of our extrusion-alum-kit frame, but we still have to disconnect all the motors and sensors from the victors and spikes and the RC first. You have completly outdone us.

what did you use for power connectors to the motors?

Anderson Power Products, the same company that makes the red connectors for the batteries, makes nice 40 amp connectors.

Thanks for the compliments.

Excellent job. Wow. That definitely is a quintessential “plug and play” robot control system.

I like the fact you moved all the controller ports to one central location. Making up those short cables was a good idea.

picks up jaw from floor And I thought we had a good electronics package. Wow. I love the modular idea…Are all of you conenctions soldered or crimped?

-Bill

Some of the connectors required solder, some crimp…so about 50/50…

Thanks for the compliments.

Simply…WOW!!!
Would ove to see it up close.

Very nice clean design. Great idea. My only concern would be, in which orientation is it mounted? If the RC is facing down, you may run into problems at competitions. The field control people like to be able to see that you have radio communication. Other than that, great job. This should make your life in the pits a little less hectic

Are you guys (Wildstang) going to be at the Great Lakes Regional? If so, we’ll see you there.

The control box actually mounts in a vertical orientation with all the connections at the top.

Yes, we’ll be there, as well as the Midwest Regional and the Championship. See you there!

Sounds good. Can’t wait to take a look at it

it’s…sniffle…beautiful…

Now, the modularity is mighty nice. That’s definitely the case. Nice job there.

However, do you really need the external encoder circuitry? With last year’s Stamp, I could see that, but with this year’s PIC, it’s really easy to do that in software with very little processing burden (just be sure you’re using interrupts; don’t poll!!).

For example, on our robot we’re using the Banner sensors (yes, I know it’s a waste, but they’re nice to use an have NO and NC outputs) as a reflective shaft encoder. Connecting the NO output to digital 1 allows you to use a simple interrupt handler to do whatever magic you need at every 0-to-1 transition. Likewise, if you connect the NC output to digital 2, you can trigger on the other edge (thus, as long as you have your spacing correct, doubling your resolution). (note that digital inputs 1-6 generate interrupts on 0-to-1 transitions)

You can tune your handler to provide enough information to calculate speed as well.

Then, in your fast code somewhere, setup a constant sampling interval. You can do this with another interrupt that triggers every 100th of a second, for example. You can then “sample” the speed and position being generated by your interrupt handler and build a pretty decent speed controller.

We’re using a simple PIID controller for our left and right wheels as well as the two joints of an articulated arm we used. Our code is listed here:

http://www.osufirst.org/twiki/bin/view/OSUFIRST/DublinTeam2004RegionalCode

No additional encoder hardware was needed; this worked really well. Now, to simplify things, we did add in some floating point operations (our PIID coefficients) while at the regional (rather than dealing with integer math), and we haven’t timed it to make sure that it is keeping up and still sampling at 100 times a second, but things still work pretty well.

In the code we put on-line, we have some arbitrary proportional and integral constants set. That ended up being all we needed to function very well (without any open loop filtering), but we did some system identification on the side to generate a much more optimized compensator.

Our students knowledge of PID technology is one of the major reasons we won the engineering inspiration award, and we shared this code as well as some insights to some of the other teams who were using more naive ways to respond to their feedback. The PIID controllers we built worked pretty well to the first order on even our very non-linear articulated arm. I highly recommend this architecture on these sorts of robots; it’s very similar to the ones we use on robots we use in other projects outside of FIRST.

Anyway, my main comment was that the board looks great, I just don’t think that much additional hardware is really necessary. This year’s controller is very powerful and needs little extra help to work well.

Yes…I agree with you…now. But, in Jan, when we got the new RC I wasn’t sure of our programming resources or how difficult it would be to just do simple things with the new controller. So, I asked one of our engineers to come up with an encoder solution with some of the kids that just gave us a simple voltage output and a direction bit. That, I knew we could do something with. He did come up with a very nice, precise, solution…but at a cost. It’s very delicate, time and space consuming.

I can’t wait to check out your code when I have some spare time. I really appreciate your help and suggestions. The new RC is proving to be a very nice piece of work…

Thanks again.

Good luck!!