ROS node which is a client for Virtual Reality Peripheral Networks and publishes a TF frame and TransformStamped for tracked bodies. Tested with the Optitrak motion capture system from NaturalPoint.
- Author: Advait Jain, Chi-Hung King, Advisor: Prof. Charlie Kemp, Lab: Healthcare Robotics Lab at Georgia Tech
- License: New BSD
- Source: git https://code.google.com/p/gt-ros-pkg.hrl/ (branch: master)
There are a number of devices for which VRPN servers are available. See complete list on the VRPN website.
- Currently, this code only publishes the position and orientation of the tracked objects (Not the velocities, accelerations etc.)
- Some of the instructions below might be specific to the Tracking Tools software.
- Use the install_vrpn.sh scirpt in the package to download, compile, and install VRPN.
Please consult the VRPN website if your run into some trouble.
Running the code
- Run node from command line to track an object whose name is Trackable1:
$ rosrun ros_vrpn_client ros_vrpn_client __name:=Trackable1 _vrpn_server_ip:=192.168.2.110
- visualize in rviz:
$ roslaunch ros_vrpn_client demo.launch
- check rate at which object is being tracked:
$ rostopic hz /Trackable1/pose
- We can track objects at 100Hz.
TF coordinate frames
- world frame that we will use.
- X axis is along the x axis of the clibration pattern.
- Z axis is vertically up.
- Every tracked object has a coord frame whose TF name is the name of the ros node (given from the launch file or command line).
- Hitting "Reset To Current Orientation" in the Tracking Tools software (Trackable properties) aligns the object coord frame with the /optitrak frame.
- Run a new instance of this node for each tracked object.
The name of this node should be the same as the Trackable name published via VRPN, and will be the name of the TF coordinate frame for this object.