Go to the documentation of this file.
25 #include <SimoxUtility/math/convert/mat3f_to_rpy.h>
46 platformNodeName = getProperty<std::string>(
"PlatformName").getValue();
66 offerChannel(
"platformPose",
"Current Position of " + platformNodeName);
67 offerChannel(
"platformVelocity",
"Current velocity of " + platformNodeName);
68 offerChannel(
"platformOdometryPose",
"Current Odometry Position of " + platformNodeName);
74 "Current X position of " + platformNodeName +
" in mm");
78 "Current Y position of " + platformNodeName +
" in mm");
82 "Current Rotation of " + platformNodeName +
" in radian");
87 "Current X velocity of " + platformNodeName +
" in mm/s");
91 "Current Y velocity of " + platformNodeName +
" in mm/s");
95 "Current Rotation velocity of " + platformNodeName +
" in radian/s");
100 "Current Odometry X position of " + platformNodeName +
" in mm");
104 "Current Odometry Y position of " + platformNodeName +
" in mm");
108 "Current Odometry Rotation of " + platformNodeName +
" in radian");
116 const ::Ice::Current&)
118 const Eigen::Isometry3f global_T_robot(transformStamped.transform);
120 const float x = global_T_robot.translation().x();
121 const float y = global_T_robot.translation().y();
122 const float rotationAroundZ = simox::math::mat3f_to_rpy(global_T_robot.linear()).z();
132 const Ice::Current&
c)
134 setDataField(
"platformVelocity",
"velocityX", currentPlatformVelocityX);
135 setDataField(
"platformVelocity",
"velocityY", currentPlatformVelocityY);
136 setDataField(
"platformVelocity",
"velocityRotation", currentPlatformVelocityRotation);
149 setDataField(channelName,
"positionX", platformPositionX);
150 setDataField(channelName,
"positionY", platformPositionY);
151 setDataField(channelName,
"rotation", platformRotation);
167 nameValueMapToDataFields(
"platformOdometryPose",
x, y,
angle);
168 updateChannel(
"platformOdometryPose");
void updateChannel(const std::string &channelName, const std::set< std::string > &updatedDatafields=std::set< std::string >())
Update all conditions for a channel.
const VariantTypeId Float
void setDataField(const std::string &channelName, const std::string &datafieldName, const Variant &value, bool triggerFilterUpdate=true)
set datafield with datafieldName and in channel channelName
void usingTopic(const std::string &name, bool orderedPublishing=false)
Registers a proxy for subscription after initialization.
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
double angle(const Point &a, const Point &b, const Point &c)
void offerConditionCheck(std::string checkName, ConditionCheck *conditionCheck)
Offer a condition check.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
void offerDataField(std::string channelName, std::string datafieldName, VariantTypeId type, std::string description)
Offer a datafield without default value.
This file offers overloads of toIce() and fromIce() functions for STL container types.
void offerChannel(std::string channelName, std::string description)
Offer a channel.