Smart Motion 애드인은로봇이한지점에서다른지점으로충돌없이이동할수있는안전한경로를자동으로생성하도록도와주는모션플래너입니다. 이애드인은충돌회피알고리즘을사용하여충돌이없는경로를신속하게찾을수있도록합니다.

'유틸리티'➔ 'Smart Motion'으로이동한후'충돌 없는 경로 생성'을클릭하면 Smart Motion메뉴를열수있습니다.

메뉴를여는또다른방법은툴바에서첫번째(가장왼쪽) Smart Motion 아이콘을클릭하는것입니다.


또한 도구 모음의 ‘충돌 검사’ 드롭다운 메뉴를 통해서도 액세스할 수 있습니다.

스마트모션플래너를효과적으로사용하려면 RoboDK 프로젝트가올바르게구성되어있는지확인해야합니다.
프로젝트에는다음이포함되어야합니다:
1.로봇: 로봇암 1개. 이예제에서는Comau Smart5 NJ 130-2.6 로봇을사용합니다.

2.공구: 하나이상의공구(TCP). 스폿용접예제에서는OBARA 스폿 용접 건을 사용합니다.

3.객체: 충돌회피기능을활용하려면작업공간내에최소한개의객체(장애물)가있어야합니다. 이예제에서는사용자정의 자동차 프레임과자동차 프레임 랙, 자동차 프레임 레일을 사용했습니다.

4.타깃: 생성된경로의시작및종료위치는타깃을사용하여정의해야합니다. 따라서스테이션에는최소두개의타깃이있어야합니다. 이예제에는전방과후방에접근/후퇴타깃이포함되어있으며, 스폿용접이수행될자동차프레임내부에도몇개의타깃이있습니다.

Smart Motion을사용하여안전한경로를생성하려면로봇이이동해야할타겟을선택하고‘경로 생성(Generate Path)’을클릭하십시오. 애드인이자동으로계산을수행합니다.
Smart Motion 애드인을시연하기위해다음스폿용접예제를사용할것입니다: Comau를 사용한 스폿 용접. 이예제에는앞서설명한 4가지구성요소가포함되어있습니다.
이프로젝트에는PRM 플러그인을 사용하여생성된스크립트형태의충돌방지경로도포함되어있습니다. Smart Motion 애드인을시연하기위해, PRM 플러그인을통해자동으로생성된다음프로그램들을제거하겠습니다:
●AppFrontPg
●AppRearPg
●HomePg
●HomeToAppFront
●AppRearToHome
●AppFrontToAppRear
●AppRearToAppFront
●Main

애드인을사용하려면다음단계를따르십시오:
1.타겟 선택기 열기: Smart Motion 메뉴에서 ‘타겟선택(Select Targets)’ 버튼을클릭하여선택창을엽니다. 이타겟들은생성할경로를정의합니다.


2.포인트 선택 및 순서 지정: 왼쪽의 ‘사용 가능한 타겟’ 섹션에서 사용하려는 포인트를 선택하고 >> 버튼을 클릭하여 오른쪽의 ‘선택된 타겟’ 섹션으로 이동시킵니다. 오른쪽에서 드래그 앤 드롭을 사용하여 순서를 변경함으로써 로봇이 먼저 이동할 위치를 결정할 수 있습니다. 타겟을모두선택했다면‘확인’버튼을눌러선택을확정합니다.

3.경로 품질 선택: ‘경로 품질(Path Quality)’ 슬라이더를조절하세요. 빠른점검을원할때는‘거칠게(Coarse)’를사용하고, 로봇이좁은공간을안전하게점검하도록하려면‘정밀하게(Fine)’ 쪽으로슬라이더를이동시키세요.

4.경로 생성: ‘경로 생성’ 버튼을클릭합니다. 이공구는목록에있는모든점쌍사이에안전한이동경로를생성합니다.



또한 스테이션트리에서여러타겟을 (필요한순서대로) 선택한후툴바의‘선택한 항목 연결’아이콘(스마트모션의두번째또는맨오른쪽아이콘)을클릭하여‘항목 연결’을수행할수도 있습니다.
타겟선택기메뉴를통해경로를설정할때, 사용가능한지점목록이‘선택된 타겟’ 목록으로이동됩니다. 선택된항목중일부옆에는‘접근(Approach)’이라는레이블이붙은체크박스가있으며, 이를토글할수있습니다.
이체크박스는경로계획솔버에대한스마트한힌트역할을합니다.
●체크 해제 시(표준 정지): 로봇은타겟을엄격한목적지로간주합니다. 로봇은점 A에서점 B까지의전체경로를계획한다음, 점 B에서점 C까지의완전히새로운경로를계획합니다. 로봇은다음단계를고려하기전에점 B에정확히도달하는데전적으로집중합니다.
●선택된 경우(지나치기 또는 접근 지점): 이체크박스를선택하면솔버는해당지점이실제목적지로가는길에있는일시적인 ‘디딤돌’이나진입게이트에불과하다는것을인식합니다. 솔버는이동을별개의경직된구간(A에서 B로, 그다음 B에서 C로)으로나누는대신, 전체연결고리(A➔ B➔ C)를하나의유연한순서로평가합니다.
접근타겟을지정하면‘Simplify Program’ 공구가경로를최적화하는방식이완전히달라집니다:
●유연한 코너링: 솔버는로봇이접근지점에서완전히정지할필요가없음을인식하므로, 동작을부드럽게연결합니다. 로봇은접근지점을향해이동하다가갑작스러운정지나 '끊김' 현상없이우아하게최종목적지로방향을전환합니다.
●적극적인 정리: 단순화공구가다중지점경로를처리할때, 각중간타겟지점마다계산을중단하는대신전체시퀀스를미리살펴볼수있다면불필요하고부피가큰움직임을훨씬더효과적으로트리밍할수있습니다. 그결과코드줄수가줄어들고, 로봇속도가일정하게유지되며, 전반적인생산시간이단축됩니다.
Smart Motion 애드인에는요구사항에따라솔루션을미세조정할수있는추가옵션도제공됩니다. 이러한옵션을통해최종결과나생성된경로에영향을미치는몇가지매개변수를사용자정의할수있습니다.
메뉴의‘공구 Z 회전 허용 범위: +/-’ 옵션을사용하여 TCP 회전을제한할수있습니다. 이옵션이활성화되면 X 및 Y 회전은고정되고, Z 회전은선택한값(예: +/- 45°)으로제한됩니다.
이기능은‘제약된 공간(Constrained Space)’과반대방식으로작동하여, 솔버가직교좌표계에서작동하도록강제함으로써공구의방향을제한합니다. X 및 Y 회전은잠기며, Z축회전은특정각도범위(설정된값의플러스또는마이너스)로제한될수있습니다. 이필드의값을“0”으로설정하면 X 및 Y 회전과함께 Z 회전도잠깁니다. 세축(X, Y, Z) 모두의회전을잠금해제하려면이옵션에"-1"을입력하십시오.
'제한된 공간(Constrained Space)'이활성화되면, 로봇은좁은틈을통과하거나물건이어수선하게널려있는환경에서작업하려고시도합니다. 이설정은카르테시안공간대신관절공간에서알고리즘을사용하도록강제하여, 테스트된구성이실제로사용되는구성이되도록보장합니다. 이는카르테시안포즈가여러가지잠재적인관절구성을초래하여경로생성중에문제를일으킬수있는로봇형태에매우중요합니다. 관절공간을강제함으로써시스템은식별된경로가유일하고충돌이없도록보장합니다.
Smart Motion 메뉴에서‘충돌 맵(Collision Map)’ 버튼을클릭하여 RoboDK의충돌 맵 설정을열수도있습니다. 올바르게구성된충돌맵을사용하면애드인이충돌행렬을참조하여충돌이없는경로를유지하는궤적을계산할수있습니다.

'선택한 프로그램 단순화' 옵션을사용하면충돌을피하면서프로그램의명령어수를줄일수있습니다. 즉, 이미생성된프로그램을단순화하여경로내타겟수를줄이면서도경로가충돌없이유지되도록보장합니다.
이는다음과같은측면에서유용합니다:
1.프로그램 크기 축소: 경로를분석하여불필요한타겟지점을제거합니다. 이는메모리가제한되어있어특정줄수만큼의코드만저장할수있는구형로봇컨트롤러에매우중요합니다.
2.더 부드러운 동작: 중복된지점을제거함으로써로봇의 "끊김현상"을방지할수있습니다. 컨트롤러는때때로동일한작은영역에대해너무많은명령을수신하면갑작스럽게움직이거나속도가느려질수있습니다. 경로를단순화하면로봇이더일정하고유연한속도를유지하는데도움이됩니다.
3.더 빠른 실행: 간소화된프로그램은로봇컨트롤러가처리해야할점의수가줄어들어사이클시간을단축시키는경우가많으며, 이를통해컨트롤러는프로그래밍된속도유지에집중할수있습니다.
4.“복잡한” 경로 정리: 동작을기록하거나밀집된 CAD 경로를가져와프로그램을생성한경우, 수백개의불필요한점이포함될수있습니다. 이공구는새로운짧은경로가모든충돌을여전히피하도록보장하면서해당데이터를 “정리”합니다.
5.구성 안전성 유지: 다른 Smart Motion 기능과마찬가지로, 단순화과정에서도로봇의구성을준수합니다. 이를통해점이제거되는동안로봇이충돌을유발할수있는방식(예: 팔꿈치뒤집기)으로실수로구성을변경하려는시도를하지않도록보장합니다.
Smart Motion은타겟을연결하는데만국한되지않고, 서로다른독립형프로그램간에도연결할수있습니다. 이기능은수동개입없이피킹시퀀스에서가공경로로이동하는것과같은복잡한작업을연결하는데매우유용합니다.
이기능을사용하려면Target Selector 인터페이스에서별도의프로그램 항목을선택하여첫번째프로그램의종료상태에서두번째프로그램의시작상태까지안전한전환경로를계산합니다.

이애드인은첫번째프로그램의마지막동작과다음프로그램의첫번째동작을식별하여두프로그램을연결함으로써, 두프로그램사이에연결경로를효과적으로생성합니다.
RoboDK에서 스마트 모션(Smart Motion)과 충돌 방지 모션 플래너(PRM)는 모두 로봇이 장애물에 부딪히지 않고 이동할 수 있도록 설계되었습니다. 그러나 두 기능은 서로 다른 수학적 계산 방식과 워크플로를 사용하여 작업을 수행합니다.
충돌방지모션플래너의모션플래닝기능은 “확률적로드맵(PRM)”이라는모션플래닝알고리즘을사용하여로봇의작업공간내에서충돌이없는경로를자동으로생성합니다.
두 모션 플래너 간의 가장 큰 차이점은 로봇이 움직이기 전에 수행해야 하는 준비 작업의 양입니다.
PRM 플래너는 영구적인 도로망을 구축하는 것과 유사한 방식으로 작동하는 공구입니다. 먼저 “건설 단계”를 실행하는데, 이 단계에서는 몇 분 동안 무작위로 점을 배치하고 이를 거대한 로드맵으로 연결하려고 시도합니다. 일단 지도가 완성되면 “도로”가 이미 구축되어 있으므로 경로를 찾는 데는 순식간입니다. 하지만 작업장 내의 테이블이나 상자, 기타 객체를 단 하나라도 이동시키면 지도 전체가 무용지물이 되어 처음부터 다시 구축해야 합니다.
스마트 모션(Smart Motion)은 훨씬 더 유연하게 설계되었습니다. 느린 지도 구축 단계가 없습니다. 로봇이 현재 정확히 어디에 있는지, 어디로 가야 하는지를 파악한 다음, 장애물을 통과할 수 있는 안전한 “터널”을 찾아냅니다. 이는 단 한 단계의 과정입니다: 지점(타겟)을 선택하고, ‘생성’을 클릭하면 로봇이 이동합니다. 셀 내의 객체를 이동시킨 경우, 새로운 지도가 생성될 때까지 기다릴 필요 없이 ‘경로 생성’을 다시 클릭하기만 하면 됩니다.
모션 플래닝의 속도는 단순히 로봇이 움직이는 속도뿐만 아니라, 플래너가 계산을 완료하는 데 걸리는 시간도 포함합니다.
PRM 플래너의 “쿼리 단계”(맵에서 경로 찾기)는 매우 빠르지만, “구성 단계”는 매우 오래 걸립니다. 스테이션이 항상 고정되어 있다면 좋겠지만, 변경이 빈번하게 이루어지는 경우에는 시간이 많이 소요됩니다.
Smart Motion은 단일 “A에서 B로” 이동 문제를 해결하는 데 놀라울 정도로 빠른 알고리즘을 사용합니다. 경로의 양 끝에서 동시에 검색을 시작하여 중간에서 만나게 됩니다. 덕분에 대부분의 일반적인 작업에서 “생각하는 시간”은 거의 느껴지지 않습니다.
모든 모션 플래너의 핵심은 충돌 감지 및 회피입니다. 따라서 생성된 안전 경로의 정밀도는 매우 중요한 요소입니다.
PRM 플래너는 매핑 단계에서 배치한 무작위 점들에 의존합니다. 무작위 점이 좁은 공간 내부에 위치하지 않으면, 실제로 충분한 공간이 있더라도 로봇은 막혀 있다고 판단합니다. 샘플 수를 늘리고샘플당 에지 수를 증가시키면더세밀한로드맵이생성되는데, 이는생성시간이더오래걸리지만더정밀한해결책을이끌어냅니다.
Smart Motion에는 이러한 까다로운 지점을 위한 ‘제약 공간(Constrained Space)’ 옵션이 포함되어 있습니다. 이 옵션을 활성화하면 솔버는 직교 좌표계 대신 관절 좌표계에서 작동하도록 강제됩니다. 이를 통해 포즈를 테스트할 때 시스템이 고유한 관절 구성을 식별하도록 보장함으로써, 단일 직교 포즈에 대해 여러 가지 가능한 해가 존재할 때 발생하는 문제를 방지합니다. 요컨대, 이는 플래너가 로봇의 위치와 구성을 기억하여 찾아낸 경로가 유지되도록 돕습니다.
두 모션 플래너 모두 로봇이 주변 환경을 얼마나 ‘신경 쓸지’를 제어할 수 있게 해줍니다.
PRM 플래너를 사용하여 더 부드럽거나 안전한 경로를 얻으려면, ‘샘플 수’와 ‘샘플당 에지 수’를 그에 따라 늘려야 합니다. 이렇게 하면 맵의 품질은 향상되지만 대기 시간이 길어집니다.
Smart Motion은 다음과 같은 제한이 있는 간단한 ‘경로 품질(Path Quality)’ 슬라이더를 사용합니다:
1.거칠게(Coarse): 넓은 개방 공간에서 즉시 결과를 얻기 위해 사용됩니다.
2.정밀: 이 모드는 복잡한 작업에 사용됩니다. 로봇이 “아주 작은 단계”를 밟도록 하여 충돌을 확인하고 전체적으로 부드러운 경로를 생성하도록 합니다.