CS148 Assignment Subsumption

From Brown University Robotics
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
<skin>modern</skin>
<skin>modern</skin>
==Introduction==
==Introduction==
-
\item Assignment 5 project demonstrations in class: Friday, December 4, 2009
+
 
-
\item Assignment 5 handin due: Friday, December 4, 2009 (10 pm)
+
[[File:robotsa.png|250px|right|Robots reacting to their environment.]]
-
\end{itemize}
+
 
 +
In this assignment, you will develop a ROS package for reactive robot soccer control using the [http://en.wikipedia.org/wiki/Subsumption_architecture Subsumption architecture].  You will evaluate your client through (graded) basic skills challenges such as navigating to specific locations and (ungraded) competition against other groups.
==Important Dates==
==Important Dates==
Line 13: Line 14:
Project reports due: Sunday, November 7, 2010 (5:00 pm)
Project reports due: Sunday, November 7, 2010 (5:00 pm)
-
[[File:robota.jpg|250px|right|Robots reacting to their environment.]]
+
A video of [http://www.youtube.com/user/lizajane999#p/u/4/ImJXfI4pB1k Lisa Miller's implementation of this assignment] from Spring Semester 2009.
-
A video of [http://www.youtube.com/user/lizajane999#p/u/21/dPhnKxf3twY Lisa Miller's implementation of this assignment] from Spring Semester 2009.  
+
A video of [http://www.youtube.com/watch?v=PQGSJjK9OLw Lisa Miller's competition controller] (by Nicholas and Odean) during Spring 2009 subsumption match play.
-
A video of [http://www.youtube.com/watch?v=ExvNokyzTk0 "Hefty's wicked spin"] (by Nicholas and Odean) during Fall 2007 path planning match play.
+
==Description==
 +
Your previous soccer-playing robots 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 scenarios <ref>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.</ref>.  However, estimation of such variables comes at the cost of requiring greater computation, latency in decision making, and overall price tag for the robot.
-
\noindent Your previous soccer-playing robots required some notion of state, such as robot pose, a map, ball location, etc., in order to functionState information, stored explicitly in variables, gave your controller a sense of context and immediate history about the robot's current situationRobot 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 benefitState variables allow our robots to adapt in the face of unexpected changes in the environment and new scenarios\footnote{Learning aims to provide a greater level of adaptability such that the robot has long-term context and history towards learning from experienceIt could roughly be thought of as never making the same mistake twice.}.  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 market <ref>Because we are in Rhode Island, let's say you are making a robot for Hasbro.</ref>Such a robot should not cost too much money to purchase, on the order of the $150 Roomba Red or $200 Nintendo WiiFurther, every additional component added to the robot, such as memory, processing, sensing, and actuators, increasingly cuts into your profit marginIn such scenarios, reliance upon state variables costs you money<ref>"Money" in this case can be generalized to "cost" that limits practical implementationSo, even if you are not fiscally motivated, such costs limit your ability realizing your technical designs.</ref>, thus you might be inclined to minimize the number of these variables.
-
Consider the case where you want to commercialize a soccer playing robot for a mass market\footnote{Because we are in Rhode Island, let's say you are making a robot for Hasbro.}Such a robot should not cost too much money to purchase, on the order of the \$150 Roomba Red or \$250 Nintendo Wii.  Further, every additional component added to the robot, such as memory, processing, sensing, and actuators, increasingly cuts into your profit marginIn such scenarios, reliance upon state variables costs you money\footnote{``Money'' in this case can be generalized to ``cost'' that limits practical implementationSo, even if you are not fiscally motivated, such costs limit your ability realizing your technical visions.}, 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 timeIn contrast to the deliberate intentionality of planning, reactive approaches rely upon [http://en.wikipedia.org/wiki/Emergent_behavior emergent behavior] where the "intelligence" of the robot results from its decision making, the properties of the environment, and the dynamics of controller-environment interactionThe [http://en.wikipedia.org/wiki/Subsumption_architecture Subsumption Architecture] is one approach to reactive control that uses multiple robot controllers with a priority schemeIn 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.
-
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 {\bf 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.
+
==Subsumption Control Objectives==
-
\section{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:
-
In the current assignment, 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 the information provided in the {\bf current time instant} by Player's bumper, infrared (IR), and blobfinding proxies.  Timers, odometry, and variables that require history are not allowed in your client.  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
-
\begin{enumerate}
+
* determine and implement a priority scheme to coordinate the behaviors
-
\item determine and implement an appropriate set of control behaviors for soccer
+
-
\item apply appropriate preconditions for each control behavior
+
-
\item determine and implement a priority scheme to coordinate the behaviors
+
-
\end{enumerate}
+
[[File:virtual_wall.jpg|250px|right|An iRobot Virtual Wall device emits an IR signal that can be received by the Create base and included in the irobot_create_2_1 SensorPacket.]]
[[File:virtual_wall.jpg|250px|right|An iRobot Virtual Wall device emits an IR signal that can be received by the Create base and included in the irobot_create_2_1 SensorPacket.]]
-
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 14.5 x 10 x 10 cm pink rectangular tubes placed on top of the robot.  We will definitely call player pushing penalties for this assignment!
+
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 14.5 x 10 x 10 cm pink rectangular fiducials placed on top of the robot.  '''We will definitely call player pushing penalties for this assignment!'''
-
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 have access to the SmURV'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.
+
!!! describe field layout (goals and 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.
[[File:field1a.jpg|250px|right|Snapshot of the ``FC 148'' robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).]]
[[File:field1a.jpg|250px|right|Snapshot of the ``FC 148'' robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).]]
 +
[[File:field3a.jpg|250px|right|Snapshot of the ``FC 148'' robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).]]
[[File:field2.jpg|250px|right|Snapshot of the ``FC 148'' robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).]]
[[File:field2.jpg|250px|right|Snapshot of the ``FC 148'' robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).]]
-
[[File:field3.jpg|250px|right|Snapshot of the ``FC 148'' robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).]]
 
 +
<!--
\subsection{Sensing a Virtual Wall}
\subsection{Sensing a Virtual Wall}
To sense a virtual wall using libplayerc++, create an IR proxy object\footnote{See \url{http://playerstage.sourceforge.net/doc/Player-cvs/player/classPlayerCc_1_1IrProxy.html} for C++ clients} in your robot client.  The state of the IR can be accessed through the boolean flag ``wall hit'' by calling the function GetRange(5); the 5 indicates the index of the virtual wall sensor.
To sense a virtual wall using libplayerc++, create an IR proxy object\footnote{See \url{http://playerstage.sourceforge.net/doc/Player-cvs/player/classPlayerCc_1_1IrProxy.html} for C++ clients} in your robot client.  The state of the IR can be accessed through the boolean flag ``wall hit'' by calling the function GetRange(5); the 5 indicates the index of the virtual wall sensor.
Line 62: Line 64:
)
)
\end{verbatim}
\end{verbatim}
 +
-->
\subsection{Behaviors and Prioritization}
\subsection{Behaviors and Prioritization}
Line 69: Line 72:
\section{Soccer Skills Challenges and Competition}
\section{Soccer Skills Challenges and Competition}
-
The goal scoring challenges and inter-group soccer competition from Assignment 3 (Path Planning) will be used for this competition in addition to a modified navigation challenge.  The navigation challenge will have the same format as Assignment 3 except that obstacles will be pink fiducials and the field boundaries will be given by the physical and virtual walls. Both the Goal Scoring and Collision-free Navigation tasks must be completed within 120 seconds.
+
The [http://brown-robotics.org/index.php?title=CS148_Assignment_Path_Planning#Skills_Challenges_2 goal scoring challenge] and [http://brown-robotics.org/index.php?title=CS148_Assignment_Path_Planning#Inter-group_Soccer_Competition inter-group soccer competition] from the Path Planning project will be used for this competition.  The navigation challenge will have the same format as Assignment 3 except that obstacles will be pink fiducials and the field boundaries will be enforced by the physical and virtual walls. Both the Goal Scoring and Collision-free Navigation tasks must be completed within 120 seconds.
 +
 
 +
===subsumption Package Development===
 +
 
 +
Your group should create a subsumption package that includes a node (<tt>soccer_subsumption</tt>) that subscribes to your robot's sensing from the Create base (via irobot_create_2_1), cmvision blobfinder, and ar_recog tag recognition and outputs cmd_vel topics for moving the Create base.  You are allowed to use any information provided by these subscriptions.  However, absolutely no information or variables can be stored and maintained in your controller, it can only react to the current sensing information.  soccer_subsumption should use a ros_param to specify subsumption order.
 +
 
 +
Your group is free to use additional nodes for performing subsumption and/or having controllers specific to each challenge.
 +
 
 +
===Experiments, Reporting, and Submission===
 +
 
 +
You are expected to conduct least 3 trials with 4 different initial conditions for both your subsumption_soccer node (24 trials total).  For each trial, measure the properties mentioned for each challenge.  All of your trials must use the same controller without modification.
 +
 
 +
Document your controller and experimental results in a written report based on the structure described in the [http://brown-robotics.org/index.php?title=CS148_Missive#Project_Report_Format course missive]. You are welcome to experiment with additional techniques and evaluate the relative performance of each. When completed, your report should be committed to the object_seeking/docs/username directory of your repository.
-
\section{Grading}
+
==Grading==
-
Note: The soccer competitions will be held during class and the preceding hour (12-2pm).  The TAs will announce available demo times, at which point you can choose one of those or (less preferably) schedule another time.
+
Your grade for this assignment will be determined by equal weighting of your group's implementation (50%) and your individual written report (50%).  The weighted breakdown of grading factors for this assignment are as follows:
-
Your grade for Assignment 5 will be determined by equal weighting of your group's implementation (50\%) and your individual written report (50\%). The weighted breakdown of grading factors for this assignment are as follows:
+
Note: Demonstrations of your challenges should occur by scheduling an appointment with a TA.  Soccer competitions will be held during class and the preceding hour (12-2pm).  
\vspace{1cm}
\vspace{1cm}

Revision as of 18:59, 23 October 2010

Contents

Introduction

Robots reacting to their environment.

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

Important Dates

Assigned: Sunday, October 24, 2010

Inter-group soccer competition: Friday, November 5, 2010

Project reports due: Sunday, November 7, 2010 (5:00 pm)

A video of Lisa Miller's implementation of this assignment from Spring Semester 2009.

A video of Lisa Miller's competition controller (by Nicholas and Odean) during Spring 2009 subsumption match play.

Description

Your previous soccer-playing robots 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 scenarios <ref>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.</ref>. 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 market <ref>Because we are in Rhode Island, let's say you are making a robot for Hasbro.</ref>. 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 money<ref>"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.</ref>, 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.

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
An iRobot Virtual Wall device emits an IR signal that can be received by the Create base and included in the irobot_create_2_1 SensorPacket.

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 14.5 x 10 x 10 cm pink rectangular fiducials placed on top of the robot. We will definitely call player pushing penalties for this assignment!

!!! describe field layout (goals and 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.

Snapshot of the ``FC 148 robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).
Snapshot of the ``FC 148 robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).
Snapshot of the ``FC 148 robot soccer field surrounded by virtual infrared (roughly marked in red) and real walls.  Your robot should properly react to both types of obstacles and other robots (with pink fiducials).


\subsection{Behaviors and Prioritization}

You will be asked to demonstrate (either through a demo or in your report) 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.

\section{Soccer Skills Challenges and Competition}

The goal scoring challenge and inter-group soccer competition from the Path Planning project will be used for this competition. The navigation challenge will have the same format as Assignment 3 except that obstacles will be pink fiducials and the field boundaries will be enforced by the physical and virtual walls. Both the Goal Scoring and Collision-free Navigation tasks must be completed within 120 seconds.

subsumption Package Development

Your group should create a subsumption package that includes a node (soccer_subsumption) that subscribes to your robot's sensing from the Create base (via irobot_create_2_1), cmvision blobfinder, and ar_recog tag recognition and outputs cmd_vel topics for moving the Create base. You are allowed to use any information provided by these subscriptions. However, absolutely no information or variables can be stored and maintained in your controller, it can only react to the current sensing information. soccer_subsumption should use a ros_param to specify subsumption order.

Your group is free to use additional nodes for performing subsumption and/or having controllers specific to each challenge.

Experiments, Reporting, and Submission

You are expected to conduct least 3 trials with 4 different initial conditions for both your subsumption_soccer node (24 trials total). For each trial, measure the properties mentioned for each challenge. All of your trials must use the same controller without modification.

Document your controller and experimental results in a written report based on the structure described in the course missive. You are welcome to experiment with additional techniques and evaluate the relative performance of each. When completed, your report should be committed to the object_seeking/docs/username directory of your repository.

Grading

Your grade for this assignment will be determined by equal weighting of your group's implementation (50%) and your individual written report (50%). The weighted breakdown of grading factors for this assignment are as follows:

Note: Demonstrations of your challenges should occur by scheduling an appointment with a TA. Soccer competitions will be held during class and the preceding hour (12-2pm).

\vspace{1cm} \begin{tabular}{|l|l||l|l|} \hline {\large \bf Project Implementation} & \\ \hline \hline - Individual Behaviors & 15\% \\ $\rightarrow$ Does each of your behaviors properly function? & \\ $\rightarrow$ Is each of your behaviors completely reactive, without state variables? & \\ $\rightarrow$ Do your control behaviors allow for modularity and transparent reprioritization? & \\ \hline - Behavior Choices & 15\% \\ $\rightarrow$ Do you have a sufficient set of behaviors for playing soccer? & \\ $\rightarrow$ Does your robot respect the environment (field of play) and avoid pushing other players? & \\ $\rightarrow$ Can your robot manipulate the ball and score goals? & \\ \hline - Subsumption Priority & 10\% \\ $\rightarrow$ Does your robot properly prioritize its individual control behaviors? & \\ $\rightarrow$ Does each of your behaviors have appropriate preconditions to allow for coordination? & \\ \hline - Soccer Proficiency & 5\% \\ $\rightarrow$ How well does your robot player soccer in the given environment? & \\ \hline - Controller Robustness & 5\% \\ $\rightarrow$ Does your controller run without interruption? & \\ \hline %\vspace{0.1cm} \\ \hline {\large \bf Written Report} & \\ \hline \hline - Introduction and Problem Statement & 7\% \\ $\rightarrow$ What is your problem? & \\ $\rightarrow$ Why is it interesting? & \\ \hline - Approach and Methods & 15\% \\ $\rightarrow$ What is your approach to the problem? & \\ $\rightarrow$ How did you implement your approach and algorithms? & \\ $\rightarrow$ Could someone reproduce your algorithms? & \\ \hline - Experiments and Results & 20\% \\ $\rightarrow$ How did you validate your methods? & \\ $\rightarrow$ Describe your variables, controls, specific tests, and results from these test. & \\ $\rightarrow$ Could someone reproduce your results? & \\ \hline - Conclusion and Discussion & 8\% \\ $\rightarrow$ What conclusions can be reached about your problem and approach? & \\ $\rightarrow$ What are the strengths of your approach? & \\ $\rightarrow$ What are the shortcomings of your approach? & \\ \hline \end{tabular}

Personal tools