56 for(
const auto& elem : topicList)
58 ss<<
"/" << elem.second;
62 nh->
advertise<vda5050_msgs::Visualization>(ss.str(),1000);
70 for(
const auto& elem : topicList)
74 else if (
CheckTopic(elem.first,
"positionInitialized"))
76 else if (
CheckTopic(elem.first,
"localizationScore"))
78 else if (
CheckTopic(elem.first,
"deviationRange"))
84 else if (
CheckTopic(elem.first,
"mapDescription"))
94 msg->pose.pose.orientation.x,
95 msg->pose.pose.orientation.y,
96 msg->pose.pose.orientation.z,
97 msg->pose.pose.orientation.w);
99 double roll, pitch, yaw;
100 m.getRPY(roll,pitch,yaw);
113 visMessage.agvPosition.x=msg->pose.pose.position.x;
114 visMessage.agvPosition.y=msg->pose.pose.position.y;
125 visMessage.velocity.vx=msg->twist.twist.linear.x;
126 visMessage.velocity.vy=msg->twist.twist.linear.y;
129 visMessage.velocity.omega=msg->twist.twist.angular.z;
135 visMessage.agvPosition.positionInitialized=msg->positionInitialized;
136 visMessage.agvPosition.localizationScore=msg->localizationScore;
137 visMessage.agvPosition.deviationRange=msg->deviationRange;
142 visMessage.agvPosition.mapDescription=msg->mapDescription;
146 visMessage.agvPosition.positionInitialized=msg->data;
150 if (
CheckRange(0.0,1.0,msg->data,
"AGV Position Localization Score"))
152 visMessage.agvPosition.localizationScore=msg->data;
157 visMessage.agvPosition.deviationRange=msg->data;
165 visMessage.agvPosition.mapDescription=msg->data;
168 int main(
int argc,
char **argv)
170 ros::init(argc, argv,
"visualization_deamon");
std::map< std::string, ros::Publisher > messagePublisher
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
std::map< std::string, std::string > GetTopicPublisherList()
bool CheckRange(double lowerRange, double upperRange, double value, std::string msg_name)
std::string getTopicStructurePrefix()
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
void AGVPositionLocalizationScoreCallback(const std_msgs::Float64::ConstPtr &msg)
void ROSAGVPositionCallback(const nav_msgs::Odometry::ConstPtr &msg)
void LinkPublishTopics(ros::NodeHandle *nh)
vda5050_msgs::Visualization visMessage
void AGVPositionInitializedCallback(const std_msgs::Bool::ConstPtr &msg)
void AGVPositionDeviationRangeCallback(const std_msgs::Float64::ConstPtr &msg)
vda5050_msgs::Header GetHeader()
void AGVPositionMapDescriptionCallback(const std_msgs::String::ConstPtr &msg)
int main(int argc, char **argv)
bool CheckTopic(std::string str1, std::string str2)
void AGVPositionMapIdCallback(const std_msgs::String::ConstPtr &msg)
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
void UpdateVisualization()
void ROSVelocityCallback(const nav_msgs::Odometry::ConstPtr &msg)
ros::Time lastUpdateTimestamp
void LinkSubscriptionTopics(ros::NodeHandle *nh)
std::map< std::string, ros::Subscriber > subscribers
ros::Duration updateInterval
void PublishVisualization()
ROSCPP_DECL void spinOnce()
double CalculateAgvOrientation(const nav_msgs::Odometry::ConstPtr &msg)
std::map< std::string, std::string > GetTopicSubscriberList()
void AGVPositionCallback(const vda5050_msgs::AGVPosition::ConstPtr &msg)