25#include <SimoxUtility/math/convert/mat3f_to_rpy.h>
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();
130 ::Ice::Float currentPlatformVelocityY,
131 ::Ice::Float currentPlatformVelocityRotation,
132 const Ice::Current&
c)
134 setDataField(
"platformVelocity",
"velocityX", currentPlatformVelocityX);
135 setDataField(
"platformVelocity",
"velocityY", currentPlatformVelocityY);
136 setDataField(
"platformVelocity",
"velocityRotation", currentPlatformVelocityRotation);
145 ::Ice::Float platformPositionX,
146 ::Ice::Float platformPositionY,
147 ::Ice::Float platformRotation)
149 setDataField(channelName,
"positionX", platformPositionX);
150 setDataField(channelName,
"positionY", platformPositionY);
151 setDataField(channelName,
"rotation", platformRotation);
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Property< PropertyType > getProperty(const std::string &name)
Checks if the numbers published in the relevant data fields equal reference value with respect to a t...
Checks if the numbers published in the relevant data fields equal a reference value.
Checks if the numbers published in the relevant data fields are within a reference range.
Checks if the numbers published in the relevant data fields are larger than a reference value.
Checks if the numbers published in the relevant data fields are smaller than a reference value.
Checks if the relevant data fields have been updated since the installation of this condition.
Checks if the relevant data fields contain valid values.
void usingTopic(const std::string &name, bool orderedPublishing=false)
Registers a proxy for subscription after initialization.
void offerChannel(std::string channelName, std::string description)
Offer a channel.
void offerDataField(std::string channelName, std::string datafieldName, VariantTypeId type, std::string description)
Offer a datafield without default value.
void offerConditionCheck(std::string checkName, ConditionCheck *conditionCheck)
Offer a condition check.
void updateChannel(const std::string &channelName, const std::set< std::string > &updatedDatafields=std::set< std::string >())
Update all conditions for a channel.
void setDataField(const std::string &channelName, const std::string &datafieldName, const Variant &value, bool triggerFilterUpdate=true)
set datafield with datafieldName and in channel channelName
const VariantTypeId Float
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
double angle(const Point &a, const Point &b, const Point &c)