Challenge 1

From GICLWiki
(Difference between revisions)
Jump to: navigation, search
m
 
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
 
[[Category:Roomba Design Lab (Winter 2007)]]
 
[[Category:Roomba Design Lab (Winter 2007)]]
Roomba Challenge #1 is a set of "cattle chutes", i.e. a maze with 1 path and no detours. The maze is 6ft by 12ft and requires the Roomba make several turns to reach the end. The maze can be "short cut" for a faster time via some measurements and sensing. The purpose of this challenge is to test your knowledge of Roomba programming basics. This includes setting up your programming environment, connecting Roomba to said environment, and showing mastery of some basic Roomba functions.
+
==Objective==
 
+
Roomba Challenge #1 is a set of "cattle chutes", i.e. a maze with 1 path and no detours. The maze is 6ft by 12ft and requires the Roomba to make several turns to reach the end. The maze can be "short cut" for a faster time via some measurements and sensing.
This maze can be completed with little understanding of more complex programming structures, but a little more work goes a long way.  
+
 
==Implementation Challenges==
 
==Implementation Challenges==
 
Though the first maze is relatively easy compared to the other two, setting up the environment will provide that extra bit of frustration that makes it on par with the other mazes. The challenges that you will will be exposed to in this first maze are as such (maybe more?):
 
Though the first maze is relatively easy compared to the other two, setting up the environment will provide that extra bit of frustration that makes it on par with the other mazes. The challenges that you will will be exposed to in this first maze are as such (maybe more?):
 
#Getting Roomba and your computer interacting
 
#Getting Roomba and your computer interacting
#Understanding how to communicate with Roomba via the Processing language, which is actually something like Java
+
#Understanding how to communicate with Roomba via your computer
 
#Developing an algorithm/solution to solve the maze
 
#Developing an algorithm/solution to solve the maze
 
#Implementing and testing the said algorithm
 
#Implementing and testing the said algorithm
 
#Compensating for the error introduced by controlling a physical entity through digital means
 
#Compensating for the error introduced by controlling a physical entity through digital means
While setting up and learning how to send Roomba commands is a pretty straightforward task (the only pitfalls will be troubleshooting sitations), the task of designing a solution for the maze is a much more involved process.  
+
While setting up and learning how to send Roomba commands is a pretty straightforward task (the only pitfalls will be troubleshooting sitations), the task of designing a solution for the maze is a much more involved process. There are many ways to implement the same behavior, but some ways work better with the rest of your code. This is just the first maze, so creating an elegant algorithm is not yet necessary, but come the third and even the second maze, you will have to make conscious decisions on what types of programming structures to use. The main concern here is the disparity between what your code does and how your Roomba acts. Your Roomba's strange behavior that deviates from what you perceive your algorithm to be can be attributed to external forces affecting the Roomba; this includes movement of the vehicle, friction, uncertainty in orientation, and, of course, human error. Programming and programming robots is different in this respect -- the environment is not ideal, the robot's shortcomings must be accounted for, and your code must compensate for the less than perfect conditions the surface while controlling a non-virtual entity.
 
+
<br>[[Image:Maze 1.png|Maze 1]]
 
+
#The path/world is explicit; you are doing manual path planning with complete information---how will you get the robot to follow the path you select?
+
#Could solve this without the use of sensors by:
+
##Dead reckoning
+
##Hard coding (bump-turn-bump-turn etc)
+
#Error will be introduced by the movement of the vehicle, friction, uncertainty in orientation and initial set upRoombaChallenge
+
 
+
 
+
 
+
 
<!--  
 
<!--  
 
Roomba Challenge #1 is a set of "cattle chutes", i.e. a maze with 1 path and no detours.  The maze is 6ft by 12ft and requires the Roomba make several turns to reach the end.  The maze can be "short cut" for a faster time via some measurements and sensing.
 
Roomba Challenge #1 is a set of "cattle chutes", i.e. a maze with 1 path and no detours.  The maze is 6ft by 12ft and requires the Roomba make several turns to reach the end.  The maze can be "short cut" for a faster time via some measurements and sensing.

Latest revision as of 19:21, 20 September 2007

Objective

Roomba Challenge #1 is a set of "cattle chutes", i.e. a maze with 1 path and no detours. The maze is 6ft by 12ft and requires the Roomba to make several turns to reach the end. The maze can be "short cut" for a faster time via some measurements and sensing.

Implementation Challenges

Though the first maze is relatively easy compared to the other two, setting up the environment will provide that extra bit of frustration that makes it on par with the other mazes. The challenges that you will will be exposed to in this first maze are as such (maybe more?):

  1. Getting Roomba and your computer interacting
  2. Understanding how to communicate with Roomba via your computer
  3. Developing an algorithm/solution to solve the maze
  4. Implementing and testing the said algorithm
  5. Compensating for the error introduced by controlling a physical entity through digital means

While setting up and learning how to send Roomba commands is a pretty straightforward task (the only pitfalls will be troubleshooting sitations), the task of designing a solution for the maze is a much more involved process. There are many ways to implement the same behavior, but some ways work better with the rest of your code. This is just the first maze, so creating an elegant algorithm is not yet necessary, but come the third and even the second maze, you will have to make conscious decisions on what types of programming structures to use. The main concern here is the disparity between what your code does and how your Roomba acts. Your Roomba's strange behavior that deviates from what you perceive your algorithm to be can be attributed to external forces affecting the Roomba; this includes movement of the vehicle, friction, uncertainty in orientation, and, of course, human error. Programming and programming robots is different in this respect -- the environment is not ideal, the robot's shortcomings must be accounted for, and your code must compensate for the less than perfect conditions the surface while controlling a non-virtual entity.
Maze 1

Personal tools