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.정밀: 이모드는복잡한작업에사용됩니다. 로봇이 “아주작은단계”를밟도록하여충돌을확인하고전체적으로부드러운경로를생성하도록합니다.