Posted
by
Roblimoon Wednesday May 08, 2013 @02:10PM
from the slide-to-the-left-slide-to-the-right-forward-backwards-fight-robot-fight dept.

We've seen FIRST robotics competitions on Slashdot before. But Kraken-themed FIRST robots? And a good look at what goes into making a competitive robot? For that, Timothy went to Sehome High School in Bellingham, Washington, where members of their Seamonsters robotics team (AKA FIRST Robotics Competition team # 2605; it's a team number, not a date) gave him a good look at their robot's guts, along with showing him how it's controlled and how they organize the 25+ people who work to build and run their robot(s). If you're thinking about joining or starting a FIRST team, this video is essential viewing for you. It's also essential if you just like the idea of robots competing with each other at pyramid-climbing and Frisbee-style disc-throwing. Go, bots, go! Update: 05/08 22:16 GMT by T: Correction: I didn't go to the high school — much simpler, I met the robot creators (and their disk-chucking robot) at LinuxFest Northwest, where they had an impressive demo room set up.

Tim:
Nick could you introduce yourself?

Nick:
I am Nick Ames and this year I am the team captain and head of the
electronics department, I am a senior and this is my fifth year
____0:13.

Tim:
Alright. So we are looking right now at the guts of the machine.
That’s what’s your main responsibility. Could you talk
about the power and the electronics, the controls?

Nick:
So the robot is supplied by a 12 volt battery, 18 amp hours, I
believe. It comes through this connector right here. It is just
velcroed in so that we can swap it out fairly easily. It comes
through this connector main circuit breaker right here and goes to
the power distribution block down there. Inside the power
distribution block, or on top of it, we have these resettable fuses;
they are just thermal fuses, if we overload them they automatically
go out and come back in once they cool down. We have 40 amp circuits
going to all these motor drivers over here, and 20 amp circuits going
to various miscellaneous things like the barometric voltage
measurement, the digital sidecar which handles some of our signals.
And we also have power supplies coming out of the power distribution
block for the radio, the cRIO which is our controller and the camera.

The
controller is called the cRIO. It is made by National Instruments.
This is the version specifically for FRC. So it is a power PC based
industrial controller. We program it in C++. It runs VXWorks. And
we have these pluggable modules. We only use 2 but it can handle up
to 8. We have an analog module which we use for some of our sensors
like our potentiometers, which are used to measure the angle of the
Frisbee shooter. And our gyroscope which we don’t actually
use, but it is just kind of fun to have. So we also have the digital
module which connects the digital sidecar which we use for some of
our switch sensors like the limit switch.

Tim:
Why don’t you use the gyroscope?

Nick:
The gyroscope was intended to stabilize the strafing motion but it
turns out that we don’t actually need it, because it is pretty
stable already. We were kind of surprised. In the past it has been
kind of ____1:50 you
will try and straighten, it will rotate, but I think these new drive
trains that we built they are very very consistent. So we don’t
actually need the gyroscope.

The
cRIO communicates with the driver station using a consumer grade
router. This is a D-Link DIP 1222 I believe. It is just a 5-port
regular router. And then we have the camera on the front and a
camera on the back. We don’t use the back camera right now.
Because we actually don’t use the pick-up arm. There is a whole
lot of stuff in the [server] that we built it we because we thought
we might need it. It turns out that we didn’t actually need it
at all. So this experience for the competition. And then we also
have connected to that is also the 2CAN which is an Ethernet
to CAN bridge, so the CAN bus is the same bus that is used in cars.

Tim:
Can you point out that one?

Nick:
Yeah, so the 2CAN is right under the beam, it is hard to see. It is
the same bus that is used in cars. And we use it to communicate with
the motor drivers, and it lets us use some of the motor driver’s
advanced features, like built in coders and limit switches. So these
encoders let us connect the encoders in the wheels and the fly wheel
directly to the motor drivers. So in our code, we just tell it go a
certain speed, and it goes that speed. And we don’t have to
worry about closing the loop in the main controller it is done at the
motor.

Tim:
Can you talk about what part of this equipment is required as part
of the competition spec, and which of it did you have to make a
decision about what to get?

Nick:
Most of the equipment is required. Or we have several options given
to us by FIRST. So the controller, the router, some of the custom
bits like the digital sidecar and the power distribution block, those
are all required. For the motor drivers, we have several options but
we only have those options, we can’t go and make our own motor
driver. So we chose to use; these are called Jaguars, and there are
two or three other legal options.

The
camera is given to us by FIRST but we could use any camera we want,
we just used that one because we had it. The limit on the motors
that we can use; the things that aren’t regulated are the
sensors for the most part. I think that is the only thing that we
really could have went our own way we want. These communicator
parts, this is an optional thing, you can use them if you want to or
not. But the potentiometers that was custom. So we had to make the
cables and work those out all by ourselves. They didn’t give
us any.

Tim:
What functions are taken care of by the digital sidecar? What is
that?

Nick:
The digital sidecar interfaces with digital sensors, and if we
weren’t using the CAN bus, we would use it to control our motor
drivers. So it can also join PWM signals like using hobby airplanes
and hobby remote controlled cars. We use a few of those to control
some servos like we have one right here on the pick-up arm. It is a
valve servo, so this acts as a suction cup, this squishes down on the
Frisbee and we close the valve like that, and then it lifts up the
Frisbee and drops it in the hopper. So we use one right there. We
also have two on the bottom, which they ended up not being used; they
were used to pull out pins on a guide that would pop out, and it
would help us guide Frisbees into here, but it turned out to be
really fragile and easy to break, so we took that off. So we don’t
end up using those.

Tim:
How many Frisbees are in the hopper here?

Nick:
I believe we have 4 right now. Yes we have got four – well
three. The limit during competition but this can hold up to 6.

Tim:
Anything else that somebody building one of these needs to know off
the bat?

Nick:
I think that’s about it.

Tim:
Cool. Thanks very much. Sophia, tell us a little bit about the
frame here?

Sophia:
Okay. So we just did a standard rectangular frame just because
that’s the easiest to work with. And for our drive train, we
have Meccano wheels, so it works really well because you can strafe
side to side with the robot.

Tim:
Could you point out those wheels?

Sophia:
They are right there, and these are why it can strafe to the side.

Tim:
The tread pattern, is sort of a diagonal on the

Sophia:
Yeah. And how that transferred was originally on two different
levels but the shooter would come down too far, and at one time, it
actually cracked the electronics board here and so there was a crack
right there. So we decided to put it on one level. And right here,
we have a pickup mechanism and it can come down like that and it will
pick up the Frisbee with this little valve system here. And it will
bring it up, and put it in here, and this is our hopper for the
shooter, and we have a pilot here that sits like this, and we have a
trigger down here, that will bring the Frisbee out like that, so that
the wheel catches it and brings it around.

Tim:
Now you mentioned a change in the design for the shooter before.
How did that come to be?

Sophia:
Well, mostly that was just in the first week when we were making
prototypes and we hadn’t really decided on what we were going
to do. We had a few different ones, one where you would just put two
wheels and it would just go along a straight path and two wheels were
in line and they would just ____6:53
like that. And we saw a lot of teams at the competition that did
that, but we decided on this which – there were actually a
majority of the teams that did this. A similar design to this.

Tim:
There is just one wheel in there.

Sophia:
Yes it is.

Tim:
How does that grab the Frisbee? Where does it actually connect to
it?

Sophia:
Well it catches on the side of the Frisbee right here since the
Frisbee is out front of us like that, and then it will – and
this one here makes it so that the Frisbee will spin. And then yeah,
that’s about it.

Tim:
Thanks very much.

Sophia:
Thank you.

Tim:
Liam, go ahead and just tell me what you talked about before?

Liam:
Alright. So from here, we have control over the robot. To start out
with, we have Windows Workbench which is our IDE for programing the
robot. We program it in C++. We built the code here and loaded it
to the robot over the network. And then we have a view of all of the
things that the robot is telling us from the net counsel which
communicates back and forth with the robot under the standard
libraries.

And
then this is the driver station control which gives us view over the
robot in its different modes, teleoperated, autonomous, practice and
tests. We only use teleoperated here because we are only going to be
driving the robot around. And it gives us status about the robot
like communication, whether the code is running and whether we have
joysticks communicating.

And
we also have the dashboard which gives us a camera view of the camera
on the front of the robot there. And we have drawn targets on that,
so we can line it up with what in competition would be our scoring
goals. So the way we have our driver station set up, we have got 3
joysticks, and the computer in the center. These 2 joysticks drive
the robot around. This one moves it back and forth and left and right
and this one rotates it. And we got the shooter joystick right here
which controls shooter speed, angle and actually shooting Frisbees.
So we can control pretty much every aspect of the robot from this
side. But we do have a fair amount of automatic procedures built
into it that allow it to control itself better than we could from our
own input.

Tim:
Now this was built for the first competition.

Liam:
Yes, it was built and designed for Ultimate Ascent where we are
throwing Frisbees into high goals as well as climbing a pyramid. We
have a fairly accurate shooter, it is about 95% accurate at 2/3 court
which was about 40 feet I believe. And we climbed to the first rung,
so what we have done is on our shooter which levels up and down; we
have hooks; and those will grab on to the first bar of the pyramid
and pull the robot up.

Tim:
How many people are involved in the team right now?

Liam:
We have about 25 people who put a lot of work into the robot. Some
of those people are more dedicated to running the team dynamic than
they are to actually building the robot, but it is a huge team
effort. I am pretty proud of what we are able to come together and
do. We got essentially sixth place in the last competition we went
to. It is the best we have ever done.

Tim:
Has this been going on for several years as well?

Liam:
Yes, we’ve been doing FIRST for I think six years. This is my
second year on the team.

Tim:
And did everybody pick up some programing and engineering stuff
along the way?

Liam:
What we do is we split the team into several departments; we have
programing department, fabrication department, and electronics
department and several others. And each person picks a department or
a few to go into it, and they learn the skills for that department.
So I was programming and I helped with electronics and fabrication.
So I mostly did programing but I learnt other skills as well. And
that is pretty much what we do for everyone. It is not so strict
that you can’t help out in any way that you are able to.

Tim:
Could you choose what programing that you could use or was that all
part of the spec for the contest?

Liam:
We have three languages that we can use: C++ which we use; Java,
which is a little easier but not quite as fast; and then there is
Labview which is a graphical programing environment. But we prefer
C++ mostly because of its speed and our ability to use it.

Tim:
What’s the way the team is split up? How many people are
actually programing?

Liam:
We have two people programing, myself and Nick. I was doing the
main robot code and he was doing ____11:47.

Tim:
And were there other people on the hardware of the robot that is
built?

Liam:
There were probably six people who worked on the hardware of the
robot.

Tim:
Does the joystick control something that came as part of the spec as
well or did you have free range to decide how the robot was
controlled?

Liam:
We pretty much have free range with controllers but most people use
joysticks. You could use pretty much any controller, but these were
given to us by FIRST. And we very much like controlling the robot
with them.

Anyone remember that show called BattleBots? That became later Robot Wars? As a kid I used to love that, never missing a single episode... Too bad it got canceled in favor or shows I won't even dare name. It was a huge inspiration for me and all the kids I used to talk about it with.

That's quite an achievment for those young people, I'm very impressed. They have a good grasp of programming (in C++) and modern electronics, all combined to make an impressively cool frisbee launcher/ reloader. Shows a lot of ingenuity and design work all placed in a workable mobile package. Well done! Much luck for them all in their future endeavors.

(Just please, don't design and build any Terminators, because they'd work so well!)