-
Notifications
You must be signed in to change notification settings - Fork 1
Wallframe Infrastructure
WallFrame consists of several component processes that work in tandem to provide a framework for application development. The over-arching idea is that for compelling applications on large scale displays, developers need to bring together many different functions and capabilities. Our goal is to compartmentalize these different functions into discrete processes, and then connect them together in a modular, flexible and extensible manner.
For an arbitrary display wall application, one could imagine needing the following capabilities:
- A graphics view-port that is shown seamlessly across tiled displays
- 2D and 3D graphical elements within the view-port
- Computational functions and methods to alter the graphical elements or provide other functionality
- Manage assets, images and data and make them available to an application
- Provide user interaction via natural motion, 3D tracking, peripheral input or voice, and interface this with applications
- If more than one application is to be made available to the user, one would also require a method to manage and select applications
Essentially, WallFrame is composed of a set of core functionalities, like user tracking, user management and gesture detection, , WallFrame Application plug into the WallFrame application manager and are accessible via the WallFrame App Menu. Other executables or programs in WallFrame will be referred to as nodes or modules
Below is a figure of what the different components are in Wallframe and how they fit together:
Lets talk about the individual components shown above:
* This is the interface to the middleware that talks to your tracker sensor (Kinect, Xtion) * Tracks users in the scene and publishes user position (joints) on the `/wallframe/tracker/users` topic * [More Information](Wallframe Tracker) * The user manager is where all of the magic happens for propagating user information to the rest of the WallFrame system. The information from `modulari_tracker` is fairly barebones, and also gives user position relative to the tracker device's coordinate system. * [More Information](Wallframe User)- Apps in Wallframe are executables that are launched by the Application Manager as sub processes. This means that the app manager "owns" them, and can terminate them, when switching to another app.
- Each app needs to be wrapped by a ROS launch file.
- If the author so chooses, the app can provide interfaces (such as callbacks, subscribers, etc.) to recieve the messages sent by the Wallframe user manager. This is easily accomplished if the author uses the provide base classes, described [here](Base Classes and Sample Apps)
Next: [ROS and Wallframe](ROS and Wallframe)