calibrate-suite 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. calibrate_suite-0.1.0.dist-info/METADATA +761 -0
  2. calibrate_suite-0.1.0.dist-info/RECORD +47 -0
  3. calibrate_suite-0.1.0.dist-info/WHEEL +5 -0
  4. calibrate_suite-0.1.0.dist-info/entry_points.txt +3 -0
  5. calibrate_suite-0.1.0.dist-info/licenses/LICENSE +201 -0
  6. calibrate_suite-0.1.0.dist-info/top_level.txt +4 -0
  7. fleet_server/__init__.py +32 -0
  8. fleet_server/app.py +377 -0
  9. fleet_server/config.py +91 -0
  10. fleet_server/templates/error.html +57 -0
  11. fleet_server/templates/index.html +137 -0
  12. fleet_server/templates/viewer.html +490 -0
  13. fleet_server/utils.py +178 -0
  14. gui/__init__.py +2 -0
  15. gui/assets/2d-or-3d-fleet-upload.png +0 -0
  16. gui/assets/2d_3d_overlay_output.jpg +0 -0
  17. gui/assets/3d-or-2d-overlay_page.png +0 -0
  18. gui/assets/3d-or-2d-record-page.png +0 -0
  19. gui/assets/3d_3d_overlay_output.png +0 -0
  20. gui/assets/3d_or_2d_calibrate-page.png +0 -0
  21. gui/assets/GUI_homepage.png +0 -0
  22. gui/assets/hardware_setup.jpeg +0 -0
  23. gui/assets/single_lidar_calibrate_page.png +0 -0
  24. gui/assets/single_lidar_output.png +0 -0
  25. gui/assets/single_lidar_record_page.png +0 -0
  26. gui/assets/virya.jpg +0 -0
  27. gui/main.py +23 -0
  28. gui/widgets/calibrator_widget.py +977 -0
  29. gui/widgets/extractor_widget.py +561 -0
  30. gui/widgets/home_widget.py +117 -0
  31. gui/widgets/recorder_widget.py +127 -0
  32. gui/widgets/single_lidar_widget.py +673 -0
  33. gui/widgets/three_d_calib_widget.py +87 -0
  34. gui/widgets/two_d_calib_widget.py +86 -0
  35. gui/widgets/uploader_widget.py +151 -0
  36. gui/widgets/validator_widget.py +614 -0
  37. gui/windows/main_window.py +56 -0
  38. gui/windows/main_window_ui.py +65 -0
  39. rviz_configs/2D-3D.rviz +183 -0
  40. rviz_configs/3D-3D.rviz +184 -0
  41. rviz_configs/default_calib.rviz +167 -0
  42. utils/__init__.py +13 -0
  43. utils/calibration_common.py +23 -0
  44. utils/cli_calibrate.py +53 -0
  45. utils/cli_fleet_server.py +64 -0
  46. utils/data_extractor_common.py +87 -0
  47. utils/gui_helpers.py +25 -0
@@ -0,0 +1,65 @@
1
+ def setup_styles(app):
2
+ """Apply global stylesheets to the application/window."""
3
+ style = """
4
+ QMainWindow {
5
+ background-color: #2b2b2b;
6
+ }
7
+ QWidget {
8
+ color: #e0e0e0;
9
+ font-family: "Ubuntu", "Liberation Sans", "DejaVu Sans", sans-serif;
10
+ font-size: 14px;
11
+ }
12
+ QTabWidget::pane {
13
+ border: 1px solid #444;
14
+ background: #333;
15
+ }
16
+ QTabBar::tab {
17
+ background: #2b2b2b;
18
+ color: #aaa;
19
+ padding: 10px 20px;
20
+ border: 1px solid #444;
21
+ border-bottom: none;
22
+ border-top-left-radius: 4px;
23
+ border-top-right-radius: 4px;
24
+ }
25
+ QTabBar::tab:selected {
26
+ background: #444;
27
+ color: white;
28
+ font-weight: bold;
29
+ }
30
+ QPushButton {
31
+ background-color: #3CB371;
32
+ border: 1px solid #666;
33
+ color: white;
34
+ padding: 8px 16px;
35
+ border-radius: 4px;
36
+ }
37
+ QPushButton:hover {
38
+ background-color: #666;
39
+ }
40
+ QLineEdit {
41
+ background-color: #444;
42
+ border: 1px solid #555;
43
+ color: white;
44
+ padding: 6px;
45
+ border-radius: 3px;
46
+ }
47
+ QGroupBox {
48
+ border: 1px solid #555;
49
+ border-radius: 5px;
50
+ margin-top: 10px;
51
+ font-weight: bold;
52
+ }
53
+ QGroupBox::title {
54
+ subcontrol-origin: margin;
55
+ subcontrol-position: top left;
56
+ padding: 0 5px;
57
+ }
58
+ QTextEdit {
59
+ background-color: #1e1e1e;
60
+ color: #00ff00;
61
+ font-family: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", monospace;
62
+ border: 1px solid #444;
63
+ }
64
+ """
65
+ app.setStyleSheet(style)
@@ -0,0 +1,183 @@
1
+ Panels:
2
+ - Class: rviz_common/Displays
3
+ Help Height: 228
4
+ Name: Displays
5
+ Property Tree Widget:
6
+ Expanded:
7
+ - /Global Options1
8
+ - /Status1
9
+ Splitter Ratio: 0.5
10
+ Tree Height: 205
11
+ - Class: rviz_common/Selection
12
+ Name: Selection
13
+ - Class: rviz_common/Tool Properties
14
+ Expanded:
15
+ - /2D Goal Pose1
16
+ - /Publish Point1
17
+ Name: Tool Properties
18
+ Splitter Ratio: 0.5886790156364441
19
+ - Class: rviz_common/Views
20
+ Expanded:
21
+ - /Current View1
22
+ Name: Views
23
+ Splitter Ratio: 0.5
24
+ - Class: rviz_common/Time
25
+ Experimental: false
26
+ Name: Time
27
+ SyncMode: 0
28
+ SyncSource: PointCloud2
29
+ Visualization Manager:
30
+ Class: ""
31
+ Displays:
32
+ - Alpha: 0.5
33
+ Cell Size: 1
34
+ Class: rviz_default_plugins/Grid
35
+ Color: 160; 160; 164
36
+ Enabled: true
37
+ Line Style:
38
+ Line Width: 0.029999999329447746
39
+ Value: Lines
40
+ Name: Grid
41
+ Normal Cell Count: 0
42
+ Offset:
43
+ X: 0
44
+ Y: 0
45
+ Z: 0
46
+ Plane: XY
47
+ Plane Cell Count: 10
48
+ Reference Frame: <Fixed Frame>
49
+ Value: true
50
+ - Alpha: 1
51
+ Autocompute Intensity Bounds: true
52
+ Autocompute Value Bounds:
53
+ Max Value: 10
54
+ Min Value: -10
55
+ Value: true
56
+ Axis: Z
57
+ Channel Name: intensity
58
+ Class: rviz_default_plugins/PointCloud2
59
+ Color: 255; 255; 255
60
+ Color Transformer: Intensity
61
+ Decay Time: 0
62
+ Enabled: true
63
+ Invert Rainbow: false
64
+ Max Color: 255; 255; 255
65
+ Max Intensity: 180
66
+ Min Color: 0; 0; 0
67
+ Min Intensity: 0
68
+ Name: PointCloud2
69
+ Position Transformer: XYZ
70
+ Selectable: true
71
+ Size (Pixels): 3
72
+ Size (m): 0.009999999776482582
73
+ Style: Flat Squares
74
+ Topic:
75
+ Depth: 5
76
+ Durability Policy: Volatile
77
+ Filter size: 10
78
+ History Policy: Keep Last
79
+ Reliability Policy: Reliable
80
+ Value: /velodyne_points
81
+ Use Fixed Frame: true
82
+ Use rainbow: true
83
+ Value: true
84
+ - Class: rviz_default_plugins/Image
85
+ Enabled: true
86
+ Max Value: 1
87
+ Median window: 5
88
+ Min Value: 0
89
+ Name: Image
90
+ Normalize Range: true
91
+ Topic:
92
+ Depth: 5
93
+ Durability Policy: Volatile
94
+ History Policy: Keep Last
95
+ Reliability Policy: Reliable
96
+ Value: /camera/camera/color/image_raw
97
+ Value: true
98
+ Enabled: true
99
+ Global Options:
100
+ Background Color: 48; 48; 48
101
+ Fixed Frame: velodyne
102
+ Frame Rate: 30
103
+ Name: root
104
+ Tools:
105
+ - Class: rviz_default_plugins/Interact
106
+ Hide Inactive Objects: true
107
+ - Class: rviz_default_plugins/MoveCamera
108
+ - Class: rviz_default_plugins/Select
109
+ - Class: rviz_default_plugins/FocusCamera
110
+ - Class: rviz_default_plugins/Measure
111
+ Line color: 128; 128; 0
112
+ - Class: rviz_default_plugins/SetInitialPose
113
+ Covariance x: 0.25
114
+ Covariance y: 0.25
115
+ Covariance yaw: 0.06853891909122467
116
+ Topic:
117
+ Depth: 5
118
+ Durability Policy: Volatile
119
+ History Policy: Keep Last
120
+ Reliability Policy: Reliable
121
+ Value: /initialpose
122
+ - Class: rviz_default_plugins/SetGoal
123
+ Topic:
124
+ Depth: 5
125
+ Durability Policy: Volatile
126
+ History Policy: Keep Last
127
+ Reliability Policy: Reliable
128
+ Value: /goal_pose
129
+ - Class: rviz_default_plugins/PublishPoint
130
+ Single click: true
131
+ Topic:
132
+ Depth: 5
133
+ Durability Policy: Volatile
134
+ History Policy: Keep Last
135
+ Reliability Policy: Reliable
136
+ Value: /clicked_point
137
+ Transformation:
138
+ Current:
139
+ Class: rviz_default_plugins/TF
140
+ Value: true
141
+ Views:
142
+ Current:
143
+ Class: rviz_default_plugins/Orbit
144
+ Distance: 10
145
+ Enable Stereo Rendering:
146
+ Stereo Eye Separation: 0.05999999865889549
147
+ Stereo Focal Distance: 1
148
+ Swap Stereo Eyes: false
149
+ Value: false
150
+ Focal Point:
151
+ X: 0
152
+ Y: 0
153
+ Z: 0
154
+ Focal Shape Fixed Size: true
155
+ Focal Shape Size: 0.05000000074505806
156
+ Invert Z Axis: false
157
+ Name: Current View
158
+ Near Clip Distance: 0.009999999776482582
159
+ Pitch: 0.32039836049079895
160
+ Target Frame: <Fixed Frame>
161
+ Value: Orbit (rviz)
162
+ Yaw: 0.665398120880127
163
+ Saved: ~
164
+ Window Geometry:
165
+ Displays:
166
+ collapsed: false
167
+ Height: 846
168
+ Hide Left Dock: false
169
+ Hide Right Dock: false
170
+ Image:
171
+ collapsed: false
172
+ QMainWindow State: 000000ff00000000fd000000040000000000000156000002b0fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000001ee000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d0065007200610000000231000000bc0000000000000000fb0000000a0049006d0061006700650100000231000000bc0000002800ffffff000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b0000002fb00fffffffb0000000800540069006d006501000000000000045000000000000000000000023f000002b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
173
+ Selection:
174
+ collapsed: false
175
+ Time:
176
+ collapsed: false
177
+ Tool Properties:
178
+ collapsed: false
179
+ Views:
180
+ collapsed: false
181
+ Width: 1200
182
+ X: 1047
183
+ Y: 111
@@ -0,0 +1,184 @@
1
+ Panels:
2
+ - Class: rviz_common/Displays
3
+ Help Height: 78
4
+ Name: Displays
5
+ Property Tree Widget:
6
+ Expanded:
7
+ - /Global Options1
8
+ - /Status1
9
+ - /Image1
10
+ Splitter Ratio: 0.5
11
+ Tree Height: 92
12
+ - Class: rviz_common/Selection
13
+ Name: Selection
14
+ - Class: rviz_common/Tool Properties
15
+ Expanded:
16
+ - /2D Goal Pose1
17
+ - /Publish Point1
18
+ Name: Tool Properties
19
+ Splitter Ratio: 0.5886790156364441
20
+ - Class: rviz_common/Views
21
+ Expanded:
22
+ - /Current View1
23
+ Name: Views
24
+ Splitter Ratio: 0.5
25
+ - Class: rviz_common/Time
26
+ Experimental: false
27
+ Name: Time
28
+ SyncMode: 0
29
+ SyncSource: PointCloud2
30
+ Visualization Manager:
31
+ Class: ""
32
+ Displays:
33
+ - Alpha: 0.5
34
+ Cell Size: 1
35
+ Class: rviz_default_plugins/Grid
36
+ Color: 160; 160; 164
37
+ Enabled: true
38
+ Line Style:
39
+ Line Width: 0.029999999329447746
40
+ Value: Lines
41
+ Name: Grid
42
+ Normal Cell Count: 0
43
+ Offset:
44
+ X: 0
45
+ Y: 0
46
+ Z: 0
47
+ Plane: XY
48
+ Plane Cell Count: 10
49
+ Reference Frame: <Fixed Frame>
50
+ Value: true
51
+ - Alpha: 1
52
+ Autocompute Intensity Bounds: true
53
+ Autocompute Value Bounds:
54
+ Max Value: 10
55
+ Min Value: -10
56
+ Value: true
57
+ Axis: Z
58
+ Channel Name: intensity
59
+ Class: rviz_default_plugins/PointCloud2
60
+ Color: 255; 255; 255
61
+ Color Transformer: Intensity
62
+ Decay Time: 0
63
+ Enabled: true
64
+ Invert Rainbow: false
65
+ Max Color: 255; 255; 255
66
+ Max Intensity: 217
67
+ Min Color: 0; 0; 0
68
+ Min Intensity: 0
69
+ Name: PointCloud2
70
+ Position Transformer: XYZ
71
+ Selectable: true
72
+ Size (Pixels): 3
73
+ Size (m): 0.009999999776482582
74
+ Style: Flat Squares
75
+ Topic:
76
+ Depth: 5
77
+ Durability Policy: Volatile
78
+ Filter size: 10
79
+ History Policy: Keep Last
80
+ Reliability Policy: Reliable
81
+ Value: /velodyne_points
82
+ Use Fixed Frame: true
83
+ Use rainbow: true
84
+ Value: true
85
+ - Class: rviz_default_plugins/Image
86
+ Enabled: true
87
+ Max Value: 1
88
+ Median window: 5
89
+ Min Value: 0
90
+ Name: Image
91
+ Normalize Range: true
92
+ Topic:
93
+ Depth: 5
94
+ Durability Policy: Volatile
95
+ History Policy: Keep Last
96
+ Reliability Policy: Reliable
97
+ Value: /zed/zed_node/left/image_rect_color
98
+ Value: true
99
+ Enabled: true
100
+ Global Options:
101
+ Background Color: 48; 48; 48
102
+ Fixed Frame: velodyne
103
+ Frame Rate: 30
104
+ Name: root
105
+ Tools:
106
+ - Class: rviz_default_plugins/Interact
107
+ Hide Inactive Objects: true
108
+ - Class: rviz_default_plugins/MoveCamera
109
+ - Class: rviz_default_plugins/Select
110
+ - Class: rviz_default_plugins/FocusCamera
111
+ - Class: rviz_default_plugins/Measure
112
+ Line color: 128; 128; 0
113
+ - Class: rviz_default_plugins/SetInitialPose
114
+ Covariance x: 0.25
115
+ Covariance y: 0.25
116
+ Covariance yaw: 0.06853891909122467
117
+ Topic:
118
+ Depth: 5
119
+ Durability Policy: Volatile
120
+ History Policy: Keep Last
121
+ Reliability Policy: Reliable
122
+ Value: /initialpose
123
+ - Class: rviz_default_plugins/SetGoal
124
+ Topic:
125
+ Depth: 5
126
+ Durability Policy: Volatile
127
+ History Policy: Keep Last
128
+ Reliability Policy: Reliable
129
+ Value: /goal_pose
130
+ - Class: rviz_default_plugins/PublishPoint
131
+ Single click: true
132
+ Topic:
133
+ Depth: 5
134
+ Durability Policy: Volatile
135
+ History Policy: Keep Last
136
+ Reliability Policy: Reliable
137
+ Value: /clicked_point
138
+ Transformation:
139
+ Current:
140
+ Class: rviz_default_plugins/TF
141
+ Value: true
142
+ Views:
143
+ Current:
144
+ Class: rviz_default_plugins/Orbit
145
+ Distance: 10
146
+ Enable Stereo Rendering:
147
+ Stereo Eye Separation: 0.05999999865889549
148
+ Stereo Focal Distance: 1
149
+ Swap Stereo Eyes: false
150
+ Value: false
151
+ Focal Point:
152
+ X: 0
153
+ Y: 0
154
+ Z: 0
155
+ Focal Shape Fixed Size: true
156
+ Focal Shape Size: 0.05000000074505806
157
+ Invert Z Axis: false
158
+ Name: Current View
159
+ Near Clip Distance: 0.009999999776482582
160
+ Pitch: 0.32039836049079895
161
+ Target Frame: <Fixed Frame>
162
+ Value: Orbit (rviz)
163
+ Yaw: 0.665398120880127
164
+ Saved: ~
165
+ Window Geometry:
166
+ Displays:
167
+ collapsed: false
168
+ Height: 846
169
+ Hide Left Dock: false
170
+ Hide Right Dock: false
171
+ Image:
172
+ collapsed: false
173
+ QMainWindow State: 000000ff00000000fd000000040000000000000208000002b0fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000000e7000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d006100670065010000012a000001c30000002800ffffff000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b0000002fb00fffffffb0000000800540069006d006501000000000000045000000000000000000000018d000002b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
174
+ Selection:
175
+ collapsed: false
176
+ Time:
177
+ collapsed: false
178
+ Tool Properties:
179
+ collapsed: false
180
+ Views:
181
+ collapsed: false
182
+ Width: 1200
183
+ X: 720
184
+ Y: 79
@@ -0,0 +1,167 @@
1
+ Panels:
2
+ - Class: rviz_common/Displays
3
+ Help Height: 78
4
+ Name: Displays
5
+ Property Tree Widget:
6
+ Expanded:
7
+ - /Global Options1
8
+ - /Status1
9
+ Splitter Ratio: 0.5
10
+ Tree Height: 549
11
+ - Class: rviz_common/Selection
12
+ Name: Selection
13
+ - Class: rviz_common/Tool Properties
14
+ Expanded:
15
+ - /2D Goal Pose1
16
+ - /Publish Point1
17
+ Name: Tool Properties
18
+ Splitter Ratio: 0.5886790156364441
19
+ - Class: rviz_common/Views
20
+ Expanded:
21
+ - /Current View1
22
+ Name: Views
23
+ Splitter Ratio: 0.5
24
+ - Class: rviz_common/Time
25
+ Experimental: false
26
+ Name: Time
27
+ SyncMode: 0
28
+ SyncSource: PointCloud2
29
+ Visualization Manager:
30
+ Class: ""
31
+ Displays:
32
+ - Alpha: 0.5
33
+ Cell Size: 1
34
+ Class: rviz_default_plugins/Grid
35
+ Color: 160; 160; 164
36
+ Enabled: true
37
+ Line Style:
38
+ Line Width: 0.029999999329447746
39
+ Value: Lines
40
+ Name: Grid
41
+ Normal Cell Count: 0
42
+ Offset:
43
+ X: 0
44
+ Y: 0
45
+ Z: 0
46
+ Plane: XY
47
+ Plane Cell Count: 10
48
+ Reference Frame: <Fixed Frame>
49
+ Value: true
50
+ - Alpha: 1
51
+ Autocompute Intensity Bounds: true
52
+ Autocompute Value Bounds:
53
+ Max Value: 10
54
+ Min Value: -10
55
+ Value: true
56
+ Axis: Z
57
+ Channel Name: intensity
58
+ Class: rviz_default_plugins/PointCloud2
59
+ Color: 255; 255; 255
60
+ Color Transformer: Intensity
61
+ Decay Time: 0
62
+ Enabled: true
63
+ Invert Rainbow: false
64
+ Max Color: 255; 255; 255
65
+ Max Intensity: 196
66
+ Min Color: 0; 0; 0
67
+ Min Intensity: 0
68
+ Name: PointCloud2
69
+ Position Transformer: XYZ
70
+ Selectable: true
71
+ Size (Pixels): 3
72
+ Size (m): 0.009999999776482582
73
+ Style: Flat Squares
74
+ Topic:
75
+ Depth: 5
76
+ Durability Policy: Volatile
77
+ Filter size: 10
78
+ History Policy: Keep Last
79
+ Reliability Policy: Reliable
80
+ Value: /velodyne_points
81
+ Use Fixed Frame: true
82
+ Use rainbow: true
83
+ Value: true
84
+ Enabled: true
85
+ Global Options:
86
+ Background Color: 48; 48; 48
87
+ Fixed Frame: velodyne
88
+ Frame Rate: 30
89
+ Name: root
90
+ Tools:
91
+ - Class: rviz_default_plugins/Interact
92
+ Hide Inactive Objects: true
93
+ - Class: rviz_default_plugins/MoveCamera
94
+ - Class: rviz_default_plugins/Select
95
+ - Class: rviz_default_plugins/FocusCamera
96
+ - Class: rviz_default_plugins/Measure
97
+ Line color: 128; 128; 0
98
+ - Class: rviz_default_plugins/SetInitialPose
99
+ Covariance x: 0.25
100
+ Covariance y: 0.25
101
+ Covariance yaw: 0.06853891909122467
102
+ Topic:
103
+ Depth: 5
104
+ Durability Policy: Volatile
105
+ History Policy: Keep Last
106
+ Reliability Policy: Reliable
107
+ Value: /initialpose
108
+ - Class: rviz_default_plugins/SetGoal
109
+ Topic:
110
+ Depth: 5
111
+ Durability Policy: Volatile
112
+ History Policy: Keep Last
113
+ Reliability Policy: Reliable
114
+ Value: /goal_pose
115
+ - Class: rviz_default_plugins/PublishPoint
116
+ Single click: true
117
+ Topic:
118
+ Depth: 5
119
+ Durability Policy: Volatile
120
+ History Policy: Keep Last
121
+ Reliability Policy: Reliable
122
+ Value: /clicked_point
123
+ Transformation:
124
+ Current:
125
+ Class: rviz_default_plugins/TF
126
+ Value: true
127
+ Views:
128
+ Current:
129
+ Class: rviz_default_plugins/Orbit
130
+ Distance: 10
131
+ Enable Stereo Rendering:
132
+ Stereo Eye Separation: 0.05999999865889549
133
+ Stereo Focal Distance: 1
134
+ Swap Stereo Eyes: false
135
+ Value: false
136
+ Focal Point:
137
+ X: 0
138
+ Y: 0
139
+ Z: 0
140
+ Focal Shape Fixed Size: true
141
+ Focal Shape Size: 0.05000000074505806
142
+ Invert Z Axis: false
143
+ Name: Current View
144
+ Near Clip Distance: 0.009999999776482582
145
+ Pitch: 0.32039836049079895
146
+ Target Frame: <Fixed Frame>
147
+ Value: Orbit (rviz)
148
+ Yaw: 0.665398120880127
149
+ Saved: ~
150
+ Window Geometry:
151
+ Displays:
152
+ collapsed: false
153
+ Height: 846
154
+ Hide Left Dock: false
155
+ Hide Right Dock: false
156
+ QMainWindow State: 000000ff00000000fd000000040000000000000156000002b0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002b0000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b0000002fb00fffffffb0000000800540069006d006501000000000000045000000000000000000000023f000002b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
157
+ Selection:
158
+ collapsed: false
159
+ Time:
160
+ collapsed: false
161
+ Tool Properties:
162
+ collapsed: false
163
+ Views:
164
+ collapsed: false
165
+ Width: 1200
166
+ X: 720
167
+ Y: 97
utils/__init__.py ADDED
@@ -0,0 +1,13 @@
1
+ """Shared utility modules for calibration pipeline."""
2
+
3
+ from .calibration_common import load_camera_intrinsics
4
+ from .gui_helpers import wrap_with_back
5
+ from .data_extractor_common import flush_print, save_pc2_to_pcd, depth_to_camera_cloud
6
+
7
+ __all__ = [
8
+ 'load_camera_intrinsics',
9
+ 'wrap_with_back',
10
+ 'flush_print',
11
+ 'save_pc2_to_pcd',
12
+ 'depth_to_camera_cloud',
13
+ ]
@@ -0,0 +1,23 @@
1
+ """Shared calibration utilities."""
2
+
3
+ import os
4
+ import yaml
5
+ import numpy as np
6
+
7
+
8
+ def load_camera_intrinsics(data_root, intrinsics_file=None):
9
+ """
10
+ Load camera intrinsics from camera_intrinsics.yaml.
11
+ """
12
+ if intrinsics_file:
13
+ intrinsics_path = intrinsics_file
14
+ else:
15
+ intrinsics_path = os.path.join(data_root, "camera_intrinsics.yaml")
16
+
17
+ with open(intrinsics_path) as f:
18
+ calib_data = yaml.safe_load(f)
19
+
20
+ K = np.array(calib_data['camera_matrix'], dtype=np.float64)
21
+ D = np.array(calib_data['dist_coeffs'], dtype=np.float64).ravel()
22
+
23
+ return K, D
utils/cli_calibrate.py ADDED
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Entry point for calibrate-suite GUI application.
4
+
5
+ Usage: calibrate-suite [options]
6
+ """
7
+
8
+ import sys
9
+ import argparse
10
+
11
+
12
+ def main():
13
+ """Launch the calibrate-suite GUI application."""
14
+ parser = argparse.ArgumentParser(
15
+ prog="calibrate-suite",
16
+ description="Calibrate-Suite: Multi-Modal Sensor Calibration GUI",
17
+ )
18
+ parser.add_argument(
19
+ "--version",
20
+ action="version",
21
+ version="calibrate-suite 0.1.0",
22
+ )
23
+ parser.add_argument(
24
+ "--headless",
25
+ action="store_true",
26
+ help="Run in headless mode (no GUI)",
27
+ )
28
+
29
+ args = parser.parse_args()
30
+
31
+ if args.headless:
32
+ print(
33
+ "Headless mode not yet supported. Please use GUI or REST API (fleet-server)."
34
+ )
35
+ sys.exit(1)
36
+
37
+ # Import here to avoid GUI dependencies when not needed
38
+ try:
39
+ from gui.main import main as gui_main
40
+
41
+ gui_main()
42
+ except ImportError as e:
43
+ print(
44
+ f"Error: GUI dependencies not installed. Please install with:\n"
45
+ f" pip install calibrate-suite[gui]\n"
46
+ f"Or for full features:\n"
47
+ f" pip install calibrate-suite[full]"
48
+ )
49
+ sys.exit(1)
50
+
51
+
52
+ if __name__ == "__main__":
53
+ main()