PhaseSpace ground truth system

Introduction

The phase space system provides XYZ for LEDs within the capture region, and also provide 6DOF pose estimation for rigid bodies with LEDs mounted on them.

Documentation

The PhaseSpace documentation can be found at file:///u/phasespace/docs/PSImpulseOverview.html. Simply copy this link, and paste it into your browser.

Dataflow Overview

There are multiple things that will need to be started to get the system up and running, but here's a quick overview of the dataflow.

  1. The OWL Server

    • Box connected to the phase space hardware sitting on the ground next to the system.
    • IP: 10.0.0.24
    • Gets raw camera data and builds location on pose estimates
    • There is a http web app to configure the server:
    • login: admin pw: phasespace
  2. Master (Different from the ROS Master)

    • Application that you run on your machine that is the main interface to the owl server
    • Currently resides at /u/phasespace/phasespace4_0/master

    • Used to visualize data from OWL Server and to specify which points and rigid bodies we care about
    • The "Server Address" should be set to 10.0.0.24 before you can connect to the OWL server
    • To track a rigid body:
      • While the master is on 'play', select the markers that belong to the same rigid body, by using the center mouse button
      • Right click in the blank area on the left, and select 'rigid capture' from the popup menu.
      • Pause the master
      • Right click the rigid body that was created, and select 'edit' from the popup menu
      • Move the rigid frame to where ever you need it, and click 'apply'
      • Start the master again.
  3. Owl Slave / ROS Node

    • Package name: phase_space

    • phase_space_node is a OWL Client configured to be in SLAVE mode. Therefore, Master must be running to use phase_space_node

    • This node receives the data from the OWL Server which was requested by master, and bundles it all into a PhaseSpaceSnapshot ROS Message

  4. Client App - Using the data

    • Everyone wants to use the phase-space data in their own unique way, so you should create another node that repackages the PhaseSpace data into the specific form that you care about.

    • Examples can be found in the package pr2_phase_space

Installed Oct 3 2008

Vijay know everything there is to know about it. Ask him if you have questions.

Getting the system up and running

The master needs to be running. Note that there can be only one master connected to the OWL server at a time.

cd /u/phasespace/phasespace4_0
./master

Click the connect button in the top left. It should turn green in a few seconds, which implies that you are now getting live streaming data from the cameras.

Connecting To Ros

Once you've connected and started the phase_space master application. All you need to do is make and run the phase_space rosnode:

rosmake phase_space
rosrun phase_space phase_space_node

Once running, you should see marker and rigid body locations being displayed in the terminal window. This information is also being published on the topic phase_space_snapshot

Details

  • Server IP 10.0.0.24 (OWL server)

Issues With The System

  • Cameras 3 & 4 on Port 1 (Cameras against exterior wall) fail when left on for a couple hours. Often solved by rebooting.

  • Server timestamp not being recorded into the time struct. Is this an API bug?

Creating rigid models

  • >> cd /u/phasespace; cd latest_phase_space_dir;

  • >> ./rbcapture -s 10.0.0.24 -m 16 -o rigidobject.rb 48

    • The -m argument indicates the number of markers on your rigid body (in this case 12), and the last number is just the number of markers in the tracker (I have put 48 for the case when you are using the default profile and the LEDs could be on any of the strings). The rbcapture program will wait till it sees all 12 before writing the rb file, so you can spin/move the object while it is capturing so that it can get the full 12 in this example.

Wiki: PhaseSpace (last edited 2009-09-08 20:13:31 by SachinChitta)