CS 336 Homework 1 Assigned 2/17/06 Due in class 3/03/06 Part 0. Set up the simulator and framework environment. You may use your own computer or those located in the CS Undergraduate lab. To obtain an account on the lab's computers see here: http://www.cs.jhu.edu/services_faq.html 1. Read the overview on the homework tools here: http://cs336.webhop.org/overview.html 2. Follow the installation guide here: http://cs336.webhop.org/installation.html You can obtain the install files here: http://cs336.webhop.org/Downloads 3. Read the documentation for the Homework1 skeleton project here: http://cs336.webhop.org/SimpleRobot-doc.html You can obtain a zip file of the project here: http://cs336.webhop.org/Downloads Part 1. Implement tangent bug on the robot simulation system described in class. Your code should query the user for 3 arguments: 1. The goal position (x,y) location to achieve 2. The maximum distance of the range sensors 3. The nominal velocity of the robot; you are free to adjust the robot velocity if you wish. The the robot should "wakes up" at the origin and should run until the robot reaches the goal, or detect that the goal is unreachable. Since the robot is non-holonomic, it suffices to arrive within a small fixed distance to the goal. The three main functionalities you should develop are: 1. The ability to drive the robot in a specific direction toward a specific goal. For now, a simple heuristic is to always point the wheels in the direction you want to go; as noted above you will also want to come up with a rule for adjusting the speed as you near the goal. 2. Boundary following by computing the tangent to the boundary and moving in that direction 3. The bug algorithm using boundary following the goal-directed motion. You should submit the source code in a package that is easily compiled as well as a binary executable. Part 2. Do written questions 3.2, 3.17 and 3.21