Difference between revisions of "Homework1W14"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Application (100 Points))
Line 24: Line 24:
 
* You need to develop a strategy to convert body motion flight commands.
 
* You need to develop a strategy to convert body motion flight commands.
 
* You will need to be able to fly your avatar around by changing its position and at least heading (pitch and roll are optional).  
 
* You will need to be able to fly your avatar around by changing its position and at least heading (pitch and roll are optional).  
 +
* There needs to be a way to change the velocity of the flight.
 
* The camera should provide a third person view. You need to render the user's avatar with at least head, torso, arms and legs using simple shapes such as cylinders ((<tt>osg::Cylinder</tt>).
 
* The camera should provide a third person view. You need to render the user's avatar with at least head, torso, arms and legs using simple shapes such as cylinders ((<tt>osg::Cylinder</tt>).
 
* You will need to show a small top-down map of the campus somewhere on the screen, with an indicator for where the user is (e.g., a red sphere, or a cone pointing in the direction the user is moving). This can be done by rendering the entire campus in screen space at a small size with a camera pointing down.
 
* You will need to show a small top-down map of the campus somewhere on the screen, with an indicator for where the user is (e.g., a red sphere, or a cone pointing in the direction the user is moving). This can be done by rendering the entire campus in screen space at a small size with a camera pointing down.

Revision as of 20:37, 9 January 2014

Contents

Homework Assignment 1: Flying around the campus with the Kinect

For this assignment you can obtain 100 points, plus up to 10 points for optional work.

The goal of this assignment is to create an application which uses exclusively the Microsoft Kinect for user interaction.

Microsoft Kinect

Every team is going to get to borrow a Kinect for Windows from the instructor until the end of the quarter. The Kinects can be picked up in the instructor's office at Atkinson Hall, room 2125. You can come either during office hours on Tuesday from 3:30-4:30pm, or at any other time. If the instructor is not in the office but the door is open, please sign one of the borrowing agreements and leave it on the desk, then take a Kinect from a box behind the door.

The Kinect drivers and SDK should already be installed on the lab machines in room 260, but only on the even-numbered PCs. For your home computer, you can find the SDK on Microsoft's Website.

Grading

On or before the due date, you will need to demonstrate your application to instructor, TA or tutor with a Kinect in CSE lab 260 on a lab computer or your own laptop.

Application (100 Points)

The goal is to create an interactive application which allows the user to fly from the Bear to the top of EBU1 and then to the Price Center's courtyard. This 3D model of the campus provides the scenery. You are not allowed to use any user input other than from the Kinect (i.e., no keyboard or mouse input once the application started).

Your application needs to have the following features:

  • You will need to use the Kinect driver's skeleton extraction functionality to find the positions of the user's limbs.
  • You need to develop a strategy to convert body motion flight commands.
  • You will need to be able to fly your avatar around by changing its position and at least heading (pitch and roll are optional).
  • There needs to be a way to change the velocity of the flight.
  • The camera should provide a third person view. You need to render the user's avatar with at least head, torso, arms and legs using simple shapes such as cylinders ((osg::Cylinder).
  • You will need to show a small top-down map of the campus somewhere on the screen, with an indicator for where the user is (e.g., a red sphere, or a cone pointing in the direction the user is moving). This can be done by rendering the entire campus in screen space at a small size with a camera pointing down.
  • The software needs to detect when the user arrives at EBU1 and at the Price Center and it needs to indicate this to the user. This can be done by using a proximity threshold from known points at these buildings.
  • You will need to measure the time it takes from when the user starts flying until they land at the Price Center, and display it somewhere on the screen. Who will get the fastest time?

Tips:

  • At the beginning of the application you should have a calibration function which registers a neutral position for the user. This will be needed to parse the navigation gestures more accurately.
  • You don't need to check for collisions with other buildings, i.e., the user can fly through other buildings or the ground as if they were not there.
  • If you're adventurous you can use Quaternions (osg::Quat) to control the avatar's orientation. This will avoid problems with gimbal lock.

Extra Credit (10 Points)

You can achieve 10 points of extra credit if you display the RGB image the Kinect sees in a corner of the screen and mirror it so that it looks like a mirror image of the user (5 points).

Superimposed on this image you will need to display the skeleton the Kinect driver extracts (5 points).

Useful Links