YARP
Yet Another Robot Platform

ovrheadset: Device that manages the Oculus Rift Headset. More...

#include <ovrheadset/OVRHeadset.h>

+ Inheritance diagram for yarp::dev::OVRHeadset:

Public Member Functions

 OVRHeadset ()
 
virtual ~OVRHeadset ()
 
virtual bool open (yarp::os::Searchable &cfg)
 Open the DeviceDriver. More...
 
virtual bool close ()
 Close the DeviceDriver. More...
 
virtual bool threadInit ()
 Initialization method. More...
 
virtual void threadRelease ()
 Release method. More...
 
virtual void run ()
 Loop function. More...
 
virtual bool startService ()
 Initiate the service, whatever it is. More...
 
virtual bool updateService ()
 Give the service the chance to run for a while. More...
 
virtual bool stopService ()
 Shut down the service, whatever it is. More...
 
bool getAxisCount (unsigned int &axis_count) override
 Get number of Axes. More...
 
bool getButtonCount (unsigned int &button_count) override
 Get number of Buttons. More...
 
bool getTrackballCount (unsigned int &Trackball_count) override
 Get number of trackballs. More...
 
bool getHatCount (unsigned int &Hat_count) override
 Get number of Hats. More...
 
bool getTouchSurfaceCount (unsigned int &touch_count) override
 get the number of touch surface. More...
 
bool getStickCount (unsigned int &stick_count) override
 get the number of the sticks More...
 
bool getStickDoF (unsigned int stick_id, unsigned int &DoF) override
 Get the Degree Of Freedom count for desired stick. More...
 
bool getButton (unsigned int button_id, float &value) override
 Get the value of a button. More...
 
bool getTrackball (unsigned int trackball_id, yarp::sig::Vector &value) override
 Get the axes change of a Trackball. More...
 
bool getHat (unsigned int hat_id, unsigned char &value) override
 Get the value of an Hat. More...
 
bool getAxis (unsigned int axis_id, double &value) override
 Get the value of an axis if present, return false otherwise. More...
 
bool getStick (unsigned int stick_id, yarp::sig::Vector &value, JoypadCtrl_coordinateMode coordinate_mode) override
 Get the value of a stick if present, return false otherwise. More...
 
bool getTouch (unsigned int touch_id, yarp::sig::Vector &value) override
 Get the value of a touch if present, return false otherwise. More...
 
- Public Member Functions inherited from yarp::dev::DeviceDriver
 ~DeviceDriver () override=default
 Destructor. More...
 
template<class T >
bool view (T *&x)
 Get an interface to the device driver. More...
 
virtual DeviceDrivergetImplementation ()
 Some drivers are bureaucrats, pointing at others. More...
 
- Public Member Functions inherited from yarp::os::IConfig
virtual ~IConfig ()
 Destructor. More...
 
virtual bool configure (Searchable &config)
 Change online parameters. More...
 
- Public Member Functions inherited from yarp::os::PeriodicThread
 PeriodicThread (double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No)
 Constructor. More...
 
virtual ~PeriodicThread ()
 
bool start ()
 Call this to start the thread. More...
 
void step ()
 Call this to "step" the thread rather than starting it. More...
 
void stop ()
 Call this to stop the thread, this call blocks until the thread is terminated (and releaseThread() called). More...
 
void askToStop ()
 Stop the thread. More...
 
bool isRunning () const
 Returns true when the thread is started, false otherwise. More...
 
bool isSuspended () const
 Returns true when the thread is suspended, false otherwise. More...
 
bool setPeriod (double period)
 Set the (new) period of the thread. More...
 
double getPeriod () const
 Return the current period of the thread. More...
 
void suspend ()
 Suspend the thread, the thread keeps running by doLoop is never executed. More...
 
void resume ()
 Resume the thread if previously suspended. More...
 
void resetStat ()
 Reset thread statistics. More...
 
double getEstimatedPeriod () const
 Return estimated period since last reset. More...
 
void getEstimatedPeriod (double &av, double &std) const
 Return estimated period since last reset. More...
 
unsigned int getIterations () const
 Return the number of iterations performed since last reset. More...
 
double getEstimatedUsed () const
 Return the estimated duration of the run() function since last reset. More...
 
void getEstimatedUsed (double &av, double &std) const
 Return estimated duration of the run() function since last reset. More...
 
int setPriority (int priority, int policy=-1)
 Set the priority and scheduling policy of the thread, if the OS supports that. More...
 
int getPriority () const
 Query the current priority of the thread, if the OS supports that. More...
 
int getPolicy () const
 Query the current scheduling policy of the thread, if the OS supports that. More...
 
- Public Member Functions inherited from yarp::dev::IService
virtual ~IService ()
 
- Public Member Functions inherited from yarp::dev::IJoypadController
virtual ~IJoypadController ()
 Destructor. More...
 
virtual bool eventDriven (bool enable, yarp::dev::IJoypadEvent *event=nullptr)
 Activate event Driven mode. More...
 
virtual bool isEventDriven ()
 

Additional Inherited Members

- Public Types inherited from yarp::dev::IJoypadController
enum  JoypadCtrl_coordinateMode {
  JypCtrlcoord_POLAR = 0,
  JypCtrlcoord_CARTESIAN = 1
}
 
- Protected Member Functions inherited from yarp::os::PeriodicThread
virtual void beforeStart ()
 Called just before a new thread starts. More...
 
virtual void afterStart (bool success)
 Called just after a new thread starts (or fails to start), this is executed by the same thread that calls start(). More...
 
- Protected Member Functions inherited from yarp::dev::IJoypadController
virtual bool parseActions (const yarp::os::Searchable &cfg, int *count=nullptr)
 
virtual bool executeAction (int action_id)
 
- Protected Attributes inherited from yarp::dev::IJoypadController
std::map< int, std::string > m_actions
 

Detailed Description

ovrheadset: Device that manages the Oculus Rift Headset.

Description of input parameters

Parameters accepted in the config argument of the open method:

Parameter name Type Units Default Value Required Description Notes
tfLocal string yes local port name receiving and posting tf
tfRemote string yes name of the transformServer port
tf_left_hand_frame string Yes name of the left hand frame
tf_right_hand_frame string yes name of the right hand frame
tf_root_frame string yes name of the root frame
stick_as_axis bool yes if axes shoud be published as sticks
gui_elements int yes number of the gui element to visualize
hands_relative bool false no if the hand pose should be w.r.t. head

Gui Groups parameters | Parameter name | Type | Units | Default Value | Required | Description | Notes | | width | double | pixel | | yes | width of the widget | | | height | double | pixel | | yes | height of the widget | | | x | double | pixel | | yes | x position of the widget | | | y | double | pixel | | yes | y position of the widget | | | z | double | pixel | | yes | z position of the widget | | | alpha | double | | | yes | alpha value of the widget | |

Definition at line 80 of file OVRHeadset.h.

Constructor & Destructor Documentation

◆ OVRHeadset()

yarp::dev::OVRHeadset::OVRHeadset ( )
explicit

Definition at line 263 of file OVRHeadset.cpp.

◆ ~OVRHeadset()

yarp::dev::OVRHeadset::~OVRHeadset ( )
virtual

Definition at line 269 of file OVRHeadset.cpp.

Member Function Documentation

◆ close()

bool yarp::dev::OVRHeadset::close ( )
virtual

Close the DeviceDriver.

Returns
true/false on success/failure.

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 828 of file OVRHeadset.cpp.

◆ getAxis()

bool yarp::dev::OVRHeadset::getAxis ( unsigned int  axis_id,
double &  value 
)
overridevirtual

Get the value of an axis if present, return false otherwise.

getAxis

Parameters
axis_idId of the axis to get. must be > -1 && < getAxisCount(), return false otherwise
valuereference to be valued. the absolute boundaries for the values should be -1.0 and 1.0 However the actual range depends on the physical device (example: analog trigger does not have a central position thus can give a value from 0.0 to 0.1)
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1616 of file OVRHeadset.cpp.

◆ getAxisCount()

bool yarp::dev::OVRHeadset::getAxisCount ( unsigned int &  axis_count)
overridevirtual

Get number of Axes.

getAxisCount

Parameters
axes_countunsigned int reference that will contain the result
Returns
true if succeeded. false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1534 of file OVRHeadset.cpp.

◆ getButton()

bool yarp::dev::OVRHeadset::getButton ( unsigned int  button_id,
float &  value 
)
overridevirtual

Get the value of a button.

from 0-unpressed to 1-fullpressed and values in the middle in the analog-face-button case

getButton

Parameters
button_idId of the button to get. Must be > -1 && < getButtonCount(), return false otherwise
valuereference to be valued. The value will be from 0.0 (not even touched) to 1.0 (fully pressed)
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1582 of file OVRHeadset.cpp.

◆ getButtonCount()

bool yarp::dev::OVRHeadset::getButtonCount ( unsigned int &  button_count)
overridevirtual

Get number of Buttons.

getButtonCount

Parameters
button_countunsigned int reference that will contain the result
Returns
true if succeeded. false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1541 of file OVRHeadset.cpp.

◆ getHat()

bool yarp::dev::OVRHeadset::getHat ( unsigned int  hat_id,
unsigned char &  value 
)
overridevirtual

Get the value of an Hat.

getHat

Parameters
hat_idId of the POV hat to get. Must be > -1 && < getHatCount(), return false otherwise
valuereference to be valued. use the YRPJOY_HAT_ macro series to get the currently pressed directions
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1600 of file OVRHeadset.cpp.

◆ getHatCount()

bool yarp::dev::OVRHeadset::getHatCount ( unsigned int &  Hat_count)
overridevirtual

Get number of Hats.

getHatsCount

Parameters
Hat_countunsigned int reference that will contain the result
Returns
true if succeeded. false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1555 of file OVRHeadset.cpp.

◆ getStick()

bool yarp::dev::OVRHeadset::getStick ( unsigned int  stick_id,
yarp::sig::Vector value,
JoypadCtrl_coordinateMode  coordinate_mode 
)
overridevirtual

Get the value of a stick if present, return false otherwise.

getStick

Parameters
stick_idId of the stick to get. must be > -1 && < getStickCount(), return false otherwise
valuea vector that will contain the joystick position. the size of the vector will give you the Number of degrees of freedom and the value will be from -1.0 to 1.0
coordinate_modeto get data in cartesian mode or polar (spheric in 3 dof position cases) mode
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1629 of file OVRHeadset.cpp.

◆ getStickCount()

bool yarp::dev::OVRHeadset::getStickCount ( unsigned int &  stick_count)
overridevirtual

get the number of the sticks

getStickCount

Parameters
stick_countunsigned int reference that will contain the result
Returns
bool if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1569 of file OVRHeadset.cpp.

◆ getStickDoF()

bool yarp::dev::OVRHeadset::getStickDoF ( unsigned int  stick_id,
unsigned int &  DoF 
)
overridevirtual

Get the Degree Of Freedom count for desired stick.

getStickDoF

Parameters
stick_idId of the stick. must be > -1 && < getStickCount(), return false otherwise
DoFan unsigned int reference that will contain the value.
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1576 of file OVRHeadset.cpp.

◆ getTouch()

bool yarp::dev::OVRHeadset::getTouch ( unsigned int  touch_id,
yarp::sig::Vector value 
)
overridevirtual

Get the value of a touch if present, return false otherwise.

getTouch

Parameters
valuea vector that will contain the touch values normalized from 0.0 to 1.0.
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1656 of file OVRHeadset.cpp.

◆ getTouchSurfaceCount()

bool yarp::dev::OVRHeadset::getTouchSurfaceCount ( unsigned int &  touch_count)
overridevirtual

get the number of touch surface.

multiple touch surface can rappresent either multiple physical monotouch surface or a multitouch surface or a combination of the two

hasTouchSurface

Parameters
touch_countunsigned int reference that will contain the result
Returns
true if succeeded. false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1562 of file OVRHeadset.cpp.

◆ getTrackball()

bool yarp::dev::OVRHeadset::getTrackball ( unsigned int  trackball_id,
yarp::sig::Vector value 
)
overridevirtual

Get the axes change of a Trackball.

getTrackball

Parameters
trackball_idId of the Trackball to get. Must be > -1 && < getTrackballCount(), return false otherwise
valuereference to be valued. the value will be from 0.0 (not moving) to 1.0 (full velocity)
Returns
true if succeeded, false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1595 of file OVRHeadset.cpp.

◆ getTrackballCount()

bool yarp::dev::OVRHeadset::getTrackballCount ( unsigned int &  Trackball_count)
overridevirtual

Get number of trackballs.

getTrackballCount

Parameters
Trackball_countunsigned int reference that will contain the result
Returns
true if succeeded. false otherwise

Implements yarp::dev::IJoypadController.

Definition at line 1548 of file OVRHeadset.cpp.

◆ open()

bool yarp::dev::OVRHeadset::open ( yarp::os::Searchable config)
virtual

Open the DeviceDriver.

Parameters
configis a list of parameters for the device. Which parameters are effective for your device can vary. See device invocation examples. If there is no example for your device, you can run the "yarpdev" program with the verbose flag set to probe what parameters the device is checking. If that fails too, you'll need to read the source code (please nag one of the yarp developers to add documentation for your device).
Returns
true/false upon success/failure

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 375 of file OVRHeadset.cpp.

◆ run()

void yarp::dev::OVRHeadset::run ( )
virtual

Loop function.

This is the thread itself. The thread calls the run() function every <period> ms. At the end of each run, the thread will sleep the amounth of time required, taking into account the time spent inside the loop function. Example: requested period is 10ms, the run() function take 3ms to be executed, the thread will sleep for 7ms.

Note: after each run is completed, the thread will call a yield() in order to facilitate other threads to run.

Implements yarp::os::PeriodicThread.

Definition at line 897 of file OVRHeadset.cpp.

◆ startService()

bool yarp::dev::OVRHeadset::startService ( )
virtual

Initiate the service, whatever it is.

The service should then run by itself, without any further interaction with its creator until stopService() is called.

Returns
true if the service started and needs no help running. If false is returned, the service expects updateService() to be called repeatedly until that function too returns false. This is useful for devices that don't want to manage their own service threads.

Reimplemented from yarp::dev::IService.

Definition at line 835 of file OVRHeadset.cpp.

◆ stopService()

bool yarp::dev::OVRHeadset::stopService ( )
virtual

Shut down the service, whatever it is.

Returns
true iff the service shut down ok.

Reimplemented from yarp::dev::IService.

Definition at line 876 of file OVRHeadset.cpp.

◆ threadInit()

bool yarp::dev::OVRHeadset::threadInit ( )
virtual

Initialization method.

The thread executes this function when it starts and before "run". This is a good place to perform initialization tasks that need to be done by the thread itself (device drivers initialization, memory allocation etc). If the function returns false the thread quits and never calls "run". The return value of threadInit() is notified to the class and passed as a parameter to afterStart(). Note that afterStart() is called by the same thread that is executing the "start" method.

Reimplemented from yarp::os::PeriodicThread.

Definition at line 612 of file OVRHeadset.cpp.

◆ threadRelease()

void yarp::dev::OVRHeadset::threadRelease ( )
virtual

Release method.

The thread executes this function once when it exits, after the last "run". This is a good place to release resources that were initialized in threadInit() (release memory, and device driver resources).

Reimplemented from yarp::os::PeriodicThread.

Definition at line 737 of file OVRHeadset.cpp.

◆ updateService()

bool yarp::dev::OVRHeadset::updateService ( )
virtual

Give the service the chance to run for a while.

This is an alternative to calling startService(). It is more appropriate in a single-threaded environment.

Returns
true iff the service is willing to run some more. A return value of false means that the service would like to stop.

Reimplemented from yarp::dev::IService.

Definition at line 841 of file OVRHeadset.cpp.


The documentation for this class was generated from the following files: