StartVisualization.cpp
Go to the documentation of this file.
1 
7 #include <ros/ros.h>
8 #include <visualization_msgs/Marker.h>
9 #include <visualization_msgs/MarkerArray.h>
10 #include "ORCAStar/AgentState.h"
11 
16 ros::Publisher marker_pub;
17 
18 
23 void Update(const ORCAStar::AgentState &msg)
24 {
25  uint32_t shape = visualization_msgs::Marker::CYLINDER;
26  visualization_msgs::MarkerArray agents;
27  agents.markers.clear();
28 
29  for(size_t i = 0; i < msg.pos.size(); i++)
30  {
31  visualization_msgs::Marker marker;
32  marker.header.frame_id = "/my_frame";
33  marker.header.stamp = ros::Time::now();
34 
35  marker.ns = "basic_shapes";
36  marker.id = i;
37 
38  marker.type = shape;
39 
40  marker.action = visualization_msgs::Marker::ADD;
41 
42  marker.pose.position.x = msg.pos[i].x;
43  marker.pose.position.y = msg.pos[i].y;
44  marker.pose.position.z = 0.15;
45 
46  marker.pose.orientation.x = 0.0;
47  marker.pose.orientation.y = 0.0;
48  marker.pose.orientation.z = 0.0;
49  marker.pose.orientation.w = 1.0;
50 
51  marker.scale.z = 0.3;
52  marker.scale.y = 2 * msg.rad[i];
53  marker.scale.x = 2 * msg.rad[i];
54 
55  marker.color.r = 1.0f;
56  marker.color.g = 0.0f;
57  marker.color.b = 0.0f;
58  marker.color.a = 1.0;
59 
60  marker.lifetime = ros::Duration();
61  agents.markers.push_back(marker);
62  }
63  marker_pub.publish(agents);
64 }
65 
66 
67 
68 int main( int argc, char** argv )
69 {
70  ros::init(argc, argv, "basic_shapes");
71  ros::NodeHandle n;
72  ros::Rate r(10);
73  marker_pub = n.advertise<visualization_msgs::MarkerArray>("visualization_marker", 1);
74 
75  ros::Subscriber ROSSimActorSub = n.subscribe("AgentStates", 1000, Update);
76 
77  ros::spin();
78 }
79 
int main(int argc, char **argv)
ros::Publisher marker_pub
ROS publisher for visualization markers.
void Update(const ORCAStar::AgentState &msg)
Updates visualisation every time, when message appears.


ORCAStar
Author(s): Stepan Drgachev
autogenerated on Wed Jul 15 2020 16:13:14