Strict Standards: Declaration of action_plugin_safefnrecode::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/brownrob/public_html/cs148/lib/plugins/safefnrecode/action.php on line 14

Strict Standards: Declaration of action_plugin_popularity::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/brownrob/public_html/cs148/lib/plugins/popularity/action.php on line 57

Warning: Cannot modify header information - headers already sent by (output started at /home/brownrob/public_html/cs148/lib/plugins/safefnrecode/action.php:14) in /home/brownrob/public_html/cs148/inc/auth.php on line 352

Warning: Cannot modify header information - headers already sent by (output started at /home/brownrob/public_html/cs148/lib/plugins/safefnrecode/action.php:14) in /home/brownrob/public_html/cs148/inc/actions.php on line 180
subsumption – Introduction to Autonomous Robotics
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

CS 148 Project 6: Subsumption


In this assignment, you will develop a ROS package for reactive robot soccer control using the Subsumption architecture. You will evaluate your client through basic skills challenges such as navigating to a ball and competition against other groups.

Videos of Lisa Miller's subsumption implementation from Spring Semester 2009 for goal scoring, collision-free navigation, and playing robot soccer competitively:

The Adobe Flash Plugin is needed to display this content.

The Adobe Flash Plugin is needed to display this content.

The Adobe Flash Plugin is needed to display this content.

Important Dates

Assigned: Friday, November 11, 2011
Due : Wednesday, November 30, 2011 at 12:55pm
Inter-group soccer competition: Wednesday, November 30, 2011


Your previous robot controllers required some notion of state, such as robot pose, a map, ball location, etc., in order to function. State information, stored explicitly in variables, gave your controller a sense of context and immediate history about the robot's current situation. Robot decision making at any moment in time is informed by state information in order to deliberate and plan into the future or take immediate action towards some future benefit. State variables allow our robots to adapt in the face of unexpected changes in the environment and new scenarios1). However, estimation of such variables comes at the cost of requiring greater computation, latency in decision making, and overall price tag for the robot.

Consider the case where you want to commercialize a soccer playing robot for a mass market2). Such a robot should not cost too much money to purchase, on the order of the $150 Roomba Red or $200 Nintendo Wii. Further, every additional component added to the robot, such as memory, processing, sensing, and actuators, increasingly cuts into your profit margin. In such scenarios, reliance upon state variables costs you money3), thus you might be inclined to minimize the number of these variables.

Using reactive control, your robot controller in this assignment will rely upon no state variables and simply react to what is sensed at the current instance of time. In contrast to the deliberate intentionality of planning, reactive approaches rely upon emergent behavior where the “intelligence” of the robot results from its decision making, the properties of the environment, and the dynamics of controller-environment interaction. The Subsumption Architecture is one approach to reactive control that uses multiple robot controllers with a priority scheme. In particular, each robot controller is capable of independently producing some robot behavior (such as wandering or obstacle avoidance) given certain applicability conditions (or preconditions) are met (such as whether an obstacle is present). When their preconditions are met, higher priority controllers “subsume” lower priority controllers, whose decisions are then ignored.

Assignment Instruction


Your task for this project is to implement a reactive control system for playing robot soccer. The navigation component of the project involves:

  • Avoid all obstacles perceived visually (pink fiducials, and other robots marked with the same color pink)
  • React to physical obstacles (physically objects, IR-based virtual walls)
  • Search and approach to a ball

For goal scoring and competition, your controller will also need to:

  • Distinguish between own goal and opponent goal
  • Kick or dribble a ball into a goal

Note: The inter-group soccer competition is just for fun! The result of competition won't effect your grade. Below are snapshots of robots from previous years and the balls we are using with the Turtlebot this year.

brown-robotics.org_images_thumb_2_29_field2.jpg_250px-field2.jpg brown-robotics.org_wp_wp-content_uploads_balls-e1320943371451.jpg

Subsumption Control Objectives

You will implement a robot soccer controller that uses only the robot's on-board immediate sensing and perception. Specifically, you are only allowed to use sensing information provided in the current time instant by the robot's bumper, infrared (IR), blobfinding, and AR tag recognition. Timers, odometry, and variables that require history are not allowed in your controller. Timing-based operations in the Create Open Interface also cannot be used by your client. With this information, you are tasked with implementing a Subsumption architecture. Towards this end, you must:

  • Determine and implement an appropriate set of control behaviors for soccer
  • Apply appropriate preconditions for each control behavior
  • Determine and implement a priority scheme to coordinate the behaviors

Your robot will need to stay within the general field of play as given by the physical walls of the Roomba Lab and virtual walls placed around the pitch.

Additionally, your robot should make reasonable attempts to avoid collisions with other robots, which will be marked with pink fiducial coloring wrapped around the lower segment of the robot base.

We will definitely call player pushing penalties for this assignment!

The rear of goals on the FC 148 field will be marked with some combination of solid color rectangles (either green or orange) and AR tags.

Virtual walls (pictured to the right) are devices that emit infrared (IR) light that can be received by the iRobot Create and Roomba platforms. The distribution of space covered by the emitted IR forms a beam that can extend up to 8 feet. These beams form an invisible barrier around the field that your robot should respect. Your control client will ave access to the Creates's IR sensing through the IR proxy. Note that the width of the virtual wall's beam also increases as its length increases, creating a cone-shaped area from the IR wall. It is best to set the range slider to the middle option: 4-7 feet. However, if you find the width of the beam emitted from the IR wall is interfering with your robot too much, the 0-3 feet range may be more appropriate.

brown-robotics.org_images_thumb_9_9d_virtual_wall.jpg_250px-virtual_wall.jpg brown-robotics.org_images_thumb_4_4c_field1a.jpg_250px-field1a.jpg brown-robotics.org_images_thumb_8_88_field3a.jpg_250px-field3a.jpg

Behaviors and Prioritization

You will be asked to demonstrate that each control behavior functions independently and properly. In addition, your independent behaviors will need to function together (without code modification) using a subsumption priority for coordination. You will also be asked to randomly (based on the opinion of the course staff) reprioritize your behaviors to evaluate emergent behavior properties.

Submission, Skills Challenges, and Competition

For this assignment, you need to submit two different branches. subsumption_nav_[Your Team] is for collision-free navigation and subsumption_soccer_[Your Team] is for inter-group soccer competition.

The code will be tested against five trials with two different environments for both the Navigation and Goal Scoring challenges (described below). Your controller must have an 80% success rate over all trials, where the robot is able to avoid all obstacles and reach to a ball.

Skills Challenges

As stated above, your grade will be determined primarily on your robot's performance in the skills challenges and reported results from challenge trials. There are two skills challenges that will be used to test the functionality of your robot controller:

  • Collision-free Navigation: The navigation challenge involves driving the robot from an arbitrary starting location to a ball while avoiding objects on the floor and the field boundary. During this challenge, the robot must complete the task within 120 seconds. The outcome of a single navigation challenge trial is the time remaining at completion of the task, number of collisions, and time spent in collision.
  • Goal Scoring: The goal scoring challenge requires your controller to drive your robot (starting from some arbitrary pose) to the ball (at some arbitrary position) and push the ball into the goal. During this challenge, the robot and the ball must stay in-bounds at all times and complete the task within 120 seconds. The outcome of a single scoring challenge trial is the time remaining at completion of the task, where an outcome of zero indicates time has elapsed and the robot went out of bounds.

These two are sample collision-free navigation test set

brown-robotics.org_wp_wp-content_uploads_setup2.jpg brown-robotics.org_wp_wp-content_uploads_photo.jpg

Inter-group Soccer Competition

Your robot will be expected to compete in an in-class robot soccer competition on November 28th. Games in this competition will consist of one 7 minute period. You will be expected to play at least 2 games in a round robin schedule. This schedule will be provided the day before the competition. Do not be late for your games as this will delay the remainder of the competition schedule. Failure to participate in the competition will result in a “No-check” for the assignment.

At the beginning of the game after the scoring of a goal, an offensive robot begins play kicking the ball from the center of the field. The kickoff defender must start in their half until the offensive robot strikes the ball. This start could be done manually through starting or keying an event to your robot client. Afterward, no set roles are assigned to the robots. Make sure your controller can be set to defend either goal using rosparam with the cs148_team parameter.

The main play penalty is directly pushing an opposing player. When such a penalty is assessed, your robot will be taken off the field for 5 seconds and put on their 148 logo when returning. If your robot leaves the field and does not return within 3 seconds, it will be set on the “148” logo on the side of the field it is defending with a 5 second penalty assessed.

Note: Development for all groups freezes at the start of match play. Modifications to your package cannot be made during the competition, although modification to rosparams and launch files can be made. Matches will not be delayed for groups that are not ready the time schedule for their match.


  • Robots will be wrapped in pink fiducial color. We'll put the laptops on top of the turtlebots and affix them with industrial-strength velcro. (We'll affix the velcro over a layer of tape so that it's easy to remove after the assignment is over.)
  • The goal markers have been raised and the color swatch greatly heightened. (The width is the same.) You should be able to see them from pretty much anywhere on the field now, and you should be able to see AR tags when you're fairly close.
  • There will _not_ be green over orange and orange over green fiducials. We will only use pink ones.
1) Learning aims to provide a greater level of adaptability such that the robot has long-term context and history towards learning from experience. It could roughly be thought of as never making the same mistake twice.
2) Because we are in Rhode Island, let's say you are making a robot for Hasbro.
3) “Money” in this case can be generalized to “cost” that limits practical implementation. So, even if you are not fiscally motivated, such costs limit your ability realizing your technical designs.
subsumption.txt · Last modified: 2011/11/21 14:18 by brian
Trace: subsumption
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution 3.0 Unported Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0