1. The same task requirements apply for a vision-guided robot using the Link controller as for the CBC, but some functions have different names. Also, you may want to test performance with drive wheels commanded by ‘motor()’ rather than ‘mav()’, so that the nominal forward speed and proportional control feedback gain must be adjusted. Look at the content for “The Link Camera” , “Vision Assignment – Locating an Object” and “Link Controller Functions & Features” topics, then revise the code to run on the Link controller. How did you change the print statements in the initialization task? Were you able to improve the performance with the Link controller and camera?
2. Note that the ‘pom seeking’ loop in the code has a limiting condition of a maximum forward distance, and that the stop condition for the pom (y_loc) is tested in a branch that results in a ‘break’ command to exit the loop. Try putting the stop condition directly in the while loop and use the ‘if’ branch inside the loop to test for the maximum forward motion. Does that change the behavior? Is the behavior appropriate if the robot reaches the max distance?
3. Are there any other conditional tests that might be added to the loop to stop the vision guide? How would you add a sensor and behavior to identify an emergency exit to keep from running into another object, and just set a flag to stop the robot without trying to grab the pom?
4. Suppose your robot behavior tests suggest that the vision-guided control is limiting the forward speed and you want to move faster toward the pom, what could be changed to make the control more responsive?