![]() |
RobWorkProject
24.12.4-
|
the TactileMatrixSensor class combines a TactileMatrix data type with the actual shape of a tactile sensor. The shape is described with a matrix of 3d vertices. Such that tactil (0,0) maps to the quad defined by the four vertices {(0,0),(0,1),(1,1),(1,0)}. Notice that the normal is defined by sequence of the vertices and that the normal defines the direction of tactile sensing. More...
#include <TactileArraySensor.hpp>
Inherits SimulatedTactileSensor.
Classes | |
class | ClassState |
class for keeping statefull information More... | |
struct | DistPoint |
Public Types | |
typedef rw::core::Ptr< TactileArraySensor > | Ptr |
Smart pointer type for TactileArraySensor. | |
typedef rw::sensor::TactileArrayModel::ValueMatrix | ValueMatrix |
typedef rw::sensor::TactileArrayModel::VertexMatrix | VertexMatrix |
![]() | |
typedef rw::core::Ptr< SimulatedSensor > | Ptr |
smart pointer type of this class | |
![]() | |
typedef rw::core::Ptr< Stateless > | Ptr |
Smart pointer type for Stateless. | |
Public Member Functions | |
TactileArraySensor (const std::string &name, rw::core::Ptr< rwsim::dynamics::Body > obj, const rw::math::Transform3D<> &fThmap, const ValueMatrix &heightMap, const rw::math::Vector2D< double > &texelSize) | |
Creates a TactileSensor with a geometry specified by a height map and equally sized Texels in an matrix of a given dimension. The transform describe the location of the lower left corner of the texel (0,0). More... | |
virtual | ~TactileArraySensor () |
destructor | |
rw::sensor::TactileArrayModel::ValueMatrix & | getTexelData (rw::kinematics::State &state) const |
get last sampled texel pressure values More... | |
const rw::sensor::TactileArrayModel::ValueMatrix & | getTexelData (const rw::kinematics::State &state) const |
get last sampled texel pressure values More... | |
void | reset (const rw::kinematics::State &state) |
Resets the state of the SimulatedSensor to that of state. More... | |
void | addForceW (const rw::math::Vector3D<> &point, const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &snormal, rw::kinematics::State &state, rw::core::Ptr< rwsim::dynamics::Body > body=NULL) |
add a force to a point on the sensor geometry. The force is described relative to the world frame. More... | |
void | addForce (const rw::math::Vector3D<> &point, const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &snormal, rw::kinematics::State &state, rw::core::Ptr< rwsim::dynamics::Body > body=NULL) |
add a force to a point on the sensor geometry. The force is described relative to the sensor frame. More... | |
void | addWrenchToCOM (const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &torque, rw::kinematics::State &state, rw::core::Ptr< rwsim::dynamics::Body > body=NULL) |
add a wrench to the center of mass of this object More... | |
void | addWrenchWToCOM (const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &torque, rw::kinematics::State &state, rw::core::Ptr< rwsim::dynamics::Body > body=NULL) |
add a wrench described in World frame to the center of mass of this object More... | |
void | update (const rwlibs::simulation::Simulator::UpdateInfo &info, rw::kinematics::State &state) |
steps the the SimulatedSensor with time dt and saves any state changes in state. More... | |
const std::vector< rw::sensor::Contact3D > & | getActualContacts (const rw::kinematics::State &state) |
all contacts that was accumulated into pressure | |
rw::math::Vector2D | getTexelSize (int x, int y) const |
gets the size of an individual tactile cell with coordinates (x,y) More... | |
int | getWidth () const |
get width of tactile array More... | |
int | getHeight () const |
get height of tactile array More... | |
std::pair< double, double > | getPressureLimit () const |
get the minimum and maximum pressure capability of any tactile cell in the TactileArray More... | |
const VertexMatrix & | getVertexGrid () const |
gets the 3d geometry of this tactilearray. The vertexes are expressed realtive to the transform. More... | |
const VertexMatrix & | getCenters () const |
a matrix with position of each tactile cell center. The coordinates are described relative to the TactileArray transform (see getTransform()) More... | |
const VertexMatrix & | getNormals () const |
a matrix with position of each tactile cell center. The coordinates are described relative to the TactileArray transform (see getTransform()) More... | |
const rw::math::Transform3D & | getTransform () const |
a transformation from the sensor frame to the geometric data of the tactile array. More... | |
rw::kinematics::Frame * | getSensorFrame () |
The frame to which the sensor is attached. More... | |
rw::sensor::TactileArrayModel::Ptr | getTactileArrayModel () |
rw::sensor::Sensor::Ptr | getSensor (rwlibs::simulation::Simulator::Ptr sim) |
get sensor with specific name More... | |
rw::sensor::TactileArray::Ptr | getTactileArraySensor (rwlibs::simulation::Simulator::Ptr sim) |
get a handle to the statefull instance of the simulated sensor More... | |
void | setDeformationMask (const ValueMatrix &dmask, double width, double height) |
sets the deformation mask used for determining the deformation of the sensor surface when a point force is applied to it. More... | |
void | setMaxPenetration (double penetration) |
set max penetration in meters. The penetration is really max deformation at any point on the elastic surface of the tactile sensor | |
const rw::geometry::PlainTriMeshD & | getMesh () |
get triangle mesh representing the tactile array More... | |
![]() | |
virtual | ~SimulatedTactileSensor () |
destructor | |
![]() | |
virtual | ~SimulatedSensor () |
destructor | |
const std::string & | getName () const |
get name of this simulated sensor | |
rw::kinematics::Frame * | getFrame () const |
get frame that this sensor is attached to. More... | |
rw::sensor::SensorModel::Ptr | getSensorModel () |
get the sensor model of this simulated sensor. | |
rw::sensor::Sensor::Ptr | getSensorHandle (rwlibs::simulation::Simulator::Ptr sim) |
get a handle to controlling an instance of the simulated sensor in a specific simulator More... | |
![]() | |
virtual | ~Stateless () |
destructor | |
virtual void | registerIn (State &state) |
initialize this stateless data to a specific state More... | |
virtual void | registerIn (StateStructure::Ptr state) |
register this stateless object in a statestructure. | |
virtual void | unregister () |
unregisters all state data of this stateless object | |
StateStructure::Ptr | getStateStructure () |
Get the state structure. More... | |
const StateStructure::Ptr | getStateStructure () const |
Get the state structure. More... | |
bool | isRegistered () |
Check if object has registered its state. More... | |
Protected Member Functions | |
ClassState::Ptr | getClassState (rw::kinematics::State &state) const |
ClassState::Ptr | getClassState (rw::kinematics::State &state) |
![]() | |
SimulatedTactileSensor (rw::sensor::SensorModel::Ptr model) | |
Constructor. More... | |
![]() | |
SimulatedSensor (rw::sensor::SensorModel::Ptr model) | |
constructor | |
![]() | |
Stateless () | |
constructor | |
template<class T > | |
void | add (StatelessData< T > &data) |
implementations of sensor should add all their stateless data on initialization | |
void | add (StateData *data) |
Add data. More... | |
void | add (rw::core::Ptr< StateData > data) |
implementations of sensor should add all their state data on initialization | |
Protected Attributes | |
rw::kinematics::StatelessData< int > | _sdata |
VertexMatrix | _contactMatrix |
VertexMatrix | _distCenterMatrix |
Eigen::MatrixXf | _distDefMatrix |
const rw::math::Vector2D | _texelSize |
double | _texelArea |
const rw::math::Transform3D | _fThmap |
const rw::math::Transform3D | _hmapTf |
Eigen::MatrixXf | _dmask |
rwlibs::proximitystrategies::ProximityStrategyPQP * | _narrowStrategy |
double | _maxPenetration |
double | _elasticity |
double | _tau |
rw::core::Ptr< rwsim::dynamics::Body > | _body |
double | _maskWidth |
double | _maskHeight |
rw::core::Ptr< rw::geometry::Geometry > | _ngeom |
rw::core::Ptr< rw::geometry::PlainTriMesh< rw::geometry::Triangle<> > > | _ntrimesh |
rw::proximity::ProximityModel::Ptr | _nmodel |
std::map< rw::kinematics::Frame *, std::vector< rw::core::Ptr< rw::geometry::Geometry > > > | _frameToGeoms |
rw::sensor::TactileArrayModel::Ptr | _tmodel |
![]() | |
bool | _registered |
True if object has registered its state. | |
std::vector< rw::core::Ptr< StateData > > | _datas |
Data. | |
StateStructure::Ptr | _stateStruct |
The state structure. | |
the TactileMatrixSensor class combines a TactileMatrix data type with the actual shape of a tactile sensor. The shape is described with a matrix of 3d vertices. Such that tactil (0,0) maps to the quad defined by the four vertices {(0,0),(0,1),(1,1),(1,0)}. Notice that the normal is defined by sequence of the vertices and that the normal defines the direction of tactile sensing.
TactileArraySensor | ( | const std::string & | name, |
rw::core::Ptr< rwsim::dynamics::Body > | obj, | ||
const rw::math::Transform3D<> & | fThmap, | ||
const ValueMatrix & | heightMap, | ||
const rw::math::Vector2D< double > & | texelSize | ||
) |
Creates a TactileSensor with a geometry specified by a height map and equally sized Texels in an matrix of a given dimension. The transform describe the location of the lower left corner of the texel (0,0).
name | [in] |
obj | [in] |
fThmap | [in] |
heightMap | [in] |
texelSize | [in] |
|
virtual |
add a force to a point on the sensor geometry. The force is described relative to the sensor frame.
point | [in] the point where the force is acting. |
force | [in] the direction in which the force is acting |
snormal | [in] the contact normal where the origin is on the contacting body and the direction is toward the sensor |
state | [in/out] the state is updated with new sensor information. |
body | [in] the body that caused the contact force. If no body caused the force on the sensor (could be user input) then the body is NULL |
Implements SimulatedTactileSensor.
|
virtual |
add a force to a point on the sensor geometry. The force is described relative to the world frame.
point | [in] the point where the force is acting. |
force | [in] the direction in which the force is acting |
snormal | [in] the contact normal where the origin is on the contacting body and the direction is toward the sensor |
state | [in/out] the state is updated with new sensor information. |
body | [in] the body that caused the contact force. If no body caused the force on the sensor (could be user input) then the body is NULL |
Implements SimulatedTactileSensor.
|
virtual |
add a wrench to the center of mass of this object
force | |
torque | |
state | |
body |
Implements SimulatedTactileSensor.
|
virtual |
add a wrench described in World frame to the center of mass of this object
force | |
torque | |
state | |
body |
Implements SimulatedTactileSensor.
|
inline |
a matrix with position of each tactile cell center. The coordinates are described relative to the TactileArray transform (see getTransform())
|
inline |
get height of tactile array
|
inline |
get triangle mesh representing the tactile array
|
inline |
a matrix with position of each tactile cell center. The coordinates are described relative to the TactileArray transform (see getTransform())
|
inline |
get the minimum and maximum pressure capability of any tactile cell in the TactileArray
rw::sensor::Sensor::Ptr getSensor | ( | rwlibs::simulation::Simulator::Ptr | sim | ) |
get sensor with specific name
|
inline |
The frame to which the sensor is attached.
The frame can be NULL.
rw::sensor::TactileArray::Ptr getTactileArraySensor | ( | rwlibs::simulation::Simulator::Ptr | sim | ) |
get a handle to the statefull instance of the simulated sensor
sim | [in] simulator in which instance is active. |
const rw::sensor::TactileArrayModel::ValueMatrix& getTexelData | ( | const rw::kinematics::State & | state | ) | const |
get last sampled texel pressure values
state | [in] state in which values are to be found |
rw::sensor::TactileArrayModel::ValueMatrix& getTexelData | ( | rw::kinematics::State & | state | ) | const |
get last sampled texel pressure values
state | [in] state in which values are to be found |
|
inline |
gets the size of an individual tactile cell with coordinates (x,y)
x | |
y |
|
inline |
a transformation from the sensor frame to the geometric data of the tactile array.
|
inline |
gets the 3d geometry of this tactilearray. The vertexes are expressed realtive to the transform.
|
inline |
get width of tactile array
|
virtual |
Resets the state of the SimulatedSensor to that of state.
state | [in] the state that the sensor is reset too. |
Implements SimulatedSensor.
void setDeformationMask | ( | const ValueMatrix & | dmask, |
double | width, | ||
double | height | ||
) |
sets the deformation mask used for determining the deformation of the sensor surface when a point force is applied to it.
|
virtual |
steps the the SimulatedSensor with time dt and saves any state changes in state.
info | [in] update information related to the time step. |
state | [out] changes of the SimulatedSensor is saved in state. |
Implements SimulatedSensor.