code: def frames(self):
          
          # Run a software trigger
          times = []
  
          rospy.ServiceProxy('phoxi_camera/start_acquisition', Empty)()
          rospy.ServiceProxy('phoxi_camera/trigger_image', TriggerImage)()
  
          self._cur_color_im = None
          self._cur_depth_im = None
          self._cur_normal_map = None
  
          rospy.ServiceProxy('phoxi_camera/get_frame', GetFrame)(-1)
  
          max_time = 5.0
          time_waiting = 0.0
          while self._cur_color_im is None or self._cur_depth_im is None or self._cur_normal_map is None:
              time.sleep(0.05)
              time_waiting += 0.05
              if time_waiting > max_time:
                  raise SensorUnresponsiveException('PhoXi sensor seems to be non-responsive')
          return self._cur_color_im, self._cur_depth_im, None
docs: Retrieve a new frame from the PhoXi and convert it to a ColorImage,
          a DepthImage, and an IrImage.
  
          Returns
          -------
          :obj:`tuple` of :obj:`ColorImage`, :obj:`DepthImage`, :obj:`IrImage`, :obj:`numpy.ndarray`
              The ColorImage, DepthImage, and IrImage of the current frame.