Exemple #1
0
    def __init__(self, display_servers, cams, mask_dir, trigger):
        self.mask_dir = mask_dir

        cam_handlers = []

        #turn on projectors
        for d in display_servers:
            dsc = display_client.DisplayServerProxy(d,wait=True)
            dsc.enter_2dblit_mode()
            dsc.show_pixels(dsc.new_image(dsc.IMAGE_COLOR_WHITE))

        for cam in cams:
            rospy.loginfo("Generating mask for cam %s" % cam)
            cam_handlers.append(CameraHandler(cam,debug=False))

        self.trigger_proxy_rate = rospy.ServiceProxy(trigger+'/set_framerate', camera_trigger.srv.SetFramerate)
        self.trigger_proxy_rate(1.0)
        rospy.loginfo("Set framerate to 1fps")

        self.runner = SimultaneousCameraRunner(cam_handlers)

        s = rospy.Service('~mask_start', std_srvs.srv.Empty, self._change_mode_start)
        s = rospy.Service('~mask_finish', std_srvs.srv.Empty, self._change_mode_finish)

        self.mode = self.MODE_WAIT
Exemple #2
0
class GenMasks:

    MODE_WAIT = 0
    MODE_FINISHED = 1
    MODE_COLLECT = 2

    def __init__(self, display_servers, cams, mask_dir, trigger):
        self.mask_dir = mask_dir

        cam_handlers = []

        #turn on projectors
        for d in display_servers:
            dsc = display_client.DisplayServerProxy(d,wait=True)
            dsc.enter_2dblit_mode()
            dsc.show_pixels(dsc.new_image(dsc.IMAGE_COLOR_WHITE))

        for cam in cams:
            rospy.loginfo("Generating mask for cam %s" % cam)
            cam_handlers.append(CameraHandler(cam,debug=False))

        self.trigger_proxy_rate = rospy.ServiceProxy(trigger+'/set_framerate', camera_trigger.srv.SetFramerate)
        self.trigger_proxy_rate(1.0)
        rospy.loginfo("Set framerate to 1fps")

        self.runner = SimultaneousCameraRunner(cam_handlers)

        s = rospy.Service('~mask_start', std_srvs.srv.Empty, self._change_mode_start)
        s = rospy.Service('~mask_finish', std_srvs.srv.Empty, self._change_mode_finish)

        self.mode = self.MODE_WAIT

    def _change_mode_start(self, req):
        self.mode = self.MODE_COLLECT
        return std_srvs.srv.EmptyResponse()
    def _change_mode_finish(self, req):
        self.mode = self.MODE_FINISHED
        return std_srvs.srv.EmptyResponse()

    def run(self):
        while not rospy.is_shutdown() and self.mode != self.MODE_FINISHED:
            if self.mode == self.MODE_WAIT:
                pass
            elif self.mode == self.MODE_COLLECT:
                rospy.loginfo("Collecting images")
                self.runner.get_images(1)
                imgs = self.runner.result_as_nparray
                for cam in imgs:
                    fname = self.mask_dir + "/%s-new.png" % cam.split("/")[-1]
                    print fname, imgs[cam].shape,imgs[cam].dtype
                    scipy.misc.imsave(fname,imgs[cam].squeeze())
                    rospy.loginfo("wrote %s " % fname)
                self.mode = self.MODE_WAIT

            rospy.sleep(0.1)