Welcome to RATLab, the Robot Algorithm Testing Laboratory! These instructions will teach you all there is to know about operating the program. INTERFACE OVERVIEW The interface contains three views, selectable as tabs directly under the menu bar. Each of these views is divided into a black graphics screen and a gray panel with buttons, fields, and other controls. The menubar at the top of the frame is independent of the tabbed views, and it remains the same no matter which view you've selected. The "Scenario," "Robot Design," and "Worldspace Design" menus each correspond with the view of the same name. * * * * * SCENARIO VIEW The view labeled "Scenario" is the testing ground for motion planning problems. A problem is made up of a worldspace and one or more robots with start and goal positions. To run the solution of a motion planning problem, first load a worldspace using the worldspace chooser. Next, load one or more robots using the "Add..." button, and set their start and goal points. Finally, load an algorithm in the algorithm chooser, and hit "Solve" to watch the animation. Here is an explanation of each of the Scenario View components: Graphical Output: - The blue rectangular borders represent the outer walls of the worldspace, and the blue polygons are obstacles within it. - The X's on the screen are the start and goal points of the robots. Magenta X's represent start points, and cyan X's are goal points. - During the solution animation, robots are draw in green. Their paths taken so far are displayed as white lines, and their predicted paths are shown in red. On-Screen Controls: - The "Solve" button runs the loaded algorithm and starts the solution animation. Note that it is shaded and cannot be used unless a the problem contains a worldspace and robot(s) and an algorithm has been loaded. - The "Scenario" pulldown menu lists all scenario (.scn) files in the Scenarios/ directory. Select a desired scenario and click the "Load" button to load it. This will overwrite any worldspace or robots currently loaded in the laboratory. (Note: You can also use the "Scenario->Load Scenario..." menu item for this task.) - The "Worldspace" pulldown menu lists all worldspace (.wsp) files in the Worldspaces/ directory. Select one to load it into the current problem. (Note: You can also use the "Scenario->Load Worldspace..." menu item for this task.) - The "Algorithm" pulldown menu lists all class (.class) files in the Algorithms/ directory. Select one to load it for use with the current problem. (Note: You can also use the "Scenario->Load Algorithm..." menu item for this task.) - The "Add" button under the "Robots:" label allows you to load a robot to the current problem. The loaded robot will be added to the list of robots already in the problem. (Note: You can also use the "Scenario->Load Robot..." menu item for this task. - The "Remove" button under the "Robots:" label will remove the selected robot in the robot list from the problem. - The "Choose Start" button allows you to choose a new start position for the selected robot in the list at the right. After clicking "Choose Start," click in any empty (black) area of the graphics screen to set the new start position. This task can only be done if a robot is selected and a worldspace is loaded. (Note: This task can also be done by editing the "Start" entry for this robot in the robot list.) - The "Choose Goal" button is the same as the "Choose Start" button described above, except that it is used to choose a new goal position for the selected robot. (Note: This task can also be done by editing the "Goal" entry for this robot in the robot list.) - The robot list at the far right of the control panel shows the file name, start position, and end position of each robot currently in the problem. Start and end positions are represented as two integers and a real number separated by commas. These represent the X coordinate, Y coordinate, and orientation of each position. You can edit these values by double-clicking them. Animation Controls: During the solution animation, an animation toolbar appears at the bottom of the graphical display screen. - The pause/play button pauses and resumes the solution animation. - The stop button stops the animation and resets the problem. - The "curve magnitude" slider adjusts the amount of smoothing to be applied to the answer paths. By default, smoothing is disabled (the slider is positioned at the far left). Menu Items: - The "Scenario->Clear All" item clears the worldspace and robots out of the current problem. - The Animation Options in the Scenario menu affect the solution of the problem. See below for individual descriptions: - The "Scenario->Apply Automatic Orientations" item generates orientation values within the robots' paths to make them face the direction of their movement at all times. - The "Scenario->Draw Algorithm Upon Solve" item displays extra graphical output about the algorithm's workings during the solve animation. Note that some algorithms do not have extra output to display. - The "Scenario->Apply Minkowsky Transformation" item causes the algorithm to treat the robot as a polygon rather than a point when solving. Note that this only works for single-robot problems. - The "Scenario->Draw Predicted Answer Paths" item displays each robots' red predicted path during the solve animation. It is enabled by default. * * * * * ROBOT DESIGN VIEW The Robot Design View is a simple workshop for robot creation. To make a new robot, click the "Draw Robot" button. Use mouse clicks to draw a polygon shape around the white center point dot. When you are finished, click "Robot Done." You can now save the robot using the Robot Design menu or put it into the current problem in the Scenario View by hitting the "Add To Scenario" button. Here is an explanation of each of the Robot Design View components: Graphical Output: - A completed robot is displayed as a green polygon. - An incomplete robot (one that is still being drawn) is displayed as a red polygon. - The white dot in the center of the screen is the center point of the robot. On-Screen Controls: - The "Draw Robot" button clears the current robot from the design view and allows you to draw a new one. Use mouse clicks to draw a polygon-shaped robot on the screen. When you are finished, click "Robot Done." - The "Add to Scenario" button adds a copy of this robot to the robot list in the Scenario View, adding it to the current problem. Note that the robot in the Robot Design View remains independent of the copy in the Scenario View; further editing in the Robot Design View will not affect the contents of the Scenario View. - The "Clear" button removes the current robot from the Robot Design View. (Note: The "Robot Design->Clear Design Robot" menu item also does this task.) Menu Items: - The "Robot Design->Load Robot..." item loads a robot into the Robot Design view. - The "Robot Design->Save Design Robot As..." item saves the robot currently in the Robot Design View to a file. * * * * * WORLDSPACE DESIGN VIEW The Worldspace Design View is a workshop for creating or editing worldspaces. If you wish to edit an existing worldspace, use the "Worldspace Design->Load Worldspace..." menu item to load it into the Worldspace Design View. To add an obstacle to a blank or existing worldspace, click the "Draw New Obstacle" button. Draw a polygon on the screen by clicking the mouse. When the obstacle is finished, click "Obstacle Done." To edit existing obstacles, click on them in the obstacle table at the center of the control panel. The selected obstacle will turn light blue, and a white dot will appear on the selected vertex. You may double-click on a vertex to edit its coordinates. You may use the "Insert Vertex" and "Remove Vertex" buttons to add or remove points from an existing obstacle. The "Add Obstacle" and "Remove Obstacle" buttons allow you to manipulate the obstacles in the list. You can edit an obstacle's movement information using the "Movement Period" field and the "Path" list. An obstacle's period is the number of frames it takes to move from one point in its path to the next. The path is the path of points that it follows as it moves. When an obstacle reaches the end of its path, it cycles back to the beginning and resumes movement. Note that path coordinates are expressed relative to the obstacle's initial position, which is recorded as (0,0). Use the "Insert" and "Remove" buttons to manipulate points in the movement path. Graphical Output: - The blue rectangle and polygons represent the boundaries and obstacles of the current worldspace. - An obstacle depicted in light blue is the currently selected obstacle in the Obstacle table. If a vertex is selected, it is displayed as a small white circle. - When the "Path" table is selected, the movement path of the currently selected obstacle is displayed as a series of white lines. If a vertex of the movement path is selected, it is displayed as a white circle. On-Screen Controls: - The "Draw New Obstacle" button allows you to draw a new obstacle by clicking on the screen. - The "Add to Scenario" button replaces the worldspace in the Scenario View with the current worldspace in the Design View. Note that the worldspace added to the Scenario View is an independent copy of the one in the Worldspace Design View, and further editing in the Worldspace Design View will not automatically be applied to the worldspace in the Scenario View. - The "Clear" button removes the current worldspace from the Worldspace Design View. (Note: The "Worldspace Design->Clear Design Worldspace" menu item also does this task.) - The "Worldspace Dimensions" spinners display the current worldspace's dimensions. They can be edited to change these values. - The Obstacles table at the center of the control panel displays all of the obstacles in the worldspace and the coordinates of each of their vertices. These coordinates can be edited by double-clicking. - The "Add Obstacle" and "Remove Obstacle" buttons allow you to manipulate the obstacles in the Obstacle table. - The "Insert Vertex" and "Remove Vertex" buttons can be used to manipulate the shape of a selected obstacle in the Obstacle table. - The "Movement Period" spinner displays the period of the obstacle currently selected in the Obstacle table. This value can be edited. (An obstacle movement period is the number of frames an obstacle takes to travel from one point to the next in its movement path.) - The "Path" table shows the movement path of the currently selected obstacle in the Obstacle table. Double-clicking on a vertex's coordinates in the table allows editing of these values (except for the first vertex, which is always set to (0,0). - The "Insert" and "Remove" buttons next to the "Path" table allow you to manipulate the number of vertices in the movement path. Menu Items: - The "Worldspace Design->Load Worldspace" item loads a worldspace from a file, replacing the current worldspace in the Worldspace Design View. - The "Worldspace->Save Design Worldspace As..." item saves the current worldspace to a file.