[meteor_slideshow slideshow=”adssa” metadata=”height: 126, width: 630″]
Key Skills to be Assessed
C/C++ programming for real-time graphics
Application of a structured OO framework for graphics applications
Critical Evaluation of tools used
The Assessment Task
This assignment is divided into a programming section (80%) and a written report (20%).
For the programming tasks you should use your course materials as a foundation of your knowledge. You should also refer to the OSG website (http://www.openscenegraph.org) for both documentation and sample source code that is indicative of the approaches needed for your application. This assignment cannot be completed without using this resource.
You should modify the raaRobotController project to achieve the following goals, described as functionality that should be visible in either the 3D graphics window, or the console window for the application.
- Print out a list of all the nodes in the loaded Scene Graph to the console window. This should happen once, at the start of the application after the scene description file has been loaded. Each node should be presented on a single line that describes the node’s class name, library and object name (if existing). Lines should be indented to reflect the depth of the node within the scene graph structure.
- Develop a mechanism to allow you to control the motion of each joint within the robotic arm through the use of keyboard presses, with a single key controlling each joint and modifier keys used to adjust modes of operation. Each joint should operate while a specific key is held down and stop its action when the key is released. All motion should be relative to the original orientation of the arm part and limited to the following ranges (defined relative to the start orientation/position (angles in degrees, linear measure in metres) and axis
a. Body: Rotation(‘z’ axis, max rotation 40.0, min rotation -40)
b. Upper arm: Rotation(‘y’ axis, max rotation 45.0, min rotation -10.0), Extension/Contraction(‘x’ axis,max extension 1.0, min extension -1.0)
c. Lower arm: Rotation(‘y’ axis, max rotation 10.0, min rotation -50.0) , Extension/Contraction(‘x’ axis,max extension 1.0, min extension -1.0)
d. Hand: ‘y’ axis, max rotation 30.0, min rotation -30.0
(10 Marks: Design and implementation of approach for finding key nodes)
(5 Marks: Design and implementation of mechanism for capture and transportation of key presses)
(10 Marks: Design and implementation of mechanism for effecting rotation)
(5 Marks: Design and implementation of mechanism for effecting rotation)
(5 Marks: design and implementation of mechanism for applying motion constraints)
(Total for section: 35 marks)
Modify the scene graph structure of the robotic arm to enable visual highlighting of the part under control. While the part is moving it should be highlighted, reverting to normal lit and shaded polygons when rotation stops.
- Add a simple collision detection mechanism operating between the robot arm’s hand and the 3 objects on one of the tables. This should display the collision as a modification to the table object that causes it to be rendered in wireframe mode when in collision with the hand. Simple bounding box collision is adequate for this.
- Extended functionality. Enable the hand to grab a table object (when under collision) and move the object to a new position within the environment through the operation of the key presses controlling the robot arm’s movement. When released, by the hand, objects should remain in their final position and orientation defined relative to the world origin. Ideally these objects should remain collide-able and grab-able by the robotic hand.
Written Section: Prepare a short report (guide: 4 pages/2000 words). This should review the approach taken in developing this simple robot visual simulation application and critically evaluate the approaches from both a system design and technical implementation perspective. In particular, it should discuss:
- The approaches taken for manipulation of the scene graph structure prior to rendering taking place. This should explain, with the aid of OO type diagrams, how the scene graph is structured, in key sections, and how the modifications are made. This section of the report should critically evaluate the approaches used, and comment on issues such as robustness, generality, and accepted standards such as Design Patterns.
- The mechanisms by which user interaction (mouse & keyboard) are translated to animation of the robot form during the rendering cycle. This should include an explanation of the logic mechanism by which events are captured and relayed to key nodes within the scene graph. Where appropriate this should be supported with annotated (and explained) diagrams, and should include a critical evaluation of the process.
This work should NOT contain any source code (more than 5 lines of source code will mean this section of the assignment been rewarded with a 0 mark), but may contain diagrams and charts provided they are accompanied by a detailed description within the text of the report.
The OSG website (www.openscenegraph.org) will be invaluable in helping you to complete this assignment. Key areas within this site are the reference documentation and the example programmes
The task description (above) includes the distribution of marks for each component of the task.
Your work should be submitted through the backboard system, by the submission data. This should include a zip file of the Visual Studio solution space (directory structure) including a running executable of your application, and a word document for your report.
[meteor_slideshow slideshow=”best” metadata=”height: 126, width: 630″]