충돌 감지 파라미터 설정

주의

충돌 감지 파라미터를 설정하기 전에 대응하는 충돌 모델을 구성해야 합니다. 그렇지 않으면 충돌 감지를 진행하지 못하거나 오류가 발생할 것입니다.

Mech-Viz 충돌 감지는 각종의 충돌 모델을 둘씩 결합하여 진행되는 것이므로 포인트 클라우드와 다른 물체의 충돌, 로봇과 다른 물체의 충돌 등 다양한 유형의 충돌 감지 조합이 있습니다. Mech-Viz의 충돌 리스트를 통해 현재 실행 중인 프로젝트에서 이미 감지된 충돌 모델 조합 유형을 확인할 수 있습니다. 아래의 그림과 같이 충돌 리스트에 있는 색깔이 다른 블록은 충돌 감지의 다른 판단 조건을 뚯합니다.

../../../../../_images/collision-detection-scene.png

아래의 그림과 같이 충돌 감지 구성(전반)에 포인트 클라우드 구성, 엔드 이펙터 구성, 로봇 관절 구성 및 피킹된 물체 구성 등 네 가지의 구성이 포함됩니다. 충돌 감지에 대해 올바른 설정을 하면 불필요한 충돌 감지를 피하고 프로젝트의 실행 효율을 크게 향상시킬 수 있습니다.

../../../../../_images/collision-detection-setting_1.png

위에서 언급된 네 가지의 구성에 대해 아무 설정도 하지 않으면 Mech-Viz가 로봇 관절, 시나리오 물체 및 엔드 이펙터에 대해만 충돌 감지를 진행하기 때문에 이때의 시나리오는 기본적인 충돌 감지 시나리오이고 이때 진행되는 충돌 감지는 시나리오 충돌과 자체 충돌에 대한 감지입니다. 아래의 그림과 같습니다.

../../../../../_images/collision-detection-combination_1.png

포인트 클라우드 구성

프로젝트 실행 시 포인트 클라우드와 관련된 충돌 감지가 필요하면 포인트 클라우드 구성을 선택하여 관련 파라미터를 설정해야 합니다. 구체적인 스텝은 다음과 같습니다:

그텝1. icon1 를 클릭하여 포인트 클라우드 충돌 감지 기능 사용 여부를 선택하세요. 주의해야 할 것은 포인트 클라우드 충돌 감지 기능을 사용하려면 Mech-Vision에서 发送点云到外部服务 스텝을 먼저 사용해야 합니다.

스텝2. 포인트 클라우드를 팔진트리 충돌 모델로 전환하는 픽셀을 설정하세요. 여기서 말하는 픽셀은 포인트 클라우드를 복셀 입방체로 전환할 때 복셀마다의 변 길이를 가리킵니다. 같은 포인트 클라우드의 픽셀이 낮을 수록 전환된 복셀 입방체의 수량이 더 많고 계산 결과가 더 정확하지만 시간이 더 오래 걸립니다. 반면에 픽셀이 높을 수록 전환된 복셀 입방체의 수량이 더 적고 계산 결과가 그리 정확하지는 않지만 시간을 절약할 수 있습니다.

주의

포인트 클라우드 충돌 감지를 할 때 사실은 엔드 이펙터와 포인트 클라우드의 포인트가 아닌 복셀 입방체와의 충돌을 감지하는 것입니다.

스텝3. icon2 를 통해 피킹된 물체의 포인트 클라우드를 삭제할지를 선택하세요.

스텝4. XY평면에 추가로 제거된 길이Z축 정방향 추가로 제거된 길이 의 파라미터를 설정하세요. 여기서 말하는 길이는 포인트 클라우드를 제거할 때 설정된 파라미터 길이 범위 내에 있는 포인트 클라우드를 추가로 제거하는 것을 말합니다.

  1. XY평면에 추가로 제거된 길이 의 파라미터는 너무 큰 값으로 설정하면 주변에 충돌 감지가 필요한 포인트 클라우드도 함께 제거할 수 있으니 너무 크게 설정하지 마세요.

  2. 포인트 클라우드의 파동으로 인한 이상한 상황을 피하기 위해 Z축 정방향 추가로 제거된 길이 의 파라미터를 적당히 크게 설정해도 됩니다.

설정이 완료된 후 생성된 충돌 감지 시니라오에는 비전 결과가 포함됩니다. 이 때 진행되는 충돌 감지는 시나리오의 충돌, 자체 충돌 및 포인트 클라우드의 충돌입니다. 아래의 그림과 같습니다:

../../../../../_images/collision-detection-combination_2.png

여기까지는 전반에서 포인트 클라우드 충돌 감지를 설정하는 방법을 소개하였습니다. Mech-Viz에서 일부 이동 태스크 모듈에 대해 포인트 클라우드 충돌 감지를 따로 설정할 수 있습니다. 자세한 정보는 移动类通用参数介绍 를 참고하세요.

엔드 이펙터 구성

엔그 이펙터의 충돌 감지 기능은 기본적으로 항상 켜져 있습니다. 엔드 이펙터의 구성은 주로 STL혹은 OBJ 파일 포맷을 선택하고 해당 파라미터에 대해 설정하는 것입니다.

STL와 OBJ 모델의 차이점은 다음과 같습니다: STL 포맷은 3차원 물체의 표면 모양만 설명하므로 이 모델을 사용하는 경우에 Mech-Viz는 모델 표면과 포인트 클라우드 간의 충돌만 감지합니다. OBJ 포맷은 여러 개의 솔리드 볼록다면체의 결합체라서 Mech-Viz는 모델 표면 및 내부와 포인트 클라우드 간의 충돌을 감지합니다.

  • 아래의 그림과 같이 STL 포맷 의 엔드 이펙터는 포인트 클라우드와의 충돌 포인트 역치포인트 클라우드와의 총돌 면적 역치 설정해야 합니다.

../../../../../_images/collision-detection-setting_2.png

포인트 클라우드와의 충돌 포인트 역치 는 피킹 시 모델 표면에서 충돌을 발생하는 포인트 클라우드 수량의 역치를 가리킵니다.

포인트 클라우드와의 총돌 면적 역치 는 포인트 클라우드가 한 궤적에서 모델 표면을 휩쓸어 가는 면적의 역치를 가리킵니다.

  • 아래의 그림과 같이 OBJ 포맷 의 엔드 이펙터는 포인트 클라우드와의 총돌 부피 역치 만을 설정해야 합니다.

../../../../../_images/collision-detection-setting_3.png

포인트 클라우드와의 총돌 부피 역치 는 충돌 감지 시 엔드 이펙터와 포인트 클라우드간의 충돌 부피의 역치를 가리킵니다.

전략 선택할 때의 최적 포즈 는 STL와 OBJ 엔드 이펙터가 모두 설정해야 하는 파리미터입니다. 아래의 그림과 같이 지정된 비전 포즈 X/Y축 회전과의 차가 가장 작은 포즈X/Y축 회전 범위내 충돌이 가장 작은 포즈 등 두 가지의 포즈를 선택할 수 있습니다.

../../../../../_images/collision-detection-setting_4.png

지정된 비전 포즈 X/Y축 회전과의 차가 가장 작은 포즈 란 비전 이동을 통해 출력한 순서가 정해진 포즈가 《지정된 포즈》로 여기고 지정된 포즈의 X/Y축 회전 각도가 가장 작은 포즈에 대해 충돌 감지를 진행하는 것입니다.

X/Y축 회전 범위내 충돌이 가장 작은 포즈 란 X/Y축 대칭성을 갖는 모든 포인트 클라우드의 충돌을 계산하고 충돌 정도를 작은 것부터 큰 것으로 순서를 배열하는 것입니다.

주의

위에서 언급된 두 가지의 파라미터는 모두 포즈의 대칭성을 전제로 하는 것입니다.

로봇 관절 구성

로봇 관절의 충돌 감지 기능은 기본적으로 항상 켜져 있습니다. 로봇 관절 구성은 주로 로봇 관절가 포인트 클라우드와의 충돌 감지 파라미터에 대해 설정하는 것입니다. 아래의 그림과 같습니다.

../../../../../_images/collision-detection-setting_5.png
  • 로봇은 손목,위팔 ,아래팔 및 베이스로 구성되어 있습니다. 사용자들은 총돌 감지 페이지에서 포인트 클라우드와 충돌 감지를 해야 하는 분위를 선택할 수 있으며 선택된 분위는 하이라이트로 표시될 것입니다.

../../../../../_images/four_chose.png
  • 충돌 부피 역치 는 충돌 감지 시 로봇가 포인트 클라우드와의 충돌 부피 역치를 가리킵니다. 하지만 로봇은 STL 포맷의 모델이라서 모델 표면과 포인트 클라우드 간의 충돌만 감지하기 때문에 여기서 말하는 충돌 부피는 로봇 표면과 복셀의 충돌 포인트의 개수 및 복셀 부피가 곱한 결과입니다.

피킹된 물체 구성

충돌 감지에 타겟 물체 유형은 주로 직육면체및 비 직육면체로 나눠집니다. 완전히 다른 물체 유형이지만 설정해야 할 파라미터가 비슷합니다. 단, 두 가지 물체의 모델 및 정보 도입 과정은 많이 다릅니다. 모델 구성에 관한 내용은 충돌 모델 구성 을 참고하세요.

  • 직육면체: 포인트 클라우드와의 충돌을 감지할 때 상자가 기본 기학체로서 완전한 충돌을 감지하기가 가능합니다. 아래의 그림과 같이 이런 경우에 타겟 직육면체가 이동 과정에서 발생한 포인트 클라두드와의 충돌를 감지하며 충돌 부피에 대해 역치 파라미터를 설정해야 합니다.

../../../../../_images/collision-detection-setting_6.png

피킹된 물체 유형 아래에 하부 안전 거리를 설정할 수 있습니다. 주요 목적은 다음 그림과 같이 상자가 이동할 때 이미 배치된 상자와의 충돌을 피하기 위해 더 안전한 배치 궤적을 선택할 수 있도록 피킹된 상자의 충돌 모델의 하부를 두껍게 만드는 것입니다.

../../../../../_images/collision-detection-setting_7.png ../../../../../_images/collision-detection-setting_8.png

현재 이 기능은 혼합 팔레타이징 시나리오에만 사용되고 반드시 켜져야 합니다. 설정 방식은 매우 간단하고 icon3 를 클릭하여 하부 안전 거리를 설정하는 기능을 켜고 원하는 값으로 설정하면 됩니다(추천 값:80mm-120mm).

설정이 완료된 후 생성된 충돌 감지 시니라오에는 피킹된 직육면체가 포함됩니다. 이 때 진행되는 충돌 감지는 시나리오의 충돌, 자체 충돌, 포인트 클라우드와의 충돌 및 피킹된 직육면체와의 충돌입니다. 아래이 그림과 같습니다:

../../../../../_images/collision-detection-combination_3.png
  • 비 직육면체충돌 부피 역치 를 설정해야 합니다. 하지만 주의해야 할 것은 이 역치는 피킹된 비직육면체와 인식된 다른 물체 간의 충돌을 판단하는 데도 사용되기 때문에 인식되지 못하는 물체의 포인트 클라우드와의 충돌 부피를 역치로 설정해야 합니다.

위에서 언급된 두 가지 물체는 모두 인식된 물체의 포인트 클라우드를 제거해야 하며 이 기능은 포인트 클라우드 구성 에서 icon2 를 클릭함으로써 구성할 수 있습니다.

설정이 완료된 후 생성된 충돌 감지 시니라오에는 피킹된 비직육면체가 포함됩니다. 이 때 진행되는 충돌 감지는 시나리오의 충돌, 자체 충돌, 포인트 클라우드와의 충돌 및 피킹된 비직육면체와의 충돌입니다. 아래이 그림과 같습니다:

../../../../../_images/collision-detection-combination_4.png