Initial commit

This commit is contained in:
2026-07-03 16:31:37 +07:00
commit 899c7c637d
1939 changed files with 641750 additions and 0 deletions

View File

@@ -0,0 +1,804 @@
{
"Devices": {
"MBDV_Servo01": {
"DeviceId": "right-wheel",
"Enabled": true,
"DeviceType": "CiA402Servo",
"DeviceName": "Right Wheel Servo",
"DriverName": "CiA402Servo",
"DriverVersion": "1.0.0",
"Description": "Right Wheel servo motor",
"Connection": {
"CanInterface": "can0",
"NodeId": "1",
"AutoReconnectEnabled": true,
"ReconnectDelayMs": 3000,
"MaxReconnectAttempts": 0,
"PdoConfigRetryCount": 3,
"PdoConfigRetryTimeoutMs": 1000,
"UseHeartbeatCheck": true,
"AllowedHomingMethods": [],
"PdoMappings": {
"_Comment": "CiA402 Object Dictionary Index Definitions: 0x6040=Controlword[WO UINT16] - State machine control (Enable/Disable/Fault Reset), 0x6041=Statusword[RO UINT16] - Motor status (Ready/Enabled/Fault), 0x6060=ModesOfOperation[RW INT8] - Operation mode (1=PP/3=PV/4=PT/6=HM/8=CSP/9=CSV/10=CST), 0x6061=ModesOfOperationDisplay[RO INT8] - Current active mode, 0x6064=PositionActualValue[RO INT32] - Actual position (encoder counts), 0x606C=VelocityActualValue[RO INT32] - Actual velocity (user units/s), 0x6071=TargetTorque[RW INT16] - Target torque (per-mille of rated torque), 0x607A=TargetPosition[RW INT32] - Target position (Profile Position mode), 0x6081=ProfileVelocity[RW UINT32] - Max profile velocity (user units/s), 0x6083=ProfileAcceleration[RW UINT32] - Profile acceleration (user units/s²), 0x6084=ProfileDeceleration[RW UINT32] - Profile deceleration (user units/s²), 0x60FF=TargetVelocity[RW INT32] - Target velocity (Profile Velocity mode). Wheel motors use Profile Velocity mode (mode 3).",
"RPDO1": [
{
"Index": "0x6040",
"_Description": "Controlword - State machine control (Enable/Disable/Fault Reset/Quick Stop)",
"SubIndex": 0,
"BitLength": 16
},
{
"Index": "0x6060",
"_Description": "Modes of Operation - Operation mode (1=PP/3=PV/4=PT/6=HM/8=CSP/9=CSV/10=CST)",
"SubIndex": 0,
"BitLength": 8
}
],
"RPDO2": [
{
"Index": "0x6081",
"_Description": "Profile Velocity - Max profile velocity for profile motion (user units/s)",
"SubIndex": 0,
"BitLength": 32
}
],
"RPDO3": [
{
"Index": "0x6083",
"_Description": "Profile Acceleration - Profile acceleration for profile motion (user units/s²)",
"SubIndex": 0,
"BitLength": 32
},
{
"Index": "0x6084",
"_Description": "Profile Deceleration - Profile deceleration for profile motion (user units/s²)",
"SubIndex": 0,
"BitLength": 32
}
],
"RPDO4": [
{
"Index": "0x60FF",
"_Description": "Target Velocity - Target velocity in Profile Velocity mode (user units/s)",
"SubIndex": 0,
"BitLength": 32
}
],
"TPDO1": [
{
"Index": "0x6041",
"_Description": "Statusword - Motor status (Ready/Enabled/Fault/Warning/Target Reached)",
"SubIndex": 0,
"BitLength": 16
},
{
"Index": "0x6061",
"_Description": "Modes of Operation Display - Current active/running operation mode",
"SubIndex": 0,
"BitLength": 8
}
],
"TPDO2": [
{
"Index": "0x6064",
"_Description": "Position Actual Value - Current actual position (encoder counts, real-time feedback)",
"SubIndex": 0,
"BitLength": 32
}
],
"TPDO3": [
{
"Index": "0x606C",
"_Description": "Velocity Actual Value - Vận tốc thực tế hiện tại (user units/s hoặc RPM, real-time feedback)",
"SubIndex": 0,
"BitLength": 32
}
]
},
"TPDOEventTimers": {
"TPDO1": 0,
"TPDO2": 0,
"TPDO3": 50
},
"TPDOInhibitTimes": {
"TPDO1": 100,
"TPDO2": 10,
"TPDO3": 10
}
}
},
"MBDV_Servo02": {
"DeviceId": "left-wheel",
"Enabled": true,
"DeviceType": "CiA402Servo",
"DeviceName": "Left Wheel Servo",
"DriverName": "CiA402Servo",
"DriverVersion": "1.0.0",
"Description": "Left Wheel servo motor",
"Connection": {
"CanInterface": "can0",
"NodeId": "2",
"AutoReconnectEnabled": true,
"ReconnectDelayMs": 3000,
"MaxReconnectAttempts": 0,
"PdoConfigRetryCount": 3,
"PdoConfigRetryTimeoutMs": 1000,
"UseHeartbeatCheck": true,
"AllowedHomingMethods": [],
"PdoMappings": {
"_Comment": "CiA402 Object Dictionary Index Definitions: 0x6040=Controlword[WO UINT16] - State machine control (Enable/Disable/Fault Reset), 0x6041=Statusword[RO UINT16] - Motor status (Ready/Enabled/Fault), 0x6060=ModesOfOperation[RW INT8] - Operation mode (1=PP/3=PV/4=PT/6=HM/8=CSP/9=CSV/10=CST), 0x6061=ModesOfOperationDisplay[RO INT8] - Current active mode, 0x6064=PositionActualValue[RO INT32] - Actual position (encoder counts), 0x606C=VelocityActualValue[RO INT32] - Actual velocity (user units/s), 0x6071=TargetTorque[RW INT16] - Target torque (per-mille of rated torque), 0x607A=TargetPosition[RW INT32] - Target position (Profile Position mode), 0x6081=ProfileVelocity[RW UINT32] - Max profile velocity (user units/s), 0x6083=ProfileAcceleration[RW UINT32] - Profile acceleration (user units/s²), 0x6084=ProfileDeceleration[RW UINT32] - Profile deceleration (user units/s²), 0x60FF=TargetVelocity[RW INT32] - Target velocity (Profile Velocity mode). Wheel motors use Profile Velocity mode (mode 3).",
"RPDO1": [
{
"Index": "0x6040",
"_Description": "Controlword - State machine control (Enable/Disable/Fault Reset/Quick Stop)",
"SubIndex": 0,
"BitLength": 16
},
{
"Index": "0x6060",
"_Description": "Modes of Operation - Operation mode (1=PP/3=PV/4=PT/6=HM/8=CSP/9=CSV/10=CST)",
"SubIndex": 0,
"BitLength": 8
}
],
"RPDO2": [
{
"Index": "0x6081",
"_Description": "Profile Velocity - Max profile velocity for profile motion (user units/s)",
"SubIndex": 0,
"BitLength": 32
}
],
"RPDO3": [
{
"Index": "0x6083",
"_Description": "Profile Acceleration - Profile acceleration for profile motion (user units/s²)",
"SubIndex": 0,
"BitLength": 32
},
{
"Index": "0x6084",
"_Description": "Profile Deceleration - Profile deceleration for profile motion (user units/s²)",
"SubIndex": 0,
"BitLength": 32
}
],
"RPDO4": [
{
"Index": "0x60FF",
"_Description": "Target Velocity - Target velocity in Profile Velocity mode (user units/s)",
"SubIndex": 0,
"BitLength": 32
}
],
"TPDO1": [
{
"Index": "0x6041",
"_Description": "Statusword - Motor status (Ready/Enabled/Fault/Warning/Target Reached)",
"SubIndex": 0,
"BitLength": 16
},
{
"Index": "0x6061",
"_Description": "Modes of Operation Display - Current active/running operation mode",
"SubIndex": 0,
"BitLength": 8
}
],
"TPDO2": [
{
"Index": "0x6064",
"_Description": "Position Actual Value - Current actual position (encoder counts, real-time feedback)",
"SubIndex": 0,
"BitLength": 32
}
],
"TPDO3": [
{
"Index": "0x606C",
"_Description": "Velocity Actual Value - Vận tốc thực tế hiện tại (user units/s hoặc RPM, real-time feedback)",
"SubIndex": 0,
"BitLength": 32
}
]
},
"TPDOEventTimers": {
"TPDO1": 0,
"TPDO2": 0,
"TPDO3": 50
},
"TPDOInhibitTimes": {
"TPDO1": 100,
"TPDO2": 10,
"TPDO3": 10
}
}
},
"SickScanXdLidar01": {
"DeviceId": "scan_1",
"Enabled": true,
"DeviceName": "SICK Scan XD LiDAR 1",
"DeviceType": "Lidar",
"DriverName": "SickScanXdLidarDriver",
"DriverVersion": "1.0.0",
"Description": "SICK Scan XD LiDAR Driver - TCP/IP SOPAS Protocol",
"Connection": {
"IpAddress": "192.168.254.11",
"TcpPort": 2371,
"ScannerType": "sick_tim_7xxS",
"Protocol": "ColaB",
"FrameId": "scan",
"ConnectTimeoutMs": 5000,
"CommandTimeoutMs": 5000,
"ReadTimeoutMs": 5000,
"AutoReconnectEnabled": true,
"ReconnectDelayMs": 3000,
"MaxReconnectAttempts": 0
}
},
"SickScanXdLidar02": {
"DeviceId": "scan_2",
"Enabled": true,
"DeviceName": "SICK Scan XD LiDAR 2",
"DeviceType": "Lidar",
"DriverName": "SickScanXdLidarDriver",
"DriverVersion": "1.0.0",
"Description": "SICK Scan XD LiDAR Driver - TCP/IP SOPAS Protocol",
"Connection": {
"IpAddress": "192.168.254.12",
"TcpPort": 2372,
"ScannerType": "sick_tim_7xxS",
"Protocol": "ColaB",
"FrameId": "scan",
"ConnectTimeoutMs": 5000,
"CommandTimeoutMs": 5000,
"ReadTimeoutMs": 5000,
"AutoReconnectEnabled": true,
"ReconnectDelayMs": 3000,
"MaxReconnectAttempts": 0
}
},
"SickScanXdLidar03": {
"DeviceId": "scan_3",
"Enabled": true,
"DeviceName": "SICK Scan XD LiDAR 3",
"DeviceType": "Lidar",
"DriverName": "SickScanXdLidarDriver",
"DriverVersion": "1.0.0",
"Description": "SICK Scan XD LiDAR Driver - TCP/IP SOPAS Protocol",
"Connection": {
"IpAddress": "192.168.254.13",
"TcpPort": 2373,
"ScannerType": "sick_tim_7xxS",
"Protocol": "ColaB",
"FrameId": "scan",
"ConnectTimeoutMs": 5000,
"CommandTimeoutMs": 5000,
"ReadTimeoutMs": 5000,
"AutoReconnectEnabled": true,
"ReconnectDelayMs": 3000,
"MaxReconnectAttempts": 0
}
},
"Oleilidar": {
"DeviceId": "olei-front",
"Enabled": true,
"DeviceName": "Olei",
"DeviceType": "Lidar",
"DriverName": "Olei2dLidarDriver",
"DriverVersion": "1.0.0",
"Description": "Olei Safety Scanner LiDAR with custom scan angle configuration",
"Connection": {
"UdpPort": 2368,
"FrameId": "olei-front"
}
},
"WheeltecIMU": {
"DeviceId": "wheetec-imu",
"Enabled": true,
"DeviceName": "Wheetec N100 IMU",
"DeviceType": "IMU",
"DriverName": "WheeltecN100IMU",
"DriverVersion": "1.0.0",
"Description": "IMU",
"Connection": {
"Port": "/dev/ttyUSB0",
"BaudRate": 921600,
"Timeout": 2000
}
}
},
"Motion": {
"DifferentialDrive": {
"Enable": true,
"LeftWheel": {
"DeviceId": "left-wheel",
"Position": {
"Position": {
"X": 0.0,
"Y": 0.23625,
"Z": 0.0
},
"Orientation": {
"X": 0.0,
"Y": 0.0,
"Z": 0.7071067,
"W": 0.7071067
}
},
"WheelDiameter": 0.2495,
"PulsesPerRevolution": 100000,
"IsReversed": false
},
"RightWheel": {
"DeviceId": "right-wheel",
"Position": {
"Position": {
"X": 0.0,
"Y": -0.23625,
"Z": 0.0
},
"Orientation": {
"X": 0.0,
"Y": 0.0,
"Z": -0.7071067,
"W": 0.7071067
}
},
"WheelDiameter": 0.2495,
"PulsesPerRevolution": 100000,
"IsReversed": true
}
},
"ManualControl": {
"Enable": true,
"UsingKeyboard": true,
"MinLinearVelocity": 0.0,
"MaxLinearVelocity": 0.5,
"MinAngularVelocity": 0.0,
"MaxAngularVelocity": 0.3,
"UpdateRate": 20.0,
"Acceleration": 0.5,
"Deceleration": 0.5
}
},
"Modules": {
"LiftModule": {
"Enable": false
},
"RotationModule": {
"Enable": false
}
},
"Cartographer": {
"Enable": true,
"Sensors": {
"Lidars": [
{
"DeviceId": "scan_1",
"Enabled": false,
"Transform": {
"Translation": {
"X": 0.7072,
"Y": 0.28235,
"Z": 0.0
},
"Rotation": {
"X": 0.0,
"Y": 0.0,
"Z": -0.3826834,
"W": 0.9238795
}
},
"AngleMin": -40,
"AngleMax": 220
},
{
"DeviceId": "scan_2",
"Enabled": true,
"Transform": {
"Translation": {
"X": 0.7072,
"Y": -0.28235,
"Z": 0.0
},
"Rotation": {
"X": 0.0,
"Y": 0.0,
"Z": -0.9238795,
"W": 0.3826834
}
},
"AngleMin": -40,
"AngleMax": 220
},
{
"DeviceId": "scan_3",
"Enabled": false,
"Transform": {
"Translation": {
"X": -0.1184,
"Y": 0.0,
"Z": 0.0
},
"Rotation": {
"X": 0.0,
"Y": 0.0,
"Z": 0.7071068,
"W": 0.7071068
}
},
"AngleMin": -40,
"AngleMax": 220
}
],
"Imu": {
"DeviceId": "wheetec-imu",
"Enabled": true,
"Transform": {
"Translation": {
"X": 0.0,
"Y": 0.0,
"Z": 0.0
},
"Rotation": {
"X": 1.0,
"Y": 0.0,
"Z": 0.0,
"W": 0.0
}
}
}
},
"TrajectoryBuilder": {
"Use2D": true,
"MinRange": 0.1,
"MaxRange": 18.0,
"MinZ": -0.8,
"MaxZ": 2.0,
"MissingDataRayLength": 5.0,
"VoxelFilterSize": 0.01,
"NumAccumulatedRangeData": 1,
"UseImuData": true,
"UseOnlineCorrelativeScanMatching": true,
"RealTimeCorrelativeScanMatcherOptions": {
"LinearSearchWindow": 0.05,
"AngularSearchWindow": 0.1745,
"TranslationDeltaCostWeight": 1.0,
"RotationDeltaCostWeight": 1.0,
"NumThreads": 3
},
"CeresScanMatcherOptions": {
"OccupiedSpaceWeight": 2.0,
"TranslationWeight": 20.0,
"RotationWeight": 60.0,
"HighResOccupiedSpaceWeight": 2.0,
"HighResTranslationWeight": 20.0,
"HighResRotationWeight": 60.0,
"LandmarkWeight": 0.0,
"CeresSolverOptions": {
"UseNonmonotonicSteps": true,
"MaxNumIterations": 30,
"NumThreads": 3
}
},
"InitialPoseRealTimeCorrelativeScanMatcherOptions": {
"_comment": "Enhanced scan matching for SetInitialPoseAsync - wider search window for relocalization",
"LinearSearchWindow": 0.5,
"AngularSearchWindow": 0.5,
"TranslationDeltaCostWeight": 1.0,
"RotationDeltaCostWeight": 1.0,
"NumThreads": 3
},
"InitialPoseCeresScanMatcherOptions": {
"_comment": "Stricter Ceres optimization for SetInitialPoseAsync - higher weights for better accuracy",
"OccupiedSpaceWeight": 20.0,
"TranslationWeight": 50.0,
"RotationWeight": 10.0,
"CeresSolverOptions": {
"UseNonmonotonicSteps": true,
"MaxNumIterations": 100,
"NumThreads": 3,
"FunctionTolerance": 0.0001,
"GradientTolerance": 0.000001,
"ParameterTolerance": 0.000001
}
},
"MotionFilterOptions": {
"MaxTimeSeconds": 5.0,
"MaxDistanceMeters": 0.2,
"MaxAngleRadians": 0.0175
},
"AdaptiveVoxelFilterOptions": {
"MaxLength": 0.3,
"MinNumPoints": 250,
"MaxRange": 50.0
},
"LoopClosureAdaptiveVoxelFilterOptions": {
"MaxLength": 0.9,
"MinNumPoints": 100,
"MaxRange": 50.0
},
"PoseExtrapolatorOptions": {
"UseImuBased": true,
"ConstantVelocity": {
"ImuGravityTimeConstant": 10.0,
"PoseQueueDuration": 0.001
},
"ImuBased": {
"PoseQueueDuration": 5.0,
"GravityConstant": 9.806,
"PoseTranslationWeight": 1.0,
"PoseRotationWeight": 1.0,
"ImuAccelerationWeight": 1.0,
"ImuRotationWeight": 1.0,
"OdometryTranslationWeight": 1.0,
"OdometryRotationWeight": 1.0,
"SolverOptions": {
"UseNonmonotonicSteps": false,
"MaxNumIterations": 20,
"NumThreads": 3,
"FunctionTolerance": null,
"GradientTolerance": null,
"ParameterTolerance": null
}
},
"_comment_deprecated": "The following fields are DEPRECATED and IGNORED by PoseExtrapolator (removed in C++ port to match original Cartographer): VelocityThreshold, AccelerationThreshold, GravityDeviationThreshold, UseOdometryDirectly. They remain here for backward compatibility but have no effect.",
"VelocityThreshold": 0.003,
"AccelerationThreshold": 0.4,
"GravityDeviationThreshold": 0.1,
"UseOdometryDirectly": true
},
"ScanMatchingDebugOptions": {
"EnableDebugMode": true,
"MinCostReductionPercent": 80.0,
"MaxPoseChangeDistanceMeters": 0.5,
"MaxPoseChangeRotationDegrees": 5.0
},
"SubmapsOptions": {
"NumRangeData": 100,
"GridOptions": {
"GridType": 1,
"Resolution": 0.025
},
"RangeDataInserterOptions": {
"RangeDataInserterType": 1,
"ProbabilityGridRangeDataInserterOptions": {
"HitProbability": 0.6,
"MissProbability": 0.45,
"InsertFreeSpace": true
},
"TsdfRangeDataInserterOptions": {
"TruncationDistance": 0.3,
"MaximumWeight": 10.0,
"UpdateFreeSpace": false,
"NormalEstimationOptions": {
"NumNormalSamples": 4,
"SampleRadius": 0.5
},
"ProjectSdfDistanceToScanNormal": true,
"UpdateWeightRangeExponent": 0,
"UpdateWeightAngleScanNormalToRayKernelBandwidth": 0.5,
"UpdateWeightDistanceCellToHitKernelBandwidth": 0.5
}
}
},
"HighResGridOptions": {
"GridType": 1,
"Resolution": 0.025
},
"HighResAdaptiveVoxelFilterOptions": {
"MaxLength": 0.5,
"MinNumPoints": 200,
"MaxRange": 50.0
},
"HighResVoxelFilterSize": 0.025,
"LandmarkThreshold": {
"MirrorLandmarkMatchingDistance": 0.5,
"NewLandmarkDistance": 2.0,
"LocalLandmarksHistory": 80
},
"NumDuplicateInsertToAccurateSubmap": 1,
"TrueScoreCellThreshold": 0.75,
"_comment_ProvideConfidenceScore": "When enabled, computes a confidence score for each pose estimate using RealTimeCorrelativeScanMatcher. The confidence score indicates how well the scan matches the current submap (0.0 = poor match, 1.0 = perfect match). Useful for detecting localization failures or low-quality pose estimates. Default: false (disabled for performance).",
"ProvideConfidenceScore": true
},
"MapBuilder": {
"UseTrajectoryBuilder2D": true,
"UseTrajectoryBuilder3D": null,
"NumBackgroundThreads": 4,
"CollateByTrajectory": true,
"OptimizeEveryNNodes": 0,
"MatcherTranslationWeight": 500.0,
"MatcherRotationWeight": 1600.0,
"MaxNumFinalIterations": 200,
"GlobalSamplingRatio": 0.05,
"LogResidualHistograms": false,
"GlobalConstraintSearchAfterNSeconds": 30.0,
"PoseGraphOptimizationProblemOptions": {
"HuberScale": 10.0,
"OdometryHuberScale": 1.0,
"LocalSlamPoseHuberScale": 1.0,
"AccelerationWeight": 110.0,
"RotationWeight": 16000.0,
"LocalSlamPoseTranslationWeight": 10.0,
"LocalSlamPoseRotationWeight": 10.0,
"OdometryTranslationWeight": 10.0,
"OdometryRotationWeight": 10.0,
"FixedFramePoseTranslationWeight": 10.0,
"FixedFramePoseRotationWeight": 100.0,
"FixedFramePoseUseTolerantLoss": false,
"FixedFramePoseTolerantLossParamA": 1.0,
"FixedFramePoseTolerantLossParamB": 1.0,
"LogSolverSummary": false,
"MaxNumIterations": 20,
"CeresSolverOptions": {
"UseNonmonotonicSteps": true,
"MaxNumIterations": 50,
"NumThreads": 3,
"FunctionTolerance": 0.001,
"GradientTolerance": 0.000001,
"ParameterTolerance": 0.000001
}
},
"ConstraintBuilderOptions": {
"SamplingRatio": 0.1,
"MaxConstraintDistance": 15.0,
"MinScore": 0.5,
"GlobalLocalizationMinScore": 0.55,
"LoopClosureTranslationWeight": 11000.0,
"LoopClosureRotationWeight": 100000.0,
"LogMatches": false,
"FastCorrelativeScanMatcherOptions": {
"LinearSearchWindow": 3,
"AngularSearchWindow": 3.1415,
"BranchAndBoundDepth": 5,
"LocalizationLinearSearchWindow": 3.0,
"LocalizationAngularSearchWindow": 3.14159
},
"CeresScanMatcherOptions": {
"OccupiedSpaceWeight": 20.0,
"TranslationWeight": 10.0,
"RotationWeight": 1.0,
"HighResOccupiedSpaceWeight": 1.0,
"HighResTranslationWeight": 10.0,
"HighResRotationWeight": 40.0,
"LandmarkWeight": 0.0,
"CeresSolverOptions": {
"UseNonmonotonicSteps": true,
"MaxNumIterations": 50,
"NumThreads": 3
}
}
},
"OverlappingSubmapsTrimmer2D": {
"FreshSubmapsCount": 2,
"MinCoveredArea": 1.0,
"MinAddedSubmapsCount": 5
}
},
"MapStorage": {
"Directory": "./bin/maps",
"OccupancyGridResolution": 0.05,
"MapPadding": 0.5,
"PngVisualizationOptions": {
"ShowGrid": true,
"ShowTrajectory": true,
"GridColor": "#CCCCCC",
"TrajectoryColor": "#FF0000"
}
},
"Mcl": {
"_comment": "Monte Carlo Localization (xloc MCL). Params aligned with refs/xloc_cpp-main/configuration_files/mcl.yaml and MCLThread convergence (pose_change 0.03m, yaw 0.05rad, stable 0.3s, reliability>=0.9, mae<=0.12, timeout 3s).",
"Enabled": true,
"PrimaryLidarId": "sick-lidar-002",
"InitialNoiseX": 1.0,
"InitialNoiseY": 1.0,
"InitialNoiseYaw": 0.3,
"InitialNoiseWhenPoseGivenX": 0.15,
"InitialNoiseWhenPoseGivenY": 0.15,
"InitialNoiseWhenPoseGivenYaw": 0.05,
"ParticlesNum": 1000,
"UseAugmentedMcl": true,
"AddRandomParticlesInResampling": true,
"RandomParticlesRate": 0.1,
"RandomParticlesNoise": [
0.05,
0.05,
0.1
],
"OdomNoiseDdm": [
1.0,
0.5,
0.5,
1.5
],
"OdomNoiseOdm": [
4.0,
1.0,
1.0,
1.0,
4.0,
1.0,
1.0,
1.0,
8.0
],
"UseOmniDirectionalModel": false,
"MeasurementModelType": 2,
"ScanStep": 10,
"ZHit": 0.9,
"ZShort": 0.2,
"ZMax": 0.05,
"ZRand": 0.05,
"VarHit": 0.08,
"LambdaShort": 1.0,
"LambdaUnknown": 0.01,
"KnownClassPrior": 0.5,
"UnknownScanProbThreshold": 0.9,
"AlphaSlow": 0.001,
"AlphaFast": 0.99,
"RejectUnknownScan": true,
"ResampleThresholdEss": 0.5,
"ResampleThresholds": [
0.2,
0.2,
0.2,
0.02,
-99999.0
],
"RelTransDdm": [
0.0,
0.0
],
"RelTransOdm": [
0.0,
0.0,
0.0
],
"ClassifierType": 0,
"EstimateReliability": true,
"FailureThreshold": 0.12,
"UseGLPoseSampler": true,
"GLSampledPoseTimeTH": 0.5,
"GmmPositionalVariance": 0.1,
"GmmAngularVariance": 0.1,
"PredDistUnifRate": 0.05,
"ConvergencePoseChangeThresholdMeters": 0.03,
"ConvergenceYawChangeThresholdRad": 0.05,
"ConvergenceStableDurationSeconds": 0.3,
"ConvergenceReliabilityMin": 0.9,
"ConvergenceMaeMaxMeters": 0.12,
"ConvergenceTimeoutSeconds": 3.0,
"ConvergenceMaxIterations": 300,
"ConvergenceMinIterations": 10,
"ReliabilityMonitoring": {
"EnableReliabilityMonitoring": true,
"MonitoringIntervalSeconds": 2.0,
"MonitoringParticlesNum": 500,
"MonitoringIterationsPerCycle": 5
}
}
},
"Detection": {
"MarkerDetector": {
"LidarDevices": [
{
"DeviceId": "olei-front",
"Position": {
"X": 0.72,
"Y": 0.0,
"Z": 0.0
},
"Orientation": {
"X": 1.0,
"Y": 0.0,
"Z": 0.0,
"W": 0.0
}
}
],
"QrDevices": []
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,52 @@
{
"Devices": {
// "Oleilidar": {
// "DeviceId": "olei-front",
// "Enabled": false,
// "DeviceName": "Olei",
// "DeviceType": "Lidar",
// "DriverName": "Olei2dLidarDriver",
// "DriverVersion": "1.0.0",
// "Description": "Olei Safety Scanner LiDAR with custom scan angle configuration",
// "Connection": {
// "UdpPort": 2369,
// "FrameId": "olei-front"
// }
// }
},
"Cartographer": {
"Enable": false,
"MapStorage": {
"Directory": "./bin/maps",
"OccupancyGridResolution": 0.05,
"MapPadding": 0.5,
"PngVisualizationOptions": {
"ShowGrid": true,
"ShowTrajectory": true,
"GridColor": "#CCCCCC",
"TrajectoryColor": "#FF0000"
}
}
},
"Detection": {
"MarkerDetector": {
"LidarDevices": [
{
"DeviceId": "olei-front",
"Position": {
"X": 0.85,
"Y": 0.0,
"Z": 0.0
},
"Orientation": {
"X": 0.0,
"Y": 0.0,
"Z": 0.0,
"W": 1.0
}
}
],
"QrDevices": []
}
}
}

View File

@@ -0,0 +1,71 @@
{
"Devices": {
"Oleilidar": {
"DeviceId": "olei-front",
"Enabled": false,
"DeviceName": "Olei",
"DeviceType": "Lidar",
"DriverName": "Olei2dLidarDriver",
"DriverVersion": "1.0.0",
"Description": "Olei Safety Scanner LiDAR with custom scan angle configuration",
"Connection": {
"UdpPort": 2369,
"FrameId": "olei-front"
}
}
},
"Motion": {
"DifferentialDrive": {
"Enable": false,
"Ekf": {
"Enable": false
}
},
"ManualControl": {
"Enable": false
}
},
"Modules": {
"LiftModule": {
"Enable": false
},
"RotationModule": {
"Enable": false
}
},
"Cartographer": {
"Enable": false,
"MapStorage": {
"Directory": "./bin/maps",
"OccupancyGridResolution": 0.05,
"MapPadding": 0.5,
"PngVisualizationOptions": {
"ShowGrid": true,
"ShowTrajectory": true,
"GridColor": "#CCCCCC",
"TrajectoryColor": "#FF0000"
}
}
},
"Detection": {
"MarkerDetector": {
"LidarDevices": [
{
"DeviceId": "olei-front",
"Position": {
"X": 0.85,
"Y": 0.0,
"Z": 0.0
},
"Orientation": {
"X": 0.0,
"Y": 0.0,
"Z": 0.0,
"W": 1.0
}
}
],
"QrDevices": []
}
}
}