def __init__(self, obj, parent=None): """ Constructor method. Receives the reference to the Blender object. The second parameter should be the name of the object's parent. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) arc_prefix = 'Arc_' # Look for a child arc to use for the scans for child in obj.children: if arc_prefix in child.name: self._ray_arc = child logger.info("Sick: Using arc object: '%s'" % self._ray_arc) break # Set its visibility, according to the settings self._ray_arc.setVisible(self.visible_arc) self._ray_list = [] # Create an empty list to store the intersection points self.local_data['point_list'] = [] self.local_data['range_list'] = [] # Get the datablock of the arc, to extract its vertices ray_object = blenderapi.objectdata(self._ray_arc.name) for vertex in ray_object.data.vertices: logger.debug ("Vertex %d = %s" % (vertex.index, vertex.co)) # Skip the first vertex. # It is the one located at the center of the sensor if vertex.index == 0: continue # Store the position of the vertex in a list # The position is already given as a mathutils.Vector self._ray_list.append(vertex.co) # Insert empty points into the data list self.local_data['point_list'].append([0.0, 0.0, 0.0]) # Insert zeros into the range list self.local_data['range_list'].append(0.0) logger.debug("RAY %d = [%.4f, %.4f, %.4f]" % (vertex.index, self._ray_list[vertex.index-1][0], self._ray_list[vertex.index-1][1], self._ray_list[vertex.index-1][2])) # Get some information to be able to deform the arcs if self.visible_arc: self._layers = 1 if 'layers' in self.bge_object: self._layers = self.bge_object['layers'] self._vertex_per_layer = len(self._ray_list) // self._layers logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. Receives the reference to the Blender object. The second parameter should be the name of the object's parent. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) arc_prefix = 'Arc_' # Look for a child arc to use for the scans for child in obj.children: if arc_prefix in child.name: self._ray_arc = child logger.info("Sick: Using arc object: '%s'" % self._ray_arc) break # Set its visibility, according to the settings self._ray_arc.setVisible(self.visible_arc) self._ray_list = [] # Create an empty list to store the intersection points self.local_data['point_list'] = [] self.local_data['range_list'] = [] # Get the datablock of the arc, to extract its vertices ray_object = blenderapi.objectdata(self._ray_arc.name) for vertex in ray_object.data.vertices: logger.debug("Vertex %d = %s" % (vertex.index, vertex.co)) # Skip the first vertex. # It is the one located at the center of the sensor if vertex.index == 0: continue # Store the position of the vertex in a list # The position is already given as a mathutils.Vector self._ray_list.append(vertex.co) # Insert empty points into the data list self.local_data['point_list'].append([0.0, 0.0, 0.0]) # Insert zeros into the range list self.local_data['range_list'].append(0.0) logger.debug("RAY %d = [%.4f, %.4f, %.4f]" % (vertex.index, self._ray_list[vertex.index - 1][0], self._ray_list[vertex.index - 1][1], self._ray_list[vertex.index - 1][2])) # Get some information to be able to deform the arcs if self.visible_arc: self._layers = 1 if 'layers' in self.bge_object: self._layers = self.bge_object['layers'] self._vertex_per_layer = len(self._ray_list) // self._layers logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) has_physics = bool(self.robot_parent.bge_object.getPhysicsId()) if self._type == 'Automatic': if has_physics: self._type = 'Velocity' else: self._type = 'Position' if self._type == 'Velocity' and not has_physics: logger.error("Invalid configuration : Velocity computation without " "physics") return if self._type == 'Velocity': self.robot_vel_body = self.robot_parent.bge_object.localLinearVelocity self.airspeed2body = self.sensor_to_robot_position_3d() # rotate vector from body to airspeed frame self.rot_b2a = self.airspeed2body.rotation.conjugated() else: self.pp = copy(self.position_3d) logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) has_physics = bool(self.robot_parent.bge_object.getPhysicsId()) if self._type == 'Automatic': if has_physics: self._type = 'Velocity' else: self._type = 'Position' if self._type == 'Velocity' and not has_physics: logger.error( "Invalid configuration : Velocity computation without " "physics") return if self._type == 'Velocity': self.robot_vel_body = self.robot_parent.bge_object.localLinearVelocity self.airspeed2body = self.sensor_to_robot_position_3d() # rotate vector from body to airspeed frame self.rot_b2a = self.airspeed2body.rotation.conjugated() else: self.pp = copy(self.position_3d) logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): logger.info("%s initialization", obj.name) Sensor.__init__(self, obj, parent) self.source_list = self.get_source_list() self.surrounding_material = MaterialCatalogue.instance().\ get_material_by_name(self.surrounding_material_name) logger.info("Component initialized")
def __init__(self, obj, parent=None): """ Constructor method. Receives the reference to the Blender object. The second parameter should be the name of the object's parent. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) self._inv_exp = (- blenderapi.gravity()[2] * MOLAR_MASS) / \ (GAS_CONSTANT * TEMPERATURE_LAPSE_RATE) self._ref_z = self.position_3d.z logger.info('Component initialized, runs at %.2f Hz', self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. Receives the reference to the Blender object. The second parameter should be the name of the object's parent. """ logger.info("%s initialization" % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) self.video_camera_name = self.name() + ".rgb" self.depth_camera_name = self.name() + ".depth" # or [child.name for child in obj.children \ # if child.name.startswith(self.name()+'.rgb')].pop() self.video_camera = None self.depth_camera = None logger.info("Component initialized, runs at %.2f Hz", self.frequency)
def __init__(self, obj, parent=None): """ Constructor method. Receives the reference to the Blender object. The second parameter should be the name of the object's parent. """ logger.info('%s initialization' % obj.name) # Call the constructor of the parent class Sensor.__init__(self, obj, parent) self.video_camera_name = self.name() + '.rgb' self.depth_camera_name = self.name() + '.depth' # or [child.name for child in obj.children \ # if child.name.startswith(self.name()+'.rgb')].pop() self.video_camera = None self.depth_camera = None logger.info('Component initialized, runs at %.2f Hz', self.frequency)