Behavior-Based Robotics
Programming a robot to exhibit dog-like behavior

Duration
4 weeks

Skills
Java

Deliverables
Research paper
Presentation
Overview
As part of a Behavior-Based Robotics course, I worked to develop a robot capable of exhibiting specific dog-like behavior, namely the ability to initiate a game of fetch.

Process
After learning about a number of architectures used in behavior-based robotics, I started in a Java simulation environment using a hybrid deliberative/reactive architecture to implement behaviors such as finding a ball, finding a person, bringing the ball to the person, etc. From there I moved to the physical robot, which proved to be anything but straightforward.

Takeaways
Moving from simulation to a physical robot is a difficult process. Even the best simulation will require adjustments. In this case, due to limitations of the robot, such as unavailable sensors, the behavior had to be adjusted from the simulation.

Want to learn more? >>

Architecture
I chose to implement a hybrid deliberative/reactive architecture. At a high level, there is a specific goal: solicit a person to play a game of fetch. This high-level goal is comprised of intermediate goals, such as detecting a ball, finding a person, etc. These intermediate goals and their relationships are represented in the figure to the right. The reactive components of the architecture allow the robot to respond to unexpected events, such as the absence of a ball or a person, the presence of an uncooperative person (i.e. not picking up the ball), or an unforeseen obstacle. After implementing the architecture in simulation, the Pioneer-3AT was used as the physical platform. More information can be found in the final research paper.

Hide extra information >>