diff options
author | gennyble <gen@nyble.dev> | 2023-09-10 02:44:01 -0500 |
---|---|---|
committer | gennyble <gen@nyble.dev> | 2023-09-10 02:44:01 -0500 |
commit | a962ba9c853a797e9a41b2830ec0181b167d8cd9 (patch) | |
tree | 7de53dfcaf87c5d4b43f2e8b38161eb193c136ad /lri-proto/proto/mirror_system.proto | |
parent | 70187683361d97a8b5a251567323c323c90302f2 (diff) | |
download | lri-rs-a962ba9c853a797e9a41b2830ec0181b167d8cd9.tar.gz lri-rs-a962ba9c853a797e9a41b2830ec0181b167d8cd9.zip |
reorg
Diffstat (limited to 'lri-proto/proto/mirror_system.proto')
-rw-r--r-- | lri-proto/proto/mirror_system.proto | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lri-proto/proto/mirror_system.proto b/lri-proto/proto/mirror_system.proto new file mode 100644 index 0000000..4bb057e --- /dev/null +++ b/lri-proto/proto/mirror_system.proto @@ -0,0 +1,50 @@ +syntax = "proto2"; + +package ltpb; + +import "matrix3x3f.proto"; +import "point3f.proto"; +import "range2f.proto"; + +message MirrorSystem { + required Point3F real_camera_location = 1; + required Matrix3x3F real_camera_orientation = 2; + required Point3F rotation_axis = 3; + required Point3F point_on_rotation_axis = 4; + required float distance_mirror_plane_to_point_on_rotation_axis = 5; + required Point3F mirror_normal_at_zero_degrees = 6; + required bool flip_img_around_x = 7; + required Range2F mirror_angle_range = 8; + optional float reprojection_error = 9; +} + +message MirrorActuatorMapping { + required TransformationType transformation_type = 1; + enum TransformationType { + MEAN_STD_NORMALIZE = 0; + TAN_HALF_THETA = 1; + } + + required float actuator_length_offset = 2; + required float actuator_length_scale = 3; + required float mirror_angle_offset = 4; + required float mirror_angle_scale = 5; + + repeated ActuatorAnglePair actuator_angle_pair_vec = 6; + message ActuatorAnglePair { + required int32 hall_code = 1; + required float angle = 2; + } + + required QuadraticModel quadratic_model = 7; + message QuadraticModel { + required bool use_rplus_for_left_segment = 1; + required bool use_rplus_for_right_segment = 2; + required float inflection_value = 3; + repeated float model_coeffs = 4 [packed = true]; + } + + optional float angle_to_hall_code_error = 8; + optional float hall_code_to_angle_error = 9; + optional Range2F hall_code_range = 10; +} |