Source code for morse.middleware.pocolibs.sensors.stereopixel
import logging; logger = logging.getLogger("morse." + __name__)
from morse.core import blenderapi
from morse.middleware import AbstractDatastream
from morse.middleware.pocolibs_datastream import poster_name, PocolibsDatastreamManager
try:
from morse.middleware.pocolibs.stereopixel import *
except ImportError:
if not blenderapi.fake:
raise
[docs]class Spix3DImagePoster(AbstractDatastream):
_type_name = "Spix3DImage"
_type_url = "http://trac.laas.fr/git/stereopixel-genom/tree/stereopixelClient.h#n57"
[docs] def initialize(self):
name = poster_name(self.component_name, self.kwargs)
self.obj = Stereopixel(name, self.component_instance.image_width,
self.component_instance.image_height)
[docs] def default(self, ci):
if not self.component_instance.capturing:
return
main_to_origin = self.component_instance.robot_parent.position_3d
pom_date, t = PocolibsDatastreamManager.compute_date()
main_to_sensor = main_to_origin.transformation3d_with(
self.component_instance.position_3d)
info = StereopixelSimu()
info.nb_pts = self.data['nb_points']
info.x_rob = main_to_origin.x
info.y_rob = main_to_origin.y
info.z_rob = main_to_origin.z
info.yaw_rob = main_to_origin.yaw
info.pitch_rob = main_to_origin.pitch
info.roll_rob = main_to_origin.roll
info.x_cam = main_to_sensor.x
info.y_cam = main_to_sensor.y
info.z_cam = main_to_sensor.z
info.yaw_cam = main_to_sensor.yaw
info.pitch_cam = main_to_sensor.pitch
info.roll_cam = main_to_sensor.roll
info.pom_tag = pom_date
self.obj.post(info, self.data['points'])
[docs] def finalize(self):
self.obj.finalize()
AbstractDatastream.finalize(self)