Научная статья на тему 'ЕФЕКТИВНА ПОБУДОВА ШЛЯХУ ДЛЯ ЧОТИРИКОЛіСНИХ РОБОТіВ НА ОСНОВі ПОєДНАННЯ АЛГОРИТМіВ THETA* і ГіБРИДНОГО A'

ЕФЕКТИВНА ПОБУДОВА ШЛЯХУ ДЛЯ ЧОТИРИКОЛіСНИХ РОБОТіВ НА ОСНОВі ПОєДНАННЯ АЛГОРИТМіВ THETA* і ГіБРИДНОГО A Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
73
27
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РОБОТОТЕХНіКА / ЧОТИРИКОЛіСНі РОБОТИ / ШТУЧНИЙ іНТЕЛЕКТ / АЛГОРИТМ ПОШУКУ ШЛЯХУ / PATH-FINDING ALGORITHM / THETA* / ГіБРИДНИЙ A* / ROBOTICS / FOUR-WHEELED ROBOT / ARTIFICIAL INTELLIGENCE / HYBRID A*

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Михалько В.Г., Круш І.В.

Запропоновано алгоритм ефективної побудови шляху для чотириколісних роботів на основі поєднання алгоритмів Theta* і гібридного A*. Наведено і пояснено псевдокод для алгоритму. Реалізовано запроп онований алгоритм і симулятор чотириколісного робота на мові програмування Java. Протестовано роботу алгоритму для U-подібних перешкод, складних карт і для вирішення задачі паркування

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Effective pathfinding for four-wheeled robot based on combining Theta* and hybrid A* algorithms

Effective pathfinding algorithm based on Theta* and Hybrid A* algorithms was developed for four-wheeled robot. Pseudocode for algorithm was showed and explained. Algorithm and simulator for four-wheeled robot were implemented using Java programming language. Algorithm was tested on U-obstacles, complex maps and for parking problem

Текст научной работы на тему «ЕФЕКТИВНА ПОБУДОВА ШЛЯХУ ДЛЯ ЧОТИРИКОЛіСНИХ РОБОТіВ НА ОСНОВі ПОєДНАННЯ АЛГОРИТМіВ THETA* і ГіБРИДНОГО A»

References

1. ASHRAE, Commercial [Text] / Institutional Ground-Source Heat Pump Engineering Manual, American Society of Heating, Refrigerating, and Air-Conditioning Engineers, Inc. Atlanta. - GA, 2003.

2. Amis, T. Energy piles and other thermal foundations for GSHP [Text] / T. Amis, F. Loveridge // REHVA Journal. -2014. - P. 32-35. - Available at: http://www.rehva.eu/ fileadmin/REHVA_Journal/REHVA_Journal_2014/RJ_issue_ 1/P.32/32-3 5_Energy_piles_RJ1401 _WEB.pdf

3. Design manual. Heat pumps [Text]. - Viessmann, 2012. - P. 65.

4. System using geothermal heat. Technical information [Text]. - REHAU, 2009. - P. 20.

5. Design manual. Heat pumps for heating and hot water supply [Text]. - Dimplex, 2009. - P. 77.

6. Suguang, X. Use of Geothermal Deep Foundations for Bridge Deicing [Text] / S. Xiao, M. Suleiman, C. Naito, S. Neti // Transportation Research Record: Journal of the Transportation Research Board. - 2013. - Vol. 2363. - P. 5665. doi: 10.3141/2363-07

7. Rees, S. A Study of Geothermal Heat Pump and Standing Well Perfomance [Text] / S. Rees, J. Splintler, Z. Deng, C. Orio, C. Johnson // ASHRAE. - 2004. - Vol. 109. - P. 3-13.

8. Xiao, S. Use of Geothermal Deep Foundations for Bridge Deicing, Lehigh University [Text] / S. Xiao, M. T. Suleiman, C. J. Naito, S. Neti. - Report of TRB 2013 Annual Meeting, 2013.

9. Man, Y. Development of spiral heat source model for novel pile ground heat exchangers [Text] / Y. Man, H. Yang, N. Diao, P. Cui, L. Lu, Z. Fang // HVAC&R Research. - 2011. -Vol. 17, Issue 6. - P. 1075-1088. doi: 10.1080/10789669. 2011.610281

УДК DOI:

1. Вступ

Одним i3 основних напрямшв у сучаснш робо-тотехшщ е проектування i побудова безтлотних ав-

10. Thermal Pile Design, Installation & Materials Standards [Text]. - Milton, UK., 2012. - 85 p. - Available at: http : //www.gshp.org.uk/pdl/GSHPA_Thermal_Pile_Standard.pdf

References

1. ASHRAE, Commercial (2003). GA.

2. Amis, T., Loveridge, F. (2014). Energy piles and other thermal foundations for GSHP. REHVA Journal, 32-35. Available at: http://www.rehva.eu/fileadmin/REHVA_Journal/ REHVA_Journal_2014/RJ_issue_1/P.32/32-3 5_Energy_piles_ RJ1401_WEB.pdf

3. Design manual. Heat pumps (2012). Viessmann, 65.

4. System using geothermal heat. Technical information (2009). REHAU, 20.

5. Design manual. Heat pumps for heating and hot water supply (2009). Dimplex, 77.

6. Xiao, S., Suleiman, M., Naito, C., Neti, S. (2013). Use of Geothermal Deep Foundations for Bridge Deicing. Transportation Research Record: Journal of the Transportation Research Board, 2363, 56-65. doi: 10.3141/2363-07

7. Rees, S., Splintler, J., Deng, Z., Orio, C., Johnson, C. (2004). A Study of Geothermal Heat Pump and Standing Well Perfomance. ASHRAE, 109, 3-13.

8. Xiao, S., Suleiman, M. T., Naito, C. J., Neti, S. (2013). Use of Geothermal Deep Foundations for Bridge De-icing, Lehigh University. Report of TRB 2013 Annual Meeting.

9. Man, Y., Yang, H., Diao, N., Cui, P., Lu, L., Fang, Z. (2011). Development of spiral heat source model for novel pile ground heat exchangers. HVAC&R Research, 17 (6), 10751088. doi: 10.1080/10789669.2011.610281

10. Thermal Pile Design, Installation & Materials Standards (2012). Milton, UK., 85. Available at: http://www.gshp. org.uk/pdf/GSHPA_Thermal_Pile_Standard.pdf

томобшв. Зважаючи на значну шльшсть автомобшь-них аварш, яш е наслщком людсько1 помилки, а та-кож на те, що системи, засноваш на використанш

Рекомендовано до публжаци д-р техн. наук, професор Приймак О. В.

Дата надходженнярукопису 08.06.2016

Kuzytskyi Ivan, Postgraduate student, Department of Heat Engineering, Kyiv National University of Construction and Architecture, Povitroflotskyi ave., 31, Kyiv, Ukraine, 03680 E-mail: Kuzytskyi@gmail.com

004.8, 004.94

10.15587/2313-8416.2016.73625

ЕФЕКТИВНА ПОБУДОВА ШЛЯХУ ДЛЯ ЧОТИРИКОЛ1СНИХ РОБОТ1В НА ОСНОВ1 ПОСДНАННЯ АЛГОРИТМ1В Theta* I Г1БРИДНОГО A*

© В. Г. Михалько, I. В. Круш

Запропоновано алгоритм ефективно'1 побудови шляху для чотирикол1сних робот1в на основi поеднання алгоритмгв Theta* i гiбридного A*. Наведено i пояснено псевдокод для алгоритму . Реалiзовано запропо-нований алгоритм i симулятор чотириколкного робота на мовi програмування Java. Протестовано роботу алгоритму для U-nодiбних перешкод, складних карт i для виршення задачi паркування Ключовi слова: робототехнка, чотириколiснi роботи, штучний ттелект, алгоритм пошуку шляху, Theta*, гiбриднийA*

Effective pathfinding algorithm based on Theta* and Hybrid A* algorithms was developed for four-wheeled robot. Pseudocode for algorithm was showed and explained. Algorithm and simulator for four-wheeled robot were implemented using Java programming language. Algorithm was tested on U-obstacles, complex maps and for parking problem

Keywords: robotics, four-wheeled robot, artificial intelligence, pathfinding algorithm, Theta*, Hybrid A*

машинного навчання i штучного штелекту в багатьох галузях вже перевершують людей - цей напрям е дуже перспективним, адже у разi побудови розумних i надiйних систем для автоматичного керування ав-томобшями можна буде значно пiдвищити безпеку на дорогах.

Важливою задачею при побудовi безпiлотних автомобiлiв е прокладання шляху з одте! точки в iншу. При цьому, для устшного вирiшення ще! за-дачi до щльового алгоритму ставляться дек1лька ос-новних вимог:

- шлях повинен бути близьким до оптимального;

- при плануванш шляху необх1дно враховува-ти кинематику автомобiля;

- алгоритм прокладання шляху мае бути до-волi швидким i працювати за прийнятний час.

Бiльшiсть iснуючих алгоршадв пошуку шляху подiляються на двi групи: однi з них е доволi швид-кими, але не враховують кшематику руху платформи, а iншi кинематику руху враховують, але е повшьними у виконаннi.

У цш роботi запропоновано метод пошуку шляху, оснований на поеднанш алгорштшв iз описа-них вище груп, а саме Theta* i пбридного А*. В ре-зультатi в комплексному алгоритм^ з одного боку враховуеться кинематика чотириколюно! рухомо! платформи, а з шшого - вш е доволi ефективним з точки зору часу виконання. Окрiм цього, запропоно-ваний алгоритм дозволяе будувати шляхи, як1 е близькими до оптимальних, тобто, iншими словами, вш задовольняе всi три вимоги, наведеш вище.

2. Аналiз лiтературних даних та попереднiх досл1джень

1снуе значна шльшсть алгоритмiв для пошуку i побудови шляху, серед них можна видшити так1:

- пошук в ширину i глибину на графц

- алгоритм Дейкстри;

- A*;

- Theta*;

- RRT.

Найпроспшими алгоритмами для пошуку е пошук в ширину i глибину. Б№ш складним е алгоритм Дейкстри [1, 2], який дозволяе знайти найко-ротший шлях на зважених графах, але, в той же час, е доволi повiльним, так як розглядае вершини у всiх напрямках. Алгоритми А* [3-5] i ^е1а* [6] викори-стовують евристичну функцш, яка дае оптимютич-ний прогноз для правильного напрямку пошуку, що в свою чергу робить !х значно швидшими за алгоритм Дейкстри. Але основним недолгом описаних вище алгорштшв е те, що вони призначеш для голономних платформ i роботiв, тобто таких, як1 можуть миттево рухатись в будь-якому напрямку. В свою чергу, чо-тириколюш рухомi платформи, як1 в тому чи^ е базою для автомобшв е неголономними платформами. Неголономш рухомi платформи - це таш платформи, як1 можуть рухатись пльки у деяких напрямках i по заданим траекторiям, тобто в них е обмежен-ня на кинематику руху. Чотириколiснi роботи можуть рухатись або прямо, або по дузi кола, радус якого залежить вiд кута повороту передшх колiс. Тому, в

загальному випадку, так1 алгоритми як A* i Theta* не можна напряму застосувати для автомобшв. Приклад цього зображено на рис. 1.

■ » *_ *

Рис. 1. Варiанти шляхiв: суцiльною лiнieю зображено

траeкторiя, побудована алгоритмом A*; штриховою - алгоритмом Theta*; точковою - можливу для виконання траекторш

Ще одним пiдходом для виршення задачi побудови шляху е використання алгоритму RRT (rapidly exploring random tree) [7], який дозволяе враховувати кшематику руху роботу i будувати можливi для виконання траектори. Але в ньому не передбачено використання евристично! функцп, внаслщок чого час, за який виконуеться пошук, часто е неприйнятним.

1ншим варiантом виршення проблеми е використання алгоритму "Пбридний А*"[8, 9]. Його ос-новними вiдмiнностями ввд звичайного A* е таш:

- в кожнш дискретнiй клiтинцi поля зберта-ються дшсш значення положення робота, а також його напрям;

- при плануванш наступного кроку розгляда-ються тiльки таш рухи платформи, в яких враховуеться li кинематика.

На рис. 2 зображено приклад двох ггерацш для алгоритму "Пбридний А*":

Рис. 2. Дерева руху, побудоваш алгоритмом "Пбридний А*"

Пбридний А* враховуе кшематику платформи, а також використовуе евристичну функцш для зб№шення ефективносп виконання, але, тим не менш, вш все одно е значно повшьшшим за класичш A* i Theta*, i в деяких випадках, зокрема на картах з

великою шльшстю перешкод, а також при наявностi U-подiбних перешкод (рис. 3), може працювати до-волi повiльно.

Рис. 3. U-подiбна перешкода. Знизу зображено рухому платформу, а зверху - цiльову позицiю i напрям

Виходячи з цього, можна зробити висновок, що бiльшiсть юнуючих алгоритмiв можна подiлити на двi основнi групи: швидк1 алгоритми, в яких не враховуеться кинематика платформи i повiльнi алгоритми, яш враховують кинематику. Тобто, вони лише частково вирiшують поставлену задачу.

3. Мета та 3aaa4i досл1дження

Основною метою даного дослвдження е ро-зробка швидкого алгоритму пошуку i прокладання шляху на основi поеднання алгоршшв Theta* i гiбридного A*. Розроблений алгоритм враховуе кинематику руху чотириколюно! рухомо! платформи i будуе шлях, який е близьким до оптимального.

Для досягнення поставлено! мети були виршеш наступнi задачi:

- реалiзовано алгоритм Theta*;

- реалiзовано алгоритм «Пбридний A*»;

- розроблено i реалiзовано комплексний алгоритм, на основi поеднання Theta* i гiбридного A*;

- реалiзовано стимулятор чотириколюно! рухомо! платформи для тестування алгоритму.

4. Симулятор рухомоТ платформи

Для тестування роботи алгоритму було реалiзо-вано симулятор чотириколiсно! рухомо! платформи з паралельним рульовим керуванням, в яко! центр кола повороту знаходиться на перетиш лiнiй передньо! i задньо! осей. Схематично !! зображено на рис. 4.

В реальних автомобшях використовуеться схема рульового керування, побудована за принципом Акермана [10], в як1й переднi колеса при поворот! ввдхилет на рiзнi кути (рис. 5), але il використання не впливае на роботу алгоритму, тому для простоти було обрано варiант з паралельним керуванням.

Рис. 4. Рухома платформа з паралельним рульовим керуванням. Точка С - центр кола повороту

Рис. 5. Рульове керування за принципом Акермана.

Точка С - центр кола повороту

О^м цього, для спрощення також було припущено, що у платформи е лише три режими для повороту кол1с: прямо, лiворуч на заданий кут i право-руч на заданий кут. Але доволi легко розширити роботу алгоритму i на випадок, коли значення кута повороту задаеться дов№ним з заданого промiжку.

5. Алгоритм прокладання шляху, оснований на поеднанш Theta* i гiбридного A*

Порiвнюючи алгоритми A* i Theta* треба за-значити, що алгоритм A* при робот використовуе манхеттенську ввдстань [11], тому будуе "прямокутш траекторИ", як1 часто не е близькими до оптимальних в реальному свт. Цього недол1ку немае в алгорштш Theta*, в якому використовуеться евктадова вiдстань, i лiнiï, з яких складаеться траекторiя, можуть лежати шд будь-яким кутом, це показано на рис. 1.

Як було зазначено вище, алгоритми A* i Theta* е доволi швидкими, проте вони в загальному випадку будують траекторй, яш е неможливими для виконання чотирикол1сним роботом.

З iншого боку, алгоритм "Пбридний А*" враховуе кинематику руху робота, але е б№ш складним з точки зору обчислень, i в деяких ситуащях працюе доволi повiльно.

Виходячи з цього, можна спробувати поеднати алгоритми Theta* i пбридний А*, щоб, з одного боку, пошук шляху ввдбувався доволi швидко, а з шшого -побудований шлях був можливий для виконання чо-тириколiсною рухомою платформою.

Це поеднання можна реалiзувати таким чином:

1. Спочатку побудувати шлях за допомогою алгоритму Theta* (в результата отримаемо набiр спо-лучених вiдрiзкiв, як1 ведуть вiд початково! точки до к1нцево!, оминаючи перешкоди).

2. Послвдовно для кожного в^^зку iз шляху, побудованого за допомогою алгоритму Theta*, за-пускати алгоритм "Пбридний А*". Кожен з цих вiдрiзкiв не перетинае перешкоди, тому пбридний А* мае працювати довол1 швидко.

5. 1. Алгоритм Theta*

Першою задачею е реал1защя алгоритму Theta*. В цьому алгоршш на кожнш iтерацiï потрiб-

но визначити список наступних потенцшних вершин i !х вагу, використовуючи евристичну функцiю. При цьому, для кожно! ново! вершини, що додаеться в список потенцiйних вершин, батьшвською вершиною

може бути будь-яка з попередшх. Шсля побудови списку потенцшних вершин, необхвдно вибрати ту, в яко! найменша вага. Псевдокод для алгоритму Theta* наведено нижче:

function Theta*(start, finish, grid): open_nodes = new Set() closed_nodes = new Set()

current_node = create_node(null, start, heuristic(start, finish))

open_nodes.add(current_node)

while open_nodes is not empty {

for each neighbor of current_node.cell:

if neighbor is not in open_nodes and closed_nodes: heuristic = compute_heuristic(neighbor) node = create_node(current_node, neighbor, heuristic) open_nodes.add(node) closed_nodes.add(current_node)

current_node = pop node with min(gValue + hValue) from open_nodes if (current_node.cell == finish):

return reconstruct_path(current_node)

return failure

function create_node(previous_node, cell, heuristic): chosen_parent = previous_node previous_node_parent = previous_node.previous if previous_node_parent != null:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

if line_of_sight(cell, previous_node_parent.cell): chosen_parent = previous_node_parent gValue = chosen_parent.gValue + distance(chosen_parent.cell, cell) hValue = heuristic

return new Node(chosen_parent, cell, gValue, hValue)

При цьому, важливим моментом е функщя line_of_sight(), яка визначае чи лiнiя мiж двома клiтинками перетинае перешкоду. Ця функщя викликаеться на кожнiй ггерацп, тому вiд 11 ефек-тивносп залежить ефективнiсть всього алгоритму Theta*.

Легко помггити, що функщя line_of_sight() подiбна до малювання лшп на растровому диспле!. Тобто спочатку можна визначити всi клiтинки, через яш проходить лiнiя, а попм для кожно! з них пе-ревiрити, чи е на нш перешкода. Це схематично зоб-ражено на рис. 6.

Рис. 6. Визначення юнування прямого шляху мiж двома точками: а - мгж двома точками iснуе прямий шлях, бо лшя не перетинае перешкоду; б - лшя перетинае перешкоду, тому прямого шляху не юнуе

Також потрiбно враховувати, що розмiр робота може бути бшьшим за одну клiтинку. В такому випадку необхiдно будувати i лшш вщповщно! тов-щини.

5. 2. Алгоритм "Пбридний А*"

Далi потрiбно реалiзувати алгоритм "Пбридний А*" враховуючи те, що вiд цього алгоритму в бшьшш частинi випадк1в вимагаеться пошук шляху мiж двома точками, як можна сполучити прямою л1тею, що не перетинае перешкоди. Ще однiею важливою умовою для алгоритму "Пбридний А*" е те, що побудований шлях повинен враховувати не тльки потрiбнi кiнцевi координати робота, а i правильний кут орiентацil.

Однiею з головних проблем для реалiзацil гiбридного А* е розробка правильно! функци для оцшки ваги стану робота у вузл^ що впливае на вибiр наступного вузла i, вiдповiдно необхiдних рухiв. Простим варiантом ще! функци е такий:

cost=g_value+heuristic+cell_weight, (1)

де g_value - це вщстань, яка вже пройдена для досягнення поточного стану; heuristic - це оп-тимiстичний прогноз вщстат до цiлi (зазвичай це евклщова вiдстань); cell_weight - вага клггинки, в

якiй знаходиться робот. Вага кштинки е великою коли ця клiтинка вже розглядалась i робот в нiй знахо-дився зi схожим кутом орiентацil.

В такому варiангi cost-функцл е один недолк -траекторп побудоват з !! використанням можуть мюти-ти багато зайвих поворотв, що в загальному випадку е небажаним ефектом. Цього можна уникнути якщо до-давати "штраф" за змшу напряму руху - тобто збшьшу-вати значення cost-функцп в такому випадку. Також варто зауважити, що при велики вiдстанi мiж рухомою платформою i кiнцевою точкою за умови вщсутносп перешкод оптимальною стратепею е рух вздовж прямо!, що сполучае початкове i кшцеве положення для платформи. Для досягнення такого ефекту можна в cost-функцш ввести ще два доданки - один буде пропор-цшний вiдстанi мiж платформою i прямою, а iнший -пропорцшний куту мiж платформою i прямою. При цьому, коли платформа вже знаходиться близько бшя nrni, то ni доданки враховувати непотрiбно, адже вони будуть заважити правильному паркуванню. Цього можна досягти, якщо зробити вагу зазначених вище доданкв пропорцшною вiдстанi мiж поточним поло-женням платформи i кнцевою точкою.

Враховуючи зазначенi вище модифкацп для cost-функцil, !! псевдокод буде виглядати наступним чином:

function compute_state_cost(car, movement, previous_state, start, target):

distance_to_target = distance_between(car, target) cell_weight = compute_cell_weight(car) move_backward_weight = movement.is_backward() ?

BACKWARD_MOVE_WEIGHT : 0 change_steering_weight = movement != previous_state.movement ?

CHANGE_STEERING_WEIGHT : 0 shift_error = distance_between(car, line(start, target)) shift_error_weight = SHIFT_ERROR_COEF * distance to target orientation_error = |angle_between(car, line(start, target)) orientation_error_weight =

ORIENTATION_ERROR_COEF * distance_to_target cost = distance_to_target + previous_distance + cell_weight + move_backward_weight + change_steering_weight + shift_error * shift_error_weight + orientation_error * orientation_error_weight return cost

5. 3. Поеднання алгоритмiв Theta* i гiбрид-ного A*

Як було зазначено вище, для поеднання цих двох алгоритм1в необх1дно спочатку запустити Theta*, а пот1м для кожного вщр1зку i3 отриманого шляху запускати пбридний A*. При цьому треба врахувати, що для побудови бшьш плавно1 траектор^, бажано, щоб при досягненш будь-яко1 з точок шляху Theta* вектор орiентацii робота був направлений у наступну точку. З шшого боку, для пбридного A* найлегшим для виконання варiан-том е такий, при якому орiентацiя робота ствпадае з вектором, який сполучае попередню i поточну точку. Для балансування мiж цими двома випадка-ми, можна вибрати цшьову орiентацiю, яка е се-редньою мiж варiантами, зазначеними вище. Цього

можна досягнути просто додавши два вектори, як зображено на рис. 7.

с

И _

А ^

Рис. 7. Визначення необхдаого напрямку орiентацii рухомоi платформи у промiжнiй точцi

Ще одним важливим моментом е те, що при великш довжиш вiдстанi, яку проходить платформа за один крок i високш точностi для цшьово! позици та орiентацi! робота, алгоритм "Пбридний А*" може працювати неефективно, адже юнуе ймо -вiрнiсть, що платформа буде про!жджати кiнцеву позицiю, але зупинятись вже на неприйнятнш ввдсташ до не!. Ефект вiд цього можна зменшити, реалiзувавши два додатковi кроки при поеднаннi зазначених алгоршмв:

1) Для промiжних точок дозволяти бшьшу похибку для позици i орiентацil платформи, адже в

них цей критерш е значно менш важливим, н1ж у кiнцевiй точщ.

2) Накласти обмеження на максимальну шль-к1сть iтерацiй в алгоритм "Пбридний А*". При до-сягненш максимально! кiлькостi iтерацiй потрiбно зробити випадковий рух роботом i ще раз запустити "Пбридний А*". Це дозволить збшьшити ймовiрнiсть вдалого початкового положення робота.

На рис. 8 наведено високорiвневу блок-схему для комплексного алгоритму.

Псевдокод для поеднання цих двох алгоршмв наведено нижче:

function resolve_path(start, target): movements = new List() attempts = 0 loc_start = start;

while attempts < MAX_ATTEMPTS_TO_RESTART: try:

theta_star_path = theta_star_path(loc_start, target) for (i = 1; i < theta_star_path.size - 1; i++): previous = theta_star_path.get(i - 1) current = theta_star_path.get(i) next = theta_star_path.get(i + 1) target_direction = new Vector(previous, current)

+ new Vector(current, next)) target_position = current n_movements = hybrid_a_star(intermediate args) movements.add(n_movements) loc_start = update_local_start(movements) final_movements = hybrid_a_star(final args) movements.add(final_movements) catch TooManylterationsException:

loc_start = make_random_movement(loc_start) attempts++ return movements

Рис. 8. Блок-схема для комплексного алгоритму.

6. Pe3y^bTaTH goc^ig^eHb Ta ix oöroBopeHHH

3anp0n0H0BaHHH BHm,e a.ropHTM i cHMy.aTop HOTHpHKonicHoro poöoTa g.a TecTyBaHHa poöoTH a.ropHTMy 6y.o peani30BaH0 Ha MOBi nporpaMyBaHHa Java i BHKnageHO b ny6.iHHHH gocTyn [12]. TecTyBaHHa noKa3a.o, m,o a.ropHTM mBHgKo 6ygye m^ax, aKHH e 6nH3tKHM go onTHMa.bHoro, HaBiTt Ha KapTax 3 Be.HKoro KintKicTW nepemKog i npu HaaBHocTi U-nogi6HHx nepemKog. npHK.ag po6oTH a.ropHTMy g.a oMHHaHHa U-nogi6Hoi nepemKogH noKa3aHo Ha pHc. 9.

Phc. 9. Pe3y.ntTaTH po6oTH a.ropHTMy g.a oMHHaHHa

U-nogi6Hoi nepemKogH. Cy^.bHoro .iHiero 3o6pa^eHo m.ax, npoKnageHHH a.ropHTMoM Theta*; nyHKTHpHow - pe3y.tTywHHH m.ax nic.a noegHaHHa a.ropHTMiB

Ha pHc. 10, 11 3o6pa^eHo po6oTy a.ropHTMy Ha 6i.tm cK.agHifi KapTi.

E

a

Phc. 10. nonaTKoBi yMoBH 3agani Ha 6i.tm cKnagHifi KapTi

OKpiM ^oro, BapTo 3a3HaHHTH, m,o po3po6.eHHH a.ropHTM TaKo^ ycnimHo cnpaB.aeTtca 3 3aganero nap-KyBaHHa. Цe 3o6pa^eHo Ha puc. 12, 13.

Phc. 11. Pe3y.tTaT po6oTH a.ropHTMy Ha 6i.tm cK.agHifi KapTi

Phc. 12. nonaTKoBi yMoBH g.a 3agani napKyBaHHa

g

Phc. 13. Pe3y.tTaT po6oTH a.ropHTMy g.a BHpimeHHa 3agani napKyBaHHa

y npHK.agax 6y.H 3agaHi TaKi napaMeTpu KapTH i pyxoMoi n.aT^opMH (po3MipHicTt HaBegeHa y niKce.ax):

• po3Mip no.a: 700x700;

• po3Mip K.iTHHKH (nepemKogu): 10x10;

• po3Mip n.aT^opMH 30x50;

• BigcraHb, sKy npoxoguTb ngaT(opMa 3a oguH kpok: 20;

• KyT BÍgxugeHHs nepegHbOi oci npu noBopoTi: 25 rpagyciB.

AHagi3yMHH pe3ygbraTH nopiBHsHHs, MO®Ha 3po6urH bhchobok, ^o pi3HH^ b e(eKTHBHocTÍ mí® riöpugHHM A* i 3anp0n0H0BaHHM KOMngeKcHHM agro-

pHTMOM 0c06gHB0 nOMÍTHa npH HasBHOCTÍ BegHKHx U-nogi6Hux nepemKog Ha mgsxy go ^gi. TaKO® pÍ3Huus e goBogi 3HanHOM i Ha cKgagHux KapTax 3 BeguKOM KÍgb-kíctm nepemKog.

y BCÍx Tpbox npuKgagax, HaBegeHHx BH^e, Hac po6oTH KOMngeKCHoro agropuTMy Ha cynacHOMy KOMn'rorepi TpHBaB MeHme ogHÍei ceKyHgu, to6to Hac HOrO BHKOHaHHH e npHHHsTHHM.

OKpÍM цbOго, BapTO 3a3HaHHTH, ^o y 3anpono-HOBaHOMy agropHTMÍ BHKOHyMTbcs i gBÍ ÍHmi nocraB-geHÍ yMOBH ggs BupimeHHs 3agani. ^k BugHO 3 npu-KgagÍB, y TpaeKTopii noBHÍcTM BpaxoByeTbcs KÍHeMarH-Ka pyxy ngaT^opMH, a no6ygoBaHÍ mgsxu e 6gu3bKHMH go onTHMagbHHx.

BHacgigoK BHKOHaHHs nocraBgeHOi 3agani, ga-hhh agropHTM MO®Ha BHKopHcroByBaTH sk ocHOBy ggs npoKgagaHHs mgsxy npu po3po6^ cucTeM ggs aBTOMa-THHHoro KepyBaHHa 6e3nigoTHHMH aBT0M06igsMH.

7. Bmciiobkii

B gaHÍH po6oTÍ 6ygo npoaHagÍ3OBaHO icHyroni agropuTMH ggs nomyKy mgsxy, a TaKO® BH3HaneHO, ^o ix He MO®Ha HanpsMy 3acrocyBaTH ggs HOTupuKogicHux po6oTÍB. ToMy 6ygo 3anp0n0H0BaH0 KOMngeKcHHH ag-ropuTM Ha ochobí noegHaHHs Theta* i ri6pugHoro A*, skhh BpaxoBye KÍHeMarHKy pyxy po6oTa, a TaKO® go3-Bogse mBugKO npoKgagaru mgsxu, skí e 6gu3bKHMH go onTHMagbHoro. 3anp0n0H0BaHHH agropuTM, a TaKO® cuMygsTop HOTupuKogicHOi pyxoMOi ngaT(opMH, 6ygo peagÍ3OBaHO Ha mobí nporpaMyBaHHs Java i npoTecTO-BaHO. Pe3ygbTaTH TecTyBaHHs noKa3agu, ^o agropuTM ycnimHO BHKOHye nocTaBgeHÍ nepeg hhm 3agani, 3OKpe-Ma mBugKO npoKgagae mgsxu, skí e 6gu3bKÍ go omu-MagbHoro HaBÍTb npu HasBHocri U-nogi6Hux nepemKog, a TaKO® Ha cKgagHux KapTax 3 BeguKOM KÍgbKÍcTM ne-pemKog. TaKO® 6ygo n0Ka3aH0, ^o bíh ycnimHO cnpaB-gseTbcs i 3 3aganero napKyBaHHs. BHacgigoK цbOго Horo MO®Ha BHKopucTOByBaTH sk OcHOBy npu npoeKTyBaHHÍ cucreM nomyKy mgsxy ggs 6e3nigoTHux aBT0M06igÍB.

B Ta6g. 1 3BegeHO pe3ygbraTH nopÍBHSHHs KÍgb-koctí rrepa^H, skí Heo6xigHÍ agropuTMaM 'Ti6pHgHHH A*" i KOMngeKcHOMy agropHTMy ggs nomyKy mgsxy go 3agaHOi ^gi y HaBegeHHx BH^e npuKgagax.

^ÍTepaTypa

1. Dijkstra, E. W. A note on two problems in connexion with graphs [Text] / E. W. Dijkstra // Numerische Mathematik. -1959. - Vol. 1, Issue 1. - P. 269-271. doi: 10.1007/bf01386390

2. Sniedovich, M. Dijkstra's algorithm revisited: the dynamic programming connexion [Text] / M. Sniedovich // Journal of Control and Cybernetics. - 2006. - Vol. 35, Issue 3. -P. 599-620.

3. Delling, D. Engineering route planning algorithms [Text] / D. Delling, P. Sanders, D. Schultes, D. Wagner // Lecture Notes in Computer Science, 2009. - P. 117-139. doi: 10.1007/978-3-642-02094-0_7

4. Zeng, W. Finding shortest paths on real road networks: the case for A* [Text] / W. Zeng, R. L. Church // International Journal of Geographical Information Science. - 2009. - Vol. 23, Issue 4. - P. 531-543. doi: 10.1080/ 13658810801949850

5. Russell, S. Artificial Intelligence: A Modern Approach; 3rd ed. [Text] / S. Russell, P. Norvig. - Prentice Hall, 2009. - 1152 p.

6. Theta*: Any-Angle Path Planning for Smoother Trajectories in Continuous Environments [Electronic resource]. -Available at: http://aigamedev.com/open/tutorials/theta-star-any-angle-paths/

7. LaValle, S. M. Rapidly-exploring random trees: A new tool for path planning [Electronic resource] / S. M. LaValle. - Available at: http://msl.cs.uiuc.edu/~lavalle/papers/ Lav98c.pdf

8. Practical Search Techniques in Autonomous Driving [Electronic resource]. - Available at: http://ai.stanford.edu/ ~ddolgov/papers/dolgov_gpp_stair08.pdf

9. Junior: The Stanford Entry in the Urban Challenge [Electronic resource]. - Available at: http://robots.stanford.edu/ papers/junior08.pdf

10. rcTek - Ackerman Steering Principle [Electronic resource]. - Available at: http://www.rctek.com/technical/ handling/ackerman_steering_principle.html

11. Krause, E. F. Taxicab Geometry [Text] / E. F. Krause. - Dover, 1987. - 96 p.

12. Car simulator and pathfinding algorithm, source code [Electronic resource]. - Available at: https:// github.com/vmykh/car-model

References

1. Dijkstra, E. W. (1959). A note on two problems in connexion with graphs. Numerische Mathematik, 1 (1), 269271. doi: 10.1007/bf01386390

Ta6guus 1

nopÍBHSHHs e(|)eKTHBHOCTÍ agropuTMÍB_

Ha3Ba npuKgagy KigbKÍcTb ÍTepaqÍH, BHKOHaHux agropuTMOM 'Ti6pHgHHH A*" KigbKÍcTb ÍTepaqÍH, BHKOHaHux KOMngeKcHHM agropuTMOM

U-nogi6Ha nepemKoga 285 523 2 270

CKgagHa KapTa 183 781 5 591

3agana napKyBaHHs 3 284 1 128

2. Sniedovich, M. (2006). Dijkstra's algorithm revisited: the dynamic programming connexion. Journal of Control and Cybernetics, 35 (3), 599-620.

3. Delling, D., Sanders, P., Schultes, D., Wagner, D. (2009). Engineering Route Planning Algorithms. Lecture Notes in Computer Science, 117-139. doi: 10.1007/978-3-642-02094-0_7

4. Zeng, W., Church, R. L. (2009). Finding shortest paths on real road networks: the case for A*. International Journal of Geographical Information Science, 23 (4), 531-543. doi: 10.1080/13658810801949850

5. Russell, S, Norvig, P. (2009). Artificial Intelligence: A Modern Approach. 3rd ed. Prentice Hall, 1152.

6. Theta*: Any-Angle Path Planning for Smoother Trajectories in Continuous Environments. Available at: http:// aigamedev.com/open/tutorials/theta-star-any-angle-paths/

7. LaValle, S. M. Rapidly-exploring random trees: A new tool for path planning. Available at: http://msl.cs.uiuc.edu/ ~lavalle/papers/Lav98c .pdf

8. Practical Search Techniques in Autonomous Driving. Available at: http://ai.stanford.edu/~ddolgov/papers/dolgov_ gpp_stair08.pdf

9. Junior: The Stanford Entry in the Urban Challenge. Available at: http://robots.stanford.edu/papers/junior 08.pdf

10. rcTek - Ackerman Steering Principle. Available at: http://www.rctek.com/technical/handling/ackerman_steering_pr inciple.html

11. Krause, E. F. (1987). Taxicab Geometry. Dover, 96.

12. Car simulator and path finding algorithm, source code. Available at: https://github.com/vmykh/car-model

Рекомендовано до публгкацИ д-р техн. наук Петренко А. I.

Дата надходження рукопису 14.06.2016

Михалько Вггалш Геннадшович, кафедра системного проектування, Нацюнальний техшчний ушвер-ситет Украши "Кшвський полггехшчний шститут", пр. Перемоги, 37, м. Кшв, Украша, 03056 E-mail: mikhalko.ukr@gmail.com

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Круш 1гор Володимирович, кафедра системного проектування, Нацюнальний техшчний ушверситет Украши "Кшвський полггехшчний шститут", пр. Перемоги, 37, м. Кшв, Украша, 03056 E-mail: ihor@kroosh.me

УДК 624.011

DOI: 10.15587/2313-8416.2016.74484

ВПЛИВ НЕР1ВНОМ1РНИХ ОС1ДАНЬ ОПОР НА НАПРУЖЕНО-ДЕФОРМОВАНИЙ СТАН КАРНИЗНОГО ВУЗЛА ГНУТОКЛЕСНИХ РАМ

© Д. В. Михайловський, Д. М. Матющенко, А. О. Смоленський

В cmammi наведено порiвняльний анализ напружень в карнизному вузлi тришартрних гнутоклеених рам, що виникають при нерiвномiрних оаданнях опор. Для до^дження розроблено просторову сюнченно-елементну модель будiвлi в програмному комплекс Л1РА-САПР 2013. Оадання були визначенi за методом пошарового пiдсумовування та на основi розрахунку системи «основа-фундамент-надземнi конс-трукцИ» з використанням фгзично-нелттного багатошарового Грунтового масиву

Ключовi слова: гнутоклеена рама, клеена деревина, карнизний вузол, напружено-деформований стан, метод сюнченних елементiв

Comparison analysis of the cornice node's stress of three-hinged curved glulam frames that caused by uneven settlements of bearings are shown in the article. Three-dimensional finite elements model of the building using LIRA-SAPR 2013 was developed for research. Settlements were determined by the stratified method and by calculations of the system "substructures - foundations - constructions" using physically non-linear soil massive Keywords: curved glulam frame, glued wood, cornice node, stress-strain state, finite-elements method

1. Вступ

Великопрольотш конструкцп застосовуються в громадських та промислових будавлях. Несучими конструкщями яких е рами, арки, ферми, вантовi пок-риття тощо. Одшею з проблем великопрольотних, особливо каркасних будшель, е нерiвномiрне оадання опор, що пов'язане з неоднорщтстю геолопчного складу основи (грунпв) або наявносп в нш прошаршв слабких грунпв. 1нженерно-геолопчш вишукування для таких будiвель виконуються зпдно нормативного документу [1]. В залежносп ввд категорп складносп змшюеться шльшсть прничих виробок та ввдстань мiж

ними, однак !хне розташування в межах плями забу-дови та особливосп конструктивного рiшення, норма-тивним документом [1] не визначаються.

Враховуючи вище наведене та той факт, що данi вишукувань недостатньо повно описують дшс-ний геолопчний склад основи майданчика забудови, найбшьшою проблемою при проектуваннi конструк-цiй е наявнiсть прошаркiв слабких грунпв в зонах фундаментiв шд несучi конструкций Наявнiсть, навiть незначних, прошаршв слабких грунпв може виклика-ти нерiвномiрне осiдання опор та змшу напружено-деформованого стану конструкцш.

i Надоели баннеры? Вы всегда можете отключить рекламу.