迁移RTK-IMU标定到独立顶层包
This commit is contained in:
@@ -158,10 +158,10 @@ frozen / not run
|
||||
|
||||
## 代码入口
|
||||
|
||||
- `imu_lidar/rtk_attitude.py`:GNHPR 基线语义及零 roll 数学补全。
|
||||
- `imu_lidar/rtk_io.py`:RTK CSV、Q4/Q5 和 checksum 质量门禁。
|
||||
- `imu_lidar/rtk_imu_rotation.py`:时间审计、连续段、基线审计、旧式诊断和重优化 LOO。
|
||||
- `imu_lidar/rtk_imu_replay.py`:坐标定义、参考点、平移冻结和 JSON 输出。
|
||||
- `rtk_imu/rtk_attitude.py`:GNHPR 基线语义及零 roll 数学补全。
|
||||
- `rtk_imu/rtk_io.py`:RTK CSV、Q4/Q5 和 checksum 质量门禁。
|
||||
- `rtk_imu/rtk_imu_rotation.py`:时间审计、连续段、基线审计、旧式诊断和重优化 LOO。
|
||||
- `rtk_imu/rtk_imu_replay.py`:坐标定义、参考点、平移冻结和 JSON 输出。
|
||||
- `tools/rscap_v2/g90_rtk.py`:原始 GNHPR 解析及质量字段。
|
||||
- `tools/export_g90_rtk_to_sessions.py`:GNHPR 质量字段导出。
|
||||
- `tools/run_rtk_imu_calibration.py`:端到端命令行入口。
|
||||
|
||||
@@ -170,6 +170,6 @@ R2V 与 R2G 的 SO(3) 差异为 9.3119°。R3 最终:
|
||||
- tools/rscap_v2/g90_rtk.py:GGA/GNHPR/BESTNAVA/PVTSLNA 和双 checksum。
|
||||
- tools/rscap_v2/hi13_imu.py:HI91 system_time、惯性、姿态和四元数。
|
||||
- tools/export_rtk_imu_unified.py:55 组配对、原生异步导出和断点续导。
|
||||
- imu_lidar/rtk_imu_multisource.py:R1b/R2V/R2G/R3。
|
||||
- rtk_imu/rtk_imu_multisource.py:R1b/R2V/R2G/R3。
|
||||
- tools/run_rtk_imu_multisource.py:多源旋转命令行入口。
|
||||
- artifacts/rtk_imu_calibration_v3/multisource_result.json:首轮 R3 结果。
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
[project]
|
||||
name = "lidar-imu-calibration"
|
||||
version = "0.3.0"
|
||||
description = "LiDAR–IMU extrinsic calibration from continuous-motion keyframes (imu_lidar)"
|
||||
description = "LiDAR-IMU and RTK-IMU extrinsic calibration algorithms"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"numpy>=1.26",
|
||||
@@ -21,7 +21,7 @@ requires = ["setuptools>=68", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.setuptools]
|
||||
packages = ["imu_lidar", "tools"]
|
||||
packages = ["imu_lidar", "rtk_imu", "tools"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests"]
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# RTK-IMU Calibration Package
|
||||
|
||||
`rtk_imu/` contains the independent RTK-IMU calibration pipeline: G90 observation I/O, antenna-baseline rotation, V1 replay, V3 multisource stages, engineering 6DoF, and the node-state factor graph.
|
||||
|
||||
## Boundary
|
||||
|
||||
This package may import only shared `imu_lidar` utilities: `contracts`, `geometry`, `geodesy`, `imu_io`, `imu_preintegration`, and the generic `rotation_handeye` initializer.
|
||||
|
||||
It must not import LiDAR-specific modules such as `lidar_io`, `lidar_deskew`, `registration`, `pipeline`, `phase_a`, or `joint_optimizer`. The LiDAR-IMU pipeline remains in `imu_lidar/`.
|
||||
|
||||
## Entrypoints
|
||||
@@ -0,0 +1 @@
|
||||
"""RTK-IMU extrinsic calibration algorithms and data interfaces."""
|
||||
@@ -14,8 +14,8 @@ import numpy as np
|
||||
from scipy.optimize import least_squares
|
||||
from scipy.spatial.transform import Rotation
|
||||
|
||||
from .geometry import make_transform, so3_exp
|
||||
from .imu_preintegration import apply_bias_correction_imu, preintegrate_imu
|
||||
from imu_lidar.geometry import make_transform, so3_exp
|
||||
from imu_lidar.imu_preintegration import apply_bias_correction_imu, preintegrate_imu
|
||||
from .rtk_attitude import gnhpr_to_baseline_enu
|
||||
from .rtk_imu_multisource import UnifiedSession, _f, _nearest_index, _truth
|
||||
|
||||
@@ -11,9 +11,9 @@ import numpy as np
|
||||
from scipy.optimize import least_squares
|
||||
from scipy.spatial.transform import Rotation
|
||||
|
||||
from .contracts import ImuSeries
|
||||
from .geometry import so3_exp, so3_log
|
||||
from .imu_preintegration import apply_bias_jacobian_correction, preintegrate_gyro
|
||||
from imu_lidar.contracts import ImuSeries
|
||||
from imu_lidar.geometry import so3_exp, so3_log
|
||||
from imu_lidar.imu_preintegration import apply_bias_jacobian_correction, preintegrate_gyro
|
||||
from .rtk_attitude import gnhpr_to_baseline_enu
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ from dataclasses import dataclass
|
||||
import numpy as np
|
||||
from scipy.optimize import least_squares
|
||||
from scipy.sparse import lil_matrix
|
||||
from .geometry import so3_exp, so3_log
|
||||
from .imu_preintegration import apply_bias_correction_imu, residual_whiten_matrix
|
||||
from imu_lidar.geometry import so3_exp, so3_log
|
||||
from imu_lidar.imu_preintegration import apply_bias_correction_imu, residual_whiten_matrix
|
||||
from .rtk_imu_engineering import (
|
||||
G_ENU, HPR_DIRECT_ANGULAR_SIGMA_RAD, _Segment, _world_rtk)
|
||||
|
||||
@@ -10,7 +10,7 @@ from typing import Any
|
||||
|
||||
import numpy as np
|
||||
|
||||
from .imu_io import load_imu_samples
|
||||
from imu_lidar.imu_io import load_imu_samples
|
||||
from .rtk_imu_rotation import RotationCalibrationResult, RotationSession, solve_rtk_imu_rotation
|
||||
from .rtk_imu_translation import TranslationCalibrationResult, solve_rtk_imu_translation
|
||||
from .rtk_io import load_rtk_csv
|
||||
@@ -8,10 +8,10 @@ import numpy as np
|
||||
from scipy.optimize import least_squares
|
||||
from scipy.sparse import lil_matrix
|
||||
|
||||
from .contracts import ImuSeries, MotionPair
|
||||
from .geometry import orthonormalize_rotation, rpy_deg_xyz, so3_exp, so3_log
|
||||
from .imu_preintegration import apply_bias_jacobian_correction, preintegrate_gyro
|
||||
from .rotation_handeye import estimate_rotation_handeye_initial
|
||||
from imu_lidar.contracts import ImuSeries, MotionPair
|
||||
from imu_lidar.geometry import orthonormalize_rotation, rpy_deg_xyz, so3_exp, so3_log
|
||||
from imu_lidar.imu_preintegration import apply_bias_jacobian_correction, preintegrate_gyro
|
||||
from imu_lidar.rotation_handeye import estimate_rotation_handeye_initial
|
||||
from .rtk_attitude import GNHPR_CANDIDATES, GnhprConvention, gnhpr_to_rotation_enu_rtk
|
||||
from .rtk_io import RtkSeries
|
||||
|
||||
@@ -9,7 +9,7 @@ from scipy.sparse import coo_matrix, csr_matrix, eye
|
||||
from scipy.sparse.linalg import lsqr, splu
|
||||
from scipy.spatial.transform import Rotation, Slerp
|
||||
|
||||
from .geometry import make_transform, orthonormalize_rotation, so3_exp
|
||||
from imu_lidar.geometry import make_transform, orthonormalize_rotation, so3_exp
|
||||
from .rtk_imu_rotation import RotationCalibrationResult, RotationSession, _attitude_rows
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
|
||||
from .geodesy import geodetic_to_enu
|
||||
from imu_lidar.geodesy import geodetic_to_enu
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -7,9 +7,9 @@ import numpy as np
|
||||
from imu_lidar.geodesy import geodetic_to_enu
|
||||
from imu_lidar.geometry import so3_exp
|
||||
from imu_lidar.imu_preintegration import preintegrate_gyro, preintegrate_imu
|
||||
from imu_lidar.rtk_attitude import gnhpr_to_baseline_enu, gnhpr_to_rotation_enu_rtk
|
||||
from imu_lidar.rtk_imu_translation import _preintegrate_translation_interval
|
||||
from imu_lidar.rtk_io import load_rtk_csv
|
||||
from rtk_imu.rtk_attitude import gnhpr_to_baseline_enu, gnhpr_to_rotation_enu_rtk
|
||||
from rtk_imu.rtk_imu_translation import _preintegrate_translation_interval
|
||||
from rtk_imu.rtk_io import load_rtk_csv
|
||||
|
||||
|
||||
def test_geodetic_to_enu_has_expected_axis_and_scale() -> None:
|
||||
|
||||
@@ -7,7 +7,7 @@ import pytest
|
||||
from scipy.spatial.transform import Rotation
|
||||
|
||||
from imu_lidar.contracts import ImuSeries
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
G0,
|
||||
HPR_DIRECT_ANGULAR_SIGMA_RAD,
|
||||
ResidualAudit,
|
||||
@@ -23,8 +23,8 @@ from imu_lidar.rtk_imu_engineering import (
|
||||
_segments,
|
||||
solve_engineering_6dof,
|
||||
)
|
||||
from imu_lidar.rtk_imu_multisource import UnifiedSession
|
||||
from imu_lidar.rtk_imu_node_graph import (
|
||||
from rtk_imu.rtk_imu_multisource import UnifiedSession
|
||||
from rtk_imu.rtk_imu_node_graph import (
|
||||
_additive_marginal_lever_information,
|
||||
_free_residual,
|
||||
_free_sparsity,
|
||||
|
||||
@@ -3,7 +3,7 @@ from __future__ import annotations
|
||||
import numpy as np
|
||||
|
||||
from imu_lidar.contracts import ImuSeries
|
||||
from imu_lidar.rtk_imu_multisource import R1bResult, UnifiedSession, solve_r2g
|
||||
from rtk_imu.rtk_imu_multisource import R1bResult, UnifiedSession, solve_r2g
|
||||
|
||||
|
||||
def _level_session(session_id: str) -> UnifiedSession:
|
||||
|
||||
@@ -9,14 +9,14 @@ from scipy.spatial.transform import Rotation
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT))
|
||||
from imu_lidar.imu_preintegration import preintegrate_imu
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
G_ENU, MIN_SEGMENT_DURATION_S, MIN_SEGMENT_NODE_COUNT,
|
||||
NUISANCE_DOF_PER_SEGMENT, _Segment, _all_hpr, _audit,
|
||||
_dense_colored_jacobian, _enu, _height_reference,
|
||||
_hpr_factor_observation, _initial_parameters, _marginal_lever_information,
|
||||
_motion_flags, _nodes, _position_valid, _residual,
|
||||
_segment_residual_size, _world_rtk)
|
||||
from imu_lidar.rtk_imu_multisource import _f, _truth, load_unified_sessions
|
||||
from rtk_imu.rtk_imu_multisource import _f, _truth, load_unified_sessions
|
||||
MECHANICAL_L_I_M = np.array([-0.45072, -0.25682, 0.73208])
|
||||
|
||||
def _jsonable(value):
|
||||
|
||||
@@ -15,13 +15,13 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
_all_hpr,
|
||||
_height_reference,
|
||||
_nodes,
|
||||
_position_valid,
|
||||
)
|
||||
from imu_lidar.rtk_imu_multisource import _f, _nearest_index, _truth, load_unified_sessions
|
||||
from rtk_imu.rtk_imu_multisource import _f, _nearest_index, _truth, load_unified_sessions
|
||||
|
||||
|
||||
def _finite_doppler(row: dict[str, str]) -> bool:
|
||||
|
||||
@@ -7,9 +7,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem
|
||||
from tools.audit_rtk_imu_factor_consistency import _jsonable
|
||||
from tools.audit_rtk_imu_innovation_noise import (
|
||||
_factor_report,_hpr_innovations,_interval_innovations)
|
||||
|
||||
@@ -9,11 +9,11 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.geometry import so3_log
|
||||
from imu_lidar.imu_preintegration import apply_bias_correction_imu,preintegrate_gyro
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
G_ENU,HPR_DIRECT_ANGULAR_SIGMA_RAD,_all_hpr,_height_reference,
|
||||
_world_rtk)
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem
|
||||
from tools.audit_rtk_imu_factor_consistency import MECHANICAL_L_I_M,_jsonable
|
||||
from tools.run_rtk_imu_node_graph_fixed_lever import _select_window
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_engineering import _fit_segments, _fit_summary, _segments
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_engineering import _fit_segments, _fit_summary, _segments
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
|
||||
|
||||
def _jsonable(value):
|
||||
|
||||
@@ -23,7 +23,7 @@ if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.imu_audit import audit_imu
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
MIN_SEGMENT_DURATION_S,
|
||||
MIN_SEGMENT_NODE_COUNT,
|
||||
_all_hpr,
|
||||
@@ -37,7 +37,7 @@ from imu_lidar.rtk_imu_engineering import (
|
||||
_segments,
|
||||
_source_nodes,
|
||||
)
|
||||
from imu_lidar.rtk_imu_multisource import _f, _truth, load_unified_sessions
|
||||
from rtk_imu.rtk_imu_multisource import _f, _truth, load_unified_sessions
|
||||
|
||||
|
||||
RAW_GAP_S = 1.5
|
||||
|
||||
@@ -8,9 +8,9 @@ from scipy.spatial.transform import Rotation
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.imu_preintegration import preintegrate_imu
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
G_ENU, _all_hpr, _height_reference, _hpr_factor_observation, _world_rtk)
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from tools.audit_rtk_imu_factor_consistency import (
|
||||
MECHANICAL_L_I_M, _best_arrays, _jsonable, _nearest_imu, _summary)
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import G0,G_ENU,_height_reference,_nodes,_world_rtk
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem
|
||||
from rtk_imu.rtk_imu_engineering import G0,G_ENU,_height_reference,_nodes,_world_rtk
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem
|
||||
from tools.audit_rtk_imu_factor_consistency import _jsonable
|
||||
from tools.audit_rtk_imu_heldout_innovation import _calibration_biases
|
||||
from tools.audit_rtk_imu_innovation_noise import _factor_report,_interval_innovations
|
||||
|
||||
@@ -7,9 +7,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem,linearized_lever_information
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem,linearized_lever_information
|
||||
from tools.audit_rtk_imu_factor_consistency import _jsonable
|
||||
from tools.run_rtk_imu_node_graph_free_selected import _restore_segments
|
||||
from tools.select_rtk_imu_windows_by_lever_information import (
|
||||
|
||||
@@ -8,9 +8,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import (
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import (
|
||||
build_problem,fit_states_at_fixed_lever,summarize_fixed_state_values)
|
||||
from tools.audit_rtk_imu_factor_consistency import _jsonable
|
||||
from tools.run_rtk_imu_node_graph_free_selected import _restore_segments
|
||||
|
||||
@@ -12,7 +12,7 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_replay import (
|
||||
from rtk_imu.rtk_imu_replay import (
|
||||
DEFAULT_RTK_FRAME_DEFINITION,
|
||||
DEFAULT_RTK_REFERENCE_POINT,
|
||||
load_inventory,
|
||||
|
||||
@@ -17,12 +17,12 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
DEFAULT_MANUAL_L_I_M,
|
||||
DEFAULT_MANUAL_L_I_COVARIANCE_M2,
|
||||
solve_engineering_6dof,
|
||||
)
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
|
||||
|
||||
def _jsonable(value):
|
||||
|
||||
@@ -20,7 +20,7 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_engineering import (
|
||||
from rtk_imu.rtk_imu_engineering import (
|
||||
MIN_SEGMENT_DURATION_S,
|
||||
MIN_SEGMENT_NODE_COUNT,
|
||||
NUISANCE_DOF_PER_SEGMENT,
|
||||
@@ -36,7 +36,7 @@ from imu_lidar.rtk_imu_engineering import (
|
||||
_world_rtk,
|
||||
)
|
||||
from imu_lidar.imu_preintegration import preintegrate_imu
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
|
||||
MANUAL_REFERENCE_L_I_M = np.array([-0.45072, -0.25682, 0.73208], dtype=float)
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import (
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import (
|
||||
NODE_DOF,build_problem,fit_states_at_fixed_lever,solve_free_lever_many,
|
||||
summarize_fixed_state_values)
|
||||
from tools.audit_rtk_imu_factor_consistency import MECHANICAL_L_I_M,_jsonable
|
||||
|
||||
@@ -9,9 +9,9 @@ from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.geometry import make_transform
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem,fit_states_at_fixed_lever,residual
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem,fit_states_at_fixed_lever,residual
|
||||
from tools.audit_rtk_imu_factor_consistency import _jsonable
|
||||
from tools.run_rtk_imu_node_graph_free_selected import _restore_segments
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.geometry import make_transform
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import (
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import (
|
||||
build_problem,solve_free_lever_many,summarize_fixed_state_values)
|
||||
from tools.audit_rtk_imu_factor_consistency import _jsonable
|
||||
from tools.run_rtk_imu_node_graph_free_selected import _restore_segments
|
||||
|
||||
@@ -12,7 +12,7 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_multisource import (
|
||||
from rtk_imu.rtk_imu_multisource import (
|
||||
load_unified_sessions,
|
||||
result_to_jsonable,
|
||||
solve_r3,
|
||||
|
||||
@@ -8,9 +8,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem, solve_fixed_lever
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem, solve_fixed_lever
|
||||
from tools.audit_rtk_imu_factor_consistency import (
|
||||
MECHANICAL_L_I_M, _build_segment, _jsonable, _qualified_runs)
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem,solve_free_lever
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem,solve_free_lever
|
||||
from tools.audit_rtk_imu_factor_consistency import MECHANICAL_L_I_M,_jsonable
|
||||
from tools.run_rtk_imu_node_graph_fixed_lever import _select_window
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem,solve_free_lever_many
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem,solve_free_lever_many
|
||||
from tools.audit_rtk_imu_factor_consistency import MECHANICAL_L_I_M,_jsonable
|
||||
from tools.run_rtk_imu_node_graph_fixed_lever import _select_window
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import (
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import (
|
||||
build_problem,fit_states_at_fixed_lever,solve_free_lever_many)
|
||||
from tools.audit_rtk_imu_factor_consistency import MECHANICAL_L_I_M,_build_segment,_jsonable,_qualified_runs
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import (
|
||||
from rtk_imu.rtk_imu_engineering import _height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import (
|
||||
build_problem,solve_fixed_lever,solve_fixed_lever_many)
|
||||
from tools.audit_rtk_imu_factor_consistency import MECHANICAL_L_I_M,_jsonable
|
||||
from tools.run_rtk_imu_node_graph_fixed_lever import _select_window
|
||||
|
||||
@@ -7,9 +7,9 @@ import numpy as np
|
||||
from scipy.spatial.transform import Rotation
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path: sys.path.insert(0,str(ROOT))
|
||||
from imu_lidar.rtk_imu_engineering import _all_hpr,_height_reference
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from imu_lidar.rtk_imu_node_graph import build_problem,linearized_lever_information
|
||||
from rtk_imu.rtk_imu_engineering import _all_hpr,_height_reference
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_node_graph import build_problem,linearized_lever_information
|
||||
from tools.audit_rtk_imu_factor_consistency import _build_segment,_jsonable,_qualified_runs
|
||||
from tools.run_rtk_imu_node_graph_fixed_lever import _select_window
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from imu_lidar.rtk_imu_engineering import _all_hpr, _baseline_angle_deg, _interpolate_baseline, _world_rtk
|
||||
from imu_lidar.rtk_imu_multisource import load_unified_sessions
|
||||
from rtk_imu.rtk_imu_engineering import _all_hpr, _baseline_angle_deg, _interpolate_baseline, _world_rtk
|
||||
from rtk_imu.rtk_imu_multisource import load_unified_sessions
|
||||
|
||||
GAPS_S = (0.2, 0.3, 0.4, 0.5, 0.6, 0.8)
|
||||
R2G_RPY_DEG = (0.4543066225, -0.0026392019, 0.0122384129)
|
||||
|
||||
Reference in New Issue
Block a user