Skip to main content
Intellect

BYU offers 'crash course' in self-driving car technology

Class includes a miniature city for tiny autonomous cars to navigate

Student-built self-driving cars try to navigate the tiny city of "Leehi" in a new electrical & computer engineering class. Video produced by Julie Walker and edited by Steve Riggs; filmed by Brian Wilcox and Steve Riggs.

There is a tiny city in the basement of BYU’s new engineering building. It has a fire station, a bakery, a Costco, and among other things, a miniature version of BYU’s “The World is our Campus” sign.


It also has streets just wide enough for remote-control cars, along with intersections, stop signs, construction zones and traffic lights. But this small town also has a pseudo-GPS coordinate system and the cars that cruise through its streets are not simply RC cars. Named in honor of its architect, professor DJ Lee, the city of "Leehi" was constructed for one purpose: teaching students the technology (and vocabulary) behind self-driving cars.


“We tried to make it as close to real life as we could so students could truly test the algorithms running their cars,” said Lee, a professor of electrical and computer engineering. “Even the traffic lights work, changing colors so the cars have to recognize when they see a green light, a yellow light or a red light.”


Each RC-sized, student-built vehicle is equipped with a camera to detect objects and a microchip to run the student-programmed algorithms. The tiny city also has three cameras positioned around the perimeter to create the fake GPS system, which the vehicles use to help navigate. Once programmed, the goal is for the self-driving cars to travel through Leehi without any human assistance.


The class is a brand-new offering from the Department of Electrical and Computer Engineering and covers most of the essential technology behind self-driving cars. As Lee teaches the technology, he also adds layers of complexity to the city to increasingly challenge the students. The first step was testing the cars’ ability to detect lines and stay within lanes. Once students mastered that, Lee added obstacles: pedestrians, stop signs and functioning traffic lights. The final step was putting all of the cars on the city’s roads at the same time.


“If two vehicles come to a stop sign, the algorithms need to know which car goes first,” Lee said. “If they see a yellow light, do they drive through it or stop? If they see a green light, but there’s a pedestrian in front of them, does the car go or does it stop?”


And while the cars themselves are only about the size of a shoebox, Lee says roughly 70 percent of the technology used in real-life self-driving cars is virtually the same. It’s a great way to let the students learn the technology without putting anyone’s property or life in danger.


By the end of the fall semester, all five student teams were able to program a car to successfully and autonomously navigate within a lane, recognize stop signs and traffic lights and avoid other vehicles.


“We had a lot of collisions in testing because the cars were having a hard time navigating traffic lanes with other cars in the way,” said student Harrison Garrett. “But we made so much progress over the semester and now it’s cool to see the cars pass each other without colliding!”


Lee said the automotive industry is looking to hire more electrical and computer engineers than ever before as self-driving car technology becomes a reality. His hope is that his students can be sufficiently equipped to land jobs in that emerging market.


“Self-driving car technology is definitely the future,” he said. “With the automobile industry moving into high tech, it’s perfect for our major and we need to prepare our students for that kind of challenge.”

See what else BYU's Department of Electrical and Computer Engineering is up to: https://ece.byu.edu/

Read More From
Related Articles
overrideBackgroundColorOrImage= overrideTextColor= overrideTextAlignment= overrideCardHideSection=false overrideCardHideByline=true overrideCardHideDescription=false overridebuttonBgColor= overrideButtonText= overrideTextAlignment=
overrideBackgroundColorOrImage= overrideTextColor= overrideTextAlignment= overrideCardHideSection=false overrideCardHideByline=true overrideCardHideDescription=false overridebuttonBgColor= overrideButtonText= overrideTextAlignment=
overrideBackgroundColorOrImage= overrideTextColor= overrideTextAlignment= overrideCardHideSection=false overrideCardHideByline=true overrideCardHideDescription=false overridebuttonBgColor= overrideButtonText= overrideTextAlignment=
overrideBackgroundColorOrImage= overrideTextColor= overrideTextAlignment= overrideCardHideSection=false overrideCardHideByline=true overrideCardHideDescription=false overridebuttonBgColor= overrideButtonText=