Building Robots at School

June 30, 2009

VEX Workshop: Outline

Filed under: Uncategorized — dtengineering @ 10:37 pm


VEX Workshop Participants and Robots
VEX Workshop Participants and Robots

I’ve been asked for information on what we covered during the VEX workshop.  Most of what I have presented is summarized in the posts below.  As we expected, however, the formal presentations… with the exception of our great guests from BCIT and UBC… were not the crucial aspect of the workshop.  The crucial part was giving teachers time to get “hands on” with the VEX system, to do a bit of programming… and to let them play.  I have attached the original itinerary with post-workshop observations marked in red.  The observations can best be summarized as that we planned too much “formal presentation” time and not enough “hands-on build time”.  Teachers aren’t so different from students… we want to experiment and build with this stuff, and then solve problems as we come across them.   There needs to be a balance between providing enough “up front” material so that the VEX builder can have fun and design with purpose, but not so much that they never actually get to do that designing and building.  We may have also tried to schedule too much in to two and a half days… a lot of autonomous programming got left out… but on the other hand, everyone was having such a great time with our mini-tournament on Friday morning that no one really worried about that.  Autonomous in EasyC is easy enough to figure out when the time comes.

It was also very useful to have blog entries… even brief ones… on most topics, as it meant that teachers didn’t have to take notes and we didn’t hand out reams of paper.  We were able to cover some topics VERY quickly, as people knew they could go online and, using the links here as a starting point, find pretty much everything they need to know on-line.

In short, our goal was to get teachers to get “hands on” with their very own robot.  I think everyone went away satisfied that they had learned enough about VEX that they want to introduce it to their students in the fall, and we are expecting to see 7-9 schools entering new VEX teams in the fall as a direct result of this workshop, and probably several more teams as “word of mouth” spreads from the teachers and students at the “new” schools.

As for “where did all the robots come from”, teachers had the option of signing up for a “Basic Workshop” or a “Full Competition Package” workshop.  The latter was much more expensive, but teachers went home with a VEX classroom lab kit, with EASYC… and, for those who signed up early… two bonus motors when they took the full competition package.  Teachers will be able to continue their learning using this package over the summer, then use it to introduce VEX to their students in the fall.  Teachers taking the basic workshop built a robot using one of the fifteen VEX kits (yes, 15… the wheel collection alone covers a table by itself) belonging to Gladstone Secondary.  Unfortunately, they had to take their robot apart and put the parts away at the end of the workshop.  Others, who had a VEX kit already, brought their school’s kit along with them, but experimented with some of Gladstone’s parts, like the copious stacks of omniwheels and metres and metres of tank treads that have built up over four or five years of VEX competition.

Finally, a tip of my hat to the workshop participants… it was your energy and enthusiasm that made this workshop such a success, even though we skipped almost half of our scheduled “formal” topics and presentations.

June 24, 2009

VEX Workshop: CAD

Filed under: Uncategorized — dtengineering @ 10:28 pm
VEX Part Files make 3D Modelling a Breeze, as Corpralchee shows on the VEXForums

VEX Part Files make 3D Modelling a Breeze, as Corpralchee shows on the VEXForums

3D Parametric Solid modelling packages such as Autodesk Inventor, Solidworks, and Pro-Engineer have really made the computer a much more useful design tool.  This is because in many cases you can download not just part specifications, but complete 3D models of parts from vendors before you purchase the part in order to work the part in to your design.  We have used this to great benefit with our FRC robots, downloading wheel, gearbox and motor designs for use in designing our drive modules for the 2009 FRC season.  Autodesk Inventor allowed us to see a finished image of our drive module before we built it… and then allowed us to take a .dxf file of crucial parts directly in to Mastercam for toolpathing and cutting on our CNC router.

You can get FREE software for your students to use (at home, not in the lab, usually) by going to the Autodesk Student Community

Once the student has Autodesk Inventor downloaded and installed, they can go to the VEX CAD page to download 3d models of VEX parts.

VEX Workshop: Manipulators and Mechanisms

Filed under: Uncategorized — dtengineering @ 10:20 pm

This is another case where I don’t need to write too much, as it makes more sense to direct people to some superb resources.

A powerpoint presentation that I often use to describe various lifting mechanisms to new members of our robotics team is available at:

Another presentation that goes a bit more into the various mechanisms that can be used to collect and manipulate game pieces is at:

While the robots discussed in these presentations are for the FIRST Robotics Competition, and therefore much larger than a VEX robot, the principles are the same.  In fact I highly recommend taking a look through the various files available from FIRST at

VEX Workshop: Gears Simulator

Filed under: Uncategorized — dtengineering @ 10:06 pm

This is a nice little shareware program that allows students to play with different gearing systems, including planetary arrangements.

We didn’t get into using it at the workshop, but it is worth trying.

VEX Workshop: Turning

Filed under: Uncategorized — dtengineering @ 12:37 am
Turning Configurations Posted to the VEX Forum by bons

Turning Configurations Posted to the VEX Forum by bons

I’m torn between writing something on this topic, and just referencing existing materials.  There is an excellent paper involved on the physics of turning a four wheel drive robot at:

And a very useful spreadsheet based upon those formulas at:

While the formulas are for a four wheel drive robot, in most properly designed six and eight wheel drive robots there will only be four wheels touching the ground at any one time.  This is because you typically lower the middle wheels relative to the fore and aft wheels, giving the robot a bit of “rocker”.  This means that you will always have two wheels in a six wheel drive, or four in an eight wheel drive, that are doing very little to support the robot and… for purposes of this model, can simply be assumed to not exist because since they are not touching the ground they neither provide inline or transverse traction.

VEX Workshop: Traction

Filed under: Uncategorized — dtengineering @ 12:33 am

inline transverseFor most wheels on a robot we typically think of traction as being “in line” with the wheel.  The inline traction is a measure of how much pushing or pulling force the wheel can generate in its direction of rotation.  Equally important, however, is the transverse traction, as this determines the wheels resistance to skidding sideways.  When you are building a skid steer robot, you need to balance your inline traction with your transverse traction in order to turn smoothly… or at all!

 The traction of any given wheel can be estimated by using the standard “coefficient of friction” formula taught in Physics 11. 

Ff = μ FN

In other words, the force due to friction equals the coefficient of friction (u) multiplied by the normal force.  In our case, the normal force is the amount of weight being supported by any given wheel.  As shown in the preceeding post, however, the amount of weight over any given axle can change… and thus the amount of traction (both inline and transverse) over any given wheel can also change.

Now before going too much further with this formula, it is important to address the idea that because the “friction formula” doesn’t include surface area, or “contact area”, that the amount of material distributing the force to the surface is irrelevant.  This isn’t exactly true… but it doesn’t mean that the friction formula is “wrong” either.  It simply means that the friction formula makes a few assumptions that might not always hold true under the stress of competitive robotics.  The first assumption is that the materials making contact with each other have sufficient shear strength so that they don’t shred apart under the forces acting upon their surfaces.  The second assumption is that neither surface deforms significantly due to the forces involved.  This isn’t always the case in VEX, as the foam playing surface can deform slightly under the weight of a heavy robot, particularly when that force is concentrated in one place.  How does this affect your coefficient of friction?  That’s up for you to learn through experimentation… but don’t assume that contact area doesn’t matter just because your physics teacher told you it doesn’t.  You’re being taught a simplified (and very useful) model for friction… there just isn’t a simple way to calculate friction without making some simplifying assumptions.

The important thing to focus on here, however, is that to maximize your robot’s traction you want to have 100% of your normal force (your robot’s weight) transferred to the ground through driven wheels (wheels that you are actively turning, not ones that just drag along).  This is why all wheel drive systems are so popular in robotics… they allow you to use 100% of your weight to create pushing force.

June 23, 2009

VEX Workshop: Centre of Gravity

Filed under: Uncategorized — dtengineering @ 11:36 pm
The centre of gravity of a robot is very important for a number of reasons… not least of which is how it affects traction.  The video, in the post on Drive Systems below, of the “dancing” bobcat excavator is a great example of how the centre of gravity can shift, but here is a simplified case:  by adjusting where you put “heavy” components, such as the microcontroller and battery, you can adjust the location of the centre of gravity, and also adjust how much weight is supported by each wheel.  In this short clip the centre of gravity moves backwards on the robot, shifting more weight to the rear wheels (green arrows) and reducing the weight on the front.

A similar effect happens when an arm lifts a load over the robot.  Here the robot starts out fairly well balanced, as the weight of the glowing purple person at the front of the robot along with the arm and gripper counteracts the weight of the heavy block of robot stuff at the back.  As the arm raises, however, the weight of the arm and load shifts backwards on the robot, eventually leading to the point where there is no longer enough weight on the front wheels to keep them on the ground.  At this point the front wheels raise off the ground and the robot tips over backwards, smashing the poor glowing guy into the ground.

To help keep the robot as stable as possible it is important to distribute loads evenly fore and aft on the robot, and to keep in mind that loads will shift while the robot is moving, particularly when you use a simple one degree of freedom arm as shown here.  You can also help stabilize the robot by putting the point where your wheels contact the ground as far to the front and as far to the back as possible.  One of the down sides of using large wheels is that they limit where that contact point can be located.  In the image below you can see that the smaller red wheels can be located further to the front and rear of the robot than the larger gray wheels.  This helps make the robot more stable.

 Small wheels allow the axles to be placed closer to the front and rear, increasing stability.




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. ***

A NEW Blog Post!

Filed under: Uncategorized — dtengineering @ 9:28 pm

It’s been a busy year in the robot world, and I don’t have nearly enough time to write about it all here.  The real highlights of the season for me have been the explosive growth that we have seen in the VEX community here in BC, integrating VEX competition into my Engineering 11 curriculum and seeing our FRC team come together after losing many of our team leaders to graduation last year and putting together not just a competitive robot, but a top quality team.  In the process we managed to pick up a few awards, winning an FRC award for the fifth consecutive year.  Anyone who thinks that is easy is welcome to give it a try!  We have yet to win a Championship, but in some ways I am equally pleased with having this level of consistancy… this year brought our third straight trip to Saturday afternoon playoff competition and if we keep going at this rate it is only a matter of time until the pieces fall into place for a championship run.

Our VEX teams, for instance, had their first brush with top spot, with one team being on the winning alliance at the Vancouver VEX Competition and then following up by allying with two other 1346 teams to take home all the Championship hardware from the Vancouver Island VEX tournament in Courtenay.  Unfortunately we were unable to attend the VEX World Championships in Dallas due to financial reasons, as we are saving our pennies for next year’s FRC season.

Even our FTC team brought home some hardware, picking up the Motivate award at the BC FTC Championships.  I’ve never judged the success of a season based on the trophies but rather on the impact the program has had on the kids.  Behind the competitive success there have been several far more important educational and personal successes for our students.  The most memorable quote from a team member for me, this year, was “Who would want to live here?  Where do they get their FOOD?” from one of my actually quite bright students as we drove in to Courtenay for the Vancouver Island VEX tournament.  It reminds me that even if we hadn’t brought our robots along, we would have achieved several important educational goals just by getting some of these kids out of “the city” for a while!

Photos from some of the tournaments are posted online at and at the award winning Trobotics website,

Create a free website or blog at