340 likes | 347 Views
This update discusses advancements in luggage modeling and visualization, including voxel creation, random numbers, automation, manual placement, and ongoing work with Viz-tek. It also explores the future work and user interface improvements.
E N D
Update on Luggage Modeling and Visualization Imaging, Robotics, & Intelligent Systems Laboratory University of Tennessee Chris Kammerud Spring 2004
Outline • Luggage Enhancements • Voxel Creation • Random Numbers • Automation • Manual Placement • Ongoing work with Viz-tek • Data Flow • Nodes • Added Behaviors • Future Work
Voxel Creation • Previously, the number of voxels created was either a default value or one provided by the user • In the current program, the size of voxels is based on the smallest item to be placed • By doing this, a balance is maintained by the loss in speed when dealing with smaller voxels, and having wasted space.
Creation Methodology • Once voxels are to be created, the dimensions of items are compared • Size = dim_item.x + dim_item.y + dim_item.z • Using the dimensions along each axis of the smallest item, voxels are created
Generation of Random Numbers • The random placement of objects is done by generating a random number between one and the total number of voxels • There are two cases, where the number generated by 3DS should be discarded • The number corresponds to a voxel already in use • Number already generated in the current item’s placement sequence and failed
K_random • The 3DS function does not generate a sequence of random numbers between a min and max, but generates a single number • Instead of using the native 3DS function directly, I wrote my own function making using of the native function
Function Contents • K_random( count, used_up() ) • Count is the number of voxels • Used_up is an array the with the same number of elements as there are voxels • A while loop continues calling the native random generator function until a number is created that hasn’t already been used
Automation of Script • The semester’s previous work had users push buttons that directly ran bits of code. This had to be altered for automation • The user interface’s buttons now call functions that run the previous code. This had to be done, because the script cannot push its own buttons, it can only call functions • A ‘makefile’ is used when running the script in an automated fashion
Makefile Format • Directory line to point the script to where the listed files are • Luggage line lists the filename of the luggage, the largest object in the scene is assumed to be the container • Item line then lists each item file name
Manual Placement • Additional interactivity was added to the code so that a user could select an item and place it manually at a voxel position • The procedure is not as simple as drag-and-drop since the script needs to know those voxels are in use • Instead, another method was used
Interface for Manual Placement • Two-step process • Voxel is selected as destination • Then item that the user wishes to move is selected
Timing • Several trials were run to get an average of the timing for automation • These trials were done with two makefiles, one with 12 items, the other with 3
3-Items • Time to load items : 18.5 s • Time to create voxels : 4.4 s • Time to place items : 0.28 s • Total time taken : 26 s
12-Items • Time to load items : 87 s • Time to create voxels : 4.5 s • Time to place items : 0.26 s • Total time taken : 94 s
3-D Viz-Tek System • Rear-projected screen • Two projectors are used to project a stereo image, One projector each for the right and left image • Stereo glasses are worn that allow only the appropriate image to reach the right or left eye www.viz-tek.com
Gloves • A right-hand and left-hand glove are provided with touch pads on the fingers and thumb • Information is sent to the system by touching the thumb to a finger • Possible interaction could be one hand used to cycle through objects, and orientate the view. • The other hand could be used to manipulate objects www.viz-tek.com
3D Under Vehicle • Work is also being done towards integrating Under Vehicle data into the 3D stereo system • Wrote code to convert raw data from Qian’s work last semester to VRML • Also plan on importing other previous work VRML Point File
Data Flow • Import models created from other 3D modeling tools such as 3D Studio Max, CAD tools, or maybe laser range data • Add behaviors to the models by dragging and dropping nodes • Visualize the models either in Eon studio or over the Internet
Nodes • Nodes allow behaviors to be added to models • This is done by dragging a node and placing it in the simulation tree • The node affects its parent
Navigating 3D Space • For example the Walk Node • It has been moved underneath the Camera • The walk node reacts to the mouse, and adds movement to its parent
Fields • Control Attributes of Object • This is how materials can be made transparent • Any model has an opacity field which can be lowered
Finding Models • Often, once a model is imported, it is not placed at the origin • This forces the user to ‘search’ for the object when the file is opened • But by changing the camera’s start values, it does not need to be searched for in subsequent openings
Connecting Nodes • Nodes can have their input and outputs connected to add more complex functionality • This is done in the routing window • Nodes that have been placed in the sim-tree can be dragged-and-dropped in this window
Using Pinch Glove • The pinch glove is used by dragging a pinch glove and gesture node into the simulation • The gesture node defines the finger combination • The gesture node is attached to rotate • When gesture is ‘true’, model rotates
Dragging with Mouse • Another functionality that can be created by connecting nodes, is dragging an object with the mouse
Image of Mouse Movement Luggage Moved Up Gun moved up
Future Work • Experiment with other placement algorithms for luggage simulation • Add useful behaviors to models imported into Eon Software • Collect more data from lab so that models from different research areas are all included
Questions • ?