-
Notifications
You must be signed in to change notification settings - Fork 1
Installing Wallframe
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
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 theopenni-camera
package which may overwrite things. In that case, you will need to install your NITE (however you did it) again.
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
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
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
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
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