calibrate-suite 0.1.0__py3-none-any.whl → 0.1.2__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 → calibrate_suite-0.1.2.dist-info}/METADATA +113 -45
- {calibrate_suite-0.1.0.dist-info → calibrate_suite-0.1.2.dist-info}/RECORD +14 -11
- {calibrate_suite-0.1.0.dist-info → calibrate_suite-0.1.2.dist-info}/entry_points.txt +1 -0
- gui/assets/2d-calibrate-page.png +0 -0
- gui/assets/2d-overlay-page.png +0 -0
- gui/assets/2d-record-page.png +0 -0
- gui/widgets/extractor_widget.py +12 -1
- rviz_configs/3D-3D.rviz +3 -3
- {calibrate_suite-0.1.0.dist-info → calibrate_suite-0.1.2.dist-info}/WHEEL +0 -0
- {calibrate_suite-0.1.0.dist-info → calibrate_suite-0.1.2.dist-info}/licenses/LICENSE +0 -0
- {calibrate_suite-0.1.0.dist-info → calibrate_suite-0.1.2.dist-info}/top_level.txt +0 -0
- /gui/assets/{3d_or_2d_calibrate-page.png → 3d-calibrate-page.png} +0 -0
- /gui/assets/{3d-or-2d-overlay_page.png → 3d-overlay-page.png} +0 -0
- /gui/assets/{3d-or-2d-record-page.png → 3d-record-page.png} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: calibrate-suite
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Comprehensive camera-lidar calibration suite with GUI and fleet management
|
|
5
5
|
Home-page: https://github.com/Opera5/calibrate-suite
|
|
6
6
|
Author: Jamih
|
|
@@ -149,46 +149,39 @@ sudo apt update
|
|
|
149
149
|
|
|
150
150
|
### Installation Options
|
|
151
151
|
|
|
152
|
-
**Option 1: ROS2 + System Packages (Recommended for ROS users)**
|
|
152
|
+
**Option 1: ROS2 + System Packages (Recommended for ROS users in development mode)**
|
|
153
153
|
```bash
|
|
154
154
|
# Install system dependencies
|
|
155
155
|
sudo apt install python3-opencv python3-open3d python3-pyqt5 python3-yaml
|
|
156
156
|
|
|
157
|
+
# Install in development mode
|
|
158
|
+
pip install -e .
|
|
159
|
+
|
|
160
|
+
# Or with GUI dependencies
|
|
161
|
+
pip install -e .[gui]
|
|
162
|
+
|
|
163
|
+
# Or with all features
|
|
164
|
+
pip install -e .[full]
|
|
165
|
+
|
|
157
166
|
# Build with ROS2
|
|
158
167
|
cd ~/calib_ws
|
|
159
168
|
colcon build --packages-select calibrate-suite
|
|
160
169
|
source install/setup.bash
|
|
161
|
-
|
|
162
|
-
# Launch after installation
|
|
163
|
-
calibrate-suite # GUI
|
|
164
|
-
fleet-server # REST API
|
|
165
170
|
```
|
|
166
171
|
|
|
167
172
|
**Option 2: pip - Core Only (Minimal)**
|
|
168
173
|
```bash
|
|
169
|
-
pip install calibrate-suite
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**Option 3: pip - With Computer Vision**
|
|
173
|
-
```bash
|
|
174
|
-
pip install calibrate-suite[cv]
|
|
174
|
+
pip install calibrate-suite==0.1.0
|
|
175
175
|
```
|
|
176
|
-
|
|
177
|
-
**Option 4: pip - With 3D Processing**
|
|
176
|
+
**Option 3: pip - with full features**
|
|
178
177
|
```bash
|
|
179
|
-
pip install calibrate-suite[
|
|
178
|
+
pip install calibrate-suite==0.1.0 [full]
|
|
180
179
|
```
|
|
181
|
-
|
|
182
|
-
**Option 5: pip - With GUI**
|
|
183
|
-
```bash
|
|
184
|
-
pip install calibrate-suite[gui]
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
**Option 6: pip - Full Installation (Isolated venv recommended)**
|
|
180
|
+
**Option 4: pip - Full Installation (Isolated venv recommended)**
|
|
188
181
|
```bash
|
|
189
182
|
python3 -m venv calib_env
|
|
190
183
|
source calib_env/bin/activate
|
|
191
|
-
pip install calibrate-suite
|
|
184
|
+
pip install calibrate-suite==0.1.0
|
|
192
185
|
|
|
193
186
|
# Launch commands after installation
|
|
194
187
|
calibrate-suite # GUI
|
|
@@ -235,6 +228,34 @@ fleet-server --version
|
|
|
235
228
|
|
|
236
229
|
### Known Conflicts & Solutions
|
|
237
230
|
|
|
231
|
+
**Issue: RViz snap glibc conflicts**
|
|
232
|
+
```
|
|
233
|
+
Problem: RViz snap conflicts with system glibc (__libc_pthread_init error)
|
|
234
|
+
Solution: Use system RViz instead of snap
|
|
235
|
+
sudo apt install ros-humble-rviz2
|
|
236
|
+
# OR continue without RViz (extractor still works)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Issue: NumPy version conflicts**
|
|
240
|
+
```
|
|
241
|
+
Problem: Mixed system (1.21.5) and pip NumPy versions causing sklearn conflicts
|
|
242
|
+
Solution: Use consistent package sources
|
|
243
|
+
# Remove pip scientific packages
|
|
244
|
+
pip uninstall numpy scipy scikit-learn open3d opencv-python
|
|
245
|
+
|
|
246
|
+
# Use system packages
|
|
247
|
+
sudo apt install python3-numpy python3-scipy python3-sklearn python3-opencv python3-open3d
|
|
248
|
+
|
|
249
|
+
# Reinstall calibrate-suite without dependencies
|
|
250
|
+
pip install -e . --no-deps
|
|
251
|
+
or
|
|
252
|
+
# Remove pip-installed numpy and opencv
|
|
253
|
+
pip uninstall numpy opencv-python
|
|
254
|
+
|
|
255
|
+
# Use system packages
|
|
256
|
+
sudo apt install python3-numpy python3-opencv
|
|
257
|
+
```
|
|
258
|
+
|
|
238
259
|
**Issue: OpenCV conflicts with system Qt/RViz**
|
|
239
260
|
```
|
|
240
261
|
Problem: pip opencv-python can conflict with system OpenCV
|
|
@@ -279,19 +300,34 @@ calibrate-suite
|
|
|
279
300
|
|
|
280
301
|
**GUI Workflow Tabs:**
|
|
281
302
|
|
|
282
|
-
| Home
|
|
303
|
+
| Home |
|
|
304
|
+
| |
|
|
305
|
+
|
|
306
|
+
| Single-LiDAR Record | Calibrate |
|
|
307
|
+
|---|---|
|
|
308
|
+
|  |  |
|
|
309
|
+
|
|
310
|
+
| 2D-3D Record page | 3D-3D Record page |
|
|
311
|
+
|---|---|
|
|
312
|
+
|  |  |
|
|
313
|
+
|
|
314
|
+
| 2D-3D Calibrate page | 3D-3D Calibrate page |
|
|
283
315
|
|---|---|
|
|
284
|
-
|  |  |
|
|
317
|
+
|
|
318
|
+
| 2D-3D Overlay page | 3D-3D Overlay page |
|
|
319
|
+
|---|---|
|
|
320
|
+
|  |  |
|
|
285
321
|
|
|
286
322
|
### Command-Line (Quick Calibration)
|
|
287
323
|
```bash
|
|
288
324
|
cd /home/jamih/calib_ws/src/calibrate-suite/src
|
|
289
325
|
|
|
290
326
|
#launching calibrator suite from terminal
|
|
291
|
-
# Method
|
|
327
|
+
# Method 1: Direct Python execution
|
|
292
328
|
python3 -m gui.main
|
|
293
329
|
|
|
294
|
-
# Method
|
|
330
|
+
# Method 2: Direct script execution
|
|
295
331
|
python3 gui/main.py
|
|
296
332
|
|
|
297
333
|
# 2D-3D Calibration (AprilTag-based, recommended)
|
|
@@ -313,7 +349,7 @@ python3 2d_3d_data_extractor.py \
|
|
|
313
349
|
python3 2d_3d_calibrator.py --data_root ../calib_data/multimodal_captures
|
|
314
350
|
|
|
315
351
|
# 3. Visualize results
|
|
316
|
-
python3
|
|
352
|
+
python3 2d_3d_overlay.py --data_root ../calib_data/multimodal_captures
|
|
317
353
|
```
|
|
318
354
|
|
|
319
355
|
---
|
|
@@ -358,11 +394,6 @@ python3 visualize_alignment.py --data_root ../calib_data/multimodal_captures
|
|
|
358
394
|
```
|
|
359
395
|
GUI → Single LiDAR Tab → Upload PCD files → Select method → Run → View metrics
|
|
360
396
|
```
|
|
361
|
-
|
|
362
|
-
| Record | Calibrate |
|
|
363
|
-
|---|---|
|
|
364
|
-
|  |  |
|
|
365
|
-
|
|
366
397
|
---
|
|
367
398
|
|
|
368
399
|
### Framework 2: 3D-3D Camera-LiDAR Calibration
|
|
@@ -459,17 +490,13 @@ final_extrinsic.yaml:
|
|
|
459
490
|
GUI → 2D-3D Tab → Select data directory → Configure quality filter → Run → View metrics
|
|
460
491
|
```
|
|
461
492
|
|
|
462
|
-
| GUI Interface | Alignment Visualization |
|
|
463
|
-
|---|---|
|
|
464
|
-
|  |  |
|
|
465
|
-
|
|
466
493
|
---
|
|
467
494
|
|
|
468
|
-
## 💻 Command-Line Tools
|
|
495
|
+
## 💻 Command-Line Tools(without GUI)
|
|
469
496
|
|
|
470
497
|
### Data Extraction Tools
|
|
471
498
|
```bash
|
|
472
|
-
# Synchronized extraction from ROS2 bag
|
|
499
|
+
# Synchronized extraction from ROS2 bag for 3d-3d mode
|
|
473
500
|
cd src
|
|
474
501
|
python3 3d_3d_data_extractor.py \
|
|
475
502
|
--bag path-to-bag \
|
|
@@ -477,13 +504,13 @@ python3 3d_3d_data_extractor.py \
|
|
|
477
504
|
--num-poses 20 \
|
|
478
505
|
--sync-tolerance 100
|
|
479
506
|
|
|
480
|
-
# Extract camera images only
|
|
507
|
+
# Extract camera images only for 2D-3D mode
|
|
481
508
|
python3 2d_3d_data_extractor.py \
|
|
482
509
|
--bag path-to-bag \
|
|
483
510
|
--type camera \
|
|
484
511
|
--output ../calib_data/camera_images
|
|
485
512
|
|
|
486
|
-
# Extract LiDAR point clouds only
|
|
513
|
+
# Extract LiDAR point clouds only for 2D-3D mode
|
|
487
514
|
python3 2d_3d_data_extractor.py \
|
|
488
515
|
--bag path-to-bag \
|
|
489
516
|
--type lidar \
|
|
@@ -527,12 +554,26 @@ python3 2d_3d_overlay.py \
|
|
|
527
554
|
--data_root ../calib_data/multimodal_captures \
|
|
528
555
|
--pose 1
|
|
529
556
|
|
|
530
|
-
# generate/Verify corner detection
|
|
557
|
+
# generate/Verify corner detection in lidar and camera
|
|
531
558
|
python3 camtag_det.py \
|
|
532
559
|
--data_root ../calib_data/multimodal_captures
|
|
533
560
|
|
|
534
561
|
python3 lidtag_det.py \
|
|
535
|
-
|
|
562
|
+
--data_root ../calib_data/multimodal_captures
|
|
563
|
+
```
|
|
564
|
+
### To use the package camera calibrator(if you're using AprilTag Grid)
|
|
565
|
+
```bash
|
|
566
|
+
# After pip install calibrate-suite
|
|
567
|
+
calibrate-camera --data_root /path/to/data
|
|
568
|
+
|
|
569
|
+
#For PyPI Users (after adding entry point)
|
|
570
|
+
pip install calibrate-suite[cv] # Need OpenCV
|
|
571
|
+
calibrate-camera --data_root ./my_data
|
|
572
|
+
|
|
573
|
+
#if you already have your camera intrinsics,
|
|
574
|
+
#make sure to select them in the GUI before running any tab execution
|
|
575
|
+
#as it has hardcoded intrinsics params(though if you capture with the GUI,
|
|
576
|
+
#the system saves camera_intrinsics.yaml once, but verify path is right in GUI)
|
|
536
577
|
```
|
|
537
578
|
---
|
|
538
579
|
|
|
@@ -540,7 +581,7 @@ python3 lidtag_det.py \
|
|
|
540
581
|
|
|
541
582
|
### Directory Structure (Package-Created)
|
|
542
583
|
|
|
543
|
-
When using calibrate-suite, the following directory structure is created(note
|
|
584
|
+
When using calibrate-suite, the following directory structure is created(note: they can be changed as per your wish in the GUI or through terminal by passing --data-root flag with folder path):
|
|
544
585
|
|
|
545
586
|
```
|
|
546
587
|
calib_data/
|
|
@@ -564,6 +605,33 @@ calib_data/
|
|
|
564
605
|
|
|
565
606
|
```
|
|
566
607
|
|
|
608
|
+
### Camera Intrinsics Format
|
|
609
|
+
|
|
610
|
+
All calibrate-suite scripts use a standardized `camera_intrinsics.yaml` format. If you have your own camera intrinsics, use this exact format:
|
|
611
|
+
|
|
612
|
+
```yaml
|
|
613
|
+
# Standard format supported across all calibrate-suite scripts
|
|
614
|
+
camera_matrix: [[fx, 0.0, cx], [0.0, fy, cy], [0.0, 0.0, 1.0]] # 3x3 intrinsic matrix
|
|
615
|
+
dist_coeffs: [k1, k2, p1, p2, k3] # Distortion coefficients
|
|
616
|
+
image_size: [width, height] # Image dimensions in pixels
|
|
617
|
+
distortion_model: "plumb_bob" # OpenCV distortion model
|
|
618
|
+
camera_name: "camera_frame" # Camera frame ID (optional)
|
|
619
|
+
|
|
620
|
+
# Example with real values:
|
|
621
|
+
camera_matrix: [[1364.0, 0.0, 944.66], [0.0, 1363.42, 570.16], [0.0, 0.0, 1.0]]
|
|
622
|
+
dist_coeffs: [0.1, -0.2, 0.001, 0.002, 0.05]
|
|
623
|
+
image_size: [1920, 1080]
|
|
624
|
+
distortion_model: "plumb_bob"
|
|
625
|
+
camera_name: "camera_optical_frame"
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
**Important Notes:**
|
|
629
|
+
- File must be named exactly `camera_intrinsics.yaml`
|
|
630
|
+
- Place in your data root directory (e.g., `calib_data/multimodal_captures/camera_intrinsics.yaml`)
|
|
631
|
+
- `camera_matrix` must be a 3×3 nested list (not a flat array)
|
|
632
|
+
- `dist_coeffs` must be a flat list of 5 coefficients [k1, k2, p1, p2, k3]
|
|
633
|
+
- All extractors, calibrators, and visualization scripts use this format
|
|
634
|
+
|
|
567
635
|
### Board Geometry Configuration
|
|
568
636
|
```yaml
|
|
569
637
|
board_type: "AprilTag"
|
|
@@ -757,5 +825,5 @@ A: Run separate calibrations for each camera+LiDAR pair. Combine results using p
|
|
|
757
825
|
|
|
758
826
|
## 📄 Version
|
|
759
827
|
|
|
760
|
-
**Package Version:** 0.1.
|
|
828
|
+
**Package Version:** 0.1.2
|
|
761
829
|
**License:** MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
calibrate_suite-0.1.
|
|
1
|
+
calibrate_suite-0.1.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
2
2
|
fleet_server/__init__.py,sha256=Jf0LmjLdSxA38SIb-lY0nIdeW66QK_FsMxbh-ZqqGx4,870
|
|
3
3
|
fleet_server/app.py,sha256=qzc0ycWyFTjvi_DppD_TqGeO3vxJT6tv2EEUDiSJL7I,13307
|
|
4
4
|
fleet_server/config.py,sha256=aMrHL_z6YuVharn9OLejgKgldxe8wRh8t5NKIrsDMa4,2737
|
|
@@ -8,12 +8,15 @@ fleet_server/templates/index.html,sha256=YpAqEIQfWN46DP8N5mawyzRiypk56vIpExq9_Xm
|
|
|
8
8
|
fleet_server/templates/viewer.html,sha256=2veSnySQiw6w8O7j0rIwSe4j2ANDCsctaaUXyMige9g,16620
|
|
9
9
|
gui/__init__.py,sha256=NQP_dgQPkLbTEhfhg02dSnsEhav5nS5_BN6CUeNjG1Y,71
|
|
10
10
|
gui/main.py,sha256=aiVmi8WUiErp75DxEk26lcIsCGETW8bDmDl1bGTaE6Y,492
|
|
11
|
+
gui/assets/2d-calibrate-page.png,sha256=6vnz-0xs56PROdsJvoS3nc87lcXQVgNZH3XKYObY440,97464
|
|
11
12
|
gui/assets/2d-or-3d-fleet-upload.png,sha256=oYGgiSd2sI3yliMyHNYjkkhmpL8K3fTnHPCArszqi-E,41886
|
|
13
|
+
gui/assets/2d-overlay-page.png,sha256=Nh72KtFcBdMRYYGXN4MuVFdD28CFjvLuD7I_jQR-4Zk,56144
|
|
14
|
+
gui/assets/2d-record-page.png,sha256=_-o2GNtuQHxlRW_k6EmQJNEYB73xStvLPhHuiY-PFqo,69184
|
|
12
15
|
gui/assets/2d_3d_overlay_output.jpg,sha256=UX77BHFz76YG32E6Ondgstkv6qyNE9m2Tv6MrhK2oBg,801670
|
|
13
|
-
gui/assets/3d-
|
|
14
|
-
gui/assets/3d-
|
|
16
|
+
gui/assets/3d-calibrate-page.png,sha256=MmzOANq-ny9WwLH26tXNdqdQw22HyLZmyYw5Wd0SIQE,91215
|
|
17
|
+
gui/assets/3d-overlay-page.png,sha256=s59mEWhtqlXg04p4vmVQbMR0g20AXAZ2_nXYP_21KrI,62965
|
|
18
|
+
gui/assets/3d-record-page.png,sha256=Lsbi0XjJgVDJeKZfSqzWKS90K-xsLzd_DGdaCRNDXVg,71243
|
|
15
19
|
gui/assets/3d_3d_overlay_output.png,sha256=kA20FdLb7H_AZW0iPPQ7KWHIdpYQ9ku8UsaQOau7NBY,143166
|
|
16
|
-
gui/assets/3d_or_2d_calibrate-page.png,sha256=MmzOANq-ny9WwLH26tXNdqdQw22HyLZmyYw5Wd0SIQE,91215
|
|
17
20
|
gui/assets/GUI_homepage.png,sha256=-Ev-hZ7l2zaOslxL-x3lpWLfBOxybJaHtFSt0C4VWQ4,74582
|
|
18
21
|
gui/assets/hardware_setup.jpeg,sha256=IrcbI8ADXQO_yiUtembTqP0uBbkQS89P1JLhxnXQNxY,77890
|
|
19
22
|
gui/assets/single_lidar_calibrate_page.png,sha256=wAJ2_l0Hqf_Tq5wTlk6j1ev6VYDk7VkKFp9Xkfna3PM,45377
|
|
@@ -21,7 +24,7 @@ gui/assets/single_lidar_output.png,sha256=L6nwvXaS2noNq4W13ZG65miI_AG1I8EuY2sDMy
|
|
|
21
24
|
gui/assets/single_lidar_record_page.png,sha256=OwZAuXOoiE443kZkopZOxhehvDwTjej85xgkJ9xX1tM,60437
|
|
22
25
|
gui/assets/virya.jpg,sha256=F4VdYXoMO8F80jc32n-tgWQwJTCEGjtd7vgya18Diag,23752
|
|
23
26
|
gui/widgets/calibrator_widget.py,sha256=wS5Bo6VIJBOXj-mi1vB8tO9zKocieQd08TdL_Lejn7U,40732
|
|
24
|
-
gui/widgets/extractor_widget.py,sha256=
|
|
27
|
+
gui/widgets/extractor_widget.py,sha256=Eq4-X-Zdyf9j2xc6H16mAQ6quErpaCUmRhw5WLwHZm8,22731
|
|
25
28
|
gui/widgets/home_widget.py,sha256=XRDCcAZNqFfS41aCkotT-hET9n4IR0TtGV7qhMQkR88,4305
|
|
26
29
|
gui/widgets/recorder_widget.py,sha256=5DBI7rrDTSQrBJ4Bp_iFvdv0rNmKvBPLNW_WeVDapA0,4612
|
|
27
30
|
gui/widgets/single_lidar_widget.py,sha256=AtM5cKzXglNZjFUdksVwQVYpFvlqwFbAe9xZwrvqupI,25731
|
|
@@ -32,7 +35,7 @@ gui/widgets/validator_widget.py,sha256=lS4EI-9hWZwOJwX1d0EtgsGioPRvdbmtBSeCLukcd
|
|
|
32
35
|
gui/windows/main_window.py,sha256=6OstmZfWjQzBgnHyCTJc3LzEymgTQpWrapx2cjORHmY,1982
|
|
33
36
|
gui/windows/main_window_ui.py,sha256=4yVIRJ6KIDwxeP0kvy_IkoI29cIBp2LSUarr7AZuEH4,1627
|
|
34
37
|
rviz_configs/2D-3D.rviz,sha256=QfBz1jXWHeZH93HYoq2Ee_tXFS6QC1DIO2rexUB6Wgk,6143
|
|
35
|
-
rviz_configs/3D-3D.rviz,sha256=
|
|
38
|
+
rviz_configs/3D-3D.rviz,sha256=DUqOlOTq1CFoilkRW1Jov5Wd8fWi9BWPs-9h5_oqI-c,6095
|
|
36
39
|
rviz_configs/default_calib.rviz,sha256=nYIH16YlNcbQhAXPBfQbsQ5AXkNT7BXTWfdxwkvOJgo,5610
|
|
37
40
|
utils/__init__.py,sha256=jGrHBgfZKHPs8RloUjIW-f7LAH_n6uGKfCaDnjcz7Yk,376
|
|
38
41
|
utils/calibration_common.py,sha256=M6IAyi97tPpQk320aoPruGffa7dAO679RWax5tVQoL4,606
|
|
@@ -40,8 +43,8 @@ utils/cli_calibrate.py,sha256=F1l-JLTOs39JHm-sTLWcUwcjKerZGpXjEXm8USFt9QY,1267
|
|
|
40
43
|
utils/cli_fleet_server.py,sha256=OvkCo-ClGlwNKDJTfH5InLm0NWjxWSiSf-yAZnl2QVk,1700
|
|
41
44
|
utils/data_extractor_common.py,sha256=3DsIwFd35dfl8ZoKfsm5VA-gZmveySmBUkiErXbCN18,2611
|
|
42
45
|
utils/gui_helpers.py,sha256=hgj5AG0oH2dZMnclwzazFQlwebpBPW0JjNM_AHb9hko,723
|
|
43
|
-
calibrate_suite-0.1.
|
|
44
|
-
calibrate_suite-0.1.
|
|
45
|
-
calibrate_suite-0.1.
|
|
46
|
-
calibrate_suite-0.1.
|
|
47
|
-
calibrate_suite-0.1.
|
|
46
|
+
calibrate_suite-0.1.2.dist-info/METADATA,sha256=pJh5-_lllhWOO48y_XFxs_JX1U-l8is7PlfZ1qXiC0A,28385
|
|
47
|
+
calibrate_suite-0.1.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
48
|
+
calibrate_suite-0.1.2.dist-info/entry_points.txt,sha256=4EUgvjrn0X-p0RKCHbgLqGk5PohIk5Qoh94bO5JPhcs,145
|
|
49
|
+
calibrate_suite-0.1.2.dist-info/top_level.txt,sha256=SCAdU5VbFfkNGQO4zgAwM2qsZnWr0I_8k3F70Ch0EcQ,36
|
|
50
|
+
calibrate_suite-0.1.2.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
gui/widgets/extractor_widget.py
CHANGED
|
@@ -506,10 +506,21 @@ class ExtractorWidget(QWidget):
|
|
|
506
506
|
|
|
507
507
|
def stop_process(self):
|
|
508
508
|
if self.record_process and self.record_process.state() == QProcess.Running:
|
|
509
|
+
self.rec_log.append("🛑 Stopping process and closing RViz...")
|
|
509
510
|
self.record_process.write(b'q\n')
|
|
510
|
-
self.record_process.waitForFinished(
|
|
511
|
+
self.record_process.waitForFinished(3000) # Wait longer for graceful shutdown
|
|
511
512
|
if self.record_process.state() == QProcess.Running:
|
|
513
|
+
self.rec_log.append("⚠️ Force killing process...")
|
|
512
514
|
self.record_process.kill()
|
|
515
|
+
self.record_process.waitForFinished(1000)
|
|
516
|
+
|
|
517
|
+
# Force kill any remaining RViz processes
|
|
518
|
+
try:
|
|
519
|
+
import subprocess
|
|
520
|
+
subprocess.run(['pkill', '-f', 'rviz2'], capture_output=True)
|
|
521
|
+
self.rec_log.append("🔧 Cleaned up RViz processes")
|
|
522
|
+
except Exception as e:
|
|
523
|
+
self.rec_log.append(f"⚠️ RViz cleanup warning: {e}")
|
|
513
524
|
|
|
514
525
|
def capture_frame(self):
|
|
515
526
|
if self.record_process: self.record_process.write(b'n\n')
|
rviz_configs/3D-3D.rviz
CHANGED
|
@@ -63,7 +63,7 @@ Visualization Manager:
|
|
|
63
63
|
Enabled: true
|
|
64
64
|
Invert Rainbow: false
|
|
65
65
|
Max Color: 255; 255; 255
|
|
66
|
-
Max Intensity:
|
|
66
|
+
Max Intensity: 206
|
|
67
67
|
Min Color: 0; 0; 0
|
|
68
68
|
Min Intensity: 0
|
|
69
69
|
Name: PointCloud2
|
|
@@ -180,5 +180,5 @@ Window Geometry:
|
|
|
180
180
|
Views:
|
|
181
181
|
collapsed: false
|
|
182
182
|
Width: 1200
|
|
183
|
-
X:
|
|
184
|
-
Y:
|
|
183
|
+
X: 555
|
|
184
|
+
Y: 101
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|