필요 지식
경로 계획
- 경로의 정의
일반적으로 경로(path)는 점 입자의 초기 위치와 최종 위치가 주어졌을 때, 점 입자가 거치는 중간 위치의 집합을 의미한다. 물체의 운동에서는 물체의 대표점의 시간에 따른 입자의 위치 변화를 의미한다. 경로 계획(path planning)은 점 입자의 초기 위치에서부터 최종 위치까지 연속적인 위치를 계획하는 것을 의미한다. 로봇에서 경로는 고정형 로봇과 이동형 로봇에 따라서 다른 의미를 가진다. 고정형 로봇은 [그림 1]과 같이 공구단(A지점)을 목표점(B지점)까지 움직이도록 경로를 설정하는 데 반하여, 이동형 로봇은 로봇 전체가 목표점을 위하여 이동하도록 경로를 설정하는 차이점을 가지고 있다. 또 고정형 로봇은 움직임에 따라 그 외형이 변화하지만 이동 로봇은 경로와 상관없이 외형의 변화를 가지지 않는 고정된 몸체를 가지고 있다. 고정형 로봇은 자유도가 높으나 이동형 로봇은 3자유도로 제한되어 있으며, 고정형 로봇은 주변의 상황이나 물체의 위치를 정확하게 알고 있지만 이동형 로봇은 주위 환경에 대한 정보가 불완전한 경우가 많다. 특히, 고정형 로봇의 경로는 로봇 관절의 움직임의 정확성 및 반복성을 고려하지만 이동 로봇은 데드 레크닝(dead reckoning) 제어에서 발생되는 오차의 축적에 대한 문제점을 고려해야 하는 어려움이 있다.
- 경로 계획하기
로봇의 경로 계획은 목표점까지 빠르게 이동할 수 있도록 하는 것이 기본이다. [그림 1]의 경우 공구단에서 목표점까지의 최단 경로는 여러 가지 경로 중 직선으로 이동하는 경로이다. 하지만 목표점까지 빠르게만 이동하도록 계획하는 방법은 적절하지 않은 경로 계획법이다. 왜냐하면 짧은 거리가 아닌 먼 거리를 이동할 경우 로봇의 각 조인트에서 선형적인 움직임이 나타나게 되어 공구단에서 예상치 못한 이동이 발생할 수 있기 때문이다. [그림 2]와 같이 공구단 및 목표점에서의 속도가 불연속하기 때문에 공구단 및 목표점의 가속도가 [그림 3]처럼 급격하게 증가하게 되며 로봇에 기구적인 손상을 발생시킬 수 있다. 따라서 아주 짧은 거리가 아니라면 최단 직선 경로를 로봇의 경로로 계획하는 것은 적절하지 못한 방법이다
로봇의 경로는 공구단에서 목표점까지 최대한 유연하게 이동하도록 계획하는 것이 적절하다. 다시 말하면 로봇이 여러 연결점들을 지나서 목표점까지 유연하게 이동하도록 계획하는 것이 경로 계획의 목적이다. 여기서 유연하게 이동하도록 계획한다는 것은 로봇의 공구단이 이동 중에 속도와 가속도가 특정 시점에 없어지지 않고 연속적으로 변화하는 것을 의미한다. 경로 계획은 사전에 설정되어 있는 제어 입력이 주기에 따라 로봇의 공구단이 움직이기로 한 경로의 한 점과 비교하여 차이가 발생하는 만큼 구동기를 구동하여 제어 입력과 같도록 추종한다.
경로 계획 방법
유연하게 경로를 계획하는 방법에는 이동시 공간 및 시간적인 제약을 주는 것이 필요하다. 다시 말하면 움직이기 힘든 지점이나 움직일 수 없는 지점을 제외해야 하며 갑자기 로봇이 움직이는 것을 피하는 것이 중요하다. 고정형 로봇의 경로를 계획하는 방법은 다양하며 복잡한 로봇 동역학을 고려하지 않고 로봇 제조사에서 제공하는 소프트웨어를 이용하여 경로를 계획한다. 다음은 다양한 경로 계획 방법 중에서 예전부터 사용되는 대표적인 관절 공간법과 직교좌표 공간법에 대해서 알아본다.
- 관절 공간법
관절 공간법은 이동 경로의 모양을 로봇 관절각의 함수로 표시하는 경로 계획 방법이다. 이동 경로의 각각의 경유 점들은 로봇 역기구학 문제를 적용하여 각각의 관절의 각도로 나타낼 수 있으며 각 관절의 각도들의 경로를 함수 형태로 표현하여 경로를 계획한다. 로봇의 모든 관절의 이동시에 동일한 시간 축을 적용하기 때문에, 정해진 시간에 각 관절이 운동을 하게 되며 정해진 시간에 경유 점에 공구단이 위치한다. 관절 공간법은 시간의 경과가 동일한 시간 축에 있다는 제약이 존재하지만 각 관절에서의 경로를 관절 공간에서 비교적 간단하게 표현할 수 있는 장점이 있다. 고정형 로봇의 공구단이 이동할 경로 모양이 관절각의 함수로 표현될 수 있으며 대표적인 방법이 3차 다항식 형태이다. 3차 다항식은 최초의 위치에 있을 때 로봇 역기구학을 이용하여 각 관절의 각도를 계산할 수 있다. 3차 다항식을 이용하여 경로를 계획하는 것은 최종적으로 목표점으로 가는 시간에 대한 각 관절각 변화에 대한 함수를 설정하는 것이다. 여기서 3차 다항식은 중간 경유점 사이에 유연하게 이동하기 위하여 모든 시간에 대한 각 관절의 각이 함수에 정의되어야 한다. 3차 다항식 방법은 고정형 로봇의 유연한 움직임을 위하여 함수에 네 가지 제약 조건을 가지고 있다. 시작 시간과 종료 시간에서 관절각의 값은 역기구학 문제를 해결해 얻은 관절각이며, 시작 시간과 종료 시간에서 관절각의 이동 속도는 제로이다. 이와 같은 네 가지 제약 조건은 최소 3차 다항식을 만족할 수 있다는 점에 문제를 해결한다.
각 관절각은 네 가지 제약 조건으로부터 아래와 같은 식으로 표현된다
위의 네 가지 제약 조건을 연산하면 아래와 같은 식으로 표현된다.
3차 다항식 형태에서 중간 경유점을 가지는 경우 경유점에서 일정한 속도를 가지고 지나기 때문에 아래와 같은 식으로 표현된다.
중간 경유점을 포함하는 위의 네 가지 제약 조건을 연산하면 아래와 같은 식으로 표현된다.
보다 유연한 이동을 위하여 기본적인 네 가지 제약 조건과 시작과 종료 시점의 가속도 관련 제약 조건이 있는 경우는 5차 다항식 형태의 아래와 같은 식으로 표현된다.
포물선과 혼합된 경로 계획은, 각 관절의 움직임은 직선적이나 공구단은 일반적으로 직선운동을 하지 않기 때문에, 시작 및 종료 시점의 속도가 일정하지 않아 타원형 혼합구간을 경유하여 이동한다. 이 혼합점에서는 속도 변화를 유연하게 하기 위하여 정가속도가 사용된다. 마지막으로 경유점을 포함하는 경우의 포물선과 혼합된 경로 계획은 이러한 선형- 포물선 혼합 spline 방법에서 그 경유점들은 실제로 로봇이 정지하지 않으면 도달하지 않으므로 가상 경유점을 생각하며 해결한다.
- 직교좌표 공간법
관절 공간법은 관절의 각도에 대한 경로만을 고려하기 때문에 실제 공구단(말단 장치)이 직교좌표 공간에서 어떻게 움직이는지 정확하게 알 수가 없다. 따라서 직관적으로 경로점과 경로점 사이에서 로봇이 어떻게 움직일지 정확하게 예측하기 어렵기 때문에 경로점 중간에 장애물이 존재하는 경우 충돌 등의 위험 상황이 발생한다. 이와 같은 문제점을 해결하기 위한 방법으로 직교좌표 공간법이 제안되었다. 우선 직교좌표 공간법은 직교좌표 공간에서 공구단의 경로점을 계획하고 시간을 부여한다. 다음으로 각 경로점에서 역기구학 문제를 풀어 각 관절각을 연산한다. 현재의 관절각과 역기구학적 문제를 풀어서 계산된 관절의 각에 대한 오차를 연산한 후 오차만큼 각 관절의 모터를 구동한다. 직교 좌표 공간에서 공구단이 이동하면 이와 같은 과정을 반복적으로 진행하여 경로에 따라 이동한다. 여기서 현재의 관절각과 역기구학적 관절각의 차이를 보정하는 방법은 jacobian 행렬을 사용하여 연산한다. 직교좌표 공간법은 직교좌표 공간에서 경로를 계획하여 이를 통하여 움직이면 로봇의 움직임을 정확하게 예측할 수 있어 경로를 계획하기에 용이하다. 하지만 역기구학을 각 주기 시간(sampling time)마다 연산하기 때문에 연산에 부담이 된다. 즉, 직교좌표 공간에서 경로를 생성하고 매 주기 시간마다 역기구학 문제를 연산하여 각 관절의 각도를 연산해서 이 각도로 모터를 이동하는 과정을 진행해야 한다. 대부분의 산업용 로봇 제어 시스템은 관절 공간법과 직교좌표 공간법을 사용하여 경로를 계획하고 있으며, 일반적으로 관절 공간법을 많이 사용하고 있다. 직교 좌표법은 기하학적 문제점이 존재하는 반면 관절 공간법은 제약 사항이 상대적으로 적기 때문이다. 직교좌표 공간법은 공간에서의 기하학적 문제가 발생될 가능성이 가장 크다. 가장 대표적인 경우는 고정 로봇이 관절각도상 이동할 수 없는 경로를 설정하는 것이다. [그림 4]와 같이 로봇의 첫 번째 관절과 두 번째 관절의 차이가 되는 작은 원형과 두 관절의 합이 되는 큰 원형 사이를 기구적으로 이동할 수 있다. 하지만 공구점(A지점)에서 목표점(B지점) 으로 경로를 계획한다면 중간에 경로를 이동할 수 없는 작은 원형 안쪽 공간으로 기구적으로 이동할 수 없는 경우가 발생한다. 이와 같은 경우가 직교좌표 공간법에서 발생될 수 있는 기하학적인 문제이다.
또 직교좌표 공간법은 공구점과 목표점이 기하학적으로 이동이 가능한 영역에 포함되어 있고 두 지점을 잇는 직선이 모두 작업 영역 내에 있는 경우 무한대의 관절 회전 속도를 요구하는 경우가 발생하여 특정 지점에서 높은 조인트 속도를 요구할 수 있다. 마지막으로 직교좌표 공간법은 공구점과 목표점을 포함하여 중간점까지 기하학적으로 이동이 가능한 영역에 포함되어 있어도 로봇의 두 개의 링크가 같은 크기라면 직선 움직임으로 유연하게 이동할 수 없는 경우가 발생한다. 즉, 공구점과 목표점 및 경로점이 모두 기하학적으로 이동 가능한 영역에 포함되어 있어도 유연한 경로 계획에 따라 해답이 있을 수도 있고 없을 수도 있는 경우가 발생한다.
- 경로 생성 프로그램 소개
로봇 제조사는 경로를 생성하는 프로그램을 사용자가 손쉽게 사용할 수 있도록 간단한 함수로 만들어 제공한다. 최근에 개발된 로봇 프로그래밍은 언어 프로그래밍과 교시 펜던트 제어 프로그래밍의 조합 형태를 보인다. 고급언어 프로그래밍은 로봇의 동작에 대한 프로그램의 논리와 순서를 정의하고, 교시 펜던트 제어 프로그래밍은 특정한 점의 위치 또는 작업 공간 내에서의 이동을 정의한다. 인류 최초의 로봇 프로그램 언어는 WAVE라는 것이다. 이 언어는 1973년 스텐포드 인공지능 연구소에서 연구를 목적으로 개발한 실험적 언어이다. 다른 로봇 프로그램 언어도 스텐포드에서 1974년에 개발되어 사용되었다. AL이라 불리는 로봇 프로그램 언어는 여러 대의 로봇 팔을 협업 형태로 조정할 수 있는 기능을 가지고 있다. 스텐포드 ARM으로 알려져 있는 WAVE와 AL의 개념은 최초의 상업적으로 이용할 수 있는 함수형 로봇 프로그램 언어로 개발되었다. WAVE와 AL 언어의 조합체인 VAL(victor's assembly language, 스탠포드 암의 개발자인 VICTOR SCHEINMAN의 이름을 따서 붙임)은 1979년에 유니메이션(UNIMATION)사에 의해 PUMA 로봇 시리즈용에 최초로 적용되었다. 이후에 VAL II는 VAL 언어를 업그레이드 시켜 1984년에 발표되었다.
이동형 로봇의 경로 계획 방법
고정형 로봇의 경로 계획과 이동형 로봇의 경로 계획은 계획하는 환경에서 차이가 있다. 고정형 로봇은 공구단을 목표점까지 움직이도록 하는 것에 반하여 이동형 로봇은 로봇 전체가 이동한다. 고정형 로봇은 공구단을 6 자유도로 움직이는 것에 반하여 이동한 로봇은 3 자유도로 제한된 움직임을 가진다. 고정형 로봇은 로봇의 위치를 중심으로 주변의 모든 물체의 정확한 좌표를 사전에 알고 있는 것에 반하여 이동형 로봇은 주위 환경에 대한 불완전한 정보를 가지고 이동한다. 고정형 로봇은 경로를 설정하는 과정이 관절 움직임의 정확성 및 반복성에 의해서 결정되는 것에 반하여 이동형 로봇은 dead reckoning 제어를 통하여 오차가 축적되는 문제점에 직면할 수 있다. 따라서 이동형 로봇의 경로가 고정형 로봇의 경로 계획보다 어렵고 힘든 작업인 경우가 많다. 많은 시간 동안 이동형 로봇의 경로를 계획하는 방법이 제안되었으며, 사용되는 분야와 속도에 따라 혹은 경로를 생성하는 과정과 방식에 따라 다양한 방법이 있다. 기본적으로 이동형 로봇의 경로를 계획하는 방법은 [그림 5]와 같이 전역 경로 계획 방법과 지역 경로 계획 방법으로 구분된다. 전역 경로 계획 방법은 이동형 로봇이 이동하는 지역에 대한 사전 정보를 알고 있는 경우에 사용하기 때문에 최적의 이동 경로를 생성하도록 노력하지만, 최적의 이동 경로를 설정하는 데 많은 계산 시간이 소요되어 오프라인 방식으로 연구가 되어 왔다. 반면에 지역 경로 계획 방법은 이동하는 지역에 대한 사전 정보가 없는 경우에 사용하기 때문에 이동형 로봇에 부착되어 있는 센서를 이용하여 장애물을 감지하고 경로와 경로가 아닌 곳을 판단하여 경로를 계획하여 목적지까지 이동한다. 지역 경로 계획 방법은 사전에 정보가 없는 곳을 이동하기 때문에 실시간으로 경로를 계획하는 방법으로 보다 쉽고 단순한 방법을 사용한다.
이동형 로봇의 경로를 계획하는 방법은 셀 분해 방식(cell decomposition method), 로드맵 방식(roadmap method)과 퍼텐셜 필드 방식(potential field method)으로 구분된다. 셀 분해 방식은 격자로 지도를 나누어 표현하는 방식으로 격자 방식(regular grids)과 쿼드 트리 방식(quad tree representation)으로 구분된다. 격자는 [그림 6]과 같이 지도를 모눈종이와 같은 일정한 간격으로 나누어 장애물과 경로가 생성 가능한 구역을 나눈다. 가장 기본적이며 쉽게 접근 가능한 방법이지만 격자의 크기 즉 해상도에 따라서 성능이 좌우되며 이동 가능한 경로의 범위도 달라진다. 격자를 촘촘하게 하면 세밀하게 장애물을 표현할 수 있어 이동 범위가 늘어나는 반면 격자의 수가 많아지므로 계산이 늘어난다.
복잡한 계산 문제를 해결하기 위하여 [그림 7]과 같은 쿼드 트리 방식이 제안되었는데, 이 방식은 격자를 효율적으로 세분화하여 사용할 수 있지만 지도를 세분화하는 작업에 계산 시간이 많이 걸려 효율성이 떨어지기 때문에 자주 이용되지 않는 방식이다.
로드맵 방식은 노드와 링크를 정의하는 방식에 따라 [그림 8]과 같은 가시성 그래프(visibility graph)와 [그림 9]와 같은 보로노이 다이어그램(voronoi diagram) 방식 등으로 나뉜다.
두 가지 방식은 지도에서 장애물이 없는 지역에 노드와 링크를 설정하고 그래프 검색을 이용하여 경로를 계획한다. 가시성 그래프와 보로노이 다이어그램의 차이는 [그림 8]과 같이 노드를 정의하는 위치에 따라 나뉘게 된다. 가시성 그래프는 장애물의 꼭지점에 노드를 설정하고 각 노드를 링크로 이어준다. 이에 반해 보로노이 다이어그램 방식은 각 장애물의 꼭지점 사이의 중간지점에 노드를 설정하고 링크를 이어주는 방식이다. 경로를 계획하기 위한 그래프 검색 방식으로는 다익스트라 방법(dijkstra's method), A* 검색(A* serch)과 같은 알고리즘이 많이 사용된다.
마지막으로 포텐셜 필드 방식은 classical potential field와 gradient method 방식 등이 존재하는데 classical potential field 방식 구현이 쉽고 성능이 좋아 많이 사용되는 방법이다. 하지만 이 방식은 local minima problem과 같은 단점이 존재한다. 반면에 gradient method 방식은 이러한 문제점을 해결하고 더욱 효율적인 경로 계획을 할 수 있어 많이 사용된다. 이 방법은 장애물에 큰 가중치를 두고 경로가 생길 수 있는 지역에 기울기를 부가하는 방법으로 예를 들어 출발점과 도착점을 최댓값과 최솟값으로 설정하고 최댓값에서 최솟값을 찾아가는 방향으로 경로가 생성된다.
수행 내용
3축 고정형 로봇이 입력장치(joystick)를 통하여 공구단이 입력장치에서 요구하는 위치까지 이동하는 경로를 C 프로그램을 이용하여 단계적으로 기술하시오.
1. 3축 고정형 로봇의 경로 계획 사양에 따라 입력장치를 설정한다.
2. 3축 고정형 로봇의 경로 계획 사양에 따라 서보모터를 설정한다.
3. 3축 고정형 로봇의 입력장치 값을 읽는 프로그램을 작성한다.
4. 3축 고정형 로봇에서 3개의 모터를 선정하는 프로그램을 작성한다.
5. 3축 고정형 로봇에서 각각의 모터가 입력장치로부터 입력된 경로에 따라 이송하는 프로 그램을 작성한다.
6. 3축 고정형 로봇의 경로 이동에서 보다 유연하게 이동할 수 있도록 이송하는 프로그램을 작성한다.
7. 고정형 로봇이 입력장치의 요구에 따라 적절한 경로로 목표점까지 이동하였는지 시뮬레 이션 소프트웨어를 이용하여 확인한다.
고정형 로봇이 공구를 변경하기 위하여 공구점(1,1)에서 이동하여 중간점(1.8)에서 기존의 공구를 빼고 목표점(8,8)까지 이동하여 새로운 공구를 끼우고 공구점으로 이동하는 경로를 VAL II 프로그램을 이용하여 단계적으로 기술하시오.
1. 고정형 로봇이 처음 위치 정보를 입력한다.
0 1,1 공구점(1,1) 이동 신호
2. 고정형 로봇이 가지고 있는 공구를 빼기 위하여 공구 보관함(tote bin)으로 이동하여 공구를 제거한다.
1 8,1 공구 보관함 이동 신호
2 WAIT 11 그리퍼 열림 위해 11초 대기 신호
3. 고정형 로봇이 새로운 공구를 채결하기 위해 press platten으로 이동하여 새로운 공구를 채결한다.
3 8,8 press platten 이동 신호
4 SIGNAL 5 그리퍼 닫힘 신호
4. 고정형 로봇이 새로운 공구를 채결한후 중간점(8,1)에서 모터를 구동한다.
5 8,1 안전 지역으로 이동
6 SIGNAL 4 모터 구동 신호
5. 고정형 로봇이 공구점으로 이동한 후 공구 보관함에서 공구를 제거한다.
7 1,1 공구점으로 이동
8 1.8 공구 보관함으로 이동
9 SIGNAL 6 그리퍼 열림 신호
6. 고정형 로봇이 공구점으로 이동한다.
10 1,1 공구점(1,1) 이동 신호
'Robotics : 로봇공학 > Certificate : 자격증' 카테고리의 다른 글
4-2-1 인지 알고리즘 설계하기 (0) | 2023.08.15 |
---|---|
3-3-4 로봇 액추에이터 제어기 펌웨어 설계 (2) | 2023.08.12 |
필기 시험 노트 현황 업데이트 v230810 - 로봇 소프트웨어 기사 (0) | 2023.07.23 |
2-3-4 소프트웨어 아키텍처 설계하기 (0) | 2023.07.23 |
2-3-3 소프트웨어 아키텍처 정의하기 (0) | 2023.07.23 |