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.
- calibrate_suite-0.1.0.dist-info/METADATA +761 -0
- calibrate_suite-0.1.0.dist-info/RECORD +47 -0
- calibrate_suite-0.1.0.dist-info/WHEEL +5 -0
- calibrate_suite-0.1.0.dist-info/entry_points.txt +3 -0
- calibrate_suite-0.1.0.dist-info/licenses/LICENSE +201 -0
- calibrate_suite-0.1.0.dist-info/top_level.txt +4 -0
- fleet_server/__init__.py +32 -0
- fleet_server/app.py +377 -0
- fleet_server/config.py +91 -0
- fleet_server/templates/error.html +57 -0
- fleet_server/templates/index.html +137 -0
- fleet_server/templates/viewer.html +490 -0
- fleet_server/utils.py +178 -0
- gui/__init__.py +2 -0
- gui/assets/2d-or-3d-fleet-upload.png +0 -0
- gui/assets/2d_3d_overlay_output.jpg +0 -0
- gui/assets/3d-or-2d-overlay_page.png +0 -0
- gui/assets/3d-or-2d-record-page.png +0 -0
- gui/assets/3d_3d_overlay_output.png +0 -0
- gui/assets/3d_or_2d_calibrate-page.png +0 -0
- gui/assets/GUI_homepage.png +0 -0
- gui/assets/hardware_setup.jpeg +0 -0
- gui/assets/single_lidar_calibrate_page.png +0 -0
- gui/assets/single_lidar_output.png +0 -0
- gui/assets/single_lidar_record_page.png +0 -0
- gui/assets/virya.jpg +0 -0
- gui/main.py +23 -0
- gui/widgets/calibrator_widget.py +977 -0
- gui/widgets/extractor_widget.py +561 -0
- gui/widgets/home_widget.py +117 -0
- gui/widgets/recorder_widget.py +127 -0
- gui/widgets/single_lidar_widget.py +673 -0
- gui/widgets/three_d_calib_widget.py +87 -0
- gui/widgets/two_d_calib_widget.py +86 -0
- gui/widgets/uploader_widget.py +151 -0
- gui/widgets/validator_widget.py +614 -0
- gui/windows/main_window.py +56 -0
- gui/windows/main_window_ui.py +65 -0
- rviz_configs/2D-3D.rviz +183 -0
- rviz_configs/3D-3D.rviz +184 -0
- rviz_configs/default_calib.rviz +167 -0
- utils/__init__.py +13 -0
- utils/calibration_common.py +23 -0
- utils/cli_calibrate.py +53 -0
- utils/cli_fleet_server.py +64 -0
- utils/data_extractor_common.py +87 -0
- 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)
|
rviz_configs/2D-3D.rviz
ADDED
|
@@ -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
|
rviz_configs/3D-3D.rviz
ADDED
|
@@ -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()
|