The Robot Olympics: A competition for Tribot s and their humans

Similar documents
Robot Olympics: Programming Robots to Perform Tasks in the Real World

Pre-Activity Quiz. 2 feet forward in a straight line? 1. What is a design challenge? 2. How do you program a robot to move

Where C= circumference, π = 3.14, and D = diameter EV3 Distance. Developed by Joanna M. Skluzacek Wisconsin 4-H 2016 Page 1

Deriving Consistency from LEGOs

Your EdVenture into Robotics 10 Lesson plans

1-11. Mini Sumo Bot. Building Instructions. Fun Projects for your LEGO MINDSTORMS NXT! Home Projects Help Contacts. Building: Program:

Winter 2007/2008 Third Annual IEEE Lego Robot Competition Rules

IEEE PSU Student Chapter Robotics Competition 2014/2015

Developing Frogger Player Intelligence Using NEAT and a Score Driven Fitness Function

LEGO Mindstorms Class: Lesson 1

Western Kansas Lego Robotics Competition April 16, 2018 Fort Hays State University

An Introduction to Programming using the NXT Robot:

Toeing the Line Experiments with Line-following Algorithms

Pre-Activity Quiz. building a robot to fight another robot by trying to push it out of a ring? in the competition? the way when racing?

Robofest 2016 BottleSumo

Hare and Snail Challenges READY, GO!

A Day in the Life CTE Enrichment Grades 3-5 mblock Programs Using the Sensors

Introduction. robovitics club, VIT University, Vellore Robo-Sumo Event Details v1.2 Revised on Jan-30, 2012

C - Underground Exploration

Chapter 1. Robots and Programs

The light sensor, rotation sensor, and motors may all be monitored using the view function on the RCX.

Sample Pages. Classroom Activities for the Busy Teacher: NXT. 2 nd Edition. Classroom Activities for the Busy Teacher: NXT -

Sumo-bot Competition Rules

CSC C85 Embedded Systems Project # 1 Robot Localization

Mobile and web games Development

How Do You Make a Program Wait?

Filippo Venturi Rugby Photography Analysis

Mindstorms NXT. mindstorms.lego.com

As can be seen in the example pictures below showing over exposure (too much light) to under exposure (too little light):

understanding sensors

After Performance Report Of the Robot

Program Your Robot to Perform a Task

Robotic Systems Challenge 2013

Inventor: 2009 manuela&wiesl

Dungeon Cards. The Catacombs by Jamie Woodhead

Implement a Robot for the Trinity College Fire Fighting Robot Competition.

Roborodentia Robot: Tektronix. Sean Yap Advisor: John Seng California Polytechnic State University, San Luis Obispo June 8th, 2016

A - Debris on the Track

Design. BE 1200 Winter 2012 Quiz 6/7 Line Following Program Garan Marlatt

Robotics Contest Contact: Robin Schamber

VECTOR LAB: III) Mini Lab, use a ruler and graph paper to simulate a walking journey and answer the questions

Figure 1. Overall Picture

Chassis & Attachments 101. Part 1: Chassis Overview

Building Robots With Lego Mindstorms Nxt

Robotics Workshop. for Parents and Teachers. September 27, 2014 Wichita State University College of Engineering. Karen Reynolds

I like to call this robot a rover, as I tried to pattern it after NASA s designs. Figure 1-1 shows the general outline of the finished rover.

Agent-based/Robotics Programming Lab II

Lab book. Exploring Robotics (CORC3303)

DISCO DICING SAW SOP. April 2014 INTRODUCTION

2015 Maryland State 4-H LEGO Robotic Challenge

Lab 12: FollowBot. Christopher Agostino Lab Partner: MacCallum Robertson May 12, 2015

Testing of the FE Walking Robot

Chassis & Attachments 101. Chassis Overview

Instructors. Manual GEARED. After-School Robotics Program By Haley Hanson

CLASSIFICATION CONTROL WIDTH LENGTH

Parts of a Lego RCX Robot

CMS.608 / CMS.864 Game Design Spring 2008

What is Hebocon. What is Hebocon

WCRG 2011 Sumo Robots Rev 0. Sumo Rules. (Mini & Full Size Sumo & LEGO)

Robotics using Lego Mindstorms EV3 (Intermediate)

Activity Template. Subject Area(s): Science and Technology Activity Title: Header. Grade Level: 9-12 Time Required: Group Size:

Operation Manual My Custom Design

BUILDING A COMPETITION ROBOT SESHAN BROTHERS

Getting Started with Osmo Hot Wheels MindRacers. Updated

Instruction Manual. 1) Starting Amnesia

CMS.608 / CMS.864 Game Design Spring 2008

A - Debris on the Track

A - Debris on the Track

Introduction to Robotics Rubrics

Robot Programming Manual

Patterns of Building LEGO MINDSTORMS Robots

CMS.608 / CMS.864 Game Design Spring 2008

The Texas 4-H Roundup Robotics Challenge Invitational

AN HYBRID LOCOMOTION SERVICE ROBOT FOR INDOOR SCENARIOS 1

Fuzzy-Heuristic Robot Navigation in a Simulated Environment

GST BOCES. Regional Robotics Competition & Exhibition. May 29, :00 2:00. Wings of Eagles Discovery Center, Big Flats NY. Mission Mars Rover

MATERIALS PROVIDED BY SCIENCE & TECH FAIR STAFF AT EVENT:

Welcome to the Brain Games Chess Help File.

Re: ENSC 370 Project Gerbil Process Report

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. LEGO Bowling Workbook

Venture Analysis for Lego Mindstorms in the Educational Technology Market

PHYS 3153 Methods of Experimental Physics II O2. Applications of Interferometry

Tech Tutorials > H-Bridge

FLL Coaches Clinic Chassis and Attachments. Patrick R. Michaud

GRAFFITI + Robots as Artists

How to Take a Great Booth Picture by Larry Berman

Properties of two light sensors

Test Plan. Robot Soccer. ECEn Senior Project. Real Madrid. Daniel Gardner Warren Kemmerer Brandon Williams TJ Schramm Steven Deshazer

OCTAGON 5 IN 1 GAME SET

Appendix Course Notes MIT Course Organizers. Chapter 7: LEGO Design

Fracture Packaging Report

Basic NXT-G Programming

2.4 Sensorized robots

inchworm.txt Inchworm

2016 STEM Survival Competition. November 5, 2016 Hosted by: Wilkinson County Christian Academy

Final Report Metallocalizer

Reflection Teacher Notes

Welcome to. NXT Basics. Presenter: Wael Hajj Ali With assistance of: Ammar Shehadeh - Souhaib Alzanki - Samer Abuthaher

REEL BLADE / BED KNIFE ADJUSTING & SHARPENING

BASIC TRAINING SERIES: COLOR CODES. Grade K-2 Computer Science Robotics Beginner

Transcription:

The Robot Olympics: A Competition for Tribot s and their humans 1 The Robot Olympics: A competition for Tribot s and their humans Xinjian Mo Faculty of Computer Science Dalhousie University, Canada xmo@cs.dal.ca October 7, 2009 Abstract Katie Quinn Faculty of Computer Science Dalhousie University, Canada kquinn@cs.dal.ca This paper will illustrate three different tasks performed by a Lego Mindstorms NXT robot. The tasks are composed of a line-following program, a program designed to battle an opposing robot, and an object-seeking program. For each task a specific program was created by a group of two students. The group was responsible for thoroughly testing each of the three tasks. The purpose of the project is for the Tribot to complete each assignment promptly and efficiently. As an end result, each task was completed successfully with the exception of the object-seeking program. Introduction For our first project the Robot Olympics we were asked to design three different programs to accomplish three specific tasks using a Lego Mindstorms Tribot and the Mindstorms NXT program editing software 1. First, we were asked to write a program that enabled our Tribot to race along a track made from black electrical tape. The track could have many twists and turns and the robot s programming should prepare it for any sharp turns or zigzags it may encounter along the track. The second task was to prepare a program to wrestle another competitor s robot out of the ring. Two sumo wrestling robots are placed in a ring in opposite corners. The objective is to push the opposing Tribot out of the ring without going out of the ring itself. The third and final task was to have the Tribot search a specific area for two objects placed on the ground. The robot must stay within the boundaries of the search area and return to the place where he began the search. Each task presents its own unique set of problems, with each more difficult than the last. For example, the Long Line Race may seem simple upon first glance but there are many little programming issues that factor in to the overall performance of the robot completing the race. One of the major concerns while programming the robot for the race was to find a happy medium between staying on the track and running the race fast enough to beat the other competitors basically, it was an issue of speed versus efficiency. Furthermore, should the robot lose the line and go off the track, the program must compensate with a recovery program so the robot can return to the track and complete the race. In the Robot Sumo Wrestling challenge, the structural design of the robot presented a greater problem than the actual programming. The 1 Lego Mindstorms, LEGO.com MINSTORMS Overview, (http://mindstorms.lego.com/eng/overview/nxt_software.aspx), 2 October 2009.

The Robot Olympics: A Competition for Tribot s and their humans 2 programming was pretty straight forward: have the robot target his opponent and head for it with full force and hope to push it out of the ring before it can attack you. However, in the testing phase, it became apparent the robot has many structural weaknesses. In many cases, the robot was too light. If the robot weighed less than charging opponent, chances were the robot would be pushed over and be disqualified from the event. A sturdy frame had to be built in conjunction the programming. In the Scavenger Hunt event the robot s programming proved to be the most difficult task. Not only did the robot have to scour the entire ring looking for two objects without passing them by it also had to return to its point of origin after completing its task. The decision on how to program the robot s method of movement throughout the ring proved to be difficult, as each method seemed to have its own set of problems. A zigzag pattern seemed to be the most logical way to go but it proved to be a slow process as it would take extra time for the robot to stop, turn and start up again at the end of each sweep. A forward-stop-reverse motion was a faster approach but calculating the miniscule degree turns at the end of each sweep proved to be very tedious. Although each of the events have their own individual set of problems to be solved, they all share one similarity: sacrifice. Sacrifices had to be made, whether they were between programming for speed or efficiency, or building for structure or functionality. For the Long Line Race, we chose speed over recovery. The recovery plan we implemented was efficient but very slow. The recovery mode guides the robot back to the track but it takes time. For the Robot Sumo Wrestling program we chose to make the robot as structurally heavy as we possibly could. Not only does the weight give the robot more traction while pushing its opponent out of the ring, the weight also helps protect the robot from being pushed over when being attacked from the side. And last, for the Scavenger Hunt, we chose the vacuum method when decided how to program the robot s movement throughout the ring. The robot drives forward until it reaches the end of the ring, the backs up until it hits the other end of the ring. It continues to do so until it finds both objects. Background Many ideas and concepts that were used throughout this project were borrowed from previous tasks and assignments completed in CSCI-1106: Animated Computing. The foundation of our Tribot programming knowledge came from mini-projects done within this class. One of the fundamental programs we learned how to write and use was a basic line-following program, which we discovered in tutorial 3 2. This program taught us how to use the light sensor to tell the robot how to differentiate between a dark surface area and a light area. The basic line-follow program told the robot to move along a dark line until it hits a light spot. When it encounters an area of a certain brightness, the robot will stop moving. Later, we built onto this program and included a failure mode identification system and created a recovery program. The most important attribute that we took away from this program is how to create a recovery option. We 2 Connie Adsett, Alex Brodsky, Bonnie MacKay and Thomas Trappenberg, CSCI 1106 Animated Computing Course Notes, (Haliax: Dalhousie University Faculty of Computer Science, 2009), Tutorial 2, p. 1.

The Robot Olympics: A Competition for Tribot s and their humans 3 used the basic concepts from the Failure Mode Identification and Recovery section when programming our Tribot for the Long Line Race 3. The recovery option became one of the most important features in the Long Line Race program. Furthermore, in tutorial 3 we were able to perfect the values needed to differentiate between light and dark. Not only was the tutorial on the light sensor helpful with the line-follow program, the light sensors also proved very useful in the other two Olympic events for the project. In Robot Sumo Wrestling and the Scavenger Hunt, the light sensor is used to contain the Tribot within an enclosed space bordered by black electrical tape. Instead of the robot staying on the black line like in the line-follow program the robot stay within the lighter surface area and move away from the dark. When a Tribot encounters a black line, the program tells the robot to move away from the dark area and to move to a lighter area. Both tasks Robot Sumo Wrestling and Scavenger Hunt require the Tribot to stay within a contained area, or a ring. By slightly modifying the basic line-follow program, our group gained an invaluable tool used in two-thirds of our programs. The Robot Olympics Event I: The Long Line Race For the first event, we were asked to program our robot to race along a track, represented by a black line. The course is unknown to the competitors until the day of the race and it is said to have many twists and turns that the robot will need to navigate. The robot must have a recovery option in case it loses the line the robot must return to the line within 15cm of where it lost the line. We decided to model our program after the FollowReset program outline in tutorial 4 4. Essentially, the robot was programmed to go forward until it found a dark line. Once it found that dark line, the left and right wheels were set to alternate between incremental movements forward and backward. By having the left motor (port C) set to move forward at 75% power and backwards at 0% in conjunction with the right motor (port B) at 75% power, the robot will move forward by shuffling back and forth in rapid succession causing it to move forward at a steady pace. We found this to be an easier and faster method of movement than the previous move forward to find the dark line, stop, move forward to find the dark line, stop, method used in the FollowReset program. Our program ensures continuous motion which is important in a program based on finishing first. If the robot ventured off the line for more than two seconds, the program entered the recovery stage in order to guide the robot back to the line. In the recovery mode the robot was told if it had not found the line in 0.7 seconds it was to do a counter clockwise turn at 60% power until it found the black line again. Once it found the line, the programming exited recovery mode and continued on as normal. As for the structural decisions made for this task, we kept the robot as simple as possible. We removed all superfluous 3 Ibid, Tutorial 4, p. 3. 4 Ibid.

The Robot Olympics: A Competition for Tribot s and their humans 4 appendages that served no purpose during this task. Keeping the robot light was important because speed was an concern. Overall, the robot performed the task in a quick and efficient manner, only leaving the track once or twice during the trial runs. Initially, we did encounter a problem when the robot was asked to complete a turn of less than 90 degrees. We found that the angle was too sharp for the robot to turn on its own and it would often lose the line. To compensate for less than 90 degree angle turns we implemented a corrective measure by telling the robot to turn counter clockwise until if found the line again. However, this corrective measure caused another problem in itself. If the robot was making a less than 90 degree turn towards the left and it lost the line then the counter clockwise turn should eventually guide the robot back to the track. If the less than 90 degree turn was to the right, a counter clockwise turn would simply cause the robot to turn back the way it came from. The robot making a less than 90 degree turn to the left. The robot making a less than 90 degree turn from the right. This was only a minor issue, as the robot only left the track once or twice during the trials. We decided to leave the programming as it was. Event II: Robot Sumo Wrestling For the second event we were asked to create a program that would push an opponent s Tribot out of a ring demarcated by black electrical tape within the 60 second time limit before they could do the same to us. The robots had to stay within the ring and the basic structure of the robot (the base) could not be altered. Additional parts were permitted but the original structure of the Tribot had to remain intact. Because the robot had to remain inside the ring, we began with a basic light sensor program that told the robot to stay within the ring. If the robot encountered a black line, it would back up and make a right-hand turn in order to correct itself. Next, we focused the programming around the ultrasound and touch sensors. The Tribot drove in a straight line until it either touched its opponent or saw it. Once the robot s touch sensor was activated it would drive forward at 100% power. If the ultrasound sensor detected an object within 15cm it would drive forward at 100% power. If the robot happened to see nothing it would simply drive straight until it either encountered a black line and backed up or it ran into or saw another robot. Programming the robot to search out another robot was a simple task. We encountered very minor issues while creating the program. The real problems occurred structurally. We had to make sure our Tribot could withstand an attack from another robot and be strong enough to push an opponent from the ring. At first the robot was far too light and our shield in front was not solid enough to push something heavy. We tried several different structural designs. In one

The Robot Olympics: A Competition for Tribot s and their humans 5 attempt, we tried creating a sort of cage around the robot to protect from side attacks. This proved ineffective as other robots would get caught in the cage and drag our robot across the ring. In the end we realized simple was probably better. We created a solid block shield in the front with a fork-like structure that would scoop under the opponent s robot to provide some leverage and hopefully render the traction from their wheels, useless. There was also a problem with the robot s weight. Our Tribot was vulnerable to side attacks because the overall structure was too long and too light so we decided to make it more compact and much heavier. After we sorted out the issues with the robot s structure, the task proceeded smoothly. Our robot was no longer in danger of being pushed over from the side and it had little problems find its opponent in the ring. The only issue that remained was with the battery. Whichever robot s battery was closer to being fully charged stood a better chance in the ring. In almost all of our trial battles, the opponent s robot was set to charge forward at 100% power once it targeted another robot. That much power puts quite a drain on the battery and the robot with more juice almost always stood a better chance. Event III: The Scavenger Hunt For the third and final event we were asked to have our robots search an enclosed area, 2x2 meters, for two objects. The robot must stay within the search area and cannot be outside of the area for more than 10 seconds. The objects were placed within 30cm from the boundary. The Tribot has five minutes to locate both objects, make a noise signifying that it has found the objects and then return within 10cm of where it first began its journey. Similar to the Robot Sumo Wrestling task, we began with a simple light sensor program that kept the Tribot within the confines of the search area. Our overall approach to the scavenger hunt was to have the robot move throughout the search area in a vacuum sweep motion. The red lines represent the Tribot s forward motion. The blue lines represent the robot backing up. This way, there would be no time wasted by having the robot stop and turn every time it reached the edge of the search area, it would be moving continuously. Because the Tribot s starting point was on a diagonal, we had the robot begin with turning 45 degrees in order to be parallel with one side of the square. Next, we implemented the sweep pattern until the robot encountered an object. We used the touch sensors on both the front and back of the Tribot to detect objects. The reason we used a second sensor on the back is because our robot searches the area by advancing forward and backing up. The robot could easily pass by or run right into an object while it is backing up so we had to make sure there was a sensor on each end. With the robot moving

The Robot Olympics: A Competition for Tribot s and their humans 6 forward, once an object was detected the Tribot would make a noise, back up away from the object, inch forward slightly and make a left-hand turn around the object and continue its vacuum sweep pattern until another item was located. If the touch sensor was triggered from behind the robot would move forward after locating an object, backup slightly and make a backwards right-hand turn and continue on. Once the robot completed its task it was to return to the point of origin and make a noise. The Scavenger Hunt was by far the most difficult program to write for the Robot Olympics. The most challenging aspect by far was how to get the Tribot to return to the origin after finding both objects. Because of time constraints spending more time on the first two tasks we were unable to get our program to work properly. The intention was to have the robot locate the black line of the perimeter and follow it home to the origin but the robot almost always terminated its search in a different area so it was almost impossible to calculate how far it needed to travel to return to home. We also initially encountered a problem when deciding how to detect the objects. Initially, we decided on the ultrasound sensor for the front of the robot and the touch sensor for the back. However, the ultrasound sensor proved to be too unreliable to get an accurate and constant reading for detecting the objects. For example, we used the ultrasound s distance measuring device built into the robot to get a rough idea on measurements. Depending on the light in the room or the color of the object we were measuring the readings always came out differently. In the end we decided it was too unreliable and opted for the two touch sensors instead. Conclusion and Future Work Overall the project was a success with the exception of the Scavenger Hunt program. Although we were able to program the Tribot to seek out the two objects, we were unable to program the robot to return to its point of origin. The section of code used to guide the robot home or follow the black line home was an effective tool and most likely would have succeeded had we been able to determine how to stop the Tribot at the origin. The results for the Long Line Race and the Sumo Wrestling Robot were both positive. The Tribot was able to accomplish both tasks quickly and efficiently. However, in regards to the Sumo Wrestling Robot, it is our belief that the gold medal will go to whoever had the heaviest, fully charged robot in the ring the programming seems to matter less in this category. Brute forces trumps intelligence in this case. For future reference, we would have liked to have learned more about variables and the different situations they could be used it. There was not enough time to go over variables in great detail but we think they may have helped build bigger and better robot for the Robot Olympic competition, especially for the Scavenger Hunt task. References Adsett, Connie, Alex Brodsky, Bonnie MacKay and Thomas Trappenberg. CSCI 1106 Animated Computing Course Notes. (Haliax: Dalhousie University Faculty of Computer Science, 2009). Tutorial 2, p. 1.

The Robot Olympics: A Competition for Tribot s and their humans 7 Lego Mindstorms. LEGO.com MINSTORMS Overview. (http://mindstorms.lego.com/eng/overview/nxt_software.aspx). 2 October 2009.