충돌 감지

섹션은아래의주제에대하여설명합니다.

시뮬레이션에대한충돌검사활성화

충돌감지정의

로봇가공프로젝트에서자동충돌감지회피활성화

충돌회피프로그램의자동생성 PRM 알고리즘을이용한다른대상또는프로그램연결

충돌감지

도구Collision Avoidance - 영상 1충돌체크사용선택하여충돌감지를켜거나끄십시오. 충돌감지가활성화된상태에서충돌이감지되면모든프로그램과로봇구동이중지됩니다. 시뮬레이션이충돌상태에있으면충돌상태의모든객체, 도구와로봇링크가빨간색으로강조표시됩니다.

프로그램에충돌이있는지확인하려면다음단계를따르십시오.

1.마우스우측버튼을클릭하십시오.

2.경로충돌확인 (Shift + F5)선택하십시오. 옵션은경로가가능한지신속하게확인하고 (경로확인 F5동일) 충돌이없는지확인합니다.

Collision Avoidance - 영상 2

충돌

도구Collision Avoidance - 영상 3충돌선택하여객체들의상호작용이충돌을검사하는지를지정할있습니다. 모든관계와충돌검사상태를표시하는창이열립니다. 셀을클릭하여해당관계에대한충돌검사를활성화하거나비활성화하십시오. 자동으로일반적인설정을하려면선택기본값설정선택하십시오.

기본적으로 RoboDK모든로봇링크, 객체도구를포함하여스테이션의모든움직이는객체간의충돌을확인합니다. 예외적으로, 연속적인로봇조인트는항상접촉할있으므로충돌을검사하지않습니다.

Collision Avoidance - 영상 4

빠른충돌감지

충돌감지속도는다음요인에따라크게달라집니다.

1.충돌정의된점검: 점검이적은충돌맵을갖는것이빠릅니다.

2.충돌검사에사용되는로봇단계: 충돌단계는도구옵션동작메뉴에서수정할있습니다. 선형운동은단계를밀리미터단위로사용하고관절운동은단계를각도단위로사용합니다. 단계가클수록충돌검사가빨라지나결과의정확도가떨어질있습니다.

3.컴퓨터성능: 많은컴퓨터성능(빠른 CPU)많은처리스레드를사용하면충돌검사속도가빨라집니다.

4.3D 파일의복잡성: 둥근영역과같이세부수준이높은형상에는일반적으로많은계산성능이필요합니다. 이러한형상을단순화하고삼각형수를줄이면충돌확인속도를높일있습니다.

로봇가공을위한자동충돌회피

다음단계에따라로봇가공프로젝트에서자동충돌검사충돌회피를활성화하십시오.

1.도구옵션선택하십시오.

2.자동충돌회피허용을선택하십시오.

Collision Avoidance - 영상 5

3.로봇가공프로젝트, 3D 프린팅, 곡선추적또는추적프로젝트를더블클릭하십시오.

4.충돌회피:최적화매개변수에설명된대로 Z 주위의공구방향을변경하여자동충돌회피를활성화할것입니다.

Collision Avoidance - 영상 6

충돌회피동작플래너

동작계획기능은로봇의작업공간내에충돌없는경로를자동으로생성합니다. RoboDK에서기능은 "PRM (probabilistic roadmaps, 확률적로드맵)"이라는동작계획알고리즘을사용합니다.

먼저로봇작업공간의여유공간에대한맵이생성됩니다. 맵은로봇프로그래밍중에충돌없는궤적을빠르게생성하는사용됩니다.

PRM 알고리즘은다음과같은가지특성이있습니다.

확률: "구성공간" (, 설계자가로봇이작업공간에서로봇을움직일있는위치를알기위해사용하는집합)설계자가임의로선택합니다. 이를통해 PRM 알고리즘이전체작업공간을같게커버하는다른동작계획알고리즘보다빠르게구동될있습니다.

로드맵: PRM 알고리즘은전체로봇작업영역의 "로드맵"만들어작동합니다.

로봇동작계획에대한추가적인내용은아래의블로그게시물을참조하십시오.

영상: RoboDK충돌회피동작플래너기능소개

https://www.youtube.com/watch?v=KPR2aOZn924&list=PLjiA6TvRACQd8pL0EnE9Djc_SCH7wxxXl&index=10.

PRM 동작플래너사용

PRM 동작플래너의사용은단계가있습니다. 단계는 RoboDK에서별도로수행되어기능의효율성이향상됩니다. 느린 "구성단계"번만수행하면되며, 빠른 "질문단계"여러반복하여수행될있습니다.

단계는아래와같습니다.

  1. 구성단계(느리게) PRM 알고리즘은로봇의자유작업공간내에점을무작위로배치합니다. 이후지점들을서로연결하여작업공간내에서충돌없는경로의로드맵을만듭니다.
  2. 질문단계(빠르게) 플래너가구성단계에서생성된로드맵을사용하여대상지점간에가장짧은충돌없는경로를찾습니다.

RoboDK PRM 알고리즘의작동방식에대한자세한내용은링크된블로그의게시물참조하십시오.

섹션에서는 RoboDK 프로그램에서위의단계를사용하는방법을설명합니다. 기능을설명하기위해용접설정예제가사용됩니다.

동작플래닝설정

동작플래너를사용하려면도구가있는로봇이있어야합니다. 또한, 작업공간내에하나이상의객체를두는것이합리적입니다. 그렇지않으면충돌회피가필요하지않습니다. 생성된충돌없는경로의시작위치로사용할대상을이상지정하면도움이있습니다.

용접설정예는다음프로세스를사용하여만들있습니다.

1.로봇선택

a.파일Collision Avoidance - 영상 7온라인라이브러리열기선택

b.필터를사용하여로봇을찾으십시오. 예를들어, Doosan Robotics M1013선택하십시오(Doosan Robotics(브랜드), 5 ~ 10 kg 가반하중 1,000 ~ 1,500 mm 도달범위필터선택).

c.다운로드를선택하면화면에로봇이자동으로나타납니다.

2.선택

a.먼저필터재설정클릭하여이전필터를제거하고, 같은온라인라이브러리에서종류필터링하십시오.

b.“Weld Gun(용접도구)”같은예시의툴을다운로드하십시오.

c.툴은자동으로로봇에부착될것입니다.

d.툴이로드되면온라인라이브러리를닫아도됩니다.

3.기준좌표계추가

a.프로그램 Collision Avoidance - 영상 8기준좌표계추가선택하십시오.

b.트리에서새로운기준좌표계를선택하고, F2눌러이름을장애물참조변경하십시오.

4.목표추가

a.파일Collision Avoidance - 영상 9열기선택하여컴퓨터에있는 RoboDK 라이브러리폴더를여십시오(RoboDK 설치폴더).

b."Object Table.wrl"같은개체를선택하십시오.

c.스테이션트리내에서객체를장애물참조로끌어다놓습니다.

d."box.stl"같은다른객체를선택하고장애물참조로드래그하십시오.

e.아래내용을수행하여테이블을로봇앞쪽으로이동하십시오.

i.장애물참조를마우스오른쪽버튼으로클릭하고 "옵션"선택하거나트리에서참조를클릭하면프레임세부정보패널이나타납니다.

ii.다음에대한기준위치라는이름의패널에다음값을입력하십시오. 프로젝트이름 : 1000, 0, 0, 90, 0, 0

Collision Avoidance - 영상 10

f.필요한경우다음단계에따라객체의크기와위치 (: "상자")늘리십시오.

iii.스테이션트리에서객체를마우스오른쪽버튼으로클릭하고옵션을선택하거나트리에서객체를클릭하면객체세부정보패널이나타납니다.

iv.추가옵션배율적용클릭하여상자의크기를조정하고배율 "4.0"입력하십시오.

v.장애물참조에대한객체위치라는패널에0, 0, 200, 0, 0, 0값을입력하여상자를테이블로이동하십시오.

Collision Avoidance - 영상 11

5.타겟생성

a.프로그램 Collision Avoidance - 영상 12타겟 추가를 선택하십시오.

b.스테이션트리에서타겟을선택하고 F2선택하여이름을Start Target으로바꿉니다.

c.다음을수행하여타겟을이동하십시오.

vi.스테이션트리에서타겟을마우스오른쪽버튼으로클릭하고옵션선택하거나 F3눌러Start Target패널을표시하십시오.

vii.장애물참조패널대하여대상위치에다음값을입력하십시오. 500, 0, 0, 90, 0, 180

d.같은방식으로번째대상을만들고이름을End Target으로바꿉니다. 이전과같은방법으로 -500, 0, 0, 90, 0, 180 위치로옮깁니다.

Collision Avoidance - 영상 13

조인트한계제한

어떠한작업이로봇작업공간을모두사용하는경우는거의없습니다. PRM 맵을생성할로봇의조인트한계를제한하는것이좋습니다. 그렇게하면생성프로세스속도가빨라지고해당내의포인트가최상의위치에있게됩니다.

6로봇의경우가장자주제한되는개의조인트는다음과같습니다.

1.조인트 1(베이스조인트) - 조인트를제한하면로봇이작업공간의어느한쪽으로너무멀리이동하는것을막습니다.

2.조인트 3(팔꿈치조인트) - 조인트를제한하면로봇의팔꿈치구성과구성간에변경되는것을막을있습니다.

다음프로세스를사용하여조인트한계를변경하십시오.

1.스테이션트리내에서로봇모델아이콘(: Doosan Robotics M1013)마우스오른쪽버튼으로클릭하고옵션…선택하여로봇패널을엽니다. 또는스테이션트리에서로봇이름을클릭하십시오.

2.조인트조그섹션에서제한하려는로봇조인트의슬라이더 ( : θ1 θ3)이동하여원하는조인트하한의위치를찾으십시오.

3.조인트조그내에서조인트하한을더블클릭하십시오. 예를들어, θ1접합한계가현재 -180이면숫자 -180클릭하십시오. 조인트하한값설정패널나타날것입니다.

Collision Avoidance - 영상 14

4.조인트하한을θ1 = -50 θ3 = -90으로설정하십시오.

5.관절제한을변경하고확인클릭하십시오.

6.조인트상한값에같은과정으로θ1 = 50설정하십시오.

Collision Avoidance - 영상 15

변경사항은로봇의접근가능한작업공간을보면있습니다. 로봇패널의작업공간섹션에서현재보여주기옵션을선택하여작업공간을표시하십시오. 이제새로운조인트한계로작업공간의일부에만도달할있음을보여줍니다.

Collision Avoidance - 영상 16

PRM 변수선택

PRM 알고리즘은다음가지매개변수를사용하여도달가능한위치의로드맵을생성합니다.

1.샘플맵은로봇의접근가능한작업공간전체에무작위로배치된여러위치 (샘플)구성됩니다. 숫자는샘플수를결정합니다. 기본값은 100 샘플입니다.

2.샘플에지(edge) 알고리즘은맵의모든샘플을여러다른샘플과연결하려고시도합니다. 샘플을함께연결하는선을 "에지"라고하며위치사이의충돌없는경로를나타냅니다. 속성은샘플생성될최대에지수를나타냅니다. 기본값은샘플25개의에지입니다.

3.로봇스텝() 잠재적인에지에충돌이없는지확인하면알고리즘은규칙적인간격으로중지되어충돌을확인합니다. 간격사이의거리는로봇스텝에의해결정됩니다. 기본값은4도입니다.

가지매개변수는생성된로드맵이얼마나상세할것인지결정합니다. 또한, 구성단계에서로드맵을생성하는걸리는시간에영향을줍니다.

많은샘플많은샘플에지세밀한로드맵을생성하여구성하는시간이오래걸립니다. 로봇스텝클수록맵이빨리생성되지만, 잠재적충돌을감지하지못할있습니다.

기본값을사용하면일반적으로15이내에로드맵을생성할있으나, 작업영역설정로봇속성에따라다릅니다.

매개변수설정에관한참고사례는섹션의마지막에있는팁을참조하십시오.

로드맵생성

동작플래너의 "구성단계"로봇의작업공간로드맵을생성하는다음프로세스를사용하여달성됩니다.

1.유틸리티메뉴충돌없는동작플래너충돌없는생성이동하여충돌없는동작플래너패널을열거Collision Avoidance - 영상 17충돌확인옆의작은화살표를클릭하고충돌없는만들기선택하십시오.

Collision Avoidance - 영상 18

2.매개변수를입력하거나기본값을유지하십시오.

3.업데이트클릭하여로드맵을생성하십시오.

PRM 알고리즘은선택한매개변수를사용하여로드맵을생성합니다. 완료되면보여주기상자를선택하여생성된로드맵을있습니다. 샘플보여주기클릭하면작업공간내의모든샘플을통해로봇이이동합니다.

Collision Avoidance - 영상 19

타겟연결

동작플래너의 "쿼리단계"개의대상또는프로그램이서로연결될액세스됩니다.

대상을연결하려면먼저스테이션트리에서대상을선택하십시오. 대상을선택하고연결하는가지방법이있습니다.

1.Ctrl 이용

a.이동을시작하려는대상 ( : "Start Target"이라는대상)마우스왼쪽버튼으로클릭하십시오.

b.CTRL 키를누른상태로유지하십시오.

c.대상타겟을마우스왼쪽버튼으로클릭하십시오(: "End Target").

d.대상하나를마우스오른쪽단추로클릭하고선택한대상링크선택하십시오. 또는충돌없는동작플래너패널이열려있으면선택한대상 / 프로그램연결버튼을클릭하십시오.

2.Shift 이용

a.스테이션트리에서대상을하나씩대상위에정렬하고Start TargetEnd Target 위에놓습니다. 마우스오른쪽버튼을사용하여드래그드롭함으로써트리주위로대상을이동할있습니다. 대상을삭제하면대상위치를선택할있는메뉴가나타납니다.

Collision Avoidance - 영상 20

b.대상하나를마우스왼쪽버튼으로클릭하십시오.

c.Shift 키를누른상태로유지하십시오.

d.다른대상을마우스왼쪽버튼으로클릭하십시오.

e.대상하나를마우스오른쪽단추로클릭하고선택한대상링크선택하십시오. 또는충돌없는동작플래너패널이열려있으면선택한대상 / 프로그램연결버튼을클릭하십시오.

방법모두저장된로드맵을사용하여대상을연결하는프로그램을생성합니다. 반대방향으로이동하려면반대방향으로대상을선택하십시오. , Ctrl 방법사용하여Start Target 전에End Target선택하거나스테이션트리에서대상을 SHIFT 방법으로재배열하여대상을선택하십시오.

프로그램연결

동작플래너는유사한방식으로개의서로다른프로그램을함께연결할수도있습니다. 이것은프로그램사이에충돌없는경로를만들고새로운메인프로그램을생성합니다.

용접예제의경우다음프로세스를사용하여개의더미프로그램을작성하십시오.

1."대상좌표계" 기준좌표계의하위로4개의타겟을생성하십시오(스테이션트리에서 "대상좌표계참조"마우스오른쪽단추로클릭하고활성기준좌표계확인하십시오). 이후에프로그램Collision Avoidance - 영상 21타겟추가선택하거나Ctrl + T4눌러4개의대상을만듭니다.

2.스테이션트리에서각각대상을선택하고다음이름과값을입력하십시오. 대상이름을변경하려면 F2 키를누르거나대상을마우스오른쪽단추로클릭하고이름바꾸기선택하십시오. 대상값을변경하려면 F3 키를눌러타겟패널표시하거나대상을마우스오른쪽단추로클릭하고옵션선택하십시오. 대상좌표계관련하여대상위치라고표시된섹션에값을입력하십시오.

a.이름 : "Left Point 1" : 200, 200, 0, 90, 0, -135

b.이름 : "Left Point 2" : 200, -200, 0, 90, 0, -135

c.이름 : "Right Point 1" : -200, 200, 0, 90, 0, 135

d.이름 : "Right Point 2" : -200, -200, 0, 90, 0, 135

e.Collision Avoidance - 영상 22

3.번째프로그램을생성하십시오.

a.프로그램Collision Avoidance - 영상 23프로그램추가이동하십시오.

b.스테이션트리에서먼저프로그램을선택하고 F2누르거나마우스오른쪽버튼을클릭하고이름바꾸기를선택하여프로그램의이름을 "왼쪽용접"으로바꿉니다.

c.스테이션트리에서대상을먼저선택하고프로그램Collision Avoidance - 영상 24선형이동명령선택하여타겟시작, 왼쪽지점 1, 왼쪽지점 2, 타겟시작을선형명령으로추가하십시오:.

Collision Avoidance - 영상 25

4.같은방법으로 "오른쪽용접"이라는번째프로그램을생성하십시오. 이번에는타겟종료, 오른쪽지점 1, 오른쪽지점 2, 타겟종료를추가하십시오.

Collision Avoidance - 영상 26

더미프로그램에는용접건을활성화 / 비활성화하는명령이포함되어있지않습니다. 실제프로그램에는이러한명령이포함되어야합니다.

동작플래너를사용하여프로그램을연결하려면다음프로세스를사용하십시오.

1.이전섹션 (타겟연결)에서설명한가지방법하나를사용하여프로그램을모두선택하십시오.

2.프로그램하나를마우스오른쪽단추로클릭하고선택한프로그램링크선택하십시오. 충돌없는동작플래너패널이열려있으면선택한대상 / 프로그램연결클릭하여같게수행할있습니다.

번째프로그램을실행하고충돌없이이동하면 "MainSafe"라는프로그램이만들어지고번째프로그램이실행됩니다. 기본프로그램은다른프로그램과마찬가지로변경을하거나이름을바꿀있습니다.

맵에새로운타겟추가

전체맵을재생성하지않고도새로운대상을 PRM 로드맵에추가할있습니다. , 새로운객체가작업공간에추가되거나기존객체가이동하는경우에만로드맵을해야! 합니다.

새로운타겟이로드맵에추가되면 PRM 알고리즘은로드맵내에이미존재하는다수의기존지점에새로운에지세트로연결하려고시도합니다. 대상에대해초기로드맵구성에대해선택한수와다른기본에지수를설정할있습니다.

대상의최대에지수는다음프로세스를사용하여설정할있습니다.

1.유틸리티메뉴충돌없는동작플래너충돌없는만들기이동하여충돌없는동작플래너패널을열거Collision Avoidance - 영상 27충돌확인옆의작은화살표를클릭하고충돌없는만들기선택하십시오.

2.새로운샘플에지라고표시된상자에모서리수를입력하십시오. 기본값은 5입니다.

로드맵에대상을추가하는방법에는가지가있습니다.

1.스테이션트리에서타겟을선택하십시오. 가장높은타겟을클릭하고Shift키를누른상태에서가장낮은타겟을클릭하면여러개의인접한타겟을번에선택할있습니다. Ctrl 키를누르면인접하지않은여러타겟을선택할있습니다. 이후충돌없는동작플래너패널에서선택한대상추가클릭하십시오.

Collision Avoidance - 영상 28

2.같은방법을사용하여이전섹션 (타겟연결연결프로그램)에서설명한선택한대상연결또는선택한프로그램연결수행합니다. 아직로드맵에없는대상은자동으로추가됩니다.

팁과참고사례

동작플래너는사용이간단하지만, 프로그래밍작업흐름을개선하는참고사례가있습니다.

작은매개변수로시작

구성단계를실행하는시간이오래걸릴있습니다. 이것은로봇셀의레이아웃이지속해서변할프로그래밍초기단계에서불편할있습니다. 작업공간에객체를추가하거나이동할때마다전체로드맵을다시생성해야합니다.

로드맵생성을기다리는걸리는시간을줄이려면먼저작은매개변수를사용하는것이좋습니다.

예를들어, 다음매개변수는 10 ~ 15이내에맵을생성할있습니다.

1.샘플 : 10

2.샘플에지: 5

3.로봇스텝() : 4.0

위와같이수행하면가장효율적인충돌없는동작이생성되지않지만디자인을훨씬빠르게변경할있습니다.

셀에있는모든객체의위치가결정되면맵을생성할있습니다(: 기본매개변수 100, 25, 4.0).

Collision Avoidance - 영상 29

마지막으로로봇프로그램을생성하기전에로드맵을생성하는것이좋습니다(: 500, 50, 2.0매개변수사용). 생성하는시간이오래걸리지만가장효율적인동작을생성합니다.

Collision Avoidance - 영상 30

조인트한계사용

로봇조인트한계를설정하면(이전섹션조인트한계제한에설명된), 장점이있습니다. 첫째, 경우에따라구성단계가빨라질있습니다. 둘째, 로드맵에는실제로로봇프로그램에유용한위치가포함됩니다. 중요한단계는잊어버리기쉽습니다.

충돌맵의적절한정의

충돌감지는개체가충돌할작동됩니다. 충돌설정에서각각움직이는객체간의상관관계를지정할있습니다. 상호작용횟수(녹색확인표시)줄이면충돌확인속도가빨라집니다.

빠른충돌검사

충돌없는경로를계산하는걸리는시간은충돌감지섹션설명된여러요소에따라다릅니다. 무엇보다도충돌확인을위한로봇스텝을늘리거나, 조인트한계를제한하거나, 3D 형상을단순화하여충돌확인속도를높일있습니다.

3D 모델오프셋

"충돌회피"라는용어는동작플래너가모든상황에서항상충돌을피할것을제안합니다. 시뮬레이션환경에서도마찬가지입니다. 그러나현실에서는로봇이물체에아주가까이접근해도물체와충돌있습니다. 이것은일반적으로시뮬레이션로봇과실제로봇간의약간의차이로인해발생합니다.

이러한충돌의일반적인예는로봇이작업에서멀어질물체의가장자리를 "클리핑"하는경우입니다. 이것은일반적으로프로그램에 "오프셋"포함해피할있습니다. 오프셋을효과적으로사용하는방법에대한자세한내용은블로그기사를참조하십시오.

로봇접근성이높은지역에서작동

로봇작업공간의모든영역이같은것은아닙니다. 로봇은작업영역의일부영역에서다른영역보다 "접근성"높습니다. 접근성이높은지역에서는로봇이여러방향에서포인트에접근할있습니다. 도달가능성이낮은지역에서는로봇이방향또는방향에서만포인트에액세스할있습니다.

때로는동작플래너가작업공간에서대상사이의경로를찾지못할수도있습니다. 종종로드맵에서샘플수를늘려문제를해결할수도있지만, 항상그런것은아닙니다.

동작플래너가지속해서대상을연결하지못하는경우, 작업이로봇작업공간에서가장접근성이뛰어난위치에있는지확인하십시오. 로봇패널을열고 (스테이션트리에서로봇을마우스오른쪽버튼으로클릭하고옵션선택) 로봇의작업공간을보고작업공간섹션에서현재도구표시선택합니다.