KR20100117931A - 이동 로봇의 스위핑 작업 경로 생성 방법 - Google Patents

이동 로봇의 스위핑 작업 경로 생성 방법 Download PDF

Info

Publication number
KR20100117931A
KR20100117931A KR1020090036659A KR20090036659A KR20100117931A KR 20100117931 A KR20100117931 A KR 20100117931A KR 1020090036659 A KR1020090036659 A KR 1020090036659A KR 20090036659 A KR20090036659 A KR 20090036659A KR 20100117931 A KR20100117931 A KR 20100117931A
Authority
KR
South Korea
Prior art keywords
path
obstacle
sweeping
work
mobile robot
Prior art date
Application number
KR1020090036659A
Other languages
English (en)
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 KR1020090036659A priority Critical patent/KR20100117931A/ko
Publication of KR20100117931A publication Critical patent/KR20100117931A/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/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
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 이동 로봇의 스위핑 작업 경로 생성 방법에 관한 것으로서, 오토캐드로 작성되어 로딩된 도면에 대해 이동로봇이 작업할 작업영역을 선택하는 단계와, 선택된 작업영역에 대한 모양공간 내에서 인식된 장애물에 대한 장애물 지도를 생성하는 단계와, 장애물 정보를 이용하여 작업영역에 대한 1차 스위핑 경로 생성을 위한 중간 목표점을 생성하는 단계와, 중간 목표점들을 이용하여 1차 스위핑 경로를 생성하는 단계와, 장애물 지도와 이동로봇 정보를 이용하여 1차 스위핑 경로 상에 장애물과의 충돌이 발생하는 경로가 있는 경우 장애물과의 충돌회피를 위한 충돌회피경로를 생성하는 단계와, 생성된 충돌회피경로를 1차 스위핑 경로에 반영하여 이동로봇에 대한 최종 스위핑 작업경로를 생성하는 단계를 포함한다. 이러한 이동 로봇의 스위핑 작업 경로 생성방법에 의하면, 오토캐드로 작성된 도면을 그대로 이용하여 작업영역을 설정할 수 있고, 장애물과의 충돌을 회피하면서 작업을 수행할 수 있는 스위핑 작업경로를 용이하게 산출할 수 있다.
이동로봇, 스위핑 작업, 경로 생성

Description

이동 로봇의 스위핑 작업 경로 생성 방법{method of generating sweeping work path for mobile robot}
본 발명은 이동 로봇의 스위핑 작업 경로 생성 방법에 관한 것으로서, 상세하게는 캐드로 작성된 도면을 이용하여 이동 로봇이 작업할 스위핑 경로를 생성할 수 있도록 하는 이동 로봇의 스위핑 작업경로 생성 방법에 관한 것이다.
최근 로봇의 적용은 공장내에서의 활용에서 벗어나 일반적인 작업으로의 활용으로 확장되고 있다. 특히 원자력 설비 등의 정상적 점검, 건축작업을 위한 미장 가공, 청소 작업, 페인팅 등의 작업의 로봇화가 강력하게 요구되지고 연구되어 지고 있다. 이러한 작업을 위한 경로계획은 작업 영역인 2차원 면 영역의 빈공간을 훌트면서 돌아다니는 동작 계획을 요구하며 이를 스위핑 작업(sweeping task) 경로계획 이라 부른다. 스위핑 작업에 대한 동작 계획 방법은 크게 온 라인(On-Line) 방법과 오프라인(Off-Line) 방법으로 대별 된다. 온 라인 방법은 로봇이 작업 영역주변을 이동하면서 작업 환경을 센서로 인식하여 그것을 직접 동작에 반영하는 방법이다. 그러나 이러한 온 라인 작업 방법은 작업시 전체 지도를 이용하지 않기 때문에 로봇이 주어진 시간내에 스위핑 작업의 완료가 보장되지 못하며, 작업 능력이 환경의 형상에 따라 좌우된다. 또한 장애물 환경에 따라서는 같은 영역을 맴돌게 되는 데드록(dead-lock) 현상에 빠지게 되는 문제 점도 있다. 이러한 문제로 인해 실제 미장 작업을 하는 기존의 대부분의 로봇은 일정한 동작 패턴을 반복하는 기능만을 갖추고 있으며 기능인 작업자에 의해서 조종되는 반자동 형태이다. 오프 라인 방법은 작업할 환경에 대한 정보를 알고 있다는 가정하에서 스위핑 작업 경로를 생성하는 방법이다. 스위핑 작업 경로의 자동 생성에 관한 연구로 디크라바시( D.Kurabashi) 등이 제안한 방법이 있는데, 이는 청소 로봇 및 미장 로봇을 위한 스위핑 작업 경로 생성시에 장애물과의 충돌회피 경로 계획을 위해 보로노이 다이어그램을 적용한 방법이다. 이 방법은 보로노이 다이어그램이 무충돌 경로를 모양공간(configuration space)상에서 생성하는게 아니라 직교 좌표계에서 장애물과 작업 영역(workspace) 사이의 중앙선 또는 점의 연결로 생성하므로 생성된 경로가 장애물에 너무 인접해서 생성되어 실제 로봇의 주행 시 경로제어를 정교하게 해야 하는 문제가 발생할 수 있고, 경우에 따라서는 장애물사이에 생성된 무 충돌 경로를 실제 로봇이 갈수 없는 경우도 발생하게 된다.
본 발명은 상기와 같은 문제점을 개선하기 위하여 창안된 것으로서, 작업환경 지도 도면 정보로부터 장애물을 회피하면서 스위핑 경로를 용이하게 생성할 수 있는 이동 로봇의 스위핑 작업 경로 생성 방법을 제공하는데 그 목적이 있다.
본 발명의 또 다른 목적은 오토캐드로 작성된 도면을 이용하여 스위핑 작업경로를 용이하게 생성할 수 있는 이동 로봇의 스위핑 작업 경로 생성 방법을 제공하는 것이다.
상기의 목적을 달성하기 위하여 본 발명에 따른 이동 로봇의 스위핑 작업 경로 생성방법은 가. 오토캐드로 작성되어 로딩된 도면에 대해 이동로봇이 작업할 작업영역을 선택하는 단계와; 나. 선택된 상기 작업영역에 대한 모양공간 내에서 인식된 장애물에 대한 장애물 지도를 생성하는 단계와; 다. 상기 장애물 정보를 이용하여 상기 작업영역에 대한 1차 스위핑 경로 생성을 위한 중간 목표점을 생성하는 단계와; 라. 상기 중간 목표점들을 이용하여 상기 1차 스위핑 경로를 생성하는 단계와; 마. 상기 장애물 지도와 상기 이동로봇 정보를 이용하여 상기 1차 스위핑 경로 상에 장애물과의 충돌이 발생하는 경로가 있는 경우 장애물과의 충돌회피를 위한 충돌회피경로를 생성하는 단계와; 바. 상기 라 단계에서 생성된 충돌회피경로를 상기 1차 스위핑 경로에 반영하여 상기 이동로봇에 대한 최종 스위핑 작업경로를 생성하는 단계;를 포함한다.
상기 중간 목표점들은 상기 이동로봇을 설정된 폭으로 상기 작업공간내에서 지그재그 형태로 스캔하면서 이동시켰을 때 벽 또는 장애물과의 접촉하는 위치 정보이고, 상기 장애물 정보는 상기 이동로봇의 스캔방향에 대응되어 접촉되는 방향 즉, 왼쪽인지 오른쪽인지와, 장애물 속성정보 즉, 벽인지 중간 장애물인지를 포함한다.
본 발명에 따른 이동 로봇의 스위핑 작업 경로 생성방법에 의하면, 오토캐드로 작성된 도면을 그대로 이용하여 작업영역을 설정할 수 있고, 장애물과의 충돌을 회피하면서 작업을 수행할 수 있는 스위핑 작업경로를 용이하게 산출할 수 있다.
이하, 첨부된 도면을 참조하면서 본 발명의 바람직한 실시 예에 따른 이동 로봇의 스위핑 작업 경로 생성 방법을 더욱 상세하게 설명한다.
도 1은 본 발명에 따른 이동 로봇의 스위핑 작업 경로 생성기를 나타내 보인 블록도이다.
도 1을 참조하면, 이동 로봇의 스위핑 작업경로 생성기(10)는 CAD인터페이스 모듈(20), 장애물 지도형성 모듈(30), 중간 목표점 생성 모듈(40), 스위핑 작업경로 생성모듈(50), 충돌회피 경로 생성모듈(60), 입력부(61), 표시부(65), 메인 제어모듈(70), 이동로봇 드라이브 모듈(80), 기억부(90)를 구비한다.
CAD인터페이스 모듈(20)은 오토캐드(AUTO CAD)와의 링크 및 오토캐드로 작성되어 로딩된 캐드 파일의 도면으로부터 작업영역 설정 및 로봇타입을 선택할 수 있 는 메뉴를 제공하고, 제공된 메뉴에 대해 선택된 작업영역에 대응되는 데이터를 스위핑 작업경로 생성기(10)에서 이용할 수 있게 추출한다.
장애물 지도형성 모듈(30)은 선택된 작업영역 데이터로부터 인식된 장애물로부터 장애물 지도를 생성한다.
중간 목표점 생성모듈(40)은 스위핑 경로 생성을 위해 요구되는 중간 목표점(SP)를 생성한다.
스위핑 작업 경로 생성모듈(50)은 중간 목표점 생성모듈(40)에 의해 생성된 중간 목표점 정보를 이용하여 1차 스위핑 작업경로를 생성하고, 이후 후술되는 충돌회피 경로 생성모듈에 의해 생성된 충돌회피 경로 정보를 이용하여 최종 스위핑 작업경로를 생성한다.
충돌회피 경로 생성모듈(60)은 적용되는 이동로봇(100)과 장애물 정보를 이용하여 작업영역 내에서의 충돌회피경로를 생성한다.
입력부(61)는 작업영역 선택, 로봇모델등을 선택할 수 있게 지원한다.
표시부(65)는 메인 제어모듈(70)에 제어되어 표시정보를 표시한다.
메인 제어모듈(70)은 스위핑 작업경로를 생성할 수 있도록 각 모듈(20 내지 60)을 제어한다.
기억부(90)는 스위핑 작업경로 생성과정에서 생성되는 데이터가 저장된다.
이동로봇 드라이브 모듈(80)은 최종 생성된 스위핑 작업 경로에 대응되게 이동로봇(100)을 구동할 수 있는 구동 명령어를 생성한다.
이하에서는 도 2을 참조하여 스위핑 작업경로 생성과정을 설명한다.
먼저, 오토캐드로 작성되어 로딩된 도면으로부터 이동로봇이 작업할 작업영역을 CAD인터페이스 모듈(20)의 지원하에 입력부(61)를 이용하여 선택한다(단계 210).
다음은 선택된 작업영역의 도면상에서 장애물을 인식하고, 인식된 장애물에 대해 모양공간 내에서 장애물 지도를 생성한다(단계 220).
이후, 장애물 지도로부터 작업영역에 대한 1차 스위핑 경로 생성을 위한 중간 목표점을 생성하고(단계 230), 중간 목표점들을 이용하여 1차 스위핑 경로를 생성한다(단계 240).
1차 스위핑 경로 생성과정에서 장애물과의 충돌이 발생되면, 장애물 지도와 이동로봇 정보를 이용하여 장애물과의 충돌회피를 위한 충돌회피경로를 생성하고, 생성된 충돌회피경로를 1차 스위핑 경로에 반영하여 이동로봇에 대한 최종 스위핑 작업경로를 생성한다(단계 250).
마지막으로 생성된 최종 스위핑 경로로부터 이동로봇(100) 구동 명령어를 생성한다(단계 260).
여기서, 중간 목표점들은 이동로봇(100)을 설정된 폭으로 작업공간내에서 지그재그 형태로 스캔하면서 이동시켰을 때 벽 또는 장애물과의 접촉하는 위치 정보이고, 장애물 정보는 이동로봇의 스캔방향에 대응되는 방향 및 장애물 속성정보를 포함한다.
이하에서는 이러한 스위핑 작업 경로 생성과정을 더욱 상세하게 설명한다.
먼저, 스위핑 작업은 2차원 평면상에서 이루어지므로 이동 로봇(100)과 대상 작업물은 2차원 평면상에서 모델링 된다. 이동 로봇(100)은 임의의 다각형으로 모델링 되고, 전방위로 이동 가능하고(omni-directional motion ) 자체회전이 가능한 것이 적용된다. 여기서 이동로봇(100)의 형태는 사용자가 선택하거나 모델링 할 수 있게 지원한다.
또한, 작업 공간내의 대상물은 다각형 형태로 모델링 된다.
작업 환경내의 장애물은 다각형 형태와 곡선 형태로 나누어 진다. 다각형 형태는 각 꼭지점에 대한 정보를 갖고 있으며, 곡선 형태의 장애물은 일정한 길이의 분해능을 갖는 직선 선분으로 분할되어 그 점들의 집합으로 곡선을 표시한다. 그리고 화면상에 표시할때는 이러한 점들을 커브 피팅(curve fitting)하여 곡선 장애물을 표시한다. 장애물에 대한 데이터 구조는 다음과 같다.
Struct object {
double *x_position;
double * y_position;
double radius_x, radius_y;
int edge_No;
char status;
} *object_posture;
여기서, status는 장애물이 다각형, 원, 타원 또는 곡선 형태를 나타내는 상태 플랙이며, edge_No는 object가 다각형 형태인 경우 꼭지점의 갯수를 나타낸다. 원이나 타원형인 경우 radius_x, radius_y의 변수가 사용되며, 임의의 곡선인 경우 충분한 분해능(resolution)을 갖는 일정한 선분(segment)으로 등분하여 그 형태 및 위치 데이터를 나타낸다.
작업의 대상이 되는 영역은 2차원 유크리디언 공간으로
Figure 112009025566030-PAT00001
로 표시한다.
Figure 112009025566030-PAT00002
Figure 112009025566030-PAT00003
Figure 112009025566030-PAT00004
내에서의 j번째 배치된 정지물체, 즉 고정된 장애물이라 하면 모양공간(configuration space) 에서의 장애물 영역은 아래의 수학식 1로 표현된다.
Figure 112009025566030-PAT00005
여기서 C는 ----- 이고,
Figure 112009025566030-PAT00006
는 이동 로봇의 위치 x, y 및 자세
Figure 112009025566030-PAT00007
를 나타내는 집합이며
Figure 112009025566030-PAT00008
x, y, 그리고 q로 결정되는 이동 로봇(100)의 위치 및 자세이다.
Figure 112009025566030-PAT00009
내에 고정 장애물의 갯수를 p라 할때 장애물 영역의 총 공간은
Figure 112009025566030-PAT00010
이므로 모양공간내의 장애물이 없는 자유공간
Figure 112009025566030-PAT00011
는 아래의 수학식2와 같이 표현된다.
Figure 112009025566030-PAT00012
Figure 112009025566030-PAT00013
Figure 112009025566030-PAT00014
=
여기서 기호 "\"는 집합의 감산을 의미한다.
Figure 112009025566030-PAT00015
에 포함되는 모든 q에 대하 여
Figure 112009025566030-PAT00016
로 구성되는 영역을
Figure 112009025566030-PAT00017
이라 하고, 이를 스위핑 작업 가능 영역이라 하면,
Figure 112009025566030-PAT00018
은 영역
Figure 112009025566030-PAT00019
내에서 이동 로봇이 물리적으로 진입 가능한 영역으로 표시되며, 스위핑 작업은
Figure 112009025566030-PAT00020
공간 내에서 수행된다. 그 조건하에서, 경로
Figure 112009025566030-PAT00021
가 아래의 수학식3을 만족할 때 스위핑 작업이 만족된다. 여기서d(τ, A(q))는 경로
Figure 112009025566030-PAT00022
와 로봇 사이의 거리를 나타낸다.
Figure 112009025566030-PAT00024
여기서 r은 로봇이 스위핑 작업시 스캐닝 폭이다.
다음은 이동 로봇(100) 한 대가
Figure 112009025566030-PAT00025
을 스위핑 작업을 하는 연속 경로를 생성한다.
먼저 AUTO CAD 인터페이스 모듈(20)은 CAD 언어인 Auto LISP 과 DCL(Dialog Control Library)방식을 활용하여 대화형 메뉴를 제공하며, 로봇의 형태, 선택된 작업영역 데이터를 추출한다.
AUTO CAD 인터페이스 모듈(20)에서는 CAD 의 엔티티(Entity)를 이용하여 검색된 도면정보를 통하여 스위핑 작업 로봇이 활용할 실 데이터를 취득하고 선택된 영역에서 장애물( 선, 원, 다각형, 원호 등)에 대한 정보 데이터를 검색한다.
장애물 지도형성(Obstacle Map Building) 모듈(30)은 CAD 인터페이스 모듈(20)에서 획득한 장애물 및 작업환경 데이터를 이용하여 적용되는 2차원 형태의 로봇에 대하여 x, y, 그리고
Figure 112009025566030-PAT00026
인 3차원의 자유 모양공간(Configuration space)
Figure 112009025566030-PAT00027
를 형성한다.
중간목표점 생성 모듈(Subgoal Generation module)(40)은
Figure 112009025566030-PAT00028
에서 장애물과 이동 로봇(100)의 충돌형태에 따라 중간 목표점을 생성한다.
충돌회피 경로 생성모듈(60)은 스위핑 작업경로 생성모듈(50)에 의해 1차 스위핑 작업 경로를 생성하는 과정에서 생성된 충돌 경로에 대하여 장애물 충돌 회피경로 생성을 수행한다. 즉, 앞서 설명된 1차 스위핑 작업경로로부터
Figure 112009025566030-PAT00029
에서 장애물을 회피하면서 목표점까지 갈 수 있는 최단 거리의 충돌회피 경로를 생성한다.
중간 목표점 생성 모듈(40)은 2차원 평면상의 작업 공간에 대하여 스캐닝(scanning) 폭 r로 작업영역을 스캔하며, 스캔하는 동안 로봇과 장애물간의 접촉점 그리고 로봇과 작업 영역간의 접촉점을 저장한다. 스캔 폭 r이 작을수록 sweeping 폭이 작아지며 중첩되는 영역이 많아지지만 더욱 촘촘하게 청소나 미장 작업을 하게 된다.
로봇이 선택된 작업 영역을 스캔하는 동안 로봇과 로봇과 장애물, 그리고 로봇과 작업영역의 벽과의 접촉 위치와 충돌 상태를 저장한다. 이러한 위치는 스위핑 작업 경로를 위한 중간 목표점으로 활용된다. 저장을 위한 중간 목표점의 데이터 구조는 다음과 같다
Struct Subgoal{
int position[DIMENSION];
char status;
char tracked_flag;
int obstacleNo;
} *SubgoalPositions;
여기서 position[DIMENSION]은 이동로봇(100)과 장애물 또는 작업영역 벽과의 접촉위치이며, status는 접촉 형태로써 접촉형태에 따라 벽과 로봇의 좌측이 접촉했을 경우 LEFT_WALL, 로봇의 우측과 벽이 접촉했을 경우 RIGHT_WALL, 로봇의 좌측과 장애물이 접촉했을 경우 LEFT_OBSTACLE, 그리고 우측과 접촉했을 경우 RIGHT_OBSTACLE로 각각 표현한다. 그리고 tracked_flag은 스위핑 작업 경로의 생성을 위하여 중간목표점을 선택하여 리스트 S에 삽입했을 경우 TRACKED로, 선택이 않된 경우 UNTRACKED로 표시한다. 그리고 obstacleNo는 중간목표점을 생성할 때 로봇이 접촉한 장애물의 번호를 표현한다. 중간 목표점 생성을 위해서 로봇은 작업 역영을 좌측 상단에서 우측 하단까지 스캔하며, 로봇의 자세는
Figure 112009025566030-PAT00030
를 유지한다.
중간 목표점 생성을 위한 처리과정은 다음과 같다.
SP를 중간목표점(subgoal point)이라 하고, i번째 중간 목표점 데이터 리스트 엔트리를
Figure 112009025566030-PAT00031
라 하자. 그리고 리스트 S를 SP의 집합인 S={S1, S2, ..., Si_max}라 하자. 여기서 i_max는 Si에 저장된 SP의 최대수이다. 로봇의 초기위치를 (x,y,
Figure 112009025566030-PAT00032
)=(0,0,0)라하며
Figure 112009025566030-PAT00033
x,
Figure 112009025566030-PAT00034
y를 각각 X축과 Y축 스캔 폭이라 하면 이하의 스텝 1A 내지 4A의 과정을 거치며 도 3을 함께 참조하여 설명한다.
스텝 1A(Step 1A): x, y 그리고 i를 각각 0으로 한다. 그리고 로봇을 이동시켜 작업영역 내의 좌측상단에 접촉되게 하며, 그 위치를 초기위치로 정하고 그 x, y 위치를
Figure 112009025566030-PAT00035
에 기록하며, 상태를 LEFT_WALL(LW)로 표기하며, tracked_flag을 UNTRACKED라 표기한다. 이후 i를 1증가시킨다.
스텝2A(Step 2A): 로봇을 y축의 위치를 고정시킨 상태에서 x 축을 따라 이동 시킨다. 만일 로봇이 작업영역 내의 장애물과 만나면 그 위치를
Figure 112009025566030-PAT00036
에 기록하고 접촉상태는 RIGHT_OBSTACLE(RO) 이라 기록하며 i를 증가시킨다. 그리고 로봇을 계속 x축선상에서 이동 시켜 장애물벽과 접촉하면 접촉상태를 RIGHT_WALL(RW) 이라 기록한다. tracked_flag은 UNTRACKED 로 기록한다.
스텝 3A(Step 3A): 만일 로봇이 작업영역의 Y축 하단인 맨 밑바닥과 만나면 후술되는 스텝(Step 5A) 로 이동한다. 그렇지 않으면 로봇을 Y축을 따라
Figure 112009025566030-PAT00037
y만큼 이동한다. 그리고 Y축을 고정시킨 상태에서 로봇을 X축을 따라 왼쪽으로 이동 시킨다. 만일 로봇이 작업 영역내의 장애물과 접촉하면 그 위치를
Figure 112009025566030-PAT00038
에 기록하고 접촉 상태를 LEFT_OBSTACLE이라 기록하며, 그때의 장애물 넘버를 기록한다. 그리고 로봇을 계속 오른쪽 작업영역 벽까지 이동시켜 로봇이 벽과 접촉할 때는 접촉위치를 기록하고 접촉 상태를 LEFT_WALL(LW)로 기록한다. 이 때 Tracked_flag은 UNTRACKED라 기록한다.
스텝 4A(Step 4A): 로봇을 Y축을 따라
Figure 112009025566030-PAT00039
y만큼 이동하고 Step 1A로 이동한다.
스텝 5A(Step 5A) : i를 스위핑 작업 경로를 위한 중간 목표점의 최대수인 i-max로 기록한다.
도 4는 5개의 장애물이 포함된 작업영역의 예이며, 도 5는 제안된 중간 목표점 생성과정을 적용시켜 SP를 찾은 결과를 보여주고 있다.
다음과정으로서, 중간 목표점 생성과정이 완료되면 생성된 중간 목표점을 스캔하여 1차 스위핑 작업 경로를 생성한다. 여기서는 중간 목표점 생성 과정에서 생성된 중간목표점에 대해 첫째, 모든 중간목표점은 2번이상 연결되지않게 하며, 둘째, 중간 목표점을 연결하여 형성된 1차 스위핑 작업 경로는 가능하면 짧게 한다는 조건하에 전체 경로를 생성한다. 이 과정은 현재의 중간 목표점의 접촉 상태에 따라 연결될 다음 중간 목표점을 찾는다. 스위핑 작업 경로를 찾는 과정은 중간 목표점의 상태가 LEFT_WALL이나 LEFT_OBSTACLE인 경우 후술되는 CASE I의 과정을 수행하고, RIGHT_ WALL 이나 RIGHT_ OBSTACLE인 경우에는 후술되는 CASE II의 과정을 수행하는 방식에 의해 스위핑 작업 경로
Figure 112009025566030-PAT00040
를 생성하는 방법이 결정된다.
중간 목표점을 생성하기 위하여 로봇을 작업영역의 왼쪽 상단에서 오른쪽 하단까지 스캔하기 때문에 리스트
Figure 112009025566030-PAT00041
의 초기 엔트리에 저장된 로봇의 위치 데이터는 작업영역의 좌측 상단을 기르키며, 그 때의 접촉 상태는 LEFT_WALL이된다. 스위핑 작업경로를 생성하기위한 과정은 다음과 같다.
먼저, y_max를 작업공간
Figure 112009025566030-PAT00042
의 Y축 최대 영역, x_max 를 X축최대 영역이라하고,
Figure 112009025566030-PAT00043
를 스위핑 작업 경로를 위한 리스트라한다.
CASE 1: 현재의 중간 목표점의 접촉 상태가 LEFT_WALL 이거나 LEFT_OBSTACLE 인 경우 아래의 스텝을 수행한다.
Step 1B:
Figure 112009025566030-PAT00044
공간상에서 리스트 S에서 같은 y값이 같은 SP중에서 접촉상태가 RIGHT_WALL 이거나 RIGHT_OBSTACLE 인 중간 목표점을 찾는다.
이 경우는 그림 3에서 (A)로 표기된 경우이다. 즉 현재 로봇의 접촉 상태가 LEFT_WALL 이므로 리스트 S에서 SP를 탐색하되 같은 Y축 선상에서 접촉 상태가 RIGHT_WALL인 SP를 탐색하여 스위핑 경로 선분(segment)을 형성한다. 도 3에서 (B)의 경우처럼 또한 만일 현재 SP의 접촉 상태가 LEFT_WALL이면 리스트 S에서 같은 y위치 값을 갖는 SP중에서 접촉 상태가 RIGHT_WALL이거나 RIGHT_OBSRACLE인 SP를 찾는다.
Step 2B: Step 1B에서 찾은 SP 중에서 최단거리의 SP를 찾아서 리스트
Figure 112009025566030-PAT00045
에 삽입한다. 만일 찾은 SP가 TRACKED 라고 표기됐고 현재 SP에서 연결될 다음 SP까지 로봇을 이동했을 경우 장애물과 충돌이 일어나면 후술되는 Step 6B로 가고 그렇지 않으면 Step 3B으로 간다.
참고로, 도 3에서 (B)의 경우가 현재 SP의 접촉상태가 LEFT_WALL이고 다음 접촉상태의 SP가 RIGHT_OBSTACLE이거나 RIGHT_WALL인 2개의 SP를 갖은 경우이다. 이 경우 후보 SP중에서 거리가 짧고 생성된 경로 선분이 장애물과 충돌이 일어나지 않는 SP를 연결될 SP로 선정하여 리스트
Figure 112009025566030-PAT00046
에 삽입한다.
Step 3B: y← y +
Figure 112009025566030-PAT00047
y, 만일 y < 0 이면, Step 5B로 간다.
Step 4B: 같은 Y축 선상에서 접촉 상태가 RIGHT_WALL이거나 RIGHT_OBSTACLE인 SP를 찾아 경로 선분(pasth segment)이 무 충돌인 경우 그 SP를 리스트
Figure 112009025566030-PAT00048
에 삽입한다. 즉, 도 3에서 (C)의 경우로서, 여기서 SP의 현재 접촉 상태는 RIGHT_WALL이며 y값을 스캐닝 폭
Figure 112009025566030-PAT00049
y만큼 증가시킨 후 같은 접촉상태를 찾는다.
Step 5B: S 데이터 리스트 중에서 UNTRACKED 표시된 SP를 찾되 현재 SP 와 가장 거리가 가까운 SP를 다음 연결될 SP로 결정한다. 만일 현재 SP부터 다음 연결될 SP까지의 경로가 장애물과 충돌을 한다면 후술되는 충돌회피 경로 생성모듈(60)을 부른다. 즉, 도 3의 (D)의 경로로서, 이 경우 충돌회피 경로 생성 모듈(60)을 부른다. 도 6은 도 4의 장애물 조건에 대해 충돌회피 경로 생성과정을 적용시키지 않고 1차 스위핑 작업 경로를 찾은 경우를 보여주고 있다. 도 6에서는 5개의 충돌 경로 선분이 보여지고 있다.
Step 6B: 만일 연결된 SP의 숫자가 i_max와 같다면 프로그램을 끝낸다. 그렇지 않으면 그 SP를 path 리스트
Figure 112009025566030-PAT00050
에 삽입하고 해당 tracked_flag을 TRACKED로 표시한다. 링크된 SP의 상태에 따라 CASE I 이나 CASE II의 Step 1B로 간다.
CASE II: 현재 연결된 SP의 접촉상태가 RIGHT_WALL 이거나 RIGHT_OBSTACLE일 경우;
CASE II의 경우는 CASE I의 Step 1B에서 Step 4B까지 에서 RIGHT_WALL과 RIGHT_OBSTACLE을 각각 LEFT_WALL과 LEFT_OBSTACLE로 대체시키며 나머지 과정은 CASE I과 같다.
다음은 충돌회피 경로 생성과정을 도 7 및 도 8을 참조하여 설명한다.
충돌회피 경로 생성과정은 2단 경로 계획 방법을 사용한다. 이 방법은 계층적 국부 탐색 알고리즘으로써 로봇의 위치인 x, y 와 로봇의 자세인
Figure 112009025566030-PAT00051
로 표시되는 3차원의 모양공간을 일정한 크기의 격자로 분할한 격자화된 모양공간(grid-based configuration space)에서 경로를 계획한다. 격자화된 셀(quantized cell)은 장애물에 포함된 경우 장애물 셀, 포함되지 않은 경우 자유 셀이라 한다. 경로 계획 방법은 먼저, 기본 크기의 격자를 몇 개 합친 셀( 격자화된 3차원 모양공간에서 최소 셀의 3
Figure 112009025566030-PAT00052
3
Figure 112009025566030-PAT00053
3 또는 2
Figure 112009025566030-PAT00054
2
Figure 112009025566030-PAT00055
2 크기의 셀)을 하나의 큰 셀로 보아 이 큰 셀들을 연결하여 로봇의 시작 자세가 포함된 큰셀과 목표자세가 포함된 큰셀 들 사이의 연결통로를 만들되 큰 셀의 선택은 선택하고자 하는 큰 셀과 목표 셀과의 거리, 시작 자세의 셀과의 거리 그리고 큰 셀내의 장애물 셀의 갯수 등으로 표현되는 평가함수를 최소로 하는 큰 셀들을 선택하여 연결한다. 연결된 큰 셀들에 의해 생성된 통로를 탐색하고(단계 310), 뒤엉킴 셀이 있으면 이를 제거한다(단계 320). 여기서 뒤엉킴 셀이란 큰셀로 통로를 구성함에 있어서 큰셀 연결 가지가 도 7과 같이 여러 갈래로 나뉘어 져있는 상태를 말하고, 도 7에서 2번, 3번, 4번의 셀이 뒤엉킴 셀에 해당한다. 즉 셀을 연결하는 리스트에서 헤드(head)와 테일(tail)에 하나씩 만의 셀이 연결된 것이 아니라 두개 이상 연결된 상태를 말한다. 이러한 데이터 구조는 뒤엉킴이 시작된 셀을 중간 목표점으로 하여 역추적(backtracking)하면 뒤엉킴이 없는 셀들의 집합으로 재구성된다.
단계 330에서는 뒤엉킴셀이 있는지를 판단하고, 없다고 판단되면 통로내에서 기본셀로 경로를 탐색한다(단계 340). 단계 350에서 경로탐색이 성공하지 않은 것으로 판단되면 경로 생성에 실패한 큰셀을 가상 장애물셀로 저장하고(단계 360), 단계 310으로 복귀한다. 이와는 다르게 단계 350에서 경로탐색이 성공한 것으로 판단되면 충돌회피 경로를 생성한다(단계 370).
즉, 큰 셀의 연결중에 뒤엉킴이 현상이 있으면 재추적 방법으로 뒤엉킴이 없는 연결 상태를 만든 다음, 큰 셀의 연결로 이루어진 연결 통로 내에서 기본 단위의 셀들의 연결로 이루어지는 최종 경로를 만든다. 또한, 단계 350에서 최종 경로가 만들어지지 않는 경우 큰 셀들을 가상 장애물 셀로 기억하여 단계 320에서부터 큰 셀의 연결에서 제외 시킨다.
이러한 충돌회피 경로 생성과정에 의해 생성된 충돌회피 경로가 도 9에 도시되어 있다.
한편, 도 4에 대한 SP의 생성 결과가 도시된 도 6에서는 5군데에서 경로상 충돌이 보이고 있다. 이에 대해서는 CASE I과 CASE II의 Step 5B에서 충돌회피 경로 생성과정을 수행하며 그 결과는 도 9에 도시된 바와 같고 충돌회피를 고려한 최종 스위핑 작업 경로의 결과는 도 10과 같다.
도 10에서 백색으로 표현된 이동 경로는 미장(또는 청소)작업 경로 이며, 청색으로 표현된 경로는 로봇이 미장작업(또는 청소작업)을 수행한 영역의 중복영역을 이동하는 경로를 표현한다.
- 모의 실험
작업영역
Figure 112009025566030-PAT00056
의 크기는 최대 21m
Figure 112009025566030-PAT00057
21m이며, 로봇은 한 변이 41.42cm인 정 팔각형 형태로 모델링하였다. 충돌회피 경로 탐색을 위한 모양공간은 작업영역을 10cm 단위로 나누어 격자화 시켰으며 모양공간내의 기본 셀의 갯수는 210
Figure 112009025566030-PAT00058
210 = 44,100개로 이루어져 있다. 스갠 폭은 75cm로 하였다.
- 실험 1
작업 공간내에서 240cm
Figure 112009025566030-PAT00059
240cm의 정사각형 형태의 장애물을 도 11 내지 도 15에 도시된 바와 같이 1개, 2개, 4개, 6개 그리고 9개를 임의로 설치하여 SP생성 시간, 생성 개수, 그리고 모양공간의 생성 시간과 충돌회피 경로생성 계산시간을 분석하였다. 경로의 최종결과는 그림 도 11 내지 도 15에 도시된 바와 같고, 계산 시간 및 분석표는 아래의 표 1과 도 16 및 도 17에 나타내었다.
항목
/
장애물갯수
SP
생성
개수
충돌
경로
개수
SP
생성
시간
모양공간
생성시간
충돌회피경로생성
시간
최종경로
생성시간
1 70 1 3.516 6.593 1.593 11.703
2 86 5 5.384 8.131 2.362 15.879
4 106 5 8.571 11.099 4.560 24.231
6 122 6 11.538 13.736 11.923 37.198
9 160 10 14.725 16.978 13.846 45.549
표 1과 도 16, 도 17에서 보는 바와 같이 충돌 경로의 수는 장애물의 수에 비례하지는 않는다. 그 이유는 충돌 경로는 장애물의 위치에 따라 결정되기 때문이다. 하지만 작업공간 내에 장애물의 갯수가 많을 경우 충돌 경로가 많이 발생함을 보이고 있다.
- 실험 2
본 발명에서 제안한 방법을 적용하여 스위핑 경로의 생성과 최종 경로 길이를 산출하였다. 작업 영역의 크기는 4m
Figure 112009025566030-PAT00060
4m이고 작업 로봇의 크기는 반경 30cm이다.
도 18 내지 20은 본 발명에서 제안한 방법을 적용하여 스위핑 경로를 생성 시킨 것이다. 또한, 아래의 표 2는 생성된 경로 길이를 나타낸다.
도 18의 경우 도 19의 경우 도 20의 경우
본 방법 3484.09 cm 2900 cm 2627.17 cm
본 발명에서 제안한 방법을 통해 생성되는 스위핑 작업경로는 도 18 내지 도 20을 통해 알 수 있듯이 지그재그(zigzag) 모양으로 움직이는 디렉션 페러렐(direction parallel) 형태이다.
- 실험 3
제안된 스위핑 작업 경로 생성방법을 실제 건설도면에 적용하였다. 건설도면은 AUTO CAD R 14 로 제작된 것을 적용하였고, CAD SW와의 인터페이스 메뉴는 AUTO LISP으로 제작되었다. AUTO LISP로 제작된 인터페이스에서는 로봇의 형태, 작업 영역의 크기등을 결정할 수 있게 구축되었다. 구축된 작업경로 생성기를 이용하여 테스트한 결과가 도 21 내지 도 23에 도시되어 있고, 실제 도면에 적용 시켰을 경우에도 제안된 방법에 의해 스위핑 작업 경로가 정밀하게 생성됨을 알 수 있다.
도 1은 본 발명에 따른 이동 로봇의 스위핑 작업 경로 생성기를 나타내 보인 블록도이고,
도 2는 본 발명에 따른 이동 로봇의 스위핑 작업경로 생성 과정을 나타내 보인 플로우도이고,
도 3은 스위핑 경로 생성을 위한 중간 목표점 생성과정을 설명하기 위한 도면이고,
도 4는 5개의 장매물을 갖는 작업공간의 일 예를 나타내 보인 도면이고,
도 5는 도 4의 작업공간에 대해 본 발명에 따라 생성된 중간 목표점을 나타내 보인 도면이고,
도 6은 도 5에 도시된 작업공간에 대해 충돌회피를 적용하지 않은 상태에서 생성된 스위핑 경로를 나타내 보인 도면이고,
도 7은 뒤엉킴 셀의 연결과정을 도식적으로 나타내 보인 도면이고,
도 8은 충돌회피 경로를 생성하는 과정을 나타내 보인 플로우도이고,
도 9는 도 6에 대해 충돌회피 경로 생성과정을 통해 생성된 충돌회피 경로를 나타내 보인 도면이고,
도 10은 도 9의 충돌회피 경로를 적용하여 최종생성된 스위핑 경로를 나타내 보인 도면이고,
도 11 내지 도 16은 장애물이 각각 1, 2, 4, 6, 9개 있는 경우에 대해 본 발명의 방법을 적용하여 생성된 최종 스위핑 작업 경로를 나타내 보인 도면이고,
도 17은 도 11 내지 도 16의 장애물 조건에 대해 중간목표점 생성 개수 및 충돌경로 개수를 나타내 보인 그래프이고,
도 18은 도 11 내지 도 16의 장매물 조건에 대해 항목별 계산시간을 나타내 보인 그래프이고,
도 19 내지 도 21은 또 다른 장애물 조건에 대해 본 발명의 방법을 적용한 결과의 스위핑 작업 경로를 나타내 보인 도면이고,
도 22는 건설 CAD도면의 일 예를 나타내 보인 도면이고,
도 23은 도 22의 건설 CAD와 인터페이싱 되는 인터페이스 모듈에 의해 제공되는 메뉴 화면의 일 예를 나타내 보인 도면이고,
도 24는 도 22의 CAD도면에 대해 선택된 작업영역에 대해 생성된 스위핑 작업경로를 나타내 보인 도면이다.

Claims (2)

  1. 가. 오토캐드로 작성되어 로딩된 도면에 대해 이동로봇이 작업할 작업영역을 선택하는 단계와;
    나. 선택된 상기 작업영역에 대한 모양공간 내에서 인식된 장애물에 대한 장애물 지도를 생성하는 단계와;
    다. 상기 장애물 정보를 이용하여 상기 작업영역에 대한 1차 스위핑 경로 생성을 위한 중간 목표점을 생성하는 단계와;
    라. 상기 중간 목표점들을 이용하여 상기 1차 스위핑 경로를 생성하는 단계와;
    마. 상기 장애물 지도와 상기 이동로봇 정보를 이용하여 상기 1차 스위핑 경로 상에 장애물과의 충돌이 발생하는 경로가 있는 경우 장애물과의 충돌회피를 위한 충돌회피경로를 생성하는 단계와;
    바. 상기 라 단계에서 생성된 충돌회피경로를 상기 1차 스위핑 경로에 반영하여 상기 이동로봇에 대한 최종 스위핑 작업경로를 생성하는 단계;를 포함하는 것을 특징으로 하는 이동 로봇의 스위핑 작업 경로 생성방법.
  2. 제1항에 있어서, 상기 중간 목표점들은 상기 이동로봇을 설정된 폭으로 상기 작업공간내에서 지그재그 형태로 스캔하면서 이동시켰을 때 벽 또는 장애물과의 접촉하는 위치 정보이고, 상기 장애물 정보는 상기 이동로봇의 스캔방향에 대응되는 방향 및 장애물 속성정보를 포함하는 것을 특징으로 하는 이동 로봇의 스위핑 작업경로 생성방법.
KR1020090036659A 2009-04-27 2009-04-27 이동 로봇의 스위핑 작업 경로 생성 방법 KR20100117931A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090036659A KR20100117931A (ko) 2009-04-27 2009-04-27 이동 로봇의 스위핑 작업 경로 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090036659A KR20100117931A (ko) 2009-04-27 2009-04-27 이동 로봇의 스위핑 작업 경로 생성 방법

Publications (1)

Publication Number Publication Date
KR20100117931A true KR20100117931A (ko) 2010-11-04

Family

ID=43404370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090036659A KR20100117931A (ko) 2009-04-27 2009-04-27 이동 로봇의 스위핑 작업 경로 생성 방법

Country Status (1)

Country Link
KR (1) KR20100117931A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104460666A (zh) * 2014-10-27 2015-03-25 上海理工大学 一种基于距离矢量的机器人自主避障移动控制方法
KR20170069754A (ko) 2015-12-11 2017-06-21 한화테크윈 주식회사 객체 이동 경로를 이용한 장애물 충돌 여부 판단 방법 및 이를 위한 장치
JP2019025604A (ja) * 2017-07-31 2019-02-21 ファナック株式会社 多関節ロボットの制御装置
CN110000793A (zh) * 2019-04-29 2019-07-12 武汉库柏特科技有限公司 一种机器人运动控制方法、装置、存储介质和机器人
KR102289276B1 (ko) 2020-10-29 2021-08-12 현대엔지니어링(주) 미장로봇을 이용한 바닥 평탄화 방법
KR102378022B1 (ko) 2021-06-10 2022-03-24 현대엔지니어링(주) Ai알고리즘이 탑재된 미장로봇을 이용하여 미장 전후에 미장바닥의 하자를 점검 및 보수하는 방법
CN114882648A (zh) * 2022-04-19 2022-08-09 海安方好家具有限公司 一种基于互联网的智能家居联动***

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104460666A (zh) * 2014-10-27 2015-03-25 上海理工大学 一种基于距离矢量的机器人自主避障移动控制方法
KR20170069754A (ko) 2015-12-11 2017-06-21 한화테크윈 주식회사 객체 이동 경로를 이용한 장애물 충돌 여부 판단 방법 및 이를 위한 장치
JP2019025604A (ja) * 2017-07-31 2019-02-21 ファナック株式会社 多関節ロボットの制御装置
US10759056B2 (en) 2017-07-31 2020-09-01 Fanuc Corporation Control unit for articulated robot
CN110000793A (zh) * 2019-04-29 2019-07-12 武汉库柏特科技有限公司 一种机器人运动控制方法、装置、存储介质和机器人
KR102289276B1 (ko) 2020-10-29 2021-08-12 현대엔지니어링(주) 미장로봇을 이용한 바닥 평탄화 방법
KR102378022B1 (ko) 2021-06-10 2022-03-24 현대엔지니어링(주) Ai알고리즘이 탑재된 미장로봇을 이용하여 미장 전후에 미장바닥의 하자를 점검 및 보수하는 방법
CN114882648A (zh) * 2022-04-19 2022-08-09 海安方好家具有限公司 一种基于互联网的智能家居联动***
CN114882648B (zh) * 2022-04-19 2024-01-05 深圳市颐慧健康智能科技有限公司 一种基于互联网的智能家居联动***

Similar Documents

Publication Publication Date Title
US11648675B2 (en) Mother-child robot cooperative work system and work method thereof
CN102814813B (zh) 在多机器人***中自动防止死锁的方法和***
CN109984678B (zh) 一种清洁机器人及清洁机器人的清洁方法
JP2021175592A (ja) 物体を取り込む画像に基づき、環境内の将来のロボット運動に関するパラメータに基づいて、ロボットの環境内の物体の動きを予測することに関する機械学習の方法および装置
KR20100117931A (ko) 이동 로봇의 스위핑 작업 경로 생성 방법
JP2019025621A (ja) 干渉判定方法、干渉判定システム及びコンピュータプログラム
JP2020522037A (ja) 構築可能性分析に基づくプロジェクトの計画および適応
JP2019520633A (ja) リアルタイムの高さマップ作成
Torabi et al. An autonomous six-DOF eye-in-hand system for in situ 3D object modeling
CN108829115A (zh) 一种机器人的运动控制方法及其计算设备
JP5113666B2 (ja) ロボット教示システム及びロボットの動作のシミュレーション結果の表示方法
US11648683B2 (en) Autonomous welding robots
CN112091964B (zh) 生成用于工业涂布的机器人程序的方法和***
JP2023084115A (ja) 点集合の干渉チェック
US6862560B1 (en) Machining simulation method and apparatus
JP2009301401A (ja) 自律移動装置
JP5673489B2 (ja) 点群データの処理装置、処理方法、処理プログラム及び記録媒体
Cui et al. A multi-sensor next-best-view framework for geometric model-based robotics applications
KR20240108674A (ko) 소독로봇의 이동경로 생성 방법
KR20220152464A (ko) 이동 로봇의 소독 및 오염 측정 작업 경로 생성 방법
Larsson et al. An industrial robot and a laser scanner as a flexible solution towards an automatic system for reverse engineering of unknown objects
Aggarwal et al. Tactile sensors based object recognition and 6d pose estimation
WO2022259600A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
CN116048069B (zh) 一种基于gps定位的室外全覆盖路径规划方法及机器人
CN116901079A (zh) 一种基于扫描仪视觉引导的机器人路径规划***和方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application