hrl_hardware_drivers: force_torque | hrl_hokuyo | hrl_segway_omni | hrl_tilting_hokuyo | pan_tilt_robotis | phantom_omni | robotis | zenither
Package Summary
ROS Node for Sensable Phantom Omni devices.
- Author: Hai Nguyen, Marc Killpack, Chi-Hung King, Advisor: Prof. Charlie Kemp, Lab: Healthcare Robotics Lab at Georgia Tech
- License: new BSD
- Repository: gt-ros-pkg
- Source: svn http://gt-ros-pkg.googlecode.com/svn/trunk/hrl/hrl_hardware_drivers/phantom_omni
Contents
Requirements
- Phantom Omni device.
OpenHaptics SDK (download here)
Running
Installing the OpenHaptics SDK
Place the downloaded SDK into the phantom_omni package:
mv OpenHapticsAE_Linux_v3_0.zip `rospack find phantom_omni`/
Launch the provided installation script:
roscd phantom_omni ./install_open_haptics.sh
Compiling and Starting
Make and run the omni node with:
rosmake phantom_omni rosrun phantom_omni omni
Troubleshooting
Drift: the Omni's pose will drift from time to time, to correct for this restart the node with the stylus outside the calibration well, then place the stylus in when prompted.
Device not found errors
- This can happen if your Omni is not paired with your computer fix by running /usr/sbin/PHANToMConfiguration again.
- You might not have access to /dev/raw1394 to fix execute set_permissions_1394.sh.
Using more than one device on one Linux machine: currently, the Linux Omni driver is restricted to operating on only one device at a time. To use two devices (i.e. for controller a humanoid robot), you will need two different machines. It's a good thing that ROS is around : )
ROS API
omni
In the below, replace OMNI_NAME with the appropriate value set for the parameter ~omni_name (defaults to omni1)Subscribed Topics
OMNI_NAME_force_feedback (geometry_msgs/Wrench)- A wrench in the OMNI_NAME_sensable frame to play back on the Omni.
Published Topics
tf (tf/tfMessage)- OMNI_NAME_link0, OMNI_NAME_link6, and OMNI_NAME_sensable
- State of the Phantom Omni's buttons.
- A static point representing the tip of the Omni end-effector. Note that this point is being published in the frame defined by link6 so a TF will be needed to get the end-effector pose wrt to link0.
Parameters
~omni_name (string, default: omni1)- Name for this omni device.






