RobWorkProject  23.9.11-
Classes | Public Types | Public Member Functions | List of all members
BodyContactSensor Class Reference

This sensor attaches to a body and records all forces and the corresponding positions where the forces act. More...

#include <BodyContactSensor.hpp>

Inherits SimulatedTactileSensor.

Classes

class  ClassState
 The state of the sensor. More...
 

Public Types

typedef rw::core::Ptr< BodyContactSensorPtr
 Smart pointer type for BodyContactSensor.
 
- Public Types inherited from SimulatedSensor
typedef rw::core::Ptr< SimulatedSensorPtr
 smart pointer type of this class
 
- Public Types inherited from Stateless
typedef rw::core::Ptr< StatelessPtr
 Smart pointer type for Stateless.
 

Public Member Functions

 BodyContactSensor (const std::string &name, rw::core::Ptr< rw::kinematics::Frame > frame)
 constructor More...
 
virtual ~BodyContactSensor ()
 Destructor.
 
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...
 
void reset (const rw::kinematics::State &state)
 Resets the state of the SimulatedSensor to that of state. More...
 
rw::sensor::Sensor::Ptr getSensor ()
 Get sensor (should not be used). More...
 
void addForceW (const rw::math::Vector3D<> &point, const rw::math::Vector3D<> &force, const rw::math::Vector3D<> &cnormal, 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<> &cnormal, rw::kinematics::State &state, rw::core::Ptr< rwsim::dynamics::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...
 
const std::vector< rw::sensor::Contact3D > & getContacts (const rw::kinematics::State &state) const
 return all contacts registered in the last timestep More...
 
std::vector< rw::core::Ptr< rwsim::dynamics::Body > > getBodies (const rw::kinematics::State &state)
 Get the bodies in contact. More...
 
- Public Member Functions inherited from SimulatedTactileSensor
virtual ~SimulatedTactileSensor ()
 destructor
 
- Public Member Functions inherited from SimulatedSensor
virtual ~SimulatedSensor ()
 destructor
 
const std::string & getName () const
 get name of this simulated sensor
 
rw::kinematics::FramegetFrame () 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...
 
- Public Member Functions inherited from Stateless
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...
 

Additional Inherited Members

- Protected Member Functions inherited from SimulatedTactileSensor
 SimulatedTactileSensor (rw::sensor::SensorModel::Ptr model)
 Constructor. More...
 
- Protected Member Functions inherited from SimulatedSensor
 SimulatedSensor (rw::sensor::SensorModel::Ptr model)
 constructor
 
- Protected Member Functions inherited from Stateless
 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 inherited from Stateless
bool _registered
 True if object has registered its state.
 
std::vector< rw::core::Ptr< StateData > > _datas
 Data.
 
StateStructure::Ptr _stateStruct
 The state structure.
 

Detailed Description

This sensor attaches to a body and records all forces and the corresponding positions where the forces act.

Constructor & Destructor Documentation

◆ BodyContactSensor()

BodyContactSensor ( const std::string &  name,
rw::core::Ptr< rw::kinematics::Frame frame 
)

constructor

Parameters
name[in] the sensor name
frame[in] the frame of this sensor.

Member Function Documentation

◆ addForce()

void addForce ( const rw::math::Vector3D<> &  point,
const rw::math::Vector3D<> &  force,
const rw::math::Vector3D<> &  cnormal,
rw::kinematics::State state,
rw::core::Ptr< rwsim::dynamics::Body body = NULL 
)
virtual

add a force to a point on the sensor geometry. The force is described relative to the sensor frame.

Parameters
point[in] the point where the force is acting.
force[in] the direction in which the force is acting
cnormal[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.

◆ addForceW()

void addForceW ( const rw::math::Vector3D<> &  point,
const rw::math::Vector3D<> &  force,
const rw::math::Vector3D<> &  cnormal,
rw::kinematics::State state,
rw::core::Ptr< rwsim::dynamics::Body body = NULL 
)
virtual

add a force to a point on the sensor geometry. The force is described relative to the world frame.

Parameters
point[in] the point where the force is acting.
force[in] the direction in which the force is acting
cnormal[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.

◆ addWrenchToCOM()

void addWrenchToCOM ( const rw::math::Vector3D<> &  force,
const rw::math::Vector3D<> &  torque,
rw::kinematics::State state,
rw::core::Ptr< rwsim::dynamics::Body body = NULL 
)
inlinevirtual

add a wrench to the center of mass of this object

Parameters
force
torque
state
body

Implements SimulatedTactileSensor.

◆ addWrenchWToCOM()

void addWrenchWToCOM ( const rw::math::Vector3D<> &  force,
const rw::math::Vector3D<> &  torque,
rw::kinematics::State state,
rw::core::Ptr< rwsim::dynamics::Body body = NULL 
)
inlinevirtual

add a wrench described in World frame to the center of mass of this object

Parameters
force
torque
state
body

Implements SimulatedTactileSensor.

◆ getBodies()

std::vector<rw::core::Ptr<rwsim::dynamics::Body> > getBodies ( const rw::kinematics::State state)
inline

Get the bodies in contact.

Parameters
state[in] the state.
Returns
a list of bodies.

◆ getContacts()

const std::vector<rw::sensor::Contact3D>& getContacts ( const rw::kinematics::State state) const
inline

return all contacts registered in the last timestep

Note
all the contacts are represented in body frame.
Parameters
state[in] the state.
Returns
a vector of contacts.

◆ getSensor()

rw::sensor::Sensor::Ptr getSensor ( )

Get sensor (should not be used).

Returns
NULL always.

◆ reset()

void reset ( const rw::kinematics::State state)
virtual

Resets the state of the SimulatedSensor to that of state.

Parameters
state[in] the state that the sensor is reset too.

Implements SimulatedSensor.

◆ update()

void update ( const rwlibs::simulation::Simulator::UpdateInfo info,
rw::kinematics::State state 
)
virtual

steps the the SimulatedSensor with time dt and saves any state changes in state.

Parameters
info[in] update information related to the time step.
state[out] changes of the SimulatedSensor is saved in state.

Implements SimulatedSensor.


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