Joseph Boman's Robot: TrashBot

About me

I am a freshman studying Computer Science with a specialization in Video Game Design at USC

I currently live in Birnkrant on floor 6, and originally am from San Diego, California

My hobbies include reading, playing video, board and card games, and hanging out with friends

About my robot

TrashBot is a Scribbler 2, capable of speeds up to 50km/month

It can turn upon a plate, and execute a variety of other commands

Also, it is a pacifist, but occasionally kills small insects with its wheels

My Robot

My Robot

Final Project


1. My group is trying to teach the students about control structures. Specifically, I am trying to teach and demonstrate switch statements.

2. My program will engage the user because it is the robot. Users will be interested in the robot and its movements, and will want to experiment.

3. My human-computer interface involves the robot, and as such, human interaction with it will involve the users shining lights into the various light sensors or moving their hand in front of the obstacle sensors.

4. I will evaluate the interface based on how many children come to use it. The more that use the robot, the more successful I will rate the interface.

5. I will evaluate the user's interaction based on whether or not they enjoy it. If more users enjoy the interaction than do not, then it will be a success.

6. It will collect information from what sensors the user triggers and which ones they trigger more than others. Also, I will input whether they enjoyed it or not.

7. The evaluation data will be the form of three documents. The first will contain each user's individual statistics. The second will contain the total and average statistics. And the third will contain whether the program was successful or not.

My Group

Andrew Yocca

Fangli Hou

Kristen McNeal

The Code!

Homework 4, Alien Search


1. My algorithm will search vertically across the picture, finding the start and end points of each alien. Then it will look between those points horizontally to find the height of the alien.

2. My alien class has height and width, and area will be returned by height times width.

3. I noticed that a vertical search would be best, since it would seperate all the aliens. Then I figured out a way that I'd be able to differentiate from the aliens.

4. I started with all of them, and noticed quite a few bugs. The majority of them were simple typos, however, one was due to a color mistake in my RGB values.

5. To sort the aliens by size, I used a selection sort based on the area that the aliens were.

6. To sort the aliens by position, I subtracted the total height of the picture from their bottom value, and then sorted via selection sort from that.

7. I used selection sort, so the Big O was n^2.

The Code!

Homework 3, USAR


1. Our strategy is to each travel in a seperate direction, in order to get as many robots as possible. The general algorithm will be to take a picture, look for any scribblers, move towards them if any are seen, or move in a pre-set direction if there aren't any. The camera will be the primary sensor for this.

2. For moving through the disaster area, the main function is just the robot.motors function, to allow it to move. The obstacle and ir sensors will determine if it is too close to any obstacles, while the light sensor will determine if there is something above the robot.

3. The behavior for locating lost scribblers involves looking at pictures taken by the robot and finding scribblers by seeing them. Once a scribbler is seen, the robot will move over to it, and take its picture.

4. Our main mapping strategy involves each of us going different ways, and using the pictures to get a general idea of the layout of the room. The closer up pictures of the scribblers will be cross-referenced with the zoomed out pictures to determine exactly where the scribblers are.

My Group

Me, Joseph Boman

Shane Mileham

Kunal Shah

Zach Vega-Perkins

The Code!

Homework 2, Robot Games


1. The Opening Ceremony uses an input statement to give the robot different commands. Based on that, it moves. When x is pressed, it ends the manual input phase. It then plays the Fight song.

2. The Line Following, after getting a user input to determine speed, uses the line sensors to follow a line. If one sensor moves off the line, the robot rotates to find the line. Once the robot detects light with the light sensors, it stops.

3. The Maze Solving, after getting a user input for sensativity and turn time, uses the obstacle sensors to detect walls and turn. If it detects a second wall after it turns, it does a U-turn and keeps going. When it detects light, it stops.

4. The Drawing function, after checking for obstacles with the IR sensors, moves and turns to draw the shape of the triangles provided by the teacher. It doesn't go over lines more than once, and is incredibly fast.

5. The program will not initiate if the battery is too low. Once it initiates, it will ask for user input to select from a menu. Then it will execute whatever function is selected before returning to the menu.

Group Members

I did the Opening Ceremony part of the program

Mike Ciesielka Mike did the Line Following section of the program

Cherys Fair Cherys did the Drawing section of the program

Mathew Schacher Mathew did the Maze Solving section of the program

The Code

Homework 1, Robots Got Talent


1. My song will be Pirates of the Caribbean's theme song. This song will be triggered by the completion of the surprise ability. I will use the switch algorithm to represent each frequency of musical note with a number, which I will then use in the robot.beep function in order to produce the song.

2. My drawing will be the five vowels in the alphabet. I will trigger this upon the completion of the song. I will use the move functions in order to create the letters, after giving the human time to place a pen into the pen slot of the robot. Furthermore, I will use the rand function in order to randomize which letter the robot chooses to draw first.

3. My surprise will be the robot making its way through a pre-drawn maze. I will use the getLine command in order to detect 'walls' and follow the correct path. Also, the getLight sensor will be used in conjunction with a flashlight to allow the robot to identify when it has completed the maze. Finally, robot.motors will allow the robot to move through the maze, while turning and finding its way.

4. I will order the performance as follows: the robot will start at the entrance to the maze. Assuming that the battery is high enough, the robot will enter, using the line sensors to find its way through the maze, and the light sensor to know when it has completed the maze. Once it exits the maze, the robot will play the Pirates of the Caribbean theme song. When that is finished, it will proceed to randomly select one vowel to start with, and then draw all the other vowels. After drawing the vowels, the program will terminate. If at any time the robot gets too close to an obstacle, whether in front or behind it, the robot will cease all activity and disconnect.

The Final Performance

If video is just a green screen when play is pressed, click on the timeline at any point to make the actual video play. This is an error of unknown origin, most likely due to a transfer error from iTouch to Youtube.

My Code

Lab 2: Fibonacci Sequence

Our robot was able to draw the Fibonacci Spiral

In order to do this, we used trial and error to determine good speeds and times for drawing various quarter circles, and from that determined a ratio between the speeds and times needed. We then used that to create a program that drew the spiral.

The Code

Fibonacci Spiral

Group Members

Shane Mileham

Kunal Shah

Zach Vega-Perkins

Lab 1

Valid XHTML 1.0 Transitional!Valid CSS!

The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees