Building Robots at School

September 17, 2011

Registering for VEX in BC: 2011/2012 Version

Filed under: education,high school,Robotics Competitions,robots,teaching,VEX — dtengineering @ 9:36 am

Its hard to believe, but we’re in to another season of VEX Robotics Competition, and all indications are that this year will continue the rapid growth that VEX has seen in the BC/Washington area over the past five years. New schools and organizations are jumping on board not just in the Lower Mainland, but across BC. Alberta has teams and tournaments starting up in Calgary and Edmonton, and team growth in Washington and Oregon promises to help keep the international aspect of our VEX competitions vibrant and engaging.

As part of this growth PYRS (the Pacific Youth Robotics Society) is hosting the first “VEX Ideas Workshop” today to help teams get excited about this year’s game and overcome some of the usual “What the heck do I do NOW?” questions that we’ve all faced in our first season of competition.

So, in some attempt at logical order… here are some steps that you might want to take at an early stage to help guide your team to global VEX Robotics domination.

1) You need a robot. I talk a little more about funding sources in this post. 

2) You need a place to keep the robot parts. I talk a little more about that in this post. If you’ve got a cupboard or back room to store an 18″x18″x18″ robot that will help. Keep in mind that if you start with one robot this year, you could have several more a few years down the road.

3) You need a team. Sometimes this happens before you get the robot. That’s okay, too. A team can take on some of the responsibilities for pitching PAC and admin to help with funding and with sourcing sponsorship and support from the community. Typically teachers will start with a robot club and announce it in their school bulletin. Don’t be surprised when 40 or 50 students show up and you’re wondering how you’re going to manage this with just one robot kit. This is a great way to show admin that there is a demand for robotics at your school and while it is a great problem to have… it is still a problem. If you can’t get more kits then spend a couple weeks working on design problems, studying torque and other important concepts and you’ll find that only the truly hardcore roboteers will remain. Typically a VEX team will consist of one robot and four or five students… but there is no set number. Feel free to be flexible… you have to be when you’re getting started!

4) Register your team. Go to and click on the orange “register a team” button. You’ll have to click on the “log in” button and then create an account. This will be the account you will use to register for events and register additional teams, so make sure you keep track of the password and details. Registration is $75 for the first team from a school or organization, and $25 for each additional team. All teams taking part in VEX competitions must have a registered team number.

5) Register for some events. If you see a label of “registration closed”, don’t panic… that just means that registration for this event hasn’t opened yet. Keep an eye on the events and double check a month or so in advance and you’ll find they are available then. Despite the fact that each event has an “event capacity” that cap is pretty flexible… we haven’t had to turn away a team yet. (Although that may change over the next few years as the number of teams keeps growing.) Note that for events outside Vancouver/Lower Mainland that PYRS typically arranges bus transportation, allowing you to travel in relative comfort on a nice highway coach. If you are on the PYRS email list, you’ll receive notification of upcoming trips.

Here are some  events you might be interested in:

 November 5, Redmond, Washington

December 10, Richmond, BC

January 27, Courtenay, BC

Feb 18, Edmonton, AB

March 9: BC Championships at BCIT “A” Division and “B” Division

Keep an eye out on the main registration page as other dates in Washington State will be added… and, depending on your team, those competitions in Hawaii, California, Florida and overseas might just tickle your fancy one day.

6) Get some game pieces to practice with. No… wait… read the game rules… then get some pieces to practice with. I’d say that the Goal/Object kit is more than sufficient to get started. Note that you’ll also want some foam tiles to practice driving on… but you don’t have to order them from VEX. You can find very similar foam tiles at hardware stores. One or two sets of tiles should be sufficient to get started.

7) Once you’ve got a robot that can move and manipulate a game piece, you might want to contact a nearby school with a full VEX playing field. In the past Gladstone, Cambie and Moscrop have all been more than happy to welcome visitors. Contact the teachers at these schools for more information… it will be a great experience for your students! (And you’ll have fun, too.)





June 6, 2011

VEX Workshops for Teachers: Spring 2011

Filed under: education,high school,robotics,robots,teaching,Tech Ed,Vancouver,VEX — dtengineering @ 2:54 pm

For the third consecutive year the Pacific Youth Robotics Society (PYRS) is pleased to present VEX workshops for teachers. This year, thanks to partnership with the BC Year of Science Initiative and our partners in Courtenay and Summerland we are able to offer more opportunities for teachers to learn about VEX and how competitive robotics can benefit their students.

The workshops will introduce teachers to robot design, sensors and programming using the VEX Robotics system and highlight design challenges arising from this year’s VEX game, Gateway. The instructors will be Todd Ablett, who has built the Gladstone Secondary robotics program into the largest and most successful high school robotics program in Western Canada, and Jason Brett, an eight year veteran of robotics competitions and instructor at the British Columbia Institute of Technology. The workshops are interactive and hands-on.

The time, place, and cost of the workshops are:


Gladstone Secondary School
Electronics Shop
Thursday, June 23 and Friday, June 24, 2011
9:00 – 3:30


Summerland Secondary
Monday, June 27 and Tuesday, June 28, 2011
9:00 – 3:30

Workshop Fees and the “Professional Learning Package”

Fees are payable at the beginning of the workshop by cheque in Canadian funds made out to:

Pacific Youth Robotics Society
2528 East 8th Avenue
Vancouver, BC
V5M 1W2

There are three fee options (all prices include HST):

$75     Basic Workshop Package
You are expected to bring your own robot and programming software, or make arrangements in advance to share with another participant.
$175   Basic Workshop Package plus Robot Rental
You will have use of a robot kit for the two-day long workshop. You may share this robot with up to one other individual.
$1,000 Professional Learning Package
You will leave the workshop with a complete VEX Cortex robot kit, manuals and software to continue experimenting and designing over the summer. There are sufficient additional motors and parts included to form the basis of a competitive VEX robot for use during the competition season so you can gain a deeper understanding of robotics as your students experience the thrill of robotics competition. Thanks to the strong Canadian dollar and excellent pricing from iDesign solutions we are able to include the robot, workshop, manuals, shipping, and programming software for the lowest price ever. Note that due to shipping requirements we need confirmation of your intent to purchase the Professional Learning Package by June 10th. Please let us know if you are interested, but cannot meet that deadline.


Registration is now closed for both workshops. Thank you to all our particpants for making these workshops an ongoing success!

Thank you also to our sponsors at:

March 30, 2011

Tethered Mini Sumo Robots

For years now I have been building tethered mini-sumo robots with my junior secondary students.  The robots are a fun way to discuss traction, torque, power, gear ratios, and a raft of other important engineering concepts that all actually come into play in a final competition.  The video on this page represents one of my earlier classes to build the robots, and since then we’ve added a few more rules to make the final projects look a bit better.  For instance I now ban exposed batteries and weights, and limit tape to being used for electrical insulation only.  I also use a piece of welding rod to support the tether wire, as you can see in the very slick looking robot with the rounded front in the video.  We’ve also upgraded to cast polyurethane tires, which give much better coefficients of friction than these store-bought tires do.  The key rule for all mini-sumo robots is that they have to measure less than 100mm long and 100mm wide in their starting position and weigh less than 500g.  To ensure a fair competition in my class, all students start out using a Tamiya Dual Motor Gearbox or a Twin Motor Gearbox.  For more details on where I source materials, and how I implement the project, check out my Tethered Mini Sumo lesson plans and Mini Sumo Design Tips

In the event the video does not show up, try this link:

Mini Sumos can be a lot of fun… give them a try!

June 22, 2009

VEX Workshop: Drive Systems

Filed under: education,FRC,high school,robotics,robots,teaching,Tech Ed,VEX — dtengineering @ 10:42 pm

This Wednesday through Friday the Pacific Youth Robotics Society (PYRS) will be hosting a VEX workshop at Gladstone Secondary.  I’ve been fortunate enough to get to do some of the organizing for the event, and will be presenting on a couple of topics, one of them being Drive Systems.  Rather than provide handouts (I haven’t figured out how to get video on to handouts), here are some links to what I think are great examples of ways to move your robot around.

SKID STEERING (aka Tank Drive, Bulldozer Drive, etc.)

In skid steering the axles remain fixed in orientation relative to the robot.  The robot is turned by making the wheels on one side of the robot turn faster than the wheels on the other side of the robot.  This is pretty much the simplest and most reliable way to turn a robot, and offers the advantage of being able to make a “zero radius” turn (turning on the spot) by driving the wheels in reverse on one side and forward on the other.

While “skid steer” sounds simple… and is in most applications… it is important to remember that for skid steer to work, the wheels, or treads, must be able to skid as the robot rotates.  If your tires have too much traction, you might not be able to skid… and thus unable to turn.  It happened to us with our very first FRC robot… it turned GREAT in the shop on a cement floor, but when we got to Toronto and put it on the carpeted playing field, our big grippy rubber wheels wouldn’t skid!  The robot would buck like a bucking bronco as the frame twisted under the stress of trying to turn, but until we managed to wrap pool vacuum tubing around the rear wheels and reduce their co-efficient of friction, we weren’t doing anything that wasn’t in a straight line.

Skid steering is the most common form of steering, and doing it right is important.  I’ll put more detail into a later post, but until then, here’s a great video of skid steering in action.  Notice that with just two wheels on the ground that there is no skidding, and how by shifting the centre of gravity, the driver is able to shift all the traction from the rear wheels to the front wheels.  It works the same way in robots…


Swerve drive involves wheels that actively steer by changing orientation relative to the robot body.  In other words, a car is a swerve drive system because the FRONT two wheels change direction relative to the car body.  (Cars use an Ackerman Geometry and a Differential to do this smoothly.)  A forklift is also a swerve drive, because the REAR wheels change direction.  And yes, I know some cars have four wheel steering… but they only turn their rear wheels a little bit.

Robots, however, can have pretty extreme swerve drives, in some cases rotating all four axles over 180 degrees!    In the FIRST Robotics World, one of the masters of the swerve drive are Team 118, the Robonauts.   An interesting thing to note on this robot, is that they had to build a swivelling turrent… because in their design all the wheels ALWAYS point in the same direction… allowing the robot to instantly head in any direction without turning, but ironically making it quite difficult to actually turn the robot!  Sometimes you will see this referred to as a “Crab” (or “Krab”) drive, because of the way the crab like movement of the machine.

While a crab drive like the Robotnauts requires a fair bit of work to design and build, with a VEX Robot you can simply use the VEX Swerve Drive kit to get started.  Or you can build your own….


Here’s a great video showing some different Omnidirectional Drive systems produced by FIRST Robotics team 115:

Using Omniwheels

“Omni” means “all”, so here we are talking about drive systems that allow your robot to move in all directions.  Omni drives have three “degrees of freedom”.  In three dimensional space an object can have up to six degrees of freedom:  Translation (movement) along the x, y and z axes, and Rotation (turning) about the x, y, and z axes.  A typical skid steer system has two degrees of freedom… translation along the x (forward and backward movement) and rotation about the z (vertical) axis.  A crab drive system, like the Robonaut’s machine mentioned above, also has two degrees of freedom:  translation along the x and translation along the y.  The robonauts can’t “turn” however, so they have no rotational degrees of freedom.  The VEX robot, in the video, above, has three degrees of freedom: translation in x and y, and rotation about z, making it an “omnidirectional” robot.

There are other ways to build an omni-directional drive system, however.  One of the most common ways is to use the omniwheel.  While my favorite use for “omnis” is to make it easier to turn a skid steer system, they also have some interesting possibilities for building omnidirectional drive systems.  There is a great powerpoint presentation on the different designs and the math behind making them work at the WPI FIRST Robotics Resource Centre.  Look for the third item on the list by Baker and Mackenzie.  Here are a few examples of the fun you can have with omni wheels:

A VEX Holonomic drive robotA larger, six wheel drive omni drive system.  “Holonomic” is often used when referring to a drive system using four omni wheels, with two wheels perpendicular to the other two wheels, however it could be used to describe any omnidirectional drive robot as they both mean, roughly, the same thing.  In the first video the wheels are angled 45 degrees to the frame and located at the corners of the robot.  It is sometimes easier to put the wheels in line with the outside of the frame, and at the middle of each side of a rectangular robot, or to use six wheels as in the second video.

When you build an omnidirectional robot with three omni wheels (see team 115’s video, above) it is commonly called a “Kiwi” drive.  The Kiwi drive has the advantage that because the wheels are based in a triangle that all three wheels are always in contact with the ground.  With a four wheel (or six wheel) system it is possible for one of the wheels to lose contact with the ground.  It is very important that when using omniwheels or mecanums (see below) that all the wheels stay in constant contact with the ground.  This is why many people advise building a suspension system for four wheeled omni-drive systems and/or restricting them to flat, smooth surfaces.  In VEX competition, however, the “suspension” is actually provided by the soft foam tiles of the playing field.  An alternative to the Kiwi drive is the Killough drive… which works like a Kiwi, but without using omni wheels.  Take a look here for some good graphics showing the vectors at work in making these robots move.

Using Mecanum Wheels

“Reinventing the wheel” is often used as a cliche to describe doing something needless or useless, but in 1973 a Swedish inventor did just that.  The mecanum wheel is quite similar to an omni wheel, but has the “rollers” around the outside of the wheel mounted at approximately a 45 degree angle to the axle.  This means that you can build a robot with the wheels set up parallel to the frame, but still have all the mobility of an omni wheel system with the wheels set at an angle to the frame.  This simplifies frame design and allows the added benefit of being able to switch back to skid steering by replacing the mecanums with regular wheels (also known as “traction” wheels).  These benefits encouraged our FRC team to use mecanum wheels in our 2007 FRC robot.  This robot has to be the most fun to drive of any of our machines, although it was by far the most challenging to program… and getting it to climb an incline took some careful work and driving practice.  We tried to make sure that, as much as possible, the amount of weight supported by each wheel was close to equal, and rather than building a suspension to keep the wheels in contact with the ground we just left a bit of flex in the frame.  In hindsight, we would have had a more competitive robot if we had gone with a simpler skid steer system and used the time we spent programming the mecanum wheels to work on other robot systems, but on the other hand… watching this machine move was just too cool!

The advantages of an omnidrive should be apparent… unlimited mobility on smooth surfaces, and a machine that makes people ask “How does it DO that?” as it strafes off to the side without turning.  In addition to being infinitely cool, omnidrives are also an excellent opportunity to teach vectors, forces and feedback.

That, however, is also the disadvantage of an omni drive system.  They are complex.  Swerve drives tend to be complex mechanically, while mecanum drives add complexity to the software.  It can be difficult enough to make a skid steer robot travel in a straight line, but the flexibility of an omni drive to go in any direction also means that they can go in any wrong direction quite easily.  On our mecanum robot we had encoders on each wheel, and a PID software loop to control the speed of each wheel to ensure that the robot would go straight.  Other teams have used gyroscopes to make sure their robot trackeded in a straight line, or potentiometers, for swerve drives, to make sure that their wheels all point in the correct direction.

Omnidrives also tend to sacrifice some “pushing power” to skid steer systems.  The swerve drive sacrifices the least (almost none, in fact), as all the wheels are driven and always point in the direction of motion, but omniwheels and mecanum wheels not only have a lower coefficient of friction relative to a traction wheel, but at times will only have two of the driven wheels pushing in the direction you want to go.  The idea behind an omnidrive, however, is that your added maneuverability allows you to avoid pushing matches by outmaneuvering skid steer robots.  This requires a sufficiently open playing field for the robot to navigate freely, plus a sufficiently talented driver to maximize the opportunities presented by the omnidrive.

Omnidrives aren’t always ideal for robotics competitions… but they make for a great programming or building challenge for an experienced robot builder and are some of the most exciting robots to watch that you will find anywhere.  If you haven’t built one before… why not give it a try?

*** Check out the comments, below.  Rick pointed out a great holonomic VEX robot that did really well at the World Championships, and I’m sure other people will post links to their favourite omni-drives as well. ***

September 22, 2008

Intro to Ortho: The Three-View Lego Drawing

Filed under: mini sumo,robots,teaching,Tech Ed — dtengineering @ 6:09 pm

For several years now I have taught a course called “Robotics and Flight 10”.  The students in the class are grade nine and grade ten students, and for the majority of them it is their first “real” tech studies class.  The two cornerstone projects of the course are building tethered mini-sumo robots and tethered electric airplanes.

It didn’t take long to realize, however, that the students had great ideas on how to design their robots, but that they had a real problem getting those ideas out of their head in a way that I could understand.  It wasn’t their problem… it was just that they didn’t know how to DRAW!

So I needed something simple, but fun to start the kids learning the basics of orthographic and isometric projections.  I wanted to have something that would challenge the wide variety of skills and abilities that students have, and I wanted to do it with a realatively low investment of time and money.

So what we do is give the kids some Lego blocks.  I show them how to set up their paper on their drafting board, and point out that while the T-square does look like a “T”, the square actually looks like a triangle.  Then I get them to use the drawing tools to draw a border and title block.

Once they can do that they take two pieces of lego (just the bricks… not the fancy stuff) and I show them how to set up an orthographic drawing.  We don’t draw the “bumps” on top or the “holes” on the bottom of the bricks, nor do we draw the “seams” where two pieces come together.  We just assume that the lego has fused together in to one solid piece.  We pay special attention to the difference between construction line weight and object line weight, aligning the views, and the correct way to rotate the lego between top, front, and side projections.  Since all drawings are done at full scale, the students can take measurements directly off the Lego.  I generally refuse to mark a drawing unless it is pretty close to perfect, so most kids get 5/5 on this drawing… although some of them end up going back to fix or re-do it more than once.

Once they get the first drawing done, the next task is to do a slightly more complex drawing, with three pieces of Lego.  I make a point of advising them that just putting three pieces together to form a “bigger box” is not acceptable… they need some corners and variety in there.

Once they have finished the three-piece drawing, I talk to them about hidden lines, because for the third drawing they have to build a five-piece Lego structure and draw it with hidden lines.  By the time they finish this, they are usually getting a pretty good idea of how to draw a simple orthographic projection.  So it is time to give them something more challenging….

  1. This is where they do the “Stump the Teacher” drawing.  The rules are:
  2. You can use as many lego pieces as you want, and make it as challenging as you want.
  3. When you bring it to me for marking, if I can see one error, I send it back… and don’t tell you where the error is (or how many errors there are!).
  4. You can bring it to me three times… if, on the third trip, there are still errors then you have to start over with something simpler.  You have stumped yourself!
  5. When you submit a perfectly drawn piece it will be marked as: 
  • Basic complexity (same as the five piece lego drawing)          2/5
  • Some challenge                                                                3/5
  • Challenging! (the drawing in the photo fits this category)       4/5
  • This is CRAZY… it hurts MY brain!                                      5/5

If, however, I either give up on finding an error, OR I make a mistake in my marking (I have to show them where the errors are on their third and final trip and have been known to very occasionally see an error where there isn’t one) then they get a bonus mark of 6/5 and get to claim the rare and coveted title of having “Stumped the Teacher”.

This is followed up by a few classes doing something similar but with isometric drawings, and then we get in to designing the robots.  Although introducing the drawings this way takes about ten classes, it is perhaps not surprising that the quality of design drawings… and robots… has increased significantly since I started doing this introductory unit with the kids.  If you have an interesting idea for introducing technical drawing to students, perhaps you will leave a comment describing it or linking to a description of it?

Wheel Diameters, Bumps and Traction

Filed under: teaching,Tech Ed,VEX — dtengineering @ 6:04 pm

The students are making good headway on their first class challenge.  All five teams have built something that actually moves and have managed to set up their CPU and controller so that they can actually control it.  But they are noticing that some robots climb the “bump” from the cement to the foam better than others.  They have also noticed that some robots are really good at pushing the other robots around.  So I figured it was time to talk a little bit about the importance of wheel diameter and tire traction when it comes to designing robots.

on the right, a standard two-motor, four wheel drive robot.  In the back, a four-motor, four wheel drive robot.  Since there is nothing linking the front and rear wheels together, when one wheel loses contact with the ground, the motor attached to it is no longer helping to push.  On the left a robot with two different diameter wheels... but with the same gearing leading to each wheel.  This is a common "rookie mistake" as the two wheels will have the same rotational velocities, but different circumferences, meaning each wheel will want to travel at a different speed.  Note the front "omni-wheels", which allow for easier turning... a factor that becomes more important as the robots get bigger and heavier.

Three Robots: on the right, a standard two-motor, four wheel drive robot. In the back, a four-motor, four wheel drive robot. Since there is nothing linking the front and rear wheels together, when one wheel loses contact with the ground, the motor attached to it is no longer helping to push. On the left a robot with two different diameter wheels... but with the same gearing leading to each wheel, a typical "rookie mistake".

The article on torque briefly discusses the importance of wheel diameter in determining the pushing power and speed of the robot.  (Larger wheel = faster, but less pushing power.)  But a larger wheel also makes it easier to climb over obstacles.  This is because as the wheel gets bigger, the angle between level ground and the wheel’s tangent at the contact point gets smaller.  This means that a smaller wheel needs to rapidly accellerate upwards to get over an obstacle, while a larger wheel can “keep on rolling”.  Both axles will move upwards the same amount (since the obstacle is the same size for each wheel), but the smaller wheel will have to do it much more rapidly, “wasting” energy by rapidly converting forward velocity into upward velocity.  At the extreme end, when the wheel radius is equal to or less than the height of the obstacle, the robot must come to a complete halt in the horizontal direction.  This is one reason why “monster trucks” have such big wheels… it allows them to climb over big obstacles.

The second reason that big wheels help is that they raise the axles up off the ground, providing greater ground clearance.  This helps prevent getting “high centred” on an obstacle. This happens when the weight of the robot comes to rest on the chassis (where it touches the obstacle), taking weight off of the drive wheels (typically leaving one set spinning in the air) and thus reducing the amount of traction that can be used to push the robot up and over the obstacle.

A Bored of Notes on the Importance of Wheel Diameter for Clearing Obstacles

A Bored of Notes on the Importance of Wheel Diameter for Clearing Obstacles

So it sounds like big wheels are the best choice, but as with everything, there is a trade-off.  If you have size contraints on your robot, larger wheels mean that the axles, and thus the points where the wheels contact the ground, are also closer together.  This means that the robot is more likely to tip forward or backward under heavy accelleration or braking.  This is often compounded by the fact that the higher ground clearance provided by higher wheels often also results in a higher centre of gravity for the robot, making it more likely to tip in any direction. 

Of course this discussion has been based on four-wheel drive robots.  There are many other solutions to climbing obstacles and maintaining a low centre of gravity.  Six and eight wheel drive systems, using smaller wheels… typically with at least one set of wheels raised up a little higher than the others are quite commonly used for climbing over obstacles.  Tank Treads are also often used.  Other, more exotic drive systems such as snakes, walkers and other creative solutions are used for climbing obstacles as well.

Tips on How to Maximize Pushing Power

Tips on How to Maximize Pushing Power

Other than the importance of going over an obstacle, the other thing that students are discovering is that some robots ‘push’ better than others.  There are a number of factors that can affect this, as shown on the board of notes, to the right.  Maximizing pushing power is a balance between torque and traction.  Torque comes from the motors and gears, and is converted into a pushing force by the interaction of the wheel and the ground.  To maximize pushing power, drive the robot against an immovable barrier.  If the wheels spin, then you have more torque than you do traction.  To make your robot push harder, you need to imcrease the traction, either by increasing the co-efficient of friction between your tire and the ground, or by increasing the amount of force pushing downwards on your tires (ie: make the robot heavier, if you can.)  Alternatively, you may wish to increase your gearing or wheel diameter and trade off some of the excess torque for an increase in speed.  If the motors stall, however, and the wheels stay still, then you have more traction than torque.  You can increase your pushing power by reducing your gearing or wheel diameter (at the cost of reducing your speed)… or by adding more motors to your drivetrain.  A more complex solution, should you need both high torque AND high speed is to build a two-speed gearbox that can “shift on the fly”.

One final note, shown by the left hand robot in the photo at the start of this post, is that if you are going to put different sized wheels on a drive train, then it makes sense to link them with the appropriate gear ratio.  If both wheels spin at the same RPM, and one has a bigger circumference than the other, it is going to want to go faster than the smaller wheel.  The only time these two wheels won’t be “fighting” with each other is when the robot is stopped or the motors are stalled.

September 18, 2008

The VEX Control System

Filed under: teaching,VEX — dtengineering @ 9:16 pm

Now that the students have some robots running about on the floor, they have suddenly become much more interested in the VEX control system.  The default program that comes built-in to the VEX control system is pretty good for getting a basic robot up and running, but you will soon want to start doing a bit more.  To do that, you need to program your robot.

A Bored of Notes

A Bored of Notes

Before talking too much about programming, however, it is important to notice a few things about the VEX transmitter.  The VEX inventors guide (the big white binder that comes with your VEX kit… you have at least looked at it, I hope) has a great section on how to use the transmitter.  Specifically it tells you how to set the “trims”.  It even tells you what a “trim” is, and why you have to set them.  It also tells you how to reverse the direction of one of the joystick axes.  This is a REALLY useful thing to do when you have, after programming your robot, realized that it turns when you try to go straight… or goes forward when you try to go in reverse.  It is definitely worth taking a few minutes to learn how to set up the controller properly.

The Inventors guide also talks about how to set the antenna up properly.  VEX has a good RC (radio control) system, but if you leave your antenna on the transmitter down, and the antenna on your receiver all coiled up in a little roll, you will have probably less than three metres of range.  Note that when you go to a competition that you will be required to remove YOUR crystals from the back of the transmitter and top of the receiver, and replace them with COMPETITION crystals that will be supplied by the event organizers.  This is to prevent teams RC units from interfering with each other.  To practice with your robot at a competition you will need to have a telephone cable to connect your transmitter directly to your CPU.  Take the time to find a good one that works well BEFORE you go to a competition.  You should also note that, should the need arise, you can attach two VEX receivers (operating on different frequencies) to the CPU so that you can use two controllers to run the robot.  You could, for instance, have one person drive the robot base while another controls the arm and end effectors.

Now, back to that programming thing.  As I mentioned, the default program is pretty good and is really well explained in the Inventors Guide (you haven’t read that YET?  Sheesh…) But you will soon want to start doing more, and that means programming.  Forunately for beginners there are three common languages that can be used to program a VEX CPU, and at least one of them is really about as easy as programming is ever going to get.  I guess that is why they call it EasyC.

The programming kit includes EasyC and a programming cable that will allow you to hook the VEX CPU up to your (preferably laptop so you can take it to tournaments) computer, as well as one seat of the EasyC software.  Both the cable and software can be purchased seperately (or you can buy a lab pack of EasyC) but typically a ratio of one seat of EasyC to one programming cable to one robot seems to work okay.  If you are running many teams, you could probably share a programming cable between two robots, however.

Rather than go into detail on how EasyC works, I will refer you… once again… to the manual.  I will note that on page 16, when it discusses identifying the correct COM port to talk to your robot with that you can usually save yourself the hassle of going through the whole list by looking under “Control Panel->System->Device Manager->Ports (COM and LPT)”.  Aside from that the manual is pretty comprehensive, and written far more clearly than anything I’m likely to write here.  EasyC is what I use with my students as well as with my own VEX kit at home.

If I need more flexibility, however, or am just feeling sufficiently masochistic to delve into the world of hand coding C, the VEX CPU can be programmed with the Microchip C compiler.  I am not going to offer any suggestions on that topic here, however, because if you are considering that option you are either sufficiently skilled to figure it out on your own, or just blissfully unaware of how much happier you will be with EasyC.  It isn’t like Microchip C is hard, per se… we use it with our FRC robots and it works great.  Our lead programmer for the “BIG” robot was in grade 10 last year and did a fine job with Microchip C… it is just that EasyC is so… well…. easy.

The third, “intermediate” option is RobotC, however I haven’t used it and can’t comment on what it can do.

So good luck, have fun, and try to get some kind of autonomous code (when the robot runs all by itself without any help from you) figured out before your first competition.  If you don’t have it figured out by then, then make sure when you get there that you ask around until you find someone who can help you.

September 16, 2008

Building a moving machine: My students’ first VEX challenge.

Filed under: robots,teaching,Tech Ed,VEX — dtengineering @ 4:04 pm

This year I am running five VEX teams as part of my Engineering 11 class here at David Thompson.  There are 20 students in the class, which works out nicely to be four students per team.  Eventually we will be playing this year’s VEX challenge game, but since very few of the students have any experience with robotics (or building stuff, for that matter), I wanted to ease them in to it.  In the past I have just given teams the official challenge and said “go”… but I really do think it is better to lead them through the process one step at a time, and the best place to start is with the drive train… the most important part of any competition robot.

I had all the students put their names in a hat, and we drew names at random to see who would be on which team.  These teams will only be together for a couple of weeks… once we have completed this challenge I will reassign them to new teams with completely different partners for a slightly more complex challenge.  Then they will be able to form their own teams for the “real” game.

The Playing Field

The Playing Field

The first challenge I have given them is fairly simple.  They have five classes to build a robot that can drive the course shown in the photo.  It is a race.  One robot starts, on the cement, at each end of the playing field.  The robots have to navigate between two “slalom” gates marked by bolts.  It doesn’t matter which direction they go through, so long as they go through both gates.  If a robot knocks a bolt over, the driver has to put down their controller and do five pushups.  After the pushups are done then someone else on the driver’s team can take over control, but that driver is “out” for that race.  Contact is allowed… but just pushing and shoving, no flipping or damaging the other team’s machine.  Finally, if a part… any part… should fall off a team’s robot, then EVERYONE on the team has to do five pushups before they can carry on driving.

The course is set up to cover a few basics in VEX design… how to hook up motors, how to set up the transmitter, how to create a simple EasyC program for the robot, how to steer, how to climb over an obstacle, and how to push another robot around.  These are all fundamental skills that will be important in designing a competitive VEX robot.

Rather than provide lecture content and class demonstrations while the teams build (they would really rather be building than listening to me) I ask one person from each team to come to a table at the back of the shop where I demonstrate a topic (today it was battery charging and hooking up the receiver and CPU) to just those five students.  It is then their job to be the group “expert” on that topic and share the information with the rest of their group.  As different students become experts on different topics and move from group to group, hopefully the knowledge will diffuse throughout the class.  And, no, I haven’t quite finalized exactly how I’m going to assess them individually at the end of all this.  Probably some combination of self-assessment, peer assessment, and a quiz or two combined with a liberal helping of marks based on their robot’s performance on the playing field.

It has been interesting to watch the different design paths chosen by the teams.  Some are creating their own design, while others are using the “squarebot” design in the VEX manual.  The teams working on the squarebot design seem to have the easier task, but the squarebot uses just two motors… teams with custom designs are using four motors and jacking up the gear ratio a bit.  Interestingly, so far all of the teams are using the small “roller blade” wheels… but we are only a couple classes in to the building.  It will be interesting to see what comes from a couple days of practice… the first robot made it across the field today after school.

FIRST Lego League: Where to pay? Where to Play?

Filed under: FLL,Robotics Competitions — dtengineering @ 1:48 pm

FIRST Lego League is probably THE largest robotics competition in the world.  Although it is limited to students in the 9-14 age range, it is certainly the largest robotics competition here in BC, both in terms of the numbers of teams and the number of people involved.  A large part of this success is due to the hard work of the BC Original Minds Association which organizes the FLL program in BC.  Their FLL web site has the most up to date information on what is going on in BC with regards to FLL.  The “Resources” page is particularly useful.  Although I didn’t see information on the whens and wheres of this year’s tournaments, there are typically three qualifying tournaments in BC, including one on Vancouver Island, as well as a provincial championship held in January in the lower mainland.

Each year FLL introduces a new challenge, based around a positive, scientific, theme.  This year’s theme is “Climate Connections”.  More information on the challenge is available from the FIRST website.

Details on costs are listed here, and the registration page is here.  Typically a team will pay a $200USD registration fee, and buy the “field set-up kit” of lego parts and a 4’x8′ game mat for $65 USD (you get at least $65 worth of Lego in this kit, which you are free to use however you want in future years).  This way all teams will be able to replicate the official playing surface in their own lab, shop, or living room.  It takes quite a while to build all the various field elements and set up the playing field, however this is essential for practicing and refining the robot’s autonomous routines.  To see the “missions” and game mat, look here.  If two or more teams are sharing a space, for instance when we ran two teams out of my animation lab here at school, it is possible to only order one field set-up kit and for the teams to share it.  Finally teams will need access to either the Lego Mindstorms NXT, or the older RCX, robotics kit, including CPU, motors and sensors.  While it is often possible to find the old RCX bricks sitting around unused in the educational system, there is a nicely subsidized kit including the NXT system with essentially all the parts required to build a basic FLL robot available for $365 USD when you register a team.  This kit can be re-used from year to year.  For more sophisticated robots, additional Lego parts can be added, as specified in the rules.  Canadian teams will find their parts supplied through Spectrum Scientific.  This avoids some of the brokerage charges that come when ordering direct from the USA, but can result in orders taking a little longer to arrive.

It is important to understand that the robots are only part of the overall competition.  Preparing reports related to the theme, developing pit area displays, and demonstrating teamwork and enthusiasm are all important parts of the competition. This why it is possible to have up to ten students on one FLL team.  Personally, I think four kids per team is about right, and probably wouldn’t recommend going above six at the most.  The FLL Coach’s Handbook has good information on all aspects of building an FLL team. (For some reason that link wasn’t working when Ic checked, but it might just be our balky school connection.)  Once you get looking around you will find that there are many, many resources available from programming to mentoring to just building good Lego structures.  Maybe you will post some of the ones you find most useful here as a comment?

September 15, 2008

VEX Schedules for BC

Filed under: Robotics Competitions,VEX — dtengineering @ 9:06 pm

I had a phone call tonight from Lance.  Lance is a real, genuine engineer (as opposed to us “teachers with engineering backgrounds”) who plays a big leadership role in organizing robotics events here in BC and supporting teachers and teams in whatever way he can.  Lance was working with Randy (on Vancouver Island) to sort out the timing of the VEX tournaments in Vancouver, and on Vancouver Island.  They had been tentatively scheduled to be just one week apart.

It looks like now we will stay with the December 6th date for the Vancouver VEX tournament.  The location is to be determined, but we have a few places in mind that we should be able to get for free that have worked well in the past.  Randy will move the Vancouver Island tournament back to later in January so that teams will have a chance to re-design and re-build their machines.  That should make for a very spectacular event in the Courtenay/Comox area of Vancouver Island, as the robots always make huge strides in performance between events.  It will be fantastic to see robots at their peak performance on Vancouver Island, as Randy — working with MISTIC — has accomplished a real feat in bringing VEX to Vancouver Island.

Next Page »

Create a free website or blog at