Beispiel #1
0
    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)
Beispiel #2
0
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
Beispiel #3
0
 def test_dumps(self):
     lidar = Lidar("Lidar1")
     lidar.set_extrinsics(_TRANSLATION, _ROTATION)
     contents = lidar.dumps()
     assert contents == _LIDAR_DATA