Skip to content
/ Sipp Public

Pathplanning in dynamic environments. C++ realization of Sipp and Anytime Sipp algorithms and its visualization.

Notifications You must be signed in to change notification settings

afnastya/Sipp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sipp

Π’ этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° планирования Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² срСдС с динамичСскими прСпятствиями Sipp ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Anytime Sipp, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. РСализация протСстирована Π½Π° большой Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ тСстов, сгСнСрированных Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования Ρ‚Π°ΠΊΠΆΠ΅ доступны Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π² Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

den101d_200_1_log.mp4

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Examples

ДирСктория содСрТит 4 ΠΏΠ°ΠΏΠΊΠΈ:

  • tasks - задания. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚ΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π·Π°Π΄Π°Π½ΠΈΠ΅, написано Π½ΠΈΠΆΠ΅.
  • logs - Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих Π·Π°Π΄Π°Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Sipp
  • logs_anytime - Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих Π·Π°Π΄Π°Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Anytime Sipp
  • videos - визуализация Π½Π°ΠΉΠ΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Sipp

МоТно ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ эти тСсты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Запустятся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° заданиях, ΠΈ Ρ‡Π΅ΠΊΠ΅Ρ€ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ…):

ctest -R 'examples'

Π’Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ:

    Start 1: examples
1/2 Test #1: examples .........................   Passed    0.65 sec
    Start 2: examples/anytime
2/2 Test #2: examples/anytime .................   Passed    0.88 sec

100% tests passed, 0 tests failed out of 2

Total Test time (real) =   1.53 sec

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠŸΡƒΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ нСкоторая срСда – Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ со свободными ΠΈ занятыми ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Π³Π΄Π΅ занятыС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ – статичСскиС прСпятствия. На этом ΠΏΠΎΠ»Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ динамичСскиС прСпятствия. Π£ Π½ΠΈΡ… Π½Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², поэтому Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΡ‡ΠΊΠΈ. ДинамичСскиС прСпятствия Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΈ прямолинСйно ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌΠΈ с ΠΎΠ±Ρ‰Π΅ΠΉ стороной, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΠ· любой ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 4 направлСниях: Π²Π²Π΅Ρ€Ρ…, Π²Π½ΠΈΠ·, Π²ΠΏΡ€Π°Π²ΠΎ, Π²Π»Π΅Π²ΠΎ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈ Ρ†Π΅Π»ΠΎΠΌ числС Π΅Π΄ΠΈΠ½ΠΈΡ† Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ любоС динамичСскоС прСпятствиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ.

directions

Π•ΡΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ S (start) Π² Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ F (finish). Π£ Π°Π³Π΅Π½Ρ‚Π° Π½Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², поэтому Ρ‚ΠΎΠΆΠ΅ считаСм, Ρ‡Ρ‚ΠΎ Π°Π³Π΅Π½Ρ‚ – Ρ‚ΠΎΡ‡ΠΊΠ°. АгСнт двигаСтся Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΈ прямолинСйно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ свободным ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌ, ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ динамичСскиС прСпятствия, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌΠΈ с ΠΎΠ±Ρ‰Π΅ΠΉ стороной Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ… ΠΆΠ΅ 4 направлСниях. Аналогично динамичСским прСпятствиям, Π°Π³Π΅Π½Ρ‚ пСрСмСщаСтся Π² сосСднюю ΠΊΠ»Π΅Ρ‚ΠΊΡƒ Π·Π° 1 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΏΡ€ΠΈ Ρ†Π΅Π»ΠΎΠΌ числС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ.

Π—Π°Π΄Π°Ρ‡Π°: для Π°Π³Π΅Π½Ρ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· ΠΊΠ»Π΅Ρ‚ΠΊΠΈ S Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ F, проходящий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ свободным ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†Π΅Π»Ρ‹ΠΉ) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π°Π³Π΅Π½Ρ‚Π° (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†Π΅Π»Ρ‹Π΅) Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π½ΠΈ с ΠΊΠ°ΠΊΠΈΠΌ динамичСским прСпятствиСм. grid

На рисункС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ поля Π½Π° стартС, Π±Π΅Π»Ρ‹Π΅ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ – свободныС, Ρ‡Π΅Ρ€Π½Ρ‹Π΅ – занятыС. ΠšΡ€Π°ΡΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° – искомый Π°Π³Π΅Π½Ρ‚, стоит Π½Π° стартС. ΠšΠ»Π΅Ρ‚ΠΊΠ°, помСчСнная Π±ΡƒΠΊΠ²ΠΎΠΉ F, – Ρ„ΠΈΠ½ΠΈΡˆ, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ Π°Π³Π΅Π½Ρ‚Ρƒ. 3 синиС Ρ‚ΠΎΡ‡ΠΊΠΈ – динамичСскиС прСпятствия Π½Π° своих стартовых позициях.

Алгоритм Sipp ΠΈ Anytime Sipp

ΠŸΡ€Π΅Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹

GCC 10 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ Apple LLVM version 11.0.3 (clang-1103.0.32.62) ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ Boost

Π‘Π±ΠΎΡ€ΠΊΠ°:

mkdir Build
cd build
cmake ..
make SippSearch

Запуск:

Находимся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Build.

./Src/Planning/SippSearch input.xml [-w hweight] [-l logLevel]

Π’ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ Build Π΄ΠΎ xml-Ρ„Π°ΠΉΠ»Π° с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π»ΠΈΠ±ΠΎ Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с заданиями (Ρ‚ΠΎΠ³Π΄Π° сразу ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ всС задания ΠΈΠ· этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ). Если ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ hweight - Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ вСс эвристики - запустится Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Anytime Sipp. Если этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚,Ρ‚ΠΎ Sipp. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ логирования (logLevel):

  • -1 - Π² консоль Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ вывСдится
  • 0 - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π° с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡƒΡ‚ΠΈ, Ссли Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
  • 1 - вывСдутся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (основныС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ: pathlength, nodescreated, numberofsteps, searchtime)
  • 2 - всё, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ слова, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ этапа Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • 3 - всё, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ node ΠΈ списки бСзопасных ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² Π΅Π³ΠΎ successors

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

./Src/Planning/SippSearch ../Examples/tasks/        # запуск Sipp Π½Π° всСх тСстах, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ../Examples/tasks/
./Src/Planning/SippSearch ../Examples/tasks/ -w 2   # запуск Anytime Sipp Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ тСстах

Π’ΠΈΠ΄ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Ρ‚Π΅Π³ΠΎΠ²:

  • <map> – Ρ‚Π΅Π³ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡΠ΅ΠΊΡ†ΠΈΡŽ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ
  • <height> ΠΈ <width> – высота ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠ°Ρ€Ρ‚Ρ‹ соотвСтствСнно.
  • <startx>, <starty> – ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ старта Π°Π³Π΅Π½Ρ‚Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ ΠΏΡƒΡ‚ΡŒ
  • <finishx>, <finishy> – ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ„ΠΈΠ½ΠΈΡˆΠ° Π°Π³Π΅Π½Ρ‚Π°
  • <grid> – описаниС свободных ΠΈ занятых статичСскими прСпятствиями ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΊΠ°Ρ€Ρ‚Ρ‹.
  • <row> – ΠΎΠ΄Π½Π° строчка ΠΊΠ°Ρ€Ρ‚Ρ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ 1, Ссли Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ статичСскоС прСпятствиС, ΠΈΠ»ΠΈ 0, Ссли ΠΊΠ»Π΅Ρ‚ΠΊΠ° свободна
  • <dynamicobstacles> - описаниС Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ двиТСния динамичСских прСпятствий
  • <obstacle> – Π²Π½ΡƒΡ‚Ρ€ΠΈ этого Ρ‚Π΅Π³Π° описаниС ΠΏΡƒΡ‚ΠΈ прСпятствия, Ρ‚Π°ΠΊΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π² Ρ‚Π΅Π³Π΅ <dynamicobstacles>

ВраСктория ΠΏΡƒΡ‚ΠΈ прСдставляСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Ρ€ΠΎΠ΅ΠΊ ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ… Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл (x, y, time) – ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈ врСмя, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСпятствиС ΠΈΠ»ΠΈ Π°Π³Π΅Π½Ρ‚ Ρ‚Π°ΠΌ находится. Π­Ρ‚Π° Ρ‚Ρ€ΠΎΠΉΠΊΠ° записываСтся Π² XML Ρ„Π°ΠΉΠ»Π΅ ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ‚Π΅Π³Π° <point>. Π›ΡŽΠ±Ρ‹Π΅ 2 сосСдниС Ρ‚Ρ€ΠΎΠΉΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ прямолинСйный ΠΎΡ‚Ρ€Π΅Π·ΠΎΠΊ ΠΏΡƒΡ‚ΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ врСмя двиТСния ΠΌΠ΅ΠΆΠ΄Ρƒ этими ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² точности Ρ€Π°Π²Π½ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² этих Ρ‚Ρ€ΠΎΠΉΠΊΠ°Ρ…, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π² сосСдних Ρ‚Ρ€ΠΎΠΉΠΊΠ°Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹, Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π° Ρ†Π΅Π»ΠΎΠ΅ число большС 0.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прСдставлСния ΠΏΡƒΡ‚ΠΈ

path_representation

ΠŸΡƒΡΡ‚ΡŒ Π½Π° рисункС траСктория двиТСния прСпятствия (ΠΈΠ»ΠΈ Π°Π³Π΅Π½Ρ‚Π°), Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ (3, 2), ΠΊΠΎΠ½Π΅Ρ† – Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ (0, 0). ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ (2, 1), ΠΎΠ½ ΠΆΠ΄Π°Π» 2 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ записано Ρ‚Π°ΠΊ:

<obstacle id="1">
    <point x="3" y="2" time="0"/>
    <point x="3" y="1" time="1"/>
    <point x="2" y="1" time="3"/>
    <point x="2" y="1" time="5"/>
    <point x="0" y="1" time="7"/>
    <point x="0" y="0" time="8"/>
 </obstacle>

ГСнСрация тСстов

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈ запуск

Находимся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Build

Π‘Π±ΠΎΡ€ΠΊΠ°:

make Generate

Запуск:

./Tests/Generate maps_directory tasks_directory a_1 a_2 a_3 ... a_n

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ maps_directory Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎ 5 тСстов с a_i количСством динамичСских прСпятствий, всС тСсты ΠΊΠ»Π°Π΄Π΅Ρ‚ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ tasks_directory. Π—Π΄Π΅ΡΡŒ ΠΊΠ°Ρ€Ρ‚Π° - это Ρ„Π°ΠΉΠ», строго ΡΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

type octile
height 4
width 5
map
...11
...11
11.11
11...

ПослС слов height ΠΈ width ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа, Ρ€Π°Π²Π½Ρ‹Π΅ высотС ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ соотвСтствСнно. ПослС строки "map" ΠΈΠ΄Π΅Ρ‚ описаниС ΠΊΠ°Ρ€Ρ‚Ρ‹: количСство строк Ρ€Π°Π²Π½ΠΎ высотС ΠΊΠ°Ρ€Ρ‚Ρ‹, количСство символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Ρ€Π°Π²Π½ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹. Π‘ΠΈΠΌΠ²ΠΎΠ» '.' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ - занятая ΠΊΠ»Π΅Ρ‚ΠΊΠ°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ВСсты Π½Π° городских ΠΊΠ°Ρ€Ρ‚Π°Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 256x256 с малСньким числом динамичСских прСпятствий(10, 20, 50, 100 ΠΈ 200), Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π±Ρ‹Π»ΠΈ сгСнСрированы ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

./Tests/Generate ../TestsData/City/tests_256/maps/ ../TestsData/City/tests_256/small_tasks/tasks/ 10 20 50 100 200

Π§Π΅ΠΊΠ΅Ρ€

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈ запуск

make Check
./Tests/Check logs_directory

logs_directory - дирСктория с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ SippSearch. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π°Π³Π΅Π½Ρ‚ΠΎΠ² записаны Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ… старта ΠΈ Ρ„ΠΈΠ½ΠΈΡˆΠ° соотвСтствСнно, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ Π½ΠΈ статичСскиС, Π½ΠΈ динамичСскиС прСпятствия.

Визулизация

ΠŸΡ€Π΅Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹

Π”Π°Π½Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ вСрсии: Python 3.10 BeautifulSoup4 4.10.0 ffmpeg 1.4 Matplotlib 3.5.1 NumPy 1.22.2

Запуск

Python3 ../Src/Visualization/visualize.py log_file.xml [-o output_file.mp4]

log_file.xml - Ρ„Π°ΠΉΠ», ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Sipp. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ записнао Π²ΠΈΠ΄Π΅ΠΎ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΠ½ΠΎ появляСтся Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ log_file.xml

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь На всСх Π²ΠΈΠ΄Π΅ΠΎ синими Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ динамичСскиС прСпятствия, красной - Π°Π³Π΅Π½Ρ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ищСтся ΠΏΡƒΡ‚ΡŒ. Π‘Π΅Π»Ρ‹Π΅ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ - свободныС, Ρ‡Π΅Ρ€Π½Ρ‹Π΅ - занятыС.

den101d_200_1_log.mp4

ВСстированиС ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

Π‘Ρ‹Π»ΠΈ сгСнСрированы тСсты Π½Π° ΠΊΠ°Ρ€Ρ‚Π°Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² 256x256, 512x512 ΠΈ 1024x1024 (ΠΏΠΎ 30 ΠΊΠ°Ρ€Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°), для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠ°Ρ€Ρ‚ Π±Ρ‹Π»ΠΎ сгСнСрировано Π·Π°Π΄Π°Π½ΠΈΠ΅ с 10, 20, 50, 100, 200, 500, 1000 динамичСских прСпятствий (ΠΏΠΎ 5 тСстов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ). Π˜Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ 3150 тСстов. Sipp запускался Π½Π° этих 3150 тСстах, Π° Anytime Sipp Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих тСстов ΠΏΠΎ 3 Ρ€Π°Π·Π°: с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСсами эвристики (2, 5, 10). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Ρ‹ Π² качСствС Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅.

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска ΠΏΡƒΡ‚ΠΈ sipp ΠΈ Ρ‡Π΅ΠΊΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° всСх 3150 заданиях, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ctest -R 'run'

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ:

Test project
      Start  1: preparation/run
 1/10 Test  #1: preparation/run ..................   Passed    0.01 sec
      Start  2: 256/small_tasks/run
 2/10 Test  #2: 256/small_tasks/run ..............   Passed  150.37 sec
      Start  3: 256/tasks_500/run
 3/10 Test  #3: 256/tasks_500/run ................   Passed  170.99 sec
      Start  4: 256/tasks_1000/run
 4/10 Test  #4: 256/tasks_1000/run ...............   Passed  385.77 sec
      Start  5: 512/small_tasks/run
 5/10 Test  #5: 512/small_tasks/run ..............   Passed  426.71 sec
      Start  6: 512/tasks_500/run
 6/10 Test  #6: 512/tasks_500/run ................   Passed  384.81 sec
      Start  7: 512/tasks_1000/run
 7/10 Test  #7: 512/tasks_1000/run ...............   Passed  779.00 sec
      Start  8: 1024/small_tasks/run
 8/10 Test  #8: 1024/small_tasks/run .............   Passed  1696.57 sec
      Start  9: 1024/tasks_500/run
 9/10 Test  #9: 1024/tasks_500/run ...............   Passed  1451.54 sec
      Start 10: 1024/tasks_1000/run
10/10 Test #10: 1024/tasks_1000/run ..............   Passed  3027.33 sec

100% tests passed, 0 tests failed out of 10

Total Test time (real) = 8473.15 sec

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ тСстС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° врСмя тСстирования! Из-Π·Π° большого числа тСстов (3150) ΠΎΠ½ΠΎ довольно большоС. Если Π½Π΅ хочСтся ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ мСньшСС число тСстов, Π·Π°ΠΌΠ΅Π½ΠΈΠ² 'run' Π½Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя тСста. НапримСр, ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ тСстов, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΊΠ°Ρ€Ρ‚Π°Ρ… 256x256 c малСньким числом динамичСских прСпятствий (Π΄ΠΎ 200), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° всСго Π½Π° 750 заданиях, Π° врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого Π±Π»ΠΎΠΊΠ° тСстов Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5 ΠΌΠΈΠ½ΡƒΡ‚:

ctest -R '256/small_tasks/run'

Π›ΠΈΠ±ΠΎ, Ссли Π½Π΅ хочСтся ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈ тСстов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ запускаСтся Ρ‡Π΅ΠΊΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠ½ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ провСряСтся, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π°Π³Π΅Π½Ρ‚ΠΎΠ² записаны Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ… старта ΠΈ Ρ„ΠΈΠ½ΠΈΡˆΠ° соотвСтствСнно, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ Π½ΠΈ статичСскиС, Π½ΠΈ динамичСскиС прСпятствия.

ctest -R 'check'

Π’ консоли Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Test project
    Start 11: 256/small_tasks/check
1/9 Test #11: 256/small_tasks/check ............   Passed   20.78 sec
    Start 12: 256/tasks_500/check
2/9 Test #12: 256/tasks_500/check ..............   Passed   17.12 sec
    Start 13: 256/tasks_1000/check
3/9 Test #13: 256/tasks_1000/check .............   Passed   39.78 sec
    Start 14: 512/small_tasks/check
4/9 Test #14: 512/small_tasks/check ............   Passed   49.89 sec
    Start 15: 512/tasks_500/check
5/9 Test #15: 512/tasks_500/check ..............   Passed   27.52 sec
    Start 16: 512/tasks_1000/check
6/9 Test #16: 512/tasks_1000/check .............   Passed   53.43 sec
    Start 17: 1024/small_tasks/check
7/9 Test #17: 1024/small_tasks/check ...........   Passed  163.67 sec
    Start 18: 1024/tasks_500/check
8/9 Test #18: 1024/tasks_500/check .............   Passed   59.60 sec
    Start 19: 1024/tasks_1000/check
9/9 Test #19: 1024/tasks_1000/check ............   Passed   93.41 sec

100% tests passed, 0 tests failed out of 9

Total Test time (real) = 525.22 sec

Бсылки

  1. SIPP: Safe Interval Path Planning for Dynamic Environments
  2. Anytime Safe Interval Path Planning for Dynamic Environments
  3. Sturtevant, N. R. Benchmarks for grid-based pathfinding // IEEE Transactions on Computational Intelligence and AI in Games, vol.4,n.2 – 2012 - с.144–148

About

Pathplanning in dynamic environments. C++ realization of Sipp and Anytime Sipp algorithms and its visualization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published