in a2d2/src/rosbag_producer.py [0:0]
def __record_pcl_from_s3(self, manifest=None, ros_topic=None, sensor=None, frame_id=None):
s3_client = get_s3_client()
req = Queue()
resp = Queue()
s3_reader = S3Reader(req, resp)
s3_reader.start()
lidar_view = self.request.get("lidar_view", "camera")
vehicle_transform_matrix = self.__sensor_to_vehicle_matrix(sensor=sensor) if lidar_view == "vehicle" else None
while True:
files = None
while not files and manifest.is_open():
files = manifest.fetch()
if not files:
break
for f in files:
bucket = f[0]
key = f[1]
req.put(bucket+" "+key)
self.__process_s3_pcl_files(ros_topic=ros_topic,
files=files, resp=resp, frame_id=frame_id, s3_client=s3_client,
lidar_view=lidar_view, vehicle_transform_matrix=vehicle_transform_matrix)
if self.request['preview']:
break
req.put("__close__")
s3_reader.join(timeout=2)
if s3_reader.is_alive():
s3_reader.terminate()
self.topic_active[ros_topic] = False