Autonomous Systems Will be the Future; IT Professor Making Sure Mizzou Engineers are Ready

December 17, 2020

Screenshot of game used to teach autonomous systems.

The back- and front-end views of a game module that lets others “drive” a virtual car in a simulated environment. Graduating senior Jay Toebben designed the program, aimed to teach students autonomous systems.

Driverless taxis. Delivery drones. Robots that can complete complex tasks. These technologies are emerging quickly, and Dale Musser is determined to make sure Mizzou Engineers are ready.

Musser is an associate teaching professor in the Information Technology Program at Mizzou. He’s in the process of incorporating autonomous systems into his classes and across the IT Program curricula.

Dale Musser

Dale Musser

“We’re not trying to build these systems, but rather prepare our students to use them,” he said. “There is going to be a huge demand for graduates who know how to program, operate and maintain fleets of these machines.”

Autonomous systems allow technology to move and complete tasks with no or little human involvement. Musser has demonstrated various uses of drone technology, specifically, over the past few years, but this semester expanded to include simulated environments.

“These simulations make this work accessible to a lot of students,” he said. “We may not be able to program an actual self-driving car, but students can learn and practice that programming in virtual environments.”

Musser challenged students in his advanced computer science classes to come up with ways to make that easier for future Mizzou Engineers.

An Effective Training Module

Jay Toebben—who’s earning his bachelor’s in computer science this week—developed a game module that lets others “drive” a virtual car in a simulated environment.

“The software and technology used to create machine learning is expensive,” he said. “Even if you just wanted a simulation program on the market, it’s not feasible because basic computers can’t run it. This can run on small, conventional computers students already have. It’s an effective way to train somebody.”

The module looks like a simple video game—there’s an animated car, track and basic landscape. But unlike a game that relies on a controller to steer the vehicle, users move it through coding using the programming language Python.

Like a real car, users can steer where the virtual vehicle goes. It can run off the road and gains enough momentum to flip over if not careful. There’s also a virtual camera atop the vehicle that can transmit the car’s virtual view back to the user.

Toebben’s program will be free and available to future students in Musser’s classes. Beginning students can use it to learn basic programming and machine learning.

Because the system is built with Unity, a development platform, more advanced IT students can also build on the current module. For instance Toebben envisions students will add more complex landscape features such as trees, stoplights and buildings to simulate a real-world environment.

Building a Better Drone

Christian Caldwell and Mahmoud Thabit, also graduating with degrees in computer science, worked on drones.

Student controls drone from laptop.

Christian Caldwell programs a Tello Edu drone on his laptop.

Tello Edu is a small drone designed to teach students programming. Caldwell wanted to provide a way for students to implement more advanced features.

A Tello drone comes with multiple Mission Pads. When programmed, they allow the device to fly from one pad location to another. What the box didn’t come with, however, was clear-cut instructions on how to do that.

After researching and figuring it out, Caldwell added his own command lines to program the drone to complete more complex tasks.

“I use the Mission Pad commands the drone knows about, but then I program with Python what the drone should do at each Mission Pad,” he said. “So I will program which pads the drone should go to, which order, at what height and what kinds of movements it should do.”

Caldwell has provided both original Tello codes and the commands he developed in a “Tello Playground” on GitHub. There, anyone can view and use the codes free of charge.

“It’s a nice closing project for me to take everything I learned and make this GitHub project, putting it out there for the world to use,” Caldwell said. “It will allow others to get a jumpstart. It was nice to be able to help others who want to use the drone or learn programming.”

A Simulated Programming Platform

Thabit created a simple Tello simulation using the web-based platform, p5.js.

“The goal of this application is to allow students to practice and familiarize themselves with Tello commands from home,” Thabit said. “The application will save precious lab time. And it will give all students access to a real Tello drone even if there is a Tello drone constraint.”

The application is a three-dimensional space with a box as a drone. Users can interact with the simulation though arrow and other keys that allow them to map a path easily. They can also type commands directly into the input box  or launch a server and interact with the application using an application programming interface.