KR20100005942A - 보행로봇의 최적경로 계획방법 - Google Patents

보행로봇의 최적경로 계획방법 Download PDF

Info

Publication number
KR20100005942A
KR20100005942A KR1020080066063A KR20080066063A KR20100005942A KR 20100005942 A KR20100005942 A KR 20100005942A KR 1020080066063 A KR1020080066063 A KR 1020080066063A KR 20080066063 A KR20080066063 A KR 20080066063A KR 20100005942 A KR20100005942 A KR 20100005942A
Authority
KR
South Korea
Prior art keywords
node
cost
candidate
walking robot
list
Prior art date
Application number
KR1020080066063A
Other languages
English (en)
Other versions
KR100994075B1 (ko
Inventor
강연식
정문호
유범재
강동중
김대광
Original Assignee
한국과학기술연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술연구원 filed Critical 한국과학기술연구원
Priority to KR1020080066063A priority Critical patent/KR100994075B1/ko
Publication of KR20100005942A publication Critical patent/KR20100005942A/ko
Application granted granted Critical
Publication of KR100994075B1 publication Critical patent/KR100994075B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 보행로봇의 최적경로를 설계하는 방법에 관한 것으로, 구체적으로는 보행로봇의 특성을 고려하여 장애물을 회피하여 효율적인 주행을 위한 최적경로 계획방법에 관한 것이다. 본 발명의 일 실시예에 따른 보행로봇의 최적경로 계획방법은 초기화하는 단계와, 경로비용을 계산하는 단계와, 후보 목록을 작성하는 단계와, 각 후보 노드의 각도비용, 휴리스틱 비용 및 총비용을 계산하는 단계와, 열린 목록을 작성하는 단계와, 닫힌 목록을 작성하는 단계와, 다음 노드가 목표 노드인지 판단하는 단계를 포함한다.
보행로봇, A* 알고리즘, 최적경로, 회전 최소화, 회전반경, 경로비용

Description

보행로봇의 최적경로 계획방법{METHOD FOR PLANNING AN OPTIMAL PATH IN A BIPED ROBOT}
본 발명은 보행로봇의 최적경로를 설계하는 방법에 관한 것으로, 구체적으로는 보행로봇의 특성을 고려하여 장애물을 회피하여 효율적인 주행을 위한 최적경로 계획방법에 관한 것이다.
일반적으로, 보행로봇이 목표지점으로 이동하기 위한 방법은 로봇의 위치정보를 획득하는 단계와, 획득한 위치정보를 바탕으로 로봇의 현재위치를 알아내는 자기위치추정 단계와, 전체 주행환경을 표현하는 지도작성단계와, 그리고 환경지도와 자기위치정보를 이용하여 목표지점까지 최적의 경로를 탐색하는 경로 계획단계로 구분된다. 통상적으로, 경로 계획단계에는 포텐셜 필드방법(Potential Field Method), 벡터 필드법(Vector Field Histogram; VFH), 및 A*("에이스트"라고 함) 알고리즘이 이용된다.
포텐셜 필드 방법은 탐색 공간을 로봇에 영향을 주는 자극(stimulus)의 합으로 표현하는 방법이다. 이 방법에서, 목표 위치의 자극은 인력으로 표현되고, 장애물 위치의 자극은 척력으로 표현된다. 포텐셜 필드 방법에 사용되는 알고리즘이 간단하여 최적경로를 신속하게 탐색할 수 있으며, 센서의 종류에 제한을 받지 않고 사용할 수 있는 장점이 있다. 하지만, 2개의 장애물이 서로 인접해 있는 경우에, 장애물에서 발생한 2개의 척력이 하나의 척력으로 인식될 수 있으므로, 2개의 장애물 사이를 통과하는 것이 불가능한 문제점이 있다.
상기의 문제점을 해결하기 위해서, 보렌스테인 및 코렌(J. Borenstein and Y. Koren, "THE VECTOR FIELD HISTOGRAM-FAST OBSTACLE AVOIDANCE FOR MOBILE ROBOTS", IEEE Journal of Robotics and Automation V7 , No 3, June 1991, pp .278-288)은 벡터 필드법을 제안하였다. 벡터 필드법은 이차원 직교좌표의 히스토그램 그리드(histogram grid)를 사용한다. 벡터 필드법은 로봇의 제어 명령을 계산하기 위해 2 단계의 데이터 감소 과정을 이용한다. 제1 단계에서, 히스토그램 그리드는 로봇의 순간적인 위치 주변에서 구성되는 1차원의 폴라 히스토그램으로 감소된다. 그 방향의 극장애물 밀도(polar obstacle density; POD)를 나타내는 값이 폴라 히스토그램의 각 섹터에 포함된다. 제2 단계에서, 알고리즘은 폴라 히스토그램 섹터들 중에서 낮은 극장애물 밀도를 갖는 가장 적절한 섹터를 선택한다. 하지만, 넓은 범위의 맵을 활용하기 어려운 단점이 있다.
A* 알고리즘은 그리드 맵을 사용하여 이미 알고 있는 환경에 대한 정보를 이용하여 출발지점으로부터 목표지점까지의 최적경로를 탐색하기 위한 알고리즘을 말한다. 이 알고리즘은 출발지점으로부터 로봇의 현재위치까지의 최단거리 정보 및 로봇의 현재위치로부터 목표지점까지의 휴리스틱 정보(heuristic information)를 합산하여 최소 비용을 갖는 최적경로를 탐색하는 방법이다.
이들 방법은 여러 가지 문제점을 가지고 있다. 하지만, 이들 방법의 가장 큰 문제점은 보행로봇의 제자리 회전가능성, 보행로봇의 회전반경, 장애물의 크기 및 목표물의 방향성을 고려하지 않은 것이다. 예컨대, 보행로봇은 제자리 회전이 불가능한 경우가 있고, 제자리 회전이 가능한 경우에도 회전을 하는데 많은 시간이 소요될 수 있다. 또한, 보행로봇의 제자리 회전을 실행하기 위해서는 복잡한 구성 및 제어가 요구되어, 결국에는 비용의 증가와 중량의 증가를 가져온다. 게다가, 목표물의 방향성은 보행로봇이 목표지점에 있는 특정 방향의 물건을 파지하여 이동시키는 경우에 중요하게 고려될 수 있다. 따라서, 이러한 다양한 특성을 고려하여 장애물을 회피할 수 있는 보행로봇의 최적경로 계획방법을 개발할 필요성이 있다.
본 발명은 위와 같은 문제점을 해결하기 위해 창안된 것으로서, 본 발명의 목적은 보행로봇의 회전을 최소화할 수 있도록 각도 비용을 계산하는 단계를 포함하는 보행로봇의 최적경로 계획방법을 제공하는 것이다.
본 발명의 다른 목적은 보행로봇의 회전반경을 고려한 보행로봇의 최적경로 계획방법을 제공하는 것이다.
본 발명의 또 다른 목적은 목표물의 방향성 및 보행로봇의 방향성을 고려한 보행로봇의 최적경로 계획방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 보행로봇의 최적경로 계획방법은, 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드에 대한 정보를 입력받아서 초기화하는 단계와, 출발 노드로부터 현재 노드까지의 경로비용을 계산하는 단계와, 현재 노드의 주변에 있는 복수의 후보 노드 중 장애물 노드가 아닌 후보 노드를 후보 목록에 입력하는 단계와, 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하는 단계와, 후보 목록에 입력된 각 후보 노드의 휴리스틱비용을 계산하는 단계와, 경로비용, 각도비용 및 휴리스틱비용에 따라 후보 목록에 입력된 각 후보 노드의 총비용을 계산하여 각 후보 노드에 저장하는 단계와, 후보 노드를 열린 목록에 입력하고, 열린 목록에 이미 입력되어 있던 노드의 총비용을 현재 노드에 대한 총비용으로 갱신하는 단계와, 열린 목록의 노드 중에서 총비용이 최소인 후보 노드를 다 음 노드로 지정하여 닫힌 목록에 입력하는 단계와, 다음 노드가 목표 노드인지 판단하는 단계를 포함하고, 목표 노드 판단 단계에서, 다음 노드가 목표 노드이면 닫힌 목록에 입력된 전체경로를 백 트래킹(back tracking)에 의해 반환하고, 다음 노드가 목표 노드가 아니면 경로비용 계산 단계로 돌아가며, 다음 노드 입력 단계의 다음 노드는 경로비용 계산 단계의 현재 노드로 취급된다.
바람직하게는, 본 발명의 일 실시예는 보행로봇의 제자리 회전가능성을 고려하여 변곡점의 경로를 수정하는 단계를 더 포함한다.
본 발명의 일 실시예에서, 각도비용은 현재 노드를 중심으로 이전 노드와 다음 노드가 이루는 각도에 의해 계산하고, 휴리스틱비용은 현재 노드로부터 각 후보 노드까지의 거리비용과 후보 노드로부터 목표 노드까지의 비용의 합에 의해 계산한다. 또한, 총비용은 하기의 수식에 의해 계산한다:
f(n) = g(n) + C a (n)*α + C h (n)*(1 - α),
여기서 f(n)은 총비용이고,
g(n)은 경로비용이고,
C a (n)은 각도비용이고,
C h (n)은 휴리스틱비용이고,
α는 각도비용의 가중치이며, α는 0 보다 크고 1보다 작은 실수이다.
본 발명의 다른 실시예에 따른 보행로봇의 최적경로 계획방법은 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드를 입력받아서 초기화하는 단계 와, 목표 노드의 방향성 및 보행로봇의 방향성을 고려하여 목표 노드와 소정의 회전반경을 갖는 임시목표 노드를 설정하는 단계와, 출발 노드로부터 현재 노드까지의 경로비용을 계산하는 단계와, 현재 노드의 주변에 있는 복수의 후보 노드 중 장애물 노드가 아닌 후보 노드를 후보 목록에 입력하는 단계와, 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하는 단계와, 후보 목록에 입력된 각 후보 노드의 휴리스틱비용을 계산하는 단계와, 경로비용, 각도비용 및 휴리스틱비용에 따라 후보 목록에 입력된 각 후보 노드의 총비용을 계산하여 각 후보 노드에 저장하는 단계와, 후보 노드를 열린 목록에 입력하고, 열린 목록에 이미 입력되어 있던 노드의 총비용을 현재 노드에 대한 총비용으로 갱신하는 단계와, 열린 목록의 노드 중에서 총비용이 최소인 후보 노드를 다음 노드로 지정하여 닫힌 목록에 입력하는 단계와, 다음 노드가 임시목표 노드인지 판단하는 단계를 포함하며, 임시목표 노드 판단 단계에서, 다음 노드가 임시목표 노드이면 임시목표 노드로부터 목표 노드까지의 경로를 포함하여 닫힌 목록에 입력된 전체경로를 백 트래킹(back tracking)에 의해 반환하고, 다음 노드가 임시목표 노드가 아니면 경로비용 계산 단계로 돌아가며, 다음 노드 입력 단계의 다음 노드는 경로비용 계산 단계의 현재 노드로 취급된다.
바람직하게는, 본 발명의 다른 실시예는 보행로봇의 제자리 회전가능성을 고려하여 변곡점의 경로를 수정하는 단계를 더 포함한다.
본 발명의 다른 실시예에서, 각도비용은 현재 노드를 중심으로 이전 노드와 다음 노드가 이루는 각도에 의해 계산하고, 휴리스틱비용은 현재 노드로부터 각 후보 노드까지의 거리비용과 후보 노드로부터 목표 노드까지의 비용의 합에 의해 계 산한다. 또한, 총비용은 하기의 수식에 의해 계산한다:
f(n) = g(n) + C a (n)*α + C h (n)*(1 - α),
여기서 f(n)은 총비용이고,
g(n)은 경로비용이고,
C a (n)은 각도비용이고,
C h (n)은 휴리스틱비용이고,
α는 각도비용의 가중치이며, α는 0 보다 크고 1보다 작은 실수이다.
본 발명의 제1 실시예에 따라 각도비용을 계산하는 단계를 포함하는 보행로봇의 최적경로 계획방법에 의해 경로상의 회전최소화를 달성함으로써 제자리 회전이 불가능한 보행로봇이 장애물을 회피할 수 있는 최적경로를 계획할 수 있다. 또한, 전체 지형에 대하여 격자로 표현된 좌표계를 이용함으로써 보행로봇 및 장애물 크기를 고려하여 최적경로를 계획할 수 있다. 본 발명의 제2 실시예에 따른 보행로봇의 최적경로 계획방법에 의하면, 목표물에 대한 적절한 임시목표점을 설정함으로써, 목표물의 특정 방향을 고려하여 최적경로를 계획할 수 있다. 그 결과, 보행로봇이 제자리 회전이 가능한 경우에는 이동시간을 단축시킬 수 있다. 또한, 보행로봇의 제조시 제자리 회전에 관련된 구성을 고려할 필요가 없다.
이하, 첨부된 도면을 참조하여 본 발명의 제1 및 제2 실시예에 따른 보행로 봇의 최적경로 계획방법을 상세하게 설명한다.
도 1은 본 발명에서 사용되는 좌표계 및 구성요소를 보인 개략도이다.
도 1에 도시한 바와 같이, 보행로봇(110)은 보행로봇(110)의 진행방향을 나타내는 헤딩부(111)를 구비하고, 목표물(130)은 목표물의 특정 방향을 나타내는 파지부(131)를 구비한다. x-축은 우측으로 갈수록 증가하고, y-축은 하방으로 갈수록 증가한다. 본 발명에서는 장애물 및 목표물에 대한 정보에 기초하여 적절한 크기의 정사각형 격자로 구성된 맵을 이용한다. 하지만, 본 발명은 이에 한정되는 것은 아니며, 임의의 다각형 격자로 구성될 수 있다.
도 2는 본 발명에서 사용되는 방향계를 보인 도면이고, 도 3은 보행로봇의 각도비용 산출에 이용되는 각 노드들 간의 관계를 보인 도면이다. 이하에서, "현재 노드"는 보행로봇의 현재위치에 대한 노드이고, "이전 노드"는 현재 노드의 바로 직전의 노드이고, "다음 노드"는 보행로봇이 현재 노드로부터 차후에 보행하게 될 현재 노드의 바로 직후의 노드이다. 그러나, 보행로봇의 현재위치가 출발위치와 동일하다면, 현재 노드가 출발 노드와 동일할 수 있다.
도 2에 도시한 바와 같이, x-축을 기준으로 상반구는 반시계방향으로 0°~ -180°이며, 하반구는 시계방향으로 0°~ +180°이다. 각도를 계산할 때, 방향계는 현재 노드를 중심으로 적용된다. 도 3에 도시한 바와 같이, 현재 노드에 대한 이전 노드의 각도(θn-1)는 다음과 같이 구해진다:
Figure 112008049173983-PAT00001
,
여기서 Nn -1(xn -1, yn -1)은 이전 노드의 좌표이고,
Nn(xn, yn)은 현재 노드의 좌표이다.
현재 노드에 대한 후보 노드의 각도(θn+1)는 다음과 같이 구해진다:
Figure 112008049173983-PAT00002
,
여기서, Nn(xn, yn)은 현재 노드의 좌표이고,
Nn +1(xn +1, yn +1)은 후보 노드의 좌표이다.
현재 노드를 중심으로 이전 노드와 후보 노드가 이루는 각도(θ)는 다음과 같이 구해진다:
Figure 112008049173983-PAT00003
.
각도비용에 관한 자세한 설명은 후술한다.
도 4는 본 발명의 제1 실시예에 따른 보행로봇의 최적경로 계획방법을 보인 순서도이다.
도 4에 도시한 바와 같이, 본 발명의 제1 실시예에 따른 보행로봇의 최적경로 계획방법은 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드에 대한 정보를 입력받아서 초기화하는 단계(S101)와, 출발 노드로부터 현재 노드까지의 경로비용을 계산하는 단계(S102)와, 현재 노드의 주변에 있는 복수의 후보 노드 중 장애물 노드가 아닌 후보 노드를 후보 목록에 입력하는 단계(S103)와, 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하는 단계(S104)와, 후보 목록에 입력된 각 후보 노드의 휴리스틱비용을 계산하는 단계(S105)와, 경로비용, 각도비용 및 휴리스틱비용에 따라 후보 목록에 입력된 각 후보 노드의 총비용을 계산하여 각 후보 노드에 저장하는 단계(S106)와, 후보 노드를 열린 목록(open list)에 입력하고, 열린 목록에 이미 입력되어 있는 각 노드를 현재 노드에 대한 총비용으로 갱신하는 단계(S107)와, 열린 목록의 노드 중에서 총비용이 최소인 후보 노드를 다음 노드로 지정하여 열린 목록에서 제거하고, 닫힌 목록에 입력하는 단계(S108)와, 다음 노드가 목표 노드인지 판단하는 단계(S109)를 포함하고, 다음 노드가 목표 노드이면 닫힌 목록에 입력된 전체경로를 백 트래킹(back tracking)에 의해 반환하고, 다음 노드가 목표 노드가 아니면 경로비용 계산 단계(S102)로 돌아가며, 닫힌 목록 입력 단계(S108)의 다음 노드는 경로비용 계산 단계(S102)의 현재 노드로 취급된다.
초기화 단계(S101)는 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드에 대한 정보를 입력받아서 초기화하는 단계이다. "출발 노드"는 보행로봇이 최초로 보행을 시작하는 지점의 노드이고, "목표 노드"는 보행로봇의 최종 목표지점의 노드이며, "장애물 노드"는 정적인 장애물이 위치하는 노드이다. 장애물 노드는 장애물의 크기를 고려하여 여러 개의 격자로 구성될 수 있다. 이 단계(S101)에서 닫힌 목록은 전체 비용을 고려하여 선정된 최적경로가 저장되는 곳으로서, 현재 노드가 최적경로의 일부 노드로서 저장된다.
경로비용 계산 단계(S102)는 출발 노드로부터 현재 노드까지의 경로비용을 계산하는 단계이다. 경로비용은 단순한 거리비용, 또는 거리와 각도를 고려한 비용에 의해 계산될 수 있다. 이하에서, "비용"은 소요 시간 또는 일정한 거리에 대하여 소정의 값을 부여하고 이에 대한 수치로 환산한 값을 말한다. 예를 들어, "각도비용"은 각 노드 간의 거리에 대한 환산값이고, "거리비용"은 보행로봇이 소정의 각도(θ)만큼 회전을 하는데 소요되는 시간에 대하여 환산값이다.
후보 노드 입력 단계(S103)는 현재 노드의 주변에 있는 후보 노드 중에서 장애물 노드를 제외한 복수의 후보 노드를 후보 목록에 입력하는 단계이다. 기본적으로, 후보 노드는 현재 노드를 둘러싼 8개의 격자이다. 하지만, 장애물 노드가 아닌 후보 노드가 후보 목록에 입력된다. 이는 장애물 노드에 대한 각종의 비용을 계산하는 단계를 거치지 않도록 하기 위해서이다.
각도비용 계산 단계(S104)는 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하여 저장하는 단계이다. 각도비용은 현재 노드를 중심으로 이전 노드와 후보 노드가 이루는 각도(θ)에 기초하여 계산된다. 각도(θ)는 수학식 3에 의해 구해진다. 각도(θ)가 180°이면, 각도비용은 최소이다. 각도(θ)가 180°보다 작으면 각도비용은 증가하며, 각도(θ)가 180°보다 크면 각도비용은 증가한다.
휴리스틱비용 계산 단계(S105)는 현재 노드로부터 목표 노드까지의 거리비용 을 계산하는 단계이다. 휴리스틱비용은 현재 노드로부터 후보 노드까지의 거리비용과 후보 노드로부터 목표 노드까지의 거리비용으로 구분된다. 이들 거리비용은 각 노드 간의 직선 거리에 의해 산출될 수 있다. 휴리스틱비용은 다음과 같이 나타낼 수 있다:
C h (n) = C h1 + C h2 ,
여기서, C h (n)는 휴리스틱비용이고,
C h1 는 현재 노드로부터 후보 노드까지의 거리비용이고,
C h2 는 후보 노드로부터 목표 노드까지의 거리비용이다.
총비용 계산단계(S107)는 경로비용, 각도비용 및 휴리스틱비용에 따라 각 후보 노드의 총비용을 계산하는 단계이다. 총비용은 각 비용의 합에 의해 계산될 수 있다. 한편, 총비용은 출발 노드로부터 현재 노드까지의 경로비용과 현재 노드로부터 목표 노드까지의 예측비용의 합으로 표현될 수 있다:
f(n) = g(n)+ h(n),
여기서, f(n)은 총비용이고,
g(n)은 출발 노드로부터 현재 노드까지의 경로비용이고,
h(n)은 현재 노드로부터 목표 노드까지의 예측비용이다.
이 경우에, 예측비용은 각도비용과 휴리스틱비용의 합으로 표현될 수 있다:
h(n) = C a (n) + C h (n),
여기서, C a (n)은 각도비용이고
C h (n)은 휴리스틱비용이다.
예측비용은 보행로봇이 최소의 회전을 하도록 각도비용에 가중치를 주어 다음과 같이 표현될 수 있다:
h(n) = C a (n)*α + C h (n)*(1 - α)
여기서, α는 가중치이며, α는 0보다 크고 1보다 작은 실수이다.
α는 각도비용의 가중계수로서 회전최소화에 대한 비중을 나타내는 계수이다. 가중치는 보행로봇의 제자리 회전가능성을 고려하여 적절하게 선택될 수 있다. 즉, 가중치가 0.5 이상이면 회전최소화를 고려한 것이고, 가중치가 0.5 이하이면 최단거리 경로를 고려한 것이다. 각 후보 노드에 대하여 산출된 총비용은 후보 목록에 입력된 각 후보 노드에 저장된다.
열린 목록 입력 및 갱신 단계(S107)는 후보 노드를 열린 목록에 입력하고, 열린 목록에 이미 입력되어 있던 각 노드의 총비용을 현재 노드에 대한 총비용으로 갱신하는 단계이다. 이 단계(S107)에서 총비용이 저장된 후보 노드는 후보 목록에서 삭제되고 열린 목록에 입력된다. 열린 목록에는 이미 입력되어 있던 후보 노드가 존재할 수 있다. 하지만, 이들 후보 노드에는 이전 노드에 대한 총비용이 저장 되어 있으므로, 현재 노드에 대한 총비용으로 갱신한다. 그 후에, 열린 목록에 있는 후보 노드들은 총비용의 순서대로 정렬된다.
닫힌 목록 입력 단계(S108)는 다음 노드를 지정하여 닫힌 목록에 저장하는 단계이다. 이 단계(S108)에서는 총비용이 가장 낮은 후보 노드가 다음 노드로 지정된다. 다음 노드로 지정된 후보 노드는 열린 목록에서 삭제되고, 나머지 후보 노드는 열린 목록에 잔류한다. 그 후에, 다음 노드는 닫힌 목록에 입력되어 전체경로의 일부가 된다.
다음 노드 판단 단계(S109)는 다음 노드가 목표 노드인지 여부를 판단하는 단계이다. 이 단계(S109)에서, 다음 노드가 목표 노드이면, 닫힌 목록에 입력되어 있는 노드로 구성된 전체경로를 백 트래킹(back tracking)에 의해 반환한다. 이 단계에서(S109), 다음 노드가 목표 노드가 아니면, 단계(S102)로 돌아가서 다음 노드가 목표 노드와 일치할 때까지 상술한 단계들을 반복하여 실행한다. 단계(S108)의 다음 노드는 단계(S102)의 이하에서 현재 노드로 취급된다.
도 5는 보행로봇의 회전최소화 및 보행로봇의 크기를 고려하지 않은 보행로봇의 최적경로를 보인 개략도이고, 도 6은 보행로봇의 회전최소화 및 보행로봇의 크기를 고려한 보행로봇의 최적경로를 보인 개략도이다. 이하, 변곡점은 경로에서 방향전환이 발생하는 회전지점을 말한다.
도 5에 도시한 최적경로는 장애물(120)에 인접해 있으므로, 보행로봇(110)이 장애물(120)과 충돌할 가능성이 있으며, 보행로봇(110)의 회전가능성을 고려하지 않았다. 이들의 충돌을 회피하기 위해서는 보행로봇(110)의 크기를 고려하여 맵의 격자 크기를 설정해야 한다. 그리고, 장애물 노드는 전체 장애물(120)의 크기를 수용할 수 있도록 정해져야 한다. 이 경우에, 최적경로는 3개의 변곡점을 포함한다.
도 6에 도시한 최적경로는 보행로봇(110)의 크기 및 장애물(120)의 크기를 고려하고, 본 발명의 제1 실시예에 따라 회전최소화를 고려한 것이다. 이 경우에, 최적경로는 2개의 변곡점을 포함한다. 도 6의 보행로봇(210)의 최적경로는 회전최소화 및 보행로봇의 크기와 장애물의 크기를 고려하지 않은 도 5의 최적경로에 비하여 변곡점의 수가 감소하였다.
도 7은 제자리 회전이 가능한 보행로봇의 최적경로를 보인 개략도이고, 도 8은 제자리 회전이 불가능한 보행로봇의 최적경로를 보인 개략도이다.
도 7에 도시한 바와 같이 제자리 회전이 가능한 보행로봇(110)의 경우에, 본 발명의 제1 실시예에 따른 최적경로 계획방법은 회전최소화에 의해 회전에 소요되는 시간을 단축시킬 수 있다. 도 8에 도시한 바와 같이 제자리 회전이 불가능한 보행로봇(110)의 경우에, 보행로봇(110)은 미리 정해진 회전반경(R)을 갖는다. 보행로봇(110)은 회전반경(R)만큼 직진한 후에 회전하여 다음 경로로 진입한다. 따라서, 전체경로의 변곡점은 회전반경(R)을 고려하여 수정되어야 한다.
도 9는 본 발명의 제2 실시예에 따른 보행로봇의 최적경로 계획방법을 보인 순서도이다.
본 발명의 제2 실시예에 따른 보행로봇의 최적경로 계획방법은, 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드를 입력받아서 초기화하는 단 계(S201)와, 목표 노드의 방향성 및 보행로봇의 방향성을 고려하여 목표 노드와 소정의 회전반경을 갖는 임시목표 노드를 설정하는 단계(S202)와, 출발 노드로부터 현재 노드까지의 경로비용을 계산하는 단계(S203)와, 현재 노드의 주변에 있는 복수의 후보 노드 중 장애물 노드가 아닌 후보 노드를 후보 목록에 입력하는 단계(S204)와, 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하는 단계(S205)와, 후보 목록에 입력된 각 후보 노드의 휴리스틱비용을 계산하는 단계(S206)와, 경로비용, 각도비용 및 휴리스틱비용에 따라 후보 목록에 입력된 각 후보 노드의 총비용을 계산하여 각 후보 노드에 저장하는 단계(S207)와, 후보 노드를 열린 목록에 입력하고, 열린 목록에 이미 입력되어 있던 노드의 총비용을 현재 노드에 대한 총비용으로 갱신하는 단계(S208)와, 열린 목록의 노드 중에서 총비용이 최소인 후보 노드를 다음 노드로 지정하여 닫힌 목록에 입력하는 단계(S209)와, 다음 노드가 임시목표 노드인지 판단하는 단계(S210)를 포함하며, 임시목표 노드 판단 단계(S210)에서, 다음 노드가 임시목표 노드이면 임시목표 노드로부터 목표 노드까지의 경로를 포함하여 닫힌 목록에 입력된 전체경로를 백 트래킹(back tracking)에 의해 반환하고, 다음 노드가 임시목표 노드가 아니면 경로비용 계산 단계(S203)로 돌아가며, 다음 노드 입력 단계(S210)의 다음 노드는 경로비용 계산 단계(S203)의 현재 노드로 취급된다.
본 실시예에서는 제1 실시예와 동일한 부분에 대한 설명은 생략하고, 제1 실시예와 다른 부분에 대한 설명을 중점적으로 한다. 제2 실시예의 단계(S203) 내지 단계(S209)는 제1 실시예의 단계(S102) 내지 단계(S108)와 실질적으로 동일하다.
도 10은 목표물에 대하여 회전반경을 갖는 8개의 임시목표점을 도시하고, 도 11은 임시목표점이 "140a"인 경우의 경로를 보인 개략도이다.
단계(S202)는 목표물의 파지부 방향을 고려하여 임시목표점을 설정하는 단계이다. 도 10에 도시한 바와 같이, 8개의 임시목표점(140a ~ 140h)은 목표물(130)의 파지부(131) 방향으로 회전반경만큼 거리를 갖는다. 목표물(130)을 중심으로 한 임시목표점(140a ~ 140h) 사이의 각도는 45°로 동일하다. 하지만, 본 발명은 이 각도에 한정되는 것이 아니며, 소정의 다른 각도로 설정될 수 있으며, 임시목표점 사이의 각도가 동일할 필요도 없다.
도 11에 도시한 바와 같이, 보행로봇(110)이 임시목표점(140a)에 도달을 하면 보행로봇은 회전반경(R)만큼 직진한 이후에 회전함으로써 목표물(130)에 도달한다. 이 경우에, 보행로봇(110)의 헤딩부(111)는 목표물(130)의 파지부(131)는 마주보게 된다.
도 12는 목표 노드의 방향성 및 보행로봇의 회전반경을 고려한 보행로봇의 최적경로를 보인 개략도이다.
목표물(130)의 방향성 및 보행로봇(110)의 회전반경을 고려하여 임시목표점이 설정되면, 임시목표점에 대하여 제1 실시예에 따른 방법에 따라 경로를 탐색한다. 단계(S210)에서 다음 노드가 임시목표점인 경우에 임시목표점으로부터 목표물까지의 경로를 형성하여 백 트래킹에 의해 최종 경로를 반환한다. 단계(S201)에서 다음 노드가 임시목표점이 아닌 경우에는 제1 실시예에 따른 방법에 따라 다음 노드가 임시목표점과 일치할 때까지 반복하여 실행한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 있어서 명백할 것이다.
도 1은 본 발명에서 사용되는 좌표계 및 구성요소를 보인 개략도이다.
도 2는 본 발명에서 사용되는 방향계를 보인 도면이다.
도 3은 보행로봇의 각도비용 산출에 이용되는 각 노드들 간의 관계를 보인 개략도이다.
도 4는 본 발명의 제1 실시예에 따른 보행로봇의 최적경로 계획방법을 보인 순서도이다.
도 5는 보행로봇의 크기와 장애물의 크기를 고려하지 않은 보행로봇의 최적경로를 보인 개략도이고, 도 6은 보행로봇의 회전최소화 및 보행로봇의 크기를 고려한 보행로봇의 최적경로를 보인 개략도이다.
도 7은 제자리 회전이 가능한 보행로봇의 최적경로를 보인 개략도이고, 도 8은 제자리 회전이 불가능한 보행로봇의 최적경로를 보인 개략도이다.
도 9는 보행로봇의 회전반경을 고려한 보행로봇의 최적경로 계획방법을 보인 순서도이다.
도 10은 목표물에 대하여 회전반경을 갖는 8개의 임시목표점을 보인 개략도이다.
도 11은 임시목표점이 도 10의 "140a"인 경우의 최적경로를 보인 개략도이다.
도 12는 목표 노드의 방향성 및 보행로봇의 회전반경을 고려한 보행로봇의 최적경로를 보인 개략도이다.
<도면의 주요부분에 대한 부호의 설명>
110 : 보행로봇
111 : 헤딩부
120 : 장애물
130 : 목표지점
131 : 파지부

Claims (10)

  1. 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드에 대한 정보를 입력받아서 초기화하는 단계와,
    상기 출발 노드로부터 상기 현재 노드까지의 경로비용을 계산하는 단계와,
    상기 현재 노드의 주변에 있는 복수의 후보 노드 중 장애물 노드가 아닌 후보 노드를 후보 목록에 입력하는 단계와,
    상기 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하는 단계와,
    상기 후보 목록에 입력된 각 후보 노드의 휴리스틱비용을 계산하는 단계와,
    상기 경로비용, 각도비용 및 휴리스틱비용에 따라 상기 후보 목록에 입력된 각 후보 노드의 총비용을 계산하여 상기 각 후보 노드에 저장하는 단계와,
    상기 후보 노드를 열린 목록에 입력하고, 상기 열린 목록에 이미 입력되어 있던 노드의 총비용을 상기 현재 노드에 대한 총비용으로 갱신하는 단계와,
    상기 열린 목록의 노드 중에서 총비용이 최소인 후보 노드를 다음 노드로 지정하여 상기 닫힌 목록에 입력하는 단계와,
    상기 다음 노드가 상기 목표 노드인지 판단하는 단계를 포함하고,
    상기 목표 노드 판단 단계에서, 상기 다음 노드가 상기 목표 노드이면 상기 닫힌 목록에 입력된 전체경로를 백 트래킹(back tracking)에 의해 반환하고, 상기 다음 노드가 목표 노드가 아니면 상기 경로비용 계산 단계로 돌아가며, 상기 다음 노드 입력 단계의 상기 다음 노드는 상기 경로비용 계산 단계의 현재 노드로 취급 되는
    보행로봇의 최적경로 계획방법.
  2. 제1항에 있어서, 보행로봇의 제자리 회전가능성을 고려하여 변곡점의 경로를 수정하는 단계를 더 포함하는
    보행로봇의 최적경로 계획방법.
  3. 제1항 또는 제2항에 있어서, 상기 각도비용은 상기 현재 노드를 중심으로 상기 이전 노드와 상기 다음 노드가 이루는 각도에 의해 계산하는
    보행로봇의 최적경로 계획방법.
  4. 제1항 또는 제2항에 있어서, 상기 휴리스틱비용은 상기 현재 노드로부터 상기 각 후보 노드까지의 거리비용과 상기 후보 노드로부터 상기 목표 노드까지의 비용의 합에 의해 계산하는
    보행로봇의 최적경로 계획방법.
  5. 제1항 또는 제2항에 있어서, 상기 총비용은 하기의 수식에 의해 계산하는 보행로봇의 최적경로 계획방법:
    f(n) = g(n) + C a (n)*α + C h (n)*(1 -α),
    여기서 f(n)은 총비용이고,
    g(n)은 경로비용이고,
    C a (n)은 각도비용이고,
    C h (n)은 휴리스틱비용이고,
    α는 상기 각도비용의 가중치이며, α는 0 보다 크고 1보다 작은 실수이다.
  6. 출발 노드, 목표 노드, 이전 노드, 현재 노드, 및 장애물 노드를 입력받아서 초기화하는 단계와,
    상기 목표 노드의 방향성 및 보행로봇의 방향성을 고려하여 상기 목표 노드와 소정의 회전반경을 갖는 임시목표 노드를 설정하는 단계와,
    상기 출발 노드로부터 상기 현재 노드까지의 경로비용을 계산하는 단계와,
    상기 현재 노드의 주변에 있는 복수의 후보 노드 중 장애물 노드가 아닌 후보 노드를 후보 목록에 입력하는 단계와,
    상기 후보 목록에 입력된 각 후보 노드의 각도비용을 계산하는 단계와,
    상기 후보 목록에 입력된 각 후보 노드의 휴리스틱비용을 계산하는 단계와,
    상기 경로비용, 각도비용 및 휴리스틱비용에 따라 상기 후보 목록에 입력된 각 후보 노드의 총비용을 계산하여 상기 각 후보 노드에 저장하는 단계와,
    상기 후보 노드를 열린 목록에 입력하고, 상기 열린 목록에 이미 입력되어 있던 노드의 총비용을 상기 현재 노드에 대한 총비용으로 갱신하는 단계와,
    상기 열린 목록의 노드 중에서 총비용이 최소인 후보 노드를 다음 노드로 지정하여 상기 닫힌 목록에 입력하는 단계와,
    상기 다음 노드가 상기 임시목표 노드인지 판단하는 단계를 포함하며,
    상기 임시목표 노드 판단 단계에서, 상기 다음 노드가 상기 임시목표 노드이면 상기 임시목표 노드로부터 상기 목표 노드까지의 경로를 포함하여 닫힌 목록에 입력된 전체경로를 백 트래킹(back tracking)에 의해 반환하고, 상기 다음 노드가 임시목표 노드가 아니면 상기 경로비용 계산 단계로 돌아가며, 상기 다음 노드 입력 단계의 상기 다음 노드는 상기 경로비용 계산 단계의 현재 노드로 취급되는
    보행로봇의 최적경로 계획방법.
  7. 제1항에 있어서, 보행로봇의 제자리 회전가능성을 고려하여 발생하는 변곡점의 경로를 수정하는 단계를 더 포함하는
    보행로봇의 최적경로 계획방법.
  8. 제6항 또는 제7항에 있어서, 상기 각도비용은 상기 현재 노드를 중심으로 상기 이전 노드와 상기 다음 노드가 이루는 각도에 의해 계산하는
    보행로봇의 최적경로 계획방법.
  9. 제6항 또는 제7항에 있어서, 상기 휴리스틱비용은 출발 노드로부터 현재 노드까지의 거리비용과 상기 현재 노드로부터 상기 다음 노드까지 거리비용의 합에 의해 계산하는
    보행로봇의 최적경로 계획방법.
  10. 제6항 또는 제7항에 있어서, 상기 총비용은 하기의 수식에 의해 계산하는 보행로봇의 최적경로 계획방법:
    f(n) = g(n) + C a (n)*α + C h (n)*(1 - α),
    여기서 f(n)은 총비용이고,
    g(n)은 경로비용이고,
    C a (n)은 각도비용이고,
    C h (n)은 휴리스틱비용이고,
    α는 상기 각도비용의 가중계수이며, α는 0 보다 크고 1보다 작은 실수이다.
KR1020080066063A 2008-07-08 2008-07-08 보행로봇의 최적경로 계획방법 KR100994075B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080066063A KR100994075B1 (ko) 2008-07-08 2008-07-08 보행로봇의 최적경로 계획방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080066063A KR100994075B1 (ko) 2008-07-08 2008-07-08 보행로봇의 최적경로 계획방법

Publications (2)

Publication Number Publication Date
KR20100005942A true KR20100005942A (ko) 2010-01-18
KR100994075B1 KR100994075B1 (ko) 2010-11-12

Family

ID=41815204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080066063A KR100994075B1 (ko) 2008-07-08 2008-07-08 보행로봇의 최적경로 계획방법

Country Status (1)

Country Link
KR (1) KR100994075B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019045293A1 (ko) * 2017-08-31 2019-03-07 엘지전자 주식회사 타겟 지향 로컬 경로를 생성하는 방법 및 이를 구현하는 로봇
CN111665844A (zh) * 2020-06-23 2020-09-15 北京三快在线科技有限公司 一种路径规划方法及装置
KR102217208B1 (ko) * 2020-09-10 2021-02-18 국방과학연구소 경로 탐색 방법 및 장치
CN112731941A (zh) * 2020-12-29 2021-04-30 深圳市优必选科技股份有限公司 双足机器人路径规划方法、装置和双足机器人

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190616B1 (ko) * 2012-03-13 2012-10-12 고려대학교 산학협력단 이동 로봇의 위치 추정 방법
KR101441187B1 (ko) * 2012-07-19 2014-09-18 고려대학교 산학협력단 자율 보행 로봇 경로 계획 방법
KR102551275B1 (ko) * 2021-05-14 2023-07-04 (주)로보티즈 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002133351A (ja) 2000-10-25 2002-05-10 Nec Corp 最小コスト経路探索装置及びそれに用いる最小コスト経路探索方法
JP4251545B2 (ja) 2003-07-11 2009-04-08 独立行政法人科学技術振興機構 移動ロボット用経路計画システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019045293A1 (ko) * 2017-08-31 2019-03-07 엘지전자 주식회사 타겟 지향 로컬 경로를 생성하는 방법 및 이를 구현하는 로봇
CN111665844A (zh) * 2020-06-23 2020-09-15 北京三快在线科技有限公司 一种路径规划方法及装置
CN111665844B (zh) * 2020-06-23 2023-10-24 北京三快在线科技有限公司 一种路径规划方法及装置
KR102217208B1 (ko) * 2020-09-10 2021-02-18 국방과학연구소 경로 탐색 방법 및 장치
CN112731941A (zh) * 2020-12-29 2021-04-30 深圳市优必选科技股份有限公司 双足机器人路径规划方法、装置和双足机器人
WO2022142893A1 (zh) * 2020-12-29 2022-07-07 深圳市优必选科技股份有限公司 双足机器人路径规划方法、装置和双足机器人
CN112731941B (zh) * 2020-12-29 2024-03-05 深圳市优必选科技股份有限公司 双足机器人路径规划方法、装置和双足机器人

Also Published As

Publication number Publication date
KR100994075B1 (ko) 2010-11-12

Similar Documents

Publication Publication Date Title
KR100994075B1 (ko) 보행로봇의 최적경로 계획방법
CN111504325B (zh) 一种基于扩大搜索邻域的加权a*算法的全局路径规划方法
CN109597864B (zh) 椭球边界卡尔曼滤波的即时定位与地图构建方法及系统
Prentice et al. The belief roadmap: Efficient planning in linear POMDPs by factoring the covariance
JP4251545B2 (ja) 移動ロボット用経路計画システム
CN109947118B (zh) 一种使用gpu加速的代价地图快速更新方法
Kollar et al. Efficient Optimization of Information-Theoretic Exploration in SLAM.
CN112033413A (zh) 一种结合环境信息的改进a*算法
CN109341698B (zh) 一种移动机器人的路径选择方法及装置
CN112000126B (zh) 一种基于鲸鱼算法的多无人机协同搜索多动态目标方法
CN115167474A (zh) 一种移动机器人路径规划优化方法
CN114166235A (zh) 一种基于优化a-star算法的全局动态平滑路径规划方法
CN114705196B (zh) 一种用于机器人的自适应启发式全局路径规划方法与系统
KR20170043946A (ko) 이동체의 경로계획 장치 및 그 계획 방법
JP4699598B2 (ja) 問題解決器として動作するデータ処理装置、及び記憶媒体
Lenac et al. Fast active SLAM for accurate and complete coverage mapping of unknown environments
CN114721370A (zh) 基于双启发函数的机器人快速最优路径规划方法
KR20160088638A (ko) 모션 플래닝 장치 및 방법
CN117434950A (zh) 一种基于哈里斯鹰启发式混合算法的移动机器人动态路径规划方法
CN108717302B (zh) 机器人跟随人物方法、装置及存储介质、机器人
CN110749325A (zh) 航迹规划方法和装置
Wang et al. Robust exploration with multiple hypothesis data association
Choi et al. Topological map building based on thinning and its application to localization
CN116576868A (zh) 一种多传感器融合精确定位及自主导航方法
Lawrance et al. Fast marching adaptive sampling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131029

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171101

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 9