Wednesday, December 21, 2016

Project: The Self-Driving Car

We've recently reported on the Advanced Engineering I playground design project, but what exactly is keeping the younger group busy right now? If you pass by Room 401 most any afternoon, you'll find twelve freshmen and sophomores, six computers, three VEX robotics sets, two T.A.s, and one teacher very hard at work! The project? It's a little ambitious, but we are intending to design, build, and program three self-driving robot cars, in the manner of Google, Uber, Tesla, and a few others.

Just another typical day of class in the Providence Engineering Academy

The way of the future! But first a bit of background. Robotic cars fall into two broad categories: smart cars and smart roads. Smart car systems have all of the design and engineering and intelligence in the car itself, relying on GPS, lots of sensors, and careful programming. By contrast, smart road systems have some sort of marker built into the road itself to provide information to the car--one idea proposed in the past was to have magnets embedded into the road surface. While all companies are now putting all of their efforts into the "smart car" option, ours fall into the "smart road" category; we have a white line track on a dark background that shows the car where it needs to go. No white line means no navigation.

Left: the design brief and the plans for the roadway; right: the actual roadway,
newly constructed, mounted on an 8 foot by 8 foot plywood base

So what does it take to get this going? The number one resource is human intelligence; each of the three teams comprises four students, with distinct roles as follows:
  • Team Leader: co-ordinate efforts, give attention wherever needed, be an all-around expert in everything, and keep a daily Captain's Log.
  • Mechanical Engineer: primarily responsible for building the physical structure of the robot, mounting sensors, and attaching custom parts.
  • Programmer: working on code that will navigate the robot around the course.
  • CAD Specialist: design custom parts in a CAD program, and then print them out for use in actuality.
The beauty of this is that each member necessarily must work together with the others to achieve the outcome. The mechanical engineer needs input from the programmer as to where to place the sensors so that they work with the written code. The CAD specialist needs to also work with the mechanical engineer to decide what is most needed and where it should be placed. The team leader needs to choose just how to spread themselves each day to get the current priorities in order.

Ben (left) working on code; David (center) attaching his wheels to the frame

Samy, one of the mechanical engineers, putting together a frame for his
team's vehicle

Each team was allowed to choose between two types of steering design: rack and pinion, or a simpler design where the entire wheel and axle rotates around a central pivot. All three teams went for the rack and pinion, which is the same design found on modern cars. A single gear (the "pinion") rotates on a flat linear gear (the "rack"), which pushes it left or right, in turn causing the front wheels to point in either direction.

The custom CAD parts are another particularly exciting part of this project: the three CAD specialists are using the online platform Onshape to make pieces that are specific to their own robot. Just for fun, one team created a license plate with their team name, which is now proudly mounted on the front. Two teams are currently working on a box to hold a payload to be delivered along the route. The third team created a "shadow shield" to go underneath the vehicle and keep the line-sensing infrared sensors out of direct sunlight to make them more effective. The CAD specialists had to create bolt holes that match with the VEX robotics system, and they have infinite control over everything else.

One team's container design, intended to hold a small payload; a door is going
to be added to keep things secure until delivery

Another team's payload device is an open tray which flips up to release
upon command; note the square axle hole for connection to the motor

Both of the above designs are printed full size; so far, it looks like they will
be perfect!

The teams have another couple of weeks to finish this project, and they look to be on schedule for completion and demonstration.

Mr Meadth also decided that it would be fair for him to produce a proof of concept--can this really be done, after all? He used one of the spare middle school LEGO sets, which has an array of similar sensors and mechanical capability, but a very different coding language.

LEGO Mindstorms coding language--colourful blocks that snap together!

RobotC coding language, as used by the high school students--lines
and lines of colour-coded text

After a few hours of work, he came up with this smaller LEGO version, and it gets around the full track in about 18 seconds on its slowest, most cautious speed.

The LEGO robot car in action--note the three colour sensors in a bank on the
front; having three side-by-side allows for more sensitivity in response to the
car's exact position



Proof positive--it can be done! Upon completion, the robots will be demonstrated to the Providence community; we may go down to Lower Campus and show one of the elementary grades what we've done. Stay tuned.

No comments:

Post a Comment