def test_set_extrinsics(self): lidar_1 = Lidar("test") lidar_1.set_extrinsics() assert lidar_1.extrinsics == Transform3D() lidar_2 = Lidar("test") lidar_2.set_extrinsics(_TRANSLATION, _ROTATION) assert lidar_2.extrinsics == Transform3D(_TRANSLATION, _ROTATION)
def test_import_cloud_files_to_fusiondataset(self, accesskey, url, config_name): gas_client = GAS(access_key=accesskey, url=url) try: cloud_client = gas_client.get_cloud_client(config_name) except ResourceNotExistError: pytest.skip(f"skip this case because there's no {config_name} config") auth_data = cloud_client.list_auth_data("tests")[:5] dataset_name = get_dataset_name() dataset_client = gas_client.create_dataset(dataset_name, True, config_name=config_name) dataset = FusionDataset(name=dataset_name) segment = dataset.create_segment("Segment1") lidar = Lidar("LIDAR") segment.sensors.add(lidar) for data in auth_data: data.label.classification = Classification("cat", attributes={"color": "red"}) frame = Frame() frame["LIDAR"] = data segment.append(frame) dataset_client = gas_client.upload_dataset(dataset, jobs=5) dataset_client.commit("import data") segment1 = FusionSegment("Segment1", client=dataset_client) assert len(segment1) == len(segment) assert segment1[0]["LIDAR"].path == segment[0]["LIDAR"].path.split("/")[-1] assert segment1[0]["LIDAR"].label.classification.category == "cat" assert segment1[0]["LIDAR"].label.classification.attributes["color"] == "red" assert len(auth_data) == len(segment) gas_client.delete_dataset(dataset_name)
def test_loads(self): sensors = Sensors.loads(_SENSORS_DATA) assert sensors[_LIDAR_DATA["name"]] == Lidar.loads(_LIDAR_DATA) assert sensors[_RADAR_DATA["name"]] == Radar.loads(_RADAR_DATA) assert sensors[_CAMERA_DATA["name"]] == Camera.loads(_CAMERA_DATA) assert sensors[_FISHEYE_CAMERA_DATA["name"]] == FisheyeCamera.loads( _FISHEYE_CAMERA_DATA)
def test_dumps(self): sensors = Sensors() sensors.add(Lidar.loads(_LIDAR_DATA)) sensors.add(Radar.loads(_RADAR_DATA)) sensors.add(Camera.loads(_CAMERA_DATA)) sensors.add(FisheyeCamera.loads(_FISHEYE_CAMERA_DATA)) assert sensors.dumps() == _SENSORS_DATA
def _load_sensors(calib_path: str) -> Sensors: try: import yaml # pylint: disable=import-outside-toplevel except ModuleNotFoundError as error: raise ModuleImportError(module_name=error.name, package_name="pyyaml") from error sensors = Sensors() lidar = Lidar("LIDAR") lidar.set_extrinsics() sensors.add(lidar) with open(os.path.join(calib_path, "extrinsics.yaml"), "r", encoding="utf-8") as fp: extrinsics = yaml.load(fp, Loader=yaml.FullLoader) for camera_calibration_file in glob(os.path.join(calib_path, "[0-9]*.yaml")): with open(camera_calibration_file, "r", encoding="utf-8") as fp: camera_calibration = yaml.load(fp, Loader=yaml.FullLoader) # camera_calibration_file looks like: # /path-to-CADC/2018_03_06/calib/00.yaml camera_name = f"CAM{os.path.splitext(os.path.basename(camera_calibration_file))[0]}" camera = Camera(camera_name) camera.description = camera_calibration["camera_name"] camera.set_extrinsics(matrix=extrinsics[f"T_LIDAR_{camera_name}"]) camera_matrix = camera_calibration["camera_matrix"]["data"] camera.set_camera_matrix( matrix=[camera_matrix[:3], camera_matrix[3:6], camera_matrix[6:9]]) distortion = camera_calibration["distortion_coefficients"]["data"] camera.set_distortion_coefficients( **dict(zip(("k1", "k2", "p1", "p2", "k3"), distortion))) sensors.add(camera) return sensors
def test_dumps(self): lidar = Lidar("Lidar1") lidar.set_extrinsics(_TRANSLATION, _ROTATION) contents = lidar.dumps() assert contents == _LIDAR_DATA
def test_set_rotation(self): lidar = Lidar("test") lidar.set_rotation(1, 2, 3, 4) assert lidar.extrinsics.rotation == _ROTATION
def test_set_translation(self): lidar = Lidar("test") lidar.set_translation(x=1, y=2, z=3) assert lidar.extrinsics.translation == _TRANSLATION
def test_init(self): lidar = Lidar("Lidar1") assert lidar.name == "Lidar1"