feat(collision_detection): add diverging release distance parameter
- Introduced a new configuration parameter `diverging_release_distance` to the collision detection system, allowing for dynamic adjustment of the distance threshold at which conflicts are resolved when vehicles are diverging. - Updated the system configuration files and documentation to reflect this new parameter. - Implemented logic in the collision detection algorithm to utilize the diverging release distance for immediate conflict resolution when conditions are met. - Added unit tests to verify the functionality of the diverging release distance in various scenarios, ensuring that conflicts are resolved correctly based on the new parameter.
This commit is contained in:
parent
4cc18fae34
commit
0ff88b0ba2
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,98 +1,21 @@
|
|||||||
^D:\APP\C++\COLLISIONAVOIDANCE\CMAKELISTS.TXT
|
^D:\APP\C++\COLLISIONAVOIDANCE\CMAKELISTS.TXT
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECCOMPILER.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECCOMPILERABI.C
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXCOMPILER.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXCOMPILERABI.CPP
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECOMPILERIDDETECTION.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECXXCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILERABI.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILERID.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILERSUPPORT.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINERCCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINESYSTEM.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEFINDBINUTILS.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEFINDDEPENDENCYMACRO.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEFINDDEPENDENCYMACRO.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEGENERICSYSTEM.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEGENERICSYSTEM.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPARSEIMPLICITINCLUDEINFO.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPARSEIMPLICITLINKINFO.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPARSELIBRARYARCHITECTURE.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKERCCOMPILER.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKERCINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKERCINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEM.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTCCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTCXXCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTCOMPILERCOMMON.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTRCCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKCSOURCECOMPILES.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKCSOURCECOMPILES.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKINCLUDEFILE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKINCLUDEFILE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKLIBRARYEXISTS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKLIBRARYEXISTS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ADSP-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ARMCC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ARMCLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\APPLECLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\BORLAND-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\BRUCE-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CLANG-DETERMINECOMPILERINTERNAL.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\COMPAQ-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\COMPAQ-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CRAY-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CRAYCLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\EMBARCADERO-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\FUJITSU-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\FUJITSUCLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\GHS-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\GNU-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\GNU-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\HP-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\HP-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IAR-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCPP-C-DETERMINEVERSIONINTERNAL.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCPP-CXX-DETERMINEVERSIONINTERNAL.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCLANG-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCLANG-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\INTEL-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\INTELLLVM-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\LCC-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\LCC-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-C.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-C.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-CXX.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-CXX.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\NVHPC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\NVIDIA-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\OPENWATCOM-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ORANGEC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\PGI-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\PATHSCALE-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SCO-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SDCC-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SUNPRO-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SUNPRO-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TI-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TICLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TASKING-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TINYCC-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\VISUALAGE-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\VISUALAGE-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\WATCOM-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XL-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XL-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XLCLANG-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XLCLANG-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ZOS-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ZOS-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILERID\VS-10.VCXPROJ.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\EXTERNALPROJECT\SHARED_INTERNAL_COMMANDS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\EXTERNALPROJECT\SHARED_INTERNAL_COMMANDS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FETCHCONTENT.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FETCHCONTENT.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FINDBOOST.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FINDBOOST.CMAKE
|
||||||
@ -104,13 +27,10 @@ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FINDTHREADS.CMAKE
|
|||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECLINKERINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECLINKERINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKEDETERMINELINKERID.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CHECKSOURCECOMPILES.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CHECKSOURCECOMPILES.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\FEATURETESTING.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-C.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-C.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-DETERMINE-CXX.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-C.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-C.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -142,6 +142,7 @@
|
|||||||
},
|
},
|
||||||
"collision_detection": {
|
"collision_detection": {
|
||||||
"update_interval_ms": 200,
|
"update_interval_ms": 200,
|
||||||
|
"diverging_release_distance": 50.0,
|
||||||
"prediction": {
|
"prediction": {
|
||||||
"time_window": 20.0,
|
"time_window": 20.0,
|
||||||
"vehicle_size": 20.0,
|
"vehicle_size": 20.0,
|
||||||
|
|||||||
@ -1,99 +1,22 @@
|
|||||||
^D:\APP\C++\COLLISIONAVOIDANCE\BUILD_VERIFY_VS2\CMAKEFILES\1B12B23DFAEA2A9D07EBD311CEF630D3\GENERATE.STAMP.RULE
|
^D:\APP\C++\COLLISIONAVOIDANCE\BUILD_VERIFY_VS2\CMAKEFILES\1B12B23DFAEA2A9D07EBD311CEF630D3\GENERATE.STAMP.RULE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECCOMPILER.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECCOMPILERABI.C
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXCOMPILER.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXCOMPILERABI.CPP
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECXXINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKECOMPILERIDDETECTION.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECXXCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILERABI.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILERID.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINECOMPILERSUPPORT.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINERCCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEDETERMINESYSTEM.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEFINDBINUTILS.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEFINDDEPENDENCYMACRO.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEFINDDEPENDENCYMACRO.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEGENERICSYSTEM.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEGENERICSYSTEM.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPACKAGECONFIGHELPERS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPACKAGECONFIGHELPERS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPARSEIMPLICITINCLUDEINFO.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPARSEIMPLICITLINKINFO.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKEPARSELIBRARYARCHITECTURE.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKERCCOMPILER.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKERCINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKERCINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEM.CMAKE.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTCCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTCXXCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTCOMPILERCOMMON.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CMAKETESTRCCOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKCSOURCECOMPILES.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKCSOURCECOMPILES.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKINCLUDEFILE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKINCLUDEFILE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKLIBRARYEXISTS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\CHECKLIBRARYEXISTS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ADSP-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ARMCC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ARMCLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\APPLECLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\BORLAND-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\BRUCE-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CLANG-DETERMINECOMPILERINTERNAL.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\COMPAQ-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\COMPAQ-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CRAY-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\CRAYCLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\EMBARCADERO-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\FUJITSU-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\FUJITSUCLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\GHS-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\GNU-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\GNU-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\HP-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\HP-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IAR-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCPP-C-DETERMINEVERSIONINTERNAL.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCPP-CXX-DETERMINEVERSIONINTERNAL.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCLANG-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\IBMCLANG-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\INTEL-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\INTELLLVM-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\LCC-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\LCC-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-C.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-C.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-CXX.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-CXX.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\MSVC.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\NVHPC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\NVIDIA-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\OPENWATCOM-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ORANGEC-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\PGI-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\PATHSCALE-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SCO-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SDCC-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SUNPRO-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\SUNPRO-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TI-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TICLANG-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TASKING-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\TINYCC-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\VISUALAGE-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\VISUALAGE-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\WATCOM-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XL-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XL-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XLCLANG-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\XLCLANG-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ZOS-C-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILER\ZOS-CXX-DETERMINECOMPILER.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\COMPILERID\VS-10.VCXPROJ.IN
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\EXTERNALPROJECT.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\EXTERNALPROJECT.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\EXTERNALPROJECT\SHARED_INTERNAL_COMMANDS.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\EXTERNALPROJECT\SHARED_INTERNAL_COMMANDS.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FETCHCONTENT.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\FETCHCONTENT.CMAKE
|
||||||
@ -107,13 +30,10 @@ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\GNUINSTALLDIRS.CMAKE
|
|||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECLINKERINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECLINKERINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CMAKEDETERMINELINKERID.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CHECKSOURCECOMPILES.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\CHECKSOURCECOMPILES.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\INTERNAL\FEATURETESTING.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-C.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-C.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-DETERMINE-CXX.CMAKE
|
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-C.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-C.CMAKE
|
||||||
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
|
C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.31\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
|
||||||
|
|||||||
@ -142,6 +142,7 @@
|
|||||||
},
|
},
|
||||||
"collision_detection": {
|
"collision_detection": {
|
||||||
"update_interval_ms": 200,
|
"update_interval_ms": 200,
|
||||||
|
"diverging_release_distance": 50.0,
|
||||||
"prediction": {
|
"prediction": {
|
||||||
"time_window": 20.0,
|
"time_window": 20.0,
|
||||||
"vehicle_size": 20.0,
|
"vehicle_size": 20.0,
|
||||||
|
|||||||
@ -273,6 +273,7 @@
|
|||||||
```json
|
```json
|
||||||
"collision_detection": {
|
"collision_detection": {
|
||||||
"update_interval_ms": 200,
|
"update_interval_ms": 200,
|
||||||
|
"diverging_release_distance": 50.0,
|
||||||
"prediction": {
|
"prediction": {
|
||||||
"time_window": 20.0,
|
"time_window": 20.0,
|
||||||
"vehicle_size": 20.0,
|
"vehicle_size": 20.0,
|
||||||
@ -283,12 +284,17 @@
|
|||||||
```
|
```
|
||||||
### 参数说明
|
### 参数说明
|
||||||
- **update_interval_ms**:冲突检测更新间隔时间(ms)
|
- **update_interval_ms**:冲突检测更新间隔时间(ms)
|
||||||
|
- **diverging_release_distance**:冲突解除距离阈值(m)。当航空器与车辆不再预测碰撞、且双方距离正在增大并且当前距离大于等于该值时,立即解除冲突。
|
||||||
- **prediction**:冲突预测模型参数
|
- **prediction**:冲突预测模型参数
|
||||||
- **time_window**:预测时间窗口(s)
|
- **time_window**:预测时间窗口(s)
|
||||||
- **vehicle_size**:车辆尺寸(m)
|
- **vehicle_size**:车辆尺寸(m)
|
||||||
- **aircraft_size**:航空器尺寸(m)
|
- **aircraft_size**:航空器尺寸(m)
|
||||||
- **min_unmanned_speed**:无人车最小速度(m/s)
|
- **min_unmanned_speed**:无人车最小速度(m/s)
|
||||||
|
|
||||||
|
运行中动态修改(HTTP):
|
||||||
|
- `POST /config/collision/diverging_release_distance`
|
||||||
|
- Body:`{"value": 50}`
|
||||||
|
|
||||||
### 冲突预警和告警参数
|
### 冲突预警和告警参数
|
||||||
|
|
||||||
文件路径:`config/airport_bounds.json`
|
文件路径:`config/airport_bounds.json`
|
||||||
|
|||||||
@ -69,6 +69,7 @@ public:
|
|||||||
} prediction;
|
} prediction;
|
||||||
|
|
||||||
int update_interval_ms;
|
int update_interval_ms;
|
||||||
|
double diverging_release_distance = 50.0;
|
||||||
} collision_detection;
|
} collision_detection;
|
||||||
|
|
||||||
struct Logging {
|
struct Logging {
|
||||||
@ -202,12 +203,14 @@ inline void from_json(const json& j, SystemConfig::CollisionDetection::Predictio
|
|||||||
inline void to_json(json& j, const SystemConfig::CollisionDetection& p) {
|
inline void to_json(json& j, const SystemConfig::CollisionDetection& p) {
|
||||||
j = json{
|
j = json{
|
||||||
{"update_interval_ms", p.update_interval_ms},
|
{"update_interval_ms", p.update_interval_ms},
|
||||||
|
{"diverging_release_distance", p.diverging_release_distance},
|
||||||
{"prediction", p.prediction}
|
{"prediction", p.prediction}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void from_json(const json& j, SystemConfig::CollisionDetection& p) {
|
inline void from_json(const json& j, SystemConfig::CollisionDetection& p) {
|
||||||
j.at("update_interval_ms").get_to(p.update_interval_ms);
|
j.at("update_interval_ms").get_to(p.update_interval_ms);
|
||||||
|
p.diverging_release_distance = j.value("diverging_release_distance", 50.0);
|
||||||
j.at("prediction").get_to(p.prediction);
|
j.at("prediction").get_to(p.prediction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,7 @@ bool System::initialize() {
|
|||||||
// 前端交互接口(HTTP)
|
// 前端交互接口(HTTP)
|
||||||
// - POST http://<host>:<port>/config/runway/warning_zone_radius/aircraft {"value": 300}
|
// - POST http://<host>:<port>/config/runway/warning_zone_radius/aircraft {"value": 300}
|
||||||
// - POST http://<host>:<port>/config/runway/alert_zone_radius/aircraft {"value": 200}
|
// - POST http://<host>:<port>/config/runway/alert_zone_radius/aircraft {"value": 200}
|
||||||
|
// - POST http://<host>:<port>/config/collision/diverging_release_distance {"value": 50}
|
||||||
// - POST http://<host>:<port>/api/VehicleRegistry [...]
|
// - POST http://<host>:<port>/api/VehicleRegistry [...]
|
||||||
config_http_server_ = std::make_unique<network::ConfigHttpServer>(
|
config_http_server_ = std::make_unique<network::ConfigHttpServer>(
|
||||||
system_config.frontend_http_server.port,
|
system_config.frontend_http_server.port,
|
||||||
@ -231,6 +232,17 @@ bool System::setRunwayAlertZoneAircraftRadius(double radius, double* oldValue) {
|
|||||||
return airportBounds_->setAlertZoneAircraftRadius(AreaType::RUNWAY, radius);
|
return airportBounds_->setAlertZoneAircraftRadius(AreaType::RUNWAY, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool System::setDivergingReleaseDistance(double value, double* oldValue) {
|
||||||
|
if (!collisionDetector_) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const bool updated = collisionDetector_->setDivergingReleaseDistance(value, oldValue);
|
||||||
|
if (updated) {
|
||||||
|
SystemConfig::instance().collision_detection.diverging_release_distance = value;
|
||||||
|
}
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
void System::processLoop() {
|
void System::processLoop() {
|
||||||
while (running_) {
|
while (running_) {
|
||||||
try {
|
try {
|
||||||
@ -558,9 +570,8 @@ void System::processCollisions(
|
|||||||
std::chrono::system_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
broadcastVehicleCommand(parkingCmd);
|
|
||||||
controllableVehicles_.sendCommand(vehicleId, parkingCmd);
|
controllableVehicles_.sendCommand(vehicleId, parkingCmd);
|
||||||
Logger::info("ALERT 后补发停车指令到车辆: ", vehicleId);
|
Logger::info("ALERT 后补发停车指令到车辆(仅车辆链路,不广播前端): ", vehicleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新风险记录
|
// 更新风险记录
|
||||||
@ -712,7 +723,10 @@ void System::broadcastCollisionWarning(const CollisionRisk& risk) {
|
|||||||
.count()} };
|
.count()} };
|
||||||
|
|
||||||
// 广播冲突预警消息
|
// 广播冲突预警消息
|
||||||
ws_server_->broadcast(j.dump());
|
const std::string payload = j.dump();
|
||||||
|
ws_server_->broadcast(payload);
|
||||||
|
// 前端链路可靠性兜底:关键告警消息重复广播一次(仅前端,不影响车辆控制链路)
|
||||||
|
ws_server_->broadcast(payload);
|
||||||
Logger::debug("广播冲突预警: id1=", risk.id1, " id2=", risk.id2,
|
Logger::debug("广播冲突预警: id1=", risk.id1, " id2=", risk.id2,
|
||||||
" distance=", risk.distance, "m",
|
" distance=", risk.distance, "m",
|
||||||
" relativeSpeed=", risk.relativeSpeed, "m/s",
|
" relativeSpeed=", risk.relativeSpeed, "m/s",
|
||||||
@ -790,7 +804,12 @@ void System::broadcastVehicleCommand(const VehicleCommand& cmd) {
|
|||||||
j["targetLongitude"] = cmd.longitude;
|
j["targetLongitude"] = cmd.longitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
ws_server_->broadcast(j.dump());
|
const std::string payload = j.dump();
|
||||||
|
ws_server_->broadcast(payload);
|
||||||
|
// 前端链路可靠性兜底:ALERT/WARNING 重复广播一次(仅前端,不影响车辆控制链路)
|
||||||
|
if (cmd.type == CommandType::ALERT || cmd.type == CommandType::WARNING) {
|
||||||
|
ws_server_->broadcast(payload);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const MovingObject* System::findVehicle(const std::string& vehicleId) const {
|
const MovingObject* System::findVehicle(const std::string& vehicleId) const {
|
||||||
@ -918,9 +937,8 @@ bool System::handleSafetyZoneRisk(const Vehicle& vehicle,
|
|||||||
std::chrono::system_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
broadcastVehicleCommand(parkingCmd);
|
|
||||||
controllableVehicles_.sendCommand(vehicle.id, parkingCmd);
|
controllableVehicles_.sendCommand(vehicle.id, parkingCmd);
|
||||||
Logger::info("安全区 ALERT 后补发停车指令到车辆: ", vehicle.id);
|
Logger::info("安全区 ALERT 后补发停车指令到车辆(仅车辆链路,不广播前端): ", vehicle.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
CollisionRisk risk;
|
CollisionRisk risk;
|
||||||
|
|||||||
@ -46,6 +46,7 @@ public:
|
|||||||
// 运行中动态修改配置:对应 airport_bounds.json 里 runway.warning_zone_radius.aircraft(默认 200)
|
// 运行中动态修改配置:对应 airport_bounds.json 里 runway.warning_zone_radius.aircraft(默认 200)
|
||||||
bool setRunwayWarningZoneAircraftRadius(double radius, double* oldValue = nullptr);
|
bool setRunwayWarningZoneAircraftRadius(double radius, double* oldValue = nullptr);
|
||||||
bool setRunwayAlertZoneAircraftRadius(double radius, double* oldValue = nullptr);
|
bool setRunwayAlertZoneAircraftRadius(double radius, double* oldValue = nullptr);
|
||||||
|
bool setDivergingReleaseDistance(double value, double* oldValue = nullptr);
|
||||||
|
|
||||||
const SystemConfig& getSystemConfig() const { return SystemConfig::instance(); }
|
const SystemConfig& getSystemConfig() const { return SystemConfig::instance(); }
|
||||||
const IntersectionConfig& getIntersectionConfig() const { return intersection_config_; }
|
const IntersectionConfig& getIntersectionConfig() const { return intersection_config_; }
|
||||||
|
|||||||
@ -18,11 +18,23 @@ constexpr int64_t kResolveNoRiskTimeoutMs = 5000;
|
|||||||
CollisionDetector::CollisionDetector(const AirportBounds& bounds, const ControllableVehicles& controllableVehicles)
|
CollisionDetector::CollisionDetector(const AirportBounds& bounds, const ControllableVehicles& controllableVehicles)
|
||||||
: airportBounds_(bounds),
|
: airportBounds_(bounds),
|
||||||
vehicleTree_(bounds.getAirportBounds(), 8), // 使用机场总边界初始化四叉树
|
vehicleTree_(bounds.getAirportBounds(), 8), // 使用机场总边界初始化四叉树
|
||||||
controllableVehicles_(&controllableVehicles) {
|
controllableVehicles_(&controllableVehicles),
|
||||||
|
divergingReleaseDistance_(SystemConfig::instance().collision_detection.diverging_release_distance) {
|
||||||
// 记录初始化信息
|
// 记录初始化信息
|
||||||
const auto& airportBounds = bounds.getAirportBounds();
|
const auto& airportBounds = bounds.getAirportBounds();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CollisionDetector::setDivergingReleaseDistance(double value, double* oldValue) {
|
||||||
|
if (!(value > 0.0) || !std::isfinite(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (oldValue) {
|
||||||
|
*oldValue = divergingReleaseDistance_.load();
|
||||||
|
}
|
||||||
|
divergingReleaseDistance_.store(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void CollisionDetector::updateTraffic(const std::vector<Aircraft>& aircraft,
|
void CollisionDetector::updateTraffic(const std::vector<Aircraft>& aircraft,
|
||||||
const std::vector<Vehicle>& vehicles) {
|
const std::vector<Vehicle>& vehicles) {
|
||||||
Logger::debug("更新交通数据: 航空器数量=", aircraft.size(),
|
Logger::debug("更新交通数据: 航空器数量=", aircraft.size(),
|
||||||
@ -189,9 +201,20 @@ std::vector<CollisionRisk> CollisionDetector::detectCollisions() {
|
|||||||
", level=", static_cast<int>(level));
|
", level=", static_cast<int>(level));
|
||||||
} else if (hasUnresolvedConflict) {
|
} else if (hasUnresolvedConflict) {
|
||||||
// 专业化释放策略:
|
// 专业化释放策略:
|
||||||
|
// 0. 新增:远离且达到解除距离 -> 立即释放
|
||||||
// A. 距离已明显拉开且当前不再预测碰撞 -> 立即释放
|
// A. 距离已明显拉开且当前不再预测碰撞 -> 立即释放
|
||||||
// B. 连续无风险超过阈值 -> 强制释放,防止历史 maxLevel 粘连
|
// B. 连续无风险超过阈值 -> 强制释放,防止历史 maxLevel 粘连
|
||||||
// C. 其余场景沿用原有几何释放条件
|
// C. 其余场景沿用原有几何释放条件
|
||||||
|
const double divergingReleaseDistance = divergingReleaseDistance_.load();
|
||||||
|
const double rx = vehicle.position.x - aircraft.position.x;
|
||||||
|
const double ry = vehicle.position.y - aircraft.position.y;
|
||||||
|
const double relVx = vv.vx - av.vx;
|
||||||
|
const double relVy = vv.vy - av.vy;
|
||||||
|
const bool isDiverging = (rx * relVx + ry * relVy) > 0.0;
|
||||||
|
const bool divergingRelease =
|
||||||
|
!collisionResult.willCollide &&
|
||||||
|
isDiverging &&
|
||||||
|
collisionResult.distance >= divergingReleaseDistance;
|
||||||
const bool farEnoughAndNoRisk =
|
const bool farEnoughAndNoRisk =
|
||||||
!collisionResult.willCollide &&
|
!collisionResult.willCollide &&
|
||||||
collisionResult.distance >= safeDistance * kResolveDistanceMultiplier;
|
collisionResult.distance >= safeDistance * kResolveDistanceMultiplier;
|
||||||
@ -201,13 +224,14 @@ std::vector<CollisionRisk> CollisionDetector::detectCollisions() {
|
|||||||
const bool geometricResolved =
|
const bool geometricResolved =
|
||||||
checkCollisionResolved(aircraft, vehicle, it->second, safeDistance);
|
checkCollisionResolved(aircraft, vehicle, it->second, safeDistance);
|
||||||
|
|
||||||
if (farEnoughAndNoRisk || noRiskTimeout || geometricResolved) {
|
if (divergingRelease || farEnoughAndNoRisk || noRiskTimeout || geometricResolved) {
|
||||||
it->second.resolved = true;
|
it->second.resolved = true;
|
||||||
Logger::debug("冲突已解除: obj1=", aircraft.id,
|
Logger::debug("冲突已解除: obj1=", aircraft.id,
|
||||||
", obj2=", vehicle.id,
|
", obj2=", vehicle.id,
|
||||||
", reason=",
|
", reason=",
|
||||||
farEnoughAndNoRisk ? "far_enough_no_risk" :
|
divergingRelease ? "diverging_release_distance" :
|
||||||
(noRiskTimeout ? "no_risk_timeout" : "geometric_condition"));
|
(farEnoughAndNoRisk ? "far_enough_no_risk" :
|
||||||
|
(noRiskTimeout ? "no_risk_timeout" : "geometric_condition")));
|
||||||
} else {
|
} else {
|
||||||
// 虽然当前没有检测到风险,但由于未满足解除条件,继续保持原有风险等级
|
// 虽然当前没有检测到风险,但由于未满足解除条件,继续保持原有风险等级
|
||||||
currentCollisions.insert(collisionKey);
|
currentCollisions.insert(collisionKey);
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
#include "CollisionTypes.h"
|
#include "CollisionTypes.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <atomic>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
// 碰撞风险等级
|
// 碰撞风险等级
|
||||||
@ -70,11 +71,14 @@ public:
|
|||||||
const MovingObject& obj2,
|
const MovingObject& obj2,
|
||||||
double timeWindow = 30.0) const;
|
double timeWindow = 30.0) const;
|
||||||
|
|
||||||
|
bool setDivergingReleaseDistance(double value, double* oldValue = nullptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const AirportBounds& airportBounds_;
|
const AirportBounds& airportBounds_;
|
||||||
QuadTree<Vehicle> vehicleTree_;
|
QuadTree<Vehicle> vehicleTree_;
|
||||||
std::vector<Aircraft> aircraftData_;
|
std::vector<Aircraft> aircraftData_;
|
||||||
const ControllableVehicles* controllableVehicles_;
|
const ControllableVehicles* controllableVehicles_;
|
||||||
|
std::atomic<double> divergingReleaseDistance_{50.0};
|
||||||
|
|
||||||
// 冲突记录映射表:<(id1,id2), CollisionRecord>
|
// 冲突记录映射表:<(id1,id2), CollisionRecord>
|
||||||
std::unordered_map<std::pair<std::string, std::string>, CollisionRecord, CollisionPairHash> collisionRecords_;
|
std::unordered_map<std::pair<std::string, std::string>, CollisionRecord, CollisionPairHash> collisionRecords_;
|
||||||
|
|||||||
@ -177,7 +177,8 @@ private:
|
|||||||
// Body: {"value": 300}
|
// Body: {"value": 300}
|
||||||
const bool isWarningZoneApi = req_.target() == "/config/runway/warning_zone_radius/aircraft";
|
const bool isWarningZoneApi = req_.target() == "/config/runway/warning_zone_radius/aircraft";
|
||||||
const bool isAlertZoneApi = req_.target() == "/config/runway/alert_zone_radius/aircraft";
|
const bool isAlertZoneApi = req_.target() == "/config/runway/alert_zone_radius/aircraft";
|
||||||
if (!isWarningZoneApi && !isAlertZoneApi) {
|
const bool isDivergingReleaseApi = req_.target() == "/config/collision/diverging_release_distance";
|
||||||
|
if (!isWarningZoneApi && !isAlertZoneApi && !isDivergingReleaseApi) {
|
||||||
return send_response(json_response(req_, http::status::not_found,
|
return send_response(json_response(req_, http::status::not_found,
|
||||||
json{{"status", "error"}, {"message", "Not Found"}}));
|
json{{"status", "error"}, {"message", "Not Found"}}));
|
||||||
}
|
}
|
||||||
@ -193,12 +194,17 @@ private:
|
|||||||
double oldValue = 0.0;
|
double oldValue = 0.0;
|
||||||
bool updated = false;
|
bool updated = false;
|
||||||
const char* field = nullptr;
|
const char* field = nullptr;
|
||||||
|
const char* area = "runway";
|
||||||
if (isWarningZoneApi) {
|
if (isWarningZoneApi) {
|
||||||
updated = system_.setRunwayWarningZoneAircraftRadius(value, &oldValue);
|
updated = system_.setRunwayWarningZoneAircraftRadius(value, &oldValue);
|
||||||
field = "warning_zone_radius.aircraft";
|
field = "warning_zone_radius.aircraft";
|
||||||
} else {
|
} else if (isAlertZoneApi) {
|
||||||
updated = system_.setRunwayAlertZoneAircraftRadius(value, &oldValue);
|
updated = system_.setRunwayAlertZoneAircraftRadius(value, &oldValue);
|
||||||
field = "alert_zone_radius.aircraft";
|
field = "alert_zone_radius.aircraft";
|
||||||
|
} else {
|
||||||
|
updated = system_.setDivergingReleaseDistance(value, &oldValue);
|
||||||
|
field = "collision.diverging_release_distance";
|
||||||
|
area = "collision";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!updated) {
|
if (!updated) {
|
||||||
@ -210,7 +216,7 @@ private:
|
|||||||
|
|
||||||
return send_response(json_response(req_, http::status::ok,
|
return send_response(json_response(req_, http::status::ok,
|
||||||
json{{"status", "success"},
|
json{{"status", "success"},
|
||||||
{"area", "runway"},
|
{"area", area},
|
||||||
{"field", field},
|
{"field", field},
|
||||||
{"old", oldValue},
|
{"old", oldValue},
|
||||||
{"new", value}}));
|
{"new", value}}));
|
||||||
|
|||||||
@ -86,6 +86,7 @@
|
|||||||
},
|
},
|
||||||
"collision_detection": {
|
"collision_detection": {
|
||||||
"update_interval_ms": 200,
|
"update_interval_ms": 200,
|
||||||
|
"diverging_release_distance": 50.0,
|
||||||
"prediction": {
|
"prediction": {
|
||||||
"time_window": 20.0,
|
"time_window": 20.0,
|
||||||
"vehicle_size": 20.0,
|
"vehicle_size": 20.0,
|
||||||
|
|||||||
@ -8,6 +8,14 @@
|
|||||||
#include "config/SystemConfig.h"
|
#include "config/SystemConfig.h"
|
||||||
#include "config/AirportBounds.h"
|
#include "config/AirportBounds.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void RegisterManagedVehicle(const std::string& vehicleId) {
|
||||||
|
ControllableVehicles::getInstance().updateRegistry({
|
||||||
|
VehicleRegistryEntry{vehicleId, "WUREN"}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Mock ControllableVehicles 类
|
// Mock ControllableVehicles 类
|
||||||
class MockControllableVehicles {
|
class MockControllableVehicles {
|
||||||
public:
|
public:
|
||||||
@ -537,3 +545,114 @@ TEST_F(BasicCollisionTest, CrossingBeforeAndAfter) {
|
|||||||
|
|
||||||
EXPECT_TRUE(risks.empty()) << "航空器已远离,无人车继续运动不应产生新的冲突";
|
EXPECT_TRUE(risks.empty()) << "航空器已远离,无人车继续运动不应产生新的冲突";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(BasicCollisionTest, DivergingReleaseDistanceResolvesConflictImmediately) {
|
||||||
|
RegisterManagedVehicle("UT_VEH_DIVERGE_1");
|
||||||
|
ASSERT_TRUE(detector_->setDivergingReleaseDistance(50.0));
|
||||||
|
|
||||||
|
Aircraft aircraft;
|
||||||
|
aircraft.id = "UT_AC_DIVERGE_1";
|
||||||
|
aircraft.flightNo = "UT_AC_DIVERGE_1";
|
||||||
|
aircraft.type = MovingObjectType::AIRCRAFT;
|
||||||
|
aircraft.altitude = 0.0;
|
||||||
|
aircraft.position = {100.0, 100.0};
|
||||||
|
aircraft.speed = 10.0;
|
||||||
|
aircraft.heading = 90.0;
|
||||||
|
|
||||||
|
Vehicle vehicle;
|
||||||
|
vehicle.id = "UT_VEH_DIVERGE_1";
|
||||||
|
vehicle.vehicleNo = "UT_VEH_DIVERGE_1";
|
||||||
|
vehicle.position = {180.0, 100.0};
|
||||||
|
vehicle.speed = 10.0;
|
||||||
|
vehicle.heading = 270.0;
|
||||||
|
|
||||||
|
detector_->updateTraffic({aircraft}, {vehicle});
|
||||||
|
auto risks = detector_->detectCollisions();
|
||||||
|
ASSERT_FALSE(risks.empty()) << "首帧应先建立冲突记录";
|
||||||
|
|
||||||
|
// 第二帧:距离在 50m 以上且正在远离,且不满足旧距离兜底(1.5 * warning = 225m)
|
||||||
|
aircraft.position = {200.0, 100.0};
|
||||||
|
aircraft.speed = 5.0;
|
||||||
|
aircraft.heading = 270.0;
|
||||||
|
vehicle.position = {120.0, 100.0};
|
||||||
|
vehicle.speed = 15.0;
|
||||||
|
vehicle.heading = 270.0;
|
||||||
|
|
||||||
|
detector_->updateTraffic({aircraft}, {vehicle});
|
||||||
|
risks = detector_->detectCollisions();
|
||||||
|
EXPECT_TRUE(risks.empty()) << "远离且达到解除距离时应立即解除冲突";
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(BasicCollisionTest, ApproachingAboveReleaseDistanceDoesNotRelease) {
|
||||||
|
RegisterManagedVehicle("UT_VEH_APPROACH_1");
|
||||||
|
ASSERT_TRUE(detector_->setDivergingReleaseDistance(50.0));
|
||||||
|
|
||||||
|
Aircraft aircraft;
|
||||||
|
aircraft.id = "UT_AC_APPROACH_1";
|
||||||
|
aircraft.flightNo = "UT_AC_APPROACH_1";
|
||||||
|
aircraft.type = MovingObjectType::AIRCRAFT;
|
||||||
|
aircraft.altitude = 0.0;
|
||||||
|
aircraft.position = {100.0, 100.0};
|
||||||
|
aircraft.speed = 10.0;
|
||||||
|
aircraft.heading = 90.0;
|
||||||
|
|
||||||
|
Vehicle vehicle;
|
||||||
|
vehicle.id = "UT_VEH_APPROACH_1";
|
||||||
|
vehicle.vehicleNo = "UT_VEH_APPROACH_1";
|
||||||
|
vehicle.position = {180.0, 100.0};
|
||||||
|
vehicle.speed = 10.0;
|
||||||
|
vehicle.heading = 270.0;
|
||||||
|
|
||||||
|
detector_->updateTraffic({aircraft}, {vehicle});
|
||||||
|
auto risks = detector_->detectCollisions();
|
||||||
|
ASSERT_FALSE(risks.empty()) << "首帧应先建立冲突记录";
|
||||||
|
|
||||||
|
// 第二帧:当前距离 149m(>50m) 但处于接近态,且 30s 内不会碰撞
|
||||||
|
aircraft.position = {200.0, 100.0};
|
||||||
|
aircraft.speed = 1.0;
|
||||||
|
aircraft.heading = 270.0;
|
||||||
|
vehicle.position = {51.0, 100.0};
|
||||||
|
vehicle.speed = 1.0;
|
||||||
|
vehicle.heading = 90.0;
|
||||||
|
|
||||||
|
detector_->updateTraffic({aircraft}, {vehicle});
|
||||||
|
risks = detector_->detectCollisions();
|
||||||
|
EXPECT_FALSE(risks.empty()) << "接近态不应被远离解除距离规则误解除";
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(BasicCollisionTest, LegacyReleaseFallbackStillWorksWhenNotDiverging) {
|
||||||
|
RegisterManagedVehicle("UT_VEH_FALLBACK_1");
|
||||||
|
ASSERT_TRUE(detector_->setDivergingReleaseDistance(50.0));
|
||||||
|
|
||||||
|
Aircraft aircraft;
|
||||||
|
aircraft.id = "UT_AC_FALLBACK_1";
|
||||||
|
aircraft.flightNo = "UT_AC_FALLBACK_1";
|
||||||
|
aircraft.type = MovingObjectType::AIRCRAFT;
|
||||||
|
aircraft.altitude = 0.0;
|
||||||
|
aircraft.position = {100.0, 100.0};
|
||||||
|
aircraft.speed = 10.0;
|
||||||
|
aircraft.heading = 90.0;
|
||||||
|
|
||||||
|
Vehicle vehicle;
|
||||||
|
vehicle.id = "UT_VEH_FALLBACK_1";
|
||||||
|
vehicle.vehicleNo = "UT_VEH_FALLBACK_1";
|
||||||
|
vehicle.position = {180.0, 100.0};
|
||||||
|
vehicle.speed = 10.0;
|
||||||
|
vehicle.heading = 270.0;
|
||||||
|
|
||||||
|
detector_->updateTraffic({aircraft}, {vehicle});
|
||||||
|
auto risks = detector_->detectCollisions();
|
||||||
|
ASSERT_FALSE(risks.empty()) << "首帧应先建立冲突记录";
|
||||||
|
|
||||||
|
// 第二帧:不处于远离态,但满足旧逻辑的 farEnoughAndNoRisk(>=225m)
|
||||||
|
aircraft.position = {300.0, 100.0};
|
||||||
|
aircraft.speed = 1.0;
|
||||||
|
aircraft.heading = 270.0;
|
||||||
|
vehicle.position = {70.0, 100.0};
|
||||||
|
vehicle.speed = 1.0;
|
||||||
|
vehicle.heading = 90.0;
|
||||||
|
|
||||||
|
detector_->updateTraffic({aircraft}, {vehicle});
|
||||||
|
risks = detector_->detectCollisions();
|
||||||
|
EXPECT_TRUE(risks.empty()) << "旧逻辑兜底应继续生效并解除冲突";
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user