BYU Home page BRIGHAM YOUNG UNIVERSITY  
Search BYU 
Previous Work

Our First FPGA-based Robot

Our FPGA-based robotics and vision research began in the summer of 2004 with a simple question. How do we enable real-time vision on very small, autonomous vehicles? Extensive work with small, ground-based robots and small UAVs had already been performed in BYU's Magicc Laboratory. However, the embedded microcontrollers in use had neither the I/O capabilities nor the processing power to handle real-time image processing.

We had at our disposal a number of FPGA development boards and decided to mount one of them on an existing robot platform. We then connected a tiny Micron image sensor to the system and developed a platform that would allow us to retrieve and process images.

Prototype Robot
[image]


This simple experiment immediately led to two graduate classes that used the platform as a basis for experimentation with small, autonomous robots with on-board vision. The first class was an attempt to play small-size robot soccer using only on-board vision. The second was a class on robotic vision where students learned a lot about obstacle detection and avoidance for use in robot navigation.

Robot Soccer with On-board Vision - Fall 2004

In the fall of 2004 we attempted to play two on two robot soccer using on-board vision. Robot soccer had been senior project option for undergraduate students for many years at BYU. However, all vision processing was done off-board on computer workstations and all the images were taken from an overhead camera. Moving the cameras and the processing to the robots themselves posed significant challenges.

In order to facilitate localization of the robot on the playing field, we devised a color scheme that gave each section of the field a unique color arrangement. The ball was simply a white golf ball. With this arrangement we were able to play crude robot soccer.

Soccer Playing Field
[image]
Soccer Robot
[image]


During this class, vast improvements were made to the robot platform. A custom daughter board was created that allowed us to connect a variety of devices to the robot, such as an electronic compass, ball sensors, a wireless modem, and, of course, the camera. Additionally, a great deal was learned about the FPGA and camera capabilities. We also learned about the Xilinx development tools, embedded processors, and image processing.

Here are some of the technical characteristics and features of the robot platform at the end of this class:

Memec V2MB1000 development board with Xilinx Virtex-II XC2V1000 32 MB DDR SDRAM
Micron MT9V111 digital camera configured to 320x240x2, 15 fps
Faulhaber 2224 012 SR motor with IE2-512 encoder and gear head
Aerocomm AC4490 wireless module
PNI V2Xe 2-axis compass
Custom chassis and wheels

Robotic Vision and Navigation - Winter 2005

The robot was next used as the platform for a class on robotic vision. The students of the class were divided into four teams and each team was given one of the robots to work with. The core of the class was a series of challenges that each team was to compete in. The challenges are outlined below.

Robotic Vision Class Robot
[image]



Trapped Mouse

This challenge consisted of placing the robot in the center a small 4'x4' box with 1' high walls. The walls of the box were marked with a textured pattern to make them easily visible. The robot had to be programmed to drive towards a wall, come within 6' inches of the wall, stop without hitting it, and return to the center of the box. The robot must then repeat this process for a different wall of the box for a total number of 10 iterations. The team that could complete this task the fastest won the challenge. The video below shows one of the team's robot performing the challenge.

In order to perform this challenge, each team's robot had to be able to detect its distance from the wall using the images from a single camera. This can be done by evaluating the rate of expansion of the images and estimating the time to impact. The video below shows one of the robots performing this challenge. In this example, the obstacle happens to be placed very closely to the beginning of the course.

CLICK FOR VIDEO: Trapped Mouse
[image]



See and Avoid

This challenge consisted placing the robot on a short, straight track. The robot had to navigate from the center of one end of the track to the center of the other end of the track. However, a 1' cubed obstacle was placed directly in the path of the robot. The robot had to travel forward, detect the obstacle, navigate around it, and return to the center of the track.

CLICK FOR VIDEO: Obstacle Avoidance
[image]



Canyon Following

In this challenge each robot was placed at the beginning of a 3' wide canyon with 1' high walls. The robot had to determine it's angle relative to the canyon, navigate exactly to the center of the canyon, then travel down the exact center of the canyon without deviating outside a one-foot wide path down the center of the canyon. The video below shows an example attempt by one of the robots.

CLICK FOR VIDEO: Canyon Following
[image]



The Grand Challenge

The culminating challenge was the Grand Challenge. This challenge consisted of programming the robot to navigate a course around the hallways of BYU's Clyde building. Teams used a variety of markers and characteristics already present in the hallway as well their on-board compasses and wheel encoders to track their location and determine where to turn in the hallways. Vision also had to be used to avoid any furniture and other obstacles present in the hallway. The video below shows one of the teams successfully completing the challenge.

CLICK FOR VIDEO: Hallway Navigation
[image]



Birth of Helios

By the end of the robotic vision class of winter 2005, a tremendous amount of infrastructure had been built for this robot platform. Many of us were beginning to see the potential of this platform and were convinced that a platform like this is in fact the ideal solution for putting on-board vision on many small autonomous vehicles.

The existing FPGA board had several weaknesses. For example, it was far too large for many vehicles already in use at BYU. It was also very power hungry and used the slowest Virtex-II FPGA available. It was clear that a new FPGA board was needed. After a search of the available FPGA development boards, none was found that met the needs of the target application.

It was decided early in 2005 that we would develop our own very small, low-power, FPGA development board that would allow us to put on-board vision on a wide range of the small autonomous vehicles in use at BYU. The significant work already done with the existing robot platform was a tremendous help in developing the specification for the new board.

One of the features that would be essential for the board was its independence from the cameras and devices to which it would be connected. In other words, the board could not be designed for a specific camera model or sensors. Instead, all platform dependent hardware would be connected via one or more daughter boards. This would allow us to use the same board for a wide variety of autonomous vehicles and other applications.

The board was developed over the spring and summer terms of 2005. Construction of the first prototype was delayed by the availability of Xilinx's new Virtex-4 FX FPGAs. The first prototype was obtained in early November 2005. We were very happy to discover after significant testing that the board worked extremely well and only minor changes would need to be made for the final version.

The resulting board was named Helios after the Greek god of the sun who had the power to give vision and to take it away.

Robot Racers Senior Project - Winter 2006

The first significant use for Helios was in the new Robot Racers senior project. In this senior project, for undergraduate seniors, students designed a robot based on a small model R/C truck that would navigate a complex race track using only on-board vision. Various obstacles would be placed on the course, including cones, jumps, and hairpin turns. The vehicles were required to operate completely autonomously, with no kind of external processing or feedback.

We were all pleasantly surprised with the results. These undergraduate students, with only limited digital design, image processing, and artificial intelligence experience were able to design complete robotic systems that could navigate the course at speeds much greater than anybody expected. It is powerful evidence that Helios is a very capable platform, truly giving vision to autonomous vehicles. See the video below to view a portion of the competition.


CLICK FOR VIDEO: Team HRAM
[image]


For more information on this and other senior projects in the department, visit the senior projects home page.

Maintained by The ECEn Web Team. Based on v. 3.8 of the ECEn web templates (view XML, live XML, see other formats).
Copyright © 1994-2005. Brigham Young University. All Rights Reserved.