Skip to content

Installing Wallframe

Kel Guerin edited this page Oct 23, 2013 · 16 revisions

Below are some (hopefully) simple instructions on how to set up Wallframe on your system. The rest of this tutorial assumes that you already have a machine with several monitors hooked up to create one large desktop, using Xinerama. If not, read this

Assumptions

The following tutorial assumes that you have or have done the following:

  • You are running Ubuntu 12.04 or later
  • You have installed ROS Fuerte or later, and have gone through the ROS tutorials here. Wallframe still uses rosbuild, I have not ported it to catkin yet
  • You have installed OpenNI and Nite, and can run the Nite sample-players example and see yourself in the Kinect. (Later in the installation we install the openni-camera package which may overwrite things. In that case, you will need to install your NITE (however you did it) again.

Other Dependencies

You also need the following:

  • Python 2.8.4 here is how to install it.
  • PyQt and PyGL if you want to use the Python examples in wallframe_apps
  • Qt
  • OpenSceneGraph if you want to use the 3D c++ examples in wallframe_apps

Set up your work environment

Start by creating a working directory and cd into it. (If you already have a ROS workspace or overlay, you can create in there)

mkdir wallframe_workspace && cd wallframe_workspace

Get the source

To use Wallframe, you will need the wallframe package as well as wallframe_apps package

git clone [email protected]:futureneer/wallframe.git 
git clone [email protected]:futureneer/wallframe_apps.git

Set up Wallframe in your ROS package path

We need to add Wallframe to our ROS package path. If put wallframe_workspace in your ros workspace, you can use the following command to add it to your workspace (press y(es) when prompted):

roscd && rosws set wallframe_workspace

Otherwise, you will need a line in your .bashrc file that looks like this:

export ROS_PACKAGE_PATH=/home/your_user_name/wallframe_workspace:$ROS_PACKAGE_PATH

Installing

First if you cannot roscd into wallframe_msg or any of the other packages, then chances are you did not resource your bashrc, or there are other problems with your ROS path.

You will need the ROS openni_camera package:

sudo apt-get install ros-groovy-openni-camera

This will install the debian packages for openni and NITE. Since we are interested in the skeleton tracking, NITE is really what we care about. As of right now, I have to install NITE-Bin-Dev-Linux-x64-v1.5.2.21 after installing openni-camera. There is probably a better way to do this, but the out of the box skeleton tracking with nite-dev does not seem to work for me. If it does for you (i.e. you can run the NITE sample applications like sample-players) then you will not need to do this.

Then cd to the wallframe_tracker folder and rosmake:

roscd wallframe_tracker && rosmake

This should also make wallframe_msgs.

You should now be able to run the wallframe tracker. In wallframe_tracker/launch/center_geometry.launch there is code to set the position of your kinect relative to the wall origin, ideally the center of your display wall.

roslaunch wallframe_tracker center_tracker.launch

You should see something like this:

process[tracker1-2]: started with pid [10330]
[ WARN] [1380228158.455203553]: WALLFRAME TRACKER: Broadcasting user data on: /wallframe/tracker/users/
process[tracker_center_transformation-3]: started with pid [10347]
process[tracker_center_tracker_trans-4]: started with pid [10359]
process[world_to_wall-5]: started with pid [10371]
1. Device on bus 001:06 is a SensorV2 (2ae) from PrimeSense (45e) with serial id '0000000000000000'
[ INFO] [1380228160.154282690]: Searching for device with index = 1

[ INFO] [1380228160.200611785]: Device #0, Vendor: PrimeSense, Name: SensorV2, Instance:

If you don't, or if you get a NITE message about cannot enumerate device or other errors, then something is wrong with your NITE install.

You should now be running center_tracker.launch. A call to rostopic list should produce the following:

~/$ rostopic list
/rosout
/rosout_agg
/tf
/wallframe/tracker/users
kel@malastare:~/dev/KINECT$ 

Now run:

roslaunch wallframe_user wallframe_user_manager.launch

and rostopic list again.

~/$ rostopic list
/rosout
/rosout_agg
/tf
/wallframe/events
/wallframe/info/debug
/wallframe/info/toast
/wallframe/tracker/users
/wallframe/users/events
/wallframe/users/state
kel@malastare:~/dev/KINECT$ 

If you see all of that, then things are working properly. You can rostopic echo one of the users topics and stand in front of the Kinect to see some output. The messages from both wallframe_tracker and wallframe_user_manager are described more completely here

Now we can build the rest of wallframe_core

roscd wallframe_core && rosmake

From here, there are several things you can do. To only get all of the Wallframe parameters set on the parameter server (so your apps can use them) run:

roslaunch wallframe_core wallframe_essential.launch

To run everything (the tracker, user manager,app manager, app menu, infobar) run

roslaunch wallframe_core wallframe_full.launch
Clone this wiki locally