Homework 3 is due on February 22. You are permitted to run the robotic experiments in teams of 2 - but you *must* write up the answers to the experiment's questions independently. MARC 359 is open from 9-5 M-Th and 9-4 Friday. There is a signup sheet posted outside the door. Make sure you reserve time in advance on the robots. The assignment is due on 2/22. If you wait to do the experiment until the last minute - you will not finish it. * Start today to avoid not completing it on time. * =============================================================================== CS 3361 Homework #3 - ROBOTICS ============================================================================= This lab should take THREE to FIVE hours and must be performed in MARC 359. PART A can be performed in approximately ONE hour; PART B can be performed in TWO to FOUR hours, depending upon familiarity with the RHINO XR-4, preparation BEFORE lab time and method of problem solving approach. There are copies of the Rhino manual in the lab. ============================================================================ PART A: RHINO XR-4 ROBOT ARM ORIENTATION ============================================================================ Introduction: The purpose of this assignment is for you to become familiar with the Rhino Robot arm and the use of the teach pendant. The Rhino XR-4 robot arm is a miniature version of the larger more complicated robots used in the manufacturing industry. The system consists of the arm, a controller, and a Sun Workstation. For this assignment, the Sun will not be used. You will use the teach pendant to move the robot arm and to teach the arm a simple program. Often in industry robots simply execute repetitive tasks. There is no need for high powered computers or artificial intelligence. Instead, the robot is taught simple motion programs via a "teach pendant." The Rhino's teach pendant is a small keyboard with an LCD display, connected to the controller with a short cable. ======= IMPORTANT SAFETY RULES ======= It is not unusual for robots to go out of control without warning. To protect you and the robot, be sure that there are no wires or obstructions within the robot's "reach." Also, make sure that YOU are outside the robot workspace. If the robot does go out of control, hit the red "stop" button in the upper right corner of the teach pendant repeatedly, or turn the controller off. BEFORE STARTING THE LAB read the MANUAL Section on using the Teach Pendant. ---------- EXERCISE 1: Familiarization With Motor Control ---------- Refer to the above MANUAL if you get stuck. Reset the Rhino's controller. (Turn the the gray box to which the arm is connected , then . 1. Press the following button sequence on the Teach Pendant; [CONFIG] [ENTER] This action should cause the arm to move to its "hard home" position. 2. Press the following button sequence on the Teach Pendant; [SET SOFT HOME] [ENTER] This action should tells the arm to remember this position as the "home" position. The Teach Pendant display should read "PLAY", which means that the robot is ready to receive motion commands. You can move each of its motors independently. To activate a motor, press any Teach Pendant button labeled [A], [B], ..., [F] to designate the motor; then press either the [UpArrow] or [DownArrow] button to indicate the "direction" of movement. Familiarize yourself with the use of each motor. It may be useful to think of the Rhino arm's movement in terms of human arm movement; consider the correlation between the two shown in the table below. RHINO HUMAN MOTOR ARM [UpArrow] [DownArrow] ----- ----- --------- ----------- [A-OPEN] "Grip-Open" NA NA [A-CLOSE] "Grip-Close" NA NA [B] "Hand-Rotate" Clkwise Ctr-Clkwise [C] "Wrist-Move" Out In [D] "Elbow-Move" Out In [E] "Shoulder-Move" Out In [F] "Shoulder-Rotate" Clkwise Ctr-Clkwise Note: refers to movement AWAY from the body (or chest) while refers to movement TOWARDS the body (or chest). Note that there are two buttons for gripper operation. When you want to operate the gripper, press the [ESCAPE] button to ensure you are out of any other motor "mode". Now have some fun. Experiment to see how each motor moves the robot. Use the robot to pick up an object and place it somewhere else. When you are done, press the following button sequence; [ESCAPE] [ESCAPE] [CONFIG] [ENTER] and the Rhino will return to the "Home" position that you asked it to remember earlier. ---------- Exercise 2: Programming the Rhino XR-4 ---------- Now you will teach the robot a simple movement program. 1. If the robot isn't "homed", press the following button sequence to do so. [ESCAPE] [ESCAPE] [CONFIG] [ENTER] 2. Press the following button sequence; [ESCAPE] [ESCAPE] [ERASE] [UpArrow] this action clears any program that may be in the controller's memory. (If your program is incorrect and unsalvageable, this is a sure-fire way to erase it and start over.) 3. Press the [EDIT] button. This puts the Rhino in program mode. 4. Enter the following small program; LINE COMMANDS COMMENTS ---- -------- -------- 000 [SET-SOFT-HOME][ENTER] Remember the "Home" position. 001 [UpArrow][ENTER] Hold [UpArrow] so "wrist" moves at least 90 degrees. 002 [GO-TO-SOFT-HOME][ENTER] Go back to "Home" position. Note that it is NOT necessary to type the line numbers; they appear automatically. 5. Run your program -- press the following button sequence. [ESCAPE] [ESCAPE] [RUN] Some programming rules: * Always begin your program with [SET-SOFT-HOME] and end with [GO-TO-SOFT-HOME] to give your program a set reference point. * Always press the [ENTER] at the end of a program step, otherwise the controller will not remember it. * Always be careful with the [ESCAPE] button during "EDIT" mode; this button ends the current mode. A habit of inadvertently switching modes can make this lab a frustrating and unpleasant experience. * Make a habit of noting your object positions (e. g., blocks) and your (move, coordinate) sequences associated with the actions of your robot arm; it will make iterative refinement of programs entered in the Teach pendant much easier. ============================================================================ PART B: RHINO XR-4 ROBOT ARM PROGRAMMING ============================================================================ For this assignment you will write a more complex program for the robot arm using the teach pendant. ---------- Exercise 3: Performance of Basic Tasks ---------- Look at the table where the robot is bolted. Your job is to write a program to pick up the block at position A and move it to position B, leaving the block in the same orientation (don't turn it). You must avoid hitting the center wall/obstacle in the process. !!! WARNING !!! Be careful that you don't drive the arm into the table top. If it does hit the table, immediately press the red [STOP] button on the upper right corner of the teach pendant. You may need to press it repeatedly (or turn the controller off) until the motors de-energize. Allowing the motors to press against the table will damage them and the robot. !!!!!!!!!!!!!!! Example layout: X X _ X |_| X ============================ <- table top pos A wall pos B Use the following objects for this exercise; * child's play block as the "block" to be moved. * mounted pedestal block as the "wall/obstacle" (or other suitable object, e.g., book on end). Answer the following questions. 1. Describe the process that you had to go through in order to successfully complete the program. Was any one part of the task more difficult than others? 2. Give two or three "real-life" examples in which this kind of robot programming/action is feasible. 3. How many moves were required to accomplish the task? Give listing of the moves that you programmed to accomplish this task. Could the number have been reduced? What is the minimum number of moves necessary? Why? ---------- Exercise 4: Linear and Non-linear Planning ---------- Goal-stack planning method typically attacks problems involving conjoined goals by solving the goals one at a time, in order. For example, suppose we have a blocks world problem/goal; - |C| - - |A| |B| - - =========== START: ON(C,A) ^ ONTABLE(A) ^ ONTABLE(B) ^ ARMEMPTY - |A| - |B| - |C| - =========== GOAL: ON(A,B) ^ ON(B,C) A goal-stack planning method thus attempts to solve ON(B,C) followed by ON(A,B). Unfortunately, solving the more attainable sub-goal first will not bring us much closer to our final goal! This example is called Sussman's anomaly and is a classic example of non-linear planning. Your programming assignment is to write a program for the Rhino that has the above START state and executes actions that attain the GOAL state. ANSWER THE FOLLOWING QUESTIONS: (Answering these prior to completing PART B, EX. #4 will help you determine a good strategy for completing the exercise.) 1. Give the action plan of the robot arm if Sussman's anomaly was attempted to be solved linearly. Give a current state description for each action executed. Describe any problems encountered. 2. Give the action plan for a non-linear solution of Sussman's anomaly. Describe how this plan differs from the linear approach and how it was able to overcome any problems encountered with the linear approach. Is there any heuristic information being used? If so, describe. 3. List all Rhino movements used to solve the Sussman anomaly. Use the following action descriptions to specify the actions that may be executed by the robot arm. ROBOT ACTIONS MEANING PRE-CONDITION POST-CONDITION ------- ------- ------------- -------------- STACK(X, Y) Place X on Y. HOLDING(X) ^ ON(X, Y) CLEAR(Y) UNSTACK(X, Y) Remove X from ON(X, Y) ^ ONTABLE(X) ^ Y. CLEAR(X) ^ CLEAR(Y) ARMEMPTY PICKUP(X) Grasp X. CLEAR(X) ^ HOLDING(X) ARMEMPTY PUTDOWN(X) Put down X. HOLDING(X) ARMEMPTY ^ ONTABLE(X) Use the following predicates to specify both the conditions under which an operation may be performed and the results of performing it. CONDITIONS MEANING ------- ------- ON(X, Y) X is on Y. ONTABLE(X) X is on the table. CLEAR(X) There is nothing on top of X. HOLDING(X) The robot arm is holding X. ARMEMPTY Nothing is being held. DON'T FORGET: * Plan to spend at least 3 to 5 one-hour lab sessions to complete the assignment. * Demo your program for the lab manager and have him/her acknowledge it on their sign-off sheet. ------------------------------------------------------------------------------ TURN IN: 1. Responses to all questions in Exercise #3. All responses should be type-written (e. g., word-processor). 2. Responses to all questions in Exercise #4. All responses should be type-written (e. g., word-processor). 3. Make sure the lab manager indicates on the sign-off sheet that you have demonstrated your program's successful operation! =============================================================================== -- --------------- Ronald C. Arkin College of Computing, Georgia Institute of Technology Atlanta, Georgia 30332-0280 Phone: (404)-894-8209 Fax: (404)-853-0957