wall_publisher.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 import rospy
4 import yaml
5 import tf
6 import copy
7 
8 from geometry_msgs.msg import *
9 from rospy_message_converter import message_converter
10 from visualization_msgs.msg import *
11 from yocs_msgs.msg import *
12 
13 def publish(filename):
14  yaml_data = None
15  with open(filename) as f:
16  yaml_data = yaml.load(f)
17 
18  wall_list = WallList()
19  # Markers
20  marker_list = MarkerArray()
21 
22  marker_id = 1
23  for t in yaml_data:
24  object = Wall()
25  object.name = t['name']
26  object.length = float(t['length'])
27  object.width = float(t['width'])
28  object.height = float(t['height'])
29  object.pose.header.frame_id = t['frame_id']
30  object.pose.header.stamp = rospy.Time.now()
31  object.pose.pose.pose = message_converter.convert_dictionary_to_ros_message('geometry_msgs/Pose',t['pose'])
32  wall_list.obstacles.append(object)
33 
34  marker = Marker()
35  marker.id = marker_id
36  marker.header = object.pose.header
37  marker.type = Marker.CUBE
38  marker.ns = "wall_obstacles"
39  marker.action = Marker.ADD
40  marker.lifetime = rospy.Duration.from_sec(0)
41  marker.pose = copy.deepcopy(object.pose.pose.pose)
42  marker.pose.position.z += object.height/2.0
43  marker.scale.x = object.width
44  marker.scale.y = object.length
45  marker.scale.z = object.height
46  marker.color.r = 0.2
47  marker.color.g = 0.4
48  marker.color.b = 0.4
49  marker.color.a = 0.5
50 
51  marker_list.markers.append(marker)
52 
53  marker_id = marker_id + 1
54 
55  wall_pub.publish(wall_list)
56  marker_pub.publish(marker_list)
57 
58  return
59 
60 if __name__ == '__main__':
61  rospy.init_node('wall_loader')
62  filename = rospy.get_param('~filename')
63 
64  marker_pub = rospy.Publisher('wall_marker', MarkerArray, latch=True, queue_size=1)
65  wall_pub = rospy.Publisher('wall_pose_list', WallList, latch = True)
66 
67  rospy.loginfo('Publishing obstacles and visualization markers.')
68  publish(filename)
69  rospy.spin()
def publish(filename)


yocs_virtual_sensor
Author(s): Jorge Santos
autogenerated on Mon Jun 10 2019 15:54:08