|
| NovintDevice (const std::string &name) |
| Constructor. More...
|
|
| SURGSIM_CLASSNAME (SurgSim::Devices::NovintDevice) |
|
virtual | ~NovintDevice () |
| Destructor.
|
|
void | setSerialNumber (const std::string &serialNumber) |
| Sets the serial number used to register this device with the hardware library. More...
|
|
bool | getSerialNumber (std::string *serialNumber) const |
| Gets the serial number used to register this device with the hardware library. More...
|
|
void | setInitializationName (const std::string &initializationName) |
| Sets the name used to register this device with the hardware library. More...
|
|
bool | getInitializationName (std::string *initializationName) const |
| Gets the name used to register this device with the hardware library. More...
|
|
bool | initialize () override |
| Fully initialize the device. More...
|
|
bool | isInitialized () const override |
|
void | setPositionScale (double scale) |
| Sets the position scale for this device. More...
|
|
double | getPositionScale () const |
| Gets the position scale for this device.
|
|
void | setOrientationScale (double scale) |
| Sets the orientation scale for this device. More...
|
|
double | getOrientationScale () const |
| Gets the orientation scale for this device.
|
|
void | set7DofDevice (bool val) |
| Sets whether or not this is supposed to be a 7Dof device. More...
|
|
virtual bool | is7DofDevice () const |
| Query if this object represents a 7 degree of freedom hardware device. More...
|
|
void | setMaxForce (double force) |
| Set the maximum force that can be sent to the device. More...
|
|
double | getMaxForce () const |
|
void | setAntigrav (Math::Vector3d antigrav) |
| Set a constant force that gets added to all forces sent to the hardware. More...
|
|
Math::Vector3d | getAntigrav () const |
|
double | getYawOffset () const |
|
void | setYawOffset (double yawOffset) |
| Set constant offset for yaw. More...
|
|
double | getPitchOffset () const |
|
void | setPitchOffset (double pitchOffset) |
| Set constant offset for pitch. More...
|
|
double | getRollOffset () const |
|
void | setRollOffset (double rollOffset) |
| Set constant offset for roll. More...
|
|
double | getToolDofOffset () const |
|
void | setToolDofOffset (double toolDofOffset) |
| Set constant offset for tool DOF. More...
|
|
| CommonDevice (const std::string &name) |
| Constructor. More...
|
|
| CommonDevice (const std::string &name, const DataStructures::DataGroup &inputData) |
| Constructor. More...
|
|
| CommonDevice (const std::string &name, DataStructures::DataGroup &&inputData) |
| Constructor. More...
|
|
virtual | ~CommonDevice () |
| Destructor.
|
|
std::string | getName () const override |
| Return a (hopefully unique) device name.
|
|
std::string | getClassName () const override |
| The class name for this class. More...
|
|
void | setNameForCallback (const std::string &name) |
| Set the name used for calling the input consumers and output producer. More...
|
|
std::string | getNameForCallback () const |
| Get the name used for calling the input consumers and output producer. More...
|
|
bool | addInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override |
| Adds an input consumer that will be notified when the application input state is updated. More...
|
|
bool | removeInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override |
| Removes an input consumer previously added via addInputConsumer. More...
|
|
void | clearInputConsumers () override |
| Removes all InputConsumers.
|
|
bool | setOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override |
| Sets an output producer that will be asked for application output state when the device needs it. More...
|
|
bool | removeOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override |
| Removes an output producer previously added via setOutputProducer. More...
|
|
bool | hasOutputProducer () override |
| Query if this object has output producer. More...
|
|
void | clearOutputProducer () override |
| Removes any OutputProducer.
|
|
virtual | ~DeviceInterface () |
| Virtual destructor (empty).
|
|
| Accessible () |
| Default Constructor.
|
|
| ~Accessible () |
| Destructor.
|
|
template<class T > |
T | getValue (const std::string &name) const |
| Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More...
|
|
boost::any | getValue (const std::string &name) const |
| Retrieves the value with the name by executing the getter if it is found. More...
|
|
template<class T > |
bool | getValue (const std::string &name, T *value) const |
| Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More...
|
|
void | setValue (const std::string &name, const boost::any &value) |
| Sets a value of a property that has setter. More...
|
|
bool | isReadable (const std::string &name) const |
| Check whether a property is readable. More...
|
|
bool | isWriteable (const std::string &name) const |
| Check whether a property is writable. More...
|
|
void | setGetter (const std::string &name, GetterType func) |
| Sets a getter for a given property. More...
|
|
void | setSetter (const std::string &name, SetterType func) |
| Sets a setter for a given property. More...
|
|
void | setAccessors (const std::string &name, GetterType getter, SetterType setter) |
| Sets the accessors getter and setter in one function. More...
|
|
void | removeAccessors (const std::string &name) |
| Removes all the accessors (getter and setter) for a given property. More...
|
|
void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty) |
| Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More...
|
|
void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder) |
| Sets the functions used to convert data from and to a YAML::Node. More...
|
|
void | setDecoder (const std::string &name, DecoderType decoder) |
| Sets the functions used to convert data from a YAML::Node. More...
|
|
YAML::Node | encode () const |
| Encode this Accessible to a YAML::Node. More...
|
|
void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >()) |
| Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More...
|
|
std::vector< std::string > | getProperties () |
|
template<> |
boost::any | getValue (const std::string &name) const |
|
A class implementing the communication with a Novint Falcon device.
This should provide basic support for any device that can communicate using the Novint HDAL SDK toolkit, such as the off-the-shelf Novint Falcon haptic gaming controller. Note that certain devices may require device-specific support in the code to enable particular hardware features. In particular, the Novint Falcon with the Open Surgery Grip will not be able to produce torques unless it is accessed using the NovintOsgDevice class.
- Application input provided by the device:
type | name | |
pose | "pose" | Device pose (units are meters)*. |
scalar | "toolDof" | %7th Dof (e.g., handle open/close angle) |
bool | "button1" | State of the first device button if present.** |
bool | "button2" | State of the second device button if present.** |
bool | "button3" | State of the third device button if present.** |
bool | "button4" | State of the third device button if present.** |
bool | "isHomed" | Device homing status. |
bool | "isPositionHomed" | Device homing status, position only. |
bool | "isOrientationHomed" | Device homing status, orientation only. |
* The workspace of an off-the-shelf Novint Falcon is +z points out from the face of the Falcon, +y points up, and +x points to your right if you are looking at the face of the Falcon (a right-hand frame). The workspace of both 7dof OSG Falcons in a pair is +x towards the right Falcon, +y up, and +z towards the user (a right-hand frame). Thus, if the 7dof OSG Falcons are setup in a typical configuration such that the left Falcon is to the user's left and the right Falcon is to the user's right, then the workspace will be the same as an off-the-shelf Falcon placed directly facing the user. The identity orientation for an OSG Falcon is with the handle of the tool parallel to the floor (pitch), and pointed towards the user (yaw)...therefore in the home pose, the "business end" of the tool points away from the user along the -z axis. **button1
through 4
correspond to the buttons 0 through 3 provided by the HDAL SDK, but a custom Novint device might have fewer than 4 buttons.
- Application output used by the device:
type | name | |
vector | "force" | Device output force (units are newtons). |
vector | "torque" | Device output torque (in newton-meters, 7Dof only). |
bool | "gravityCompensation" | Enable or disable hardware gravity compensation. |