Visual Servoing Platform
version 3.6.1 under development (2024-10-15)
|
#include <visp3/sensor/vpForceTorqueAtiSensor.h>
Public Member Functions | |
vpForceTorqueAtiSensor () | |
virtual | ~vpForceTorqueAtiSensor () VP_OVERRIDE |
void | bias () |
void | close () |
std::string | getCalibrationFile () const |
vpColVector | getForceTorque () const |
std::string | getForceUnits () const |
std::string | getTorqueUnits () const |
void | open () |
void | setCalibrationFile (const std::string &calibfile, unsigned short index=1) |
void | unbias () |
Protected Attributes | |
std::string | m_calibfile |
unsigned short | m_index |
unsigned short | m_num_axes |
unsigned short | m_num_channels |
vpColVector | m_sample_bias |
Protected Member Functions Inherited from vpComedi | |
std::string | m_device |
comedi_t * | m_handler |
unsigned int | m_subdevice |
unsigned int | m_range |
unsigned int | m_aref |
unsigned int | m_nchannel |
std::vector< comedi_range * > | m_range_info |
std::vector< lsampl_t > | m_maxdata |
std::vector< unsigned int > | m_chanlist |
Friends | |
VISP_EXPORT std::ostream & | operator<< (std::ostream &os, const vpForceTorqueAtiSensor &ati) |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &os, const vpForceTorqueAtiSensor &ati) |
Inherited functionalities from vpComedi | |
comedi_t * | getHandler () const |
std::vector< lsampl_t > | getMaxData () const |
unsigned int | getNChannel () const |
vpColVector | getPhyData () const |
std::string | getPhyDataUnits () const |
std::vector< comedi_range * > | getRangeInfo () const |
unsigned int | getSubDevice () const |
void | setAnalogReference (const unsigned int &aref) |
void | setChannelNumbers (const unsigned int &nchannel) |
void | setDevice (const std::string &device) |
void | setRange (const unsigned int &range) |
void | setSubDevice (const unsigned int &subdevice) |
std::vector< lsampl_t > | getRawData () const |
Interface for ATI force/torque sensor. This class works only under linux-like OS. It requires Comedi 3rd party. Installation instructions are provided here https://visp.inria.fr/3rd_comedi.
Comedi is the linux control and measurement device interface. For more information see http://www.comedi.org.
This class was tested with ATI Gamma 65-SI FT sensor connected to a National Instrument NI DAQmx PCI-6220 board.
Synchronous F/T data acquisition is performed using getForceTorque(). The call to the function blocks until the whole acquisition has finished.
The following example shows how to get single measures from an ATI F/T device each 10 ms (100 Hz).
Definition at line 85 of file vpForceTorqueAtiSensor.h.
BEGIN_VISP_NAMESPACE vpForceTorqueAtiSensor::vpForceTorqueAtiSensor | ( | ) |
Default constructor.
Definition at line 51 of file vpForceTorqueAtiSensor.cpp.
|
virtual |
Destructor that closes the connection to the device.
Definition at line 187 of file vpForceTorqueAtiSensor.cpp.
References close().
void vpForceTorqueAtiSensor::bias | ( | ) |
Bias the sensor storing an unloaded measurement; this removes the effect of tooling weight.
Definition at line 70 of file vpForceTorqueAtiSensor.cpp.
References vpException::fatalError, vpComedi::getPhyData(), m_num_channels, m_sample_bias, open(), and vpArray2D< Type >::size().
Referenced by vpRobotViper850::biasForceTorqueSensor().
void vpForceTorqueAtiSensor::close | ( | ) |
Close the calibration structure opened using setCalibrationFile() and close the connection to the device.
Definition at line 121 of file vpForceTorqueAtiSensor.cpp.
References vpComedi::close().
Referenced by ~vpForceTorqueAtiSensor(), and vpRobotViper850::~vpRobotViper850().
|
inline |
Return the calibration file location specified using setCalibrationFile().
Definition at line 98 of file vpForceTorqueAtiSensor.h.
vpColVector vpForceTorqueAtiSensor::getForceTorque | ( | ) | const |
Get a 6-dimension force/torque vector from device. This function performs synchronously one single data acquisition. "Synchronous" means that the calling process blocks until the data acquisition has finished.
Definition at line 139 of file vpForceTorqueAtiSensor.cpp.
References vpException::fatalError, vpComedi::getPhyData(), m_num_axes, m_num_channels, and vpArray2D< Type >::size().
Referenced by vpRobotViper850::getForceTorque().
std::string vpForceTorqueAtiSensor::getForceUnits | ( | ) | const |
Get force units.
Definition at line 170 of file vpForceTorqueAtiSensor.cpp.
|
inlineinherited |
Get native Comedi handler.
Definition at line 121 of file vpComedi.h.
|
inlineinherited |
Get max data per channel. The returned vector is of dimension the number of channels.
Definition at line 124 of file vpComedi.h.
|
inlineinherited |
|
inherited |
Get physical data from device with units in Volts or mA. To know which unit is used, call getPhyDataUnits().
Definition at line 133 of file vpComedi.cpp.
References vpException::fatalError, vpComedi::getRawData(), vpMath::isNaN(), vpComedi::m_handler, vpComedi::m_maxdata, vpComedi::m_nchannel, and vpComedi::m_range_info.
Referenced by bias(), getForceTorque(), and unbias().
|
inherited |
Get units (V or mA) of the physical data acquired by getPhyData() or getPhyDataAsync().
Definition at line 155 of file vpComedi.cpp.
References vpException::fatalError, vpComedi::m_handler, and vpComedi::m_range_info.
|
inlineinherited |
Get data range information per channel. The returned vector is of dimension the number of channels.
Definition at line 133 of file vpComedi.h.
|
protectedinherited |
Get raw data from device. If you selected an analog input subdevice, the output is an unsigned number, for example between 0 and 65535 for a 16 bit analog input, with 0 representing the lowest voltage of the ADC, and a hardware-dependent maximum value representing the highest voltage.
Definition at line 105 of file vpComedi.cpp.
References vpException::fatalError, vpComedi::m_aref, vpComedi::m_device, vpComedi::m_handler, vpComedi::m_nchannel, vpComedi::m_range, and vpComedi::m_subdevice.
Referenced by vpComedi::getPhyData().
|
inlineinherited |
Get comedi subdevice.
Definition at line 135 of file vpComedi.h.
std::string vpForceTorqueAtiSensor::getTorqueUnits | ( | ) | const |
Get torque units.
Definition at line 178 of file vpForceTorqueAtiSensor.cpp.
void vpForceTorqueAtiSensor::open | ( | ) |
Open the connection to the device.
Definition at line 59 of file vpForceTorqueAtiSensor.cpp.
References m_num_channels, vpComedi::open(), and vpComedi::setChannelNumbers().
Referenced by bias(), vpRobotViper850::init(), and unbias().
|
inlineinherited |
Set analog reference type.
aref | : The aref parameter specifies an analog reference to use: AREF_GROUND, AREF_COMMON, AREF_DIFF, or AREF_OTHER. |
Definition at line 144 of file vpComedi.h.
void vpForceTorqueAtiSensor::setCalibrationFile | ( | const std::string & | calibfile, |
unsigned short | index = 1 |
||
) |
Open ATI calibration file that should correspond to your F/T sensor.
calibfile | : ATI calibration file. This file has the following pattern: FT*.cal. |
index | : Index of calibration in file (default =1). |
Definition at line 195 of file vpForceTorqueAtiSensor.cpp.
References vpException::fatalError, m_calibfile, m_index, m_num_axes, and m_num_channels.
Referenced by vpRobotViper850::init().
|
inlineinherited |
Number of channels to read from sensor. For a 6-dim force/torque sensor use 6.
Definition at line 150 of file vpComedi.h.
Referenced by open().
|
inlineinherited |
Set comedi device name. Default value is /dev/comedi0.
Definition at line 153 of file vpComedi.h.
|
inlineinherited |
Set the range parameter that is the zero-based index of one of the gain ranges supported by the channel. This is a number from 0 to N-1 where N is the number of ranges supported by the channel.
Definition at line 160 of file vpComedi.h.
|
inlineinherited |
Set comedi analog input subdevice.
Definition at line 162 of file vpComedi.h.
void vpForceTorqueAtiSensor::unbias | ( | ) |
Unbias the sensor.
Definition at line 94 of file vpForceTorqueAtiSensor.cpp.
References vpException::fatalError, vpComedi::getPhyData(), m_num_channels, m_sample_bias, open(), and vpArray2D< Type >::size().
Referenced by vpRobotViper850::unbiasForceTorqueSensor().
|
friend |
Return information from calibration file.
os | : Input stream. |
ati | : ATI F/T sensor interface. |
The following example shows how to use this method.
Definition at line 236 of file vpForceTorqueAtiSensor.cpp.
|
related |
Return information from calibration file.
os | : Input stream. |
ati | : ATI F/T sensor interface. |
The following example shows how to use this method.
Definition at line 236 of file vpForceTorqueAtiSensor.cpp.
|
protectedinherited |
Analog reference
Definition at line 175 of file vpComedi.h.
Referenced by vpComedi::getRawData(), and vpComedi::open().
|
protected |
ATI calibration file FT*.cal.
Definition at line 111 of file vpForceTorqueAtiSensor.h.
Referenced by setCalibrationFile().
|
protectedinherited |
|
protectedinherited |
Comedi device name (default: /dev/comedi0)
Definition at line 171 of file vpComedi.h.
Referenced by vpComedi::getRawData(), and vpComedi::open().
|
protectedinherited |
Comedi handler
Definition at line 172 of file vpComedi.h.
Referenced by vpComedi::close(), vpComedi::getPhyData(), vpComedi::getPhyDataUnits(), vpComedi::getRawData(), and vpComedi::open().
|
protected |
Index of calibration in file (default: 1)
Definition at line 112 of file vpForceTorqueAtiSensor.h.
Referenced by setCalibrationFile().
|
protectedinherited |
Max data value
Definition at line 178 of file vpComedi.h.
Referenced by vpComedi::getPhyData(), and vpComedi::open().
|
protectedinherited |
Number of channels
Definition at line 176 of file vpComedi.h.
Referenced by vpComedi::getPhyData(), vpComedi::getRawData(), and vpComedi::open().
|
protected |
Number of axis or gages available from the sensor.
Definition at line 113 of file vpForceTorqueAtiSensor.h.
Referenced by getForceTorque(), and setCalibrationFile().
|
protected |
Number of channels available from the sensor.
Definition at line 114 of file vpForceTorqueAtiSensor.h.
Referenced by bias(), getForceTorque(), open(), setCalibrationFile(), and unbias().
|
protectedinherited |
Range of a channel
Definition at line 174 of file vpComedi.h.
Referenced by vpComedi::getRawData(), and vpComedi::open().
|
protectedinherited |
Range information
Definition at line 177 of file vpComedi.h.
Referenced by vpComedi::getPhyData(), vpComedi::getPhyDataUnits(), and vpComedi::open().
|
protected |
Sample value used for bias.
Definition at line 115 of file vpForceTorqueAtiSensor.h.
|
protectedinherited |
Input subdevice
Definition at line 173 of file vpComedi.h.
Referenced by vpComedi::getRawData(), and vpComedi::open().