20 #ifndef _FRAME_SENSORS_H_
21 #define _FRAME_SENSORS_H_
23 #include "mbsimControl/sensor.h"
29 namespace MBSimControl {
38 std::string getType()
const {
return "AbsolutCoordinateSensor"; }
39 void initializeUsingXML(xercesc::DOMElement *element);
40 void init(InitStage stage);
44 for (
int i=0; i<direction_.
cols(); i++)
45 direction.col(i)=direction.col(i)/nrm2(direction.col(i));
46 assert(direction.
rows()==3);
48 int getSignalSize()
const {
return direction.
cols(); }
52 std::string frameString;
62 std::string getType()
const {
return "AbsolutePositionSensor"; }
73 std::string getType()
const {
return "AbsoluteVelocitySensor"; }
84 std::string getType()
const {
return "AbsoluteAngularPositionSensor"; }
87 void calcxSize() {xSize=direction.
cols(); }
88 void init(InitStage stage) {
90 AbsolutCoordinateSensor::init(stage);
91 g.resize(direction.
cols());
92 gd.resize(direction.
cols());
93 x.resize(direction.
cols());
96 AbsolutCoordinateSensor::init(stage);
109 std::string getType()
const {
return "AbsoluteAngularVelocitySensor"; }
120 RelativeCoordinateSensor(
const std::string &name) :
Sensor(name), refFrame(NULL), relFrame(NULL), direction(), refFrameString(
""), relFrameString(
"") {}
121 std::string getType()
const {
return "RelativeCoordinateSensor"; }
122 void initializeUsingXML(xercesc::DOMElement *element);
123 void init(InitStage stage);
124 void setReferenceFrame(
MBSim::Frame * refFrame_) {refFrame=refFrame_; }
125 void setRelativeFrame(
MBSim::Frame * relFrame_) {relFrame=relFrame_; }
127 direction=direction_;
128 for (
int i=0; i<direction_.
cols(); i++)
129 direction.col(i)=direction.col(i)/nrm2(direction.col(i));
130 assert(direction.
rows()==3);
132 int getSignalSize()
const {
return direction.
cols(); }
137 std::string refFrameString, relFrameString;
147 std::string getType()
const {
return "RelativePositionSensor"; }
158 std::string getType()
const {
return "RelativeVelocitySensor"; }
169 std::string getType()
const {
return "RelativeAngularPositionSensor"; }
172 void calcxSize() {xSize=direction.
cols(); }
173 void init(InitStage stage) {
175 RelativeCoordinateSensor::init(stage);
176 g.resize(direction.
cols());
177 gd.resize(direction.
cols());
178 x.resize(direction.
cols());
181 RelativeCoordinateSensor::init(stage);
194 std::string getType()
const {
return "RelativeAngularVelocitySensor"; }
RelativeVelocitySensor.
Definition: frame_sensors.h:155
AbsoluteAngularVelocitySensor.
Definition: frame_sensors.h:106
AbsoluteVelocitySensor.
Definition: frame_sensors.h:70
AbsolutePositionSensor.
Definition: frame_sensors.h:59
RelativeAngularPositionSensor.
Definition: frame_sensors.h:166
AbsolutCoordinateSensor.
Definition: frame_sensors.h:35
Sensor.
Definition: sensor.h:31
RelativeAngularVelocitySensor.
Definition: frame_sensors.h:191
AbsoluteAngularPositionSensor.
Definition: frame_sensors.h:81
RelativeCoordinateSensor.
Definition: frame_sensors.h:118
RelativePositionSensor.
Definition: frame_sensors.h:144