엔드 이펙터와 물체¶
클램프 모델 로딩¶
포인트 클라우드 충돌 감지를 진행해야 하는 프로젝트에는 반드시 클램프 모델을 로드해야 합니다. 보통 충돌 모델만 추가하고 3D 모델을 추가하지 않습니다.
이유:
1.충돌 모델의 프로젝트 폴더가 더 작기 때문입니다. 3D 모델의 메모리 용량은 충돌 모델의 약 3배입니다.
2.편집하기가 더 쉽기 때문입니다. 클램프가 이동해야 할 때 충돌 모델만 추가하는 경우에 한번만 설정하면 되며 3D 모델과 충돌 모델을 모두 추가하는 경우에 각각 설정해야 합니다.
3.3D 모델과 충돌 모델 간의 불일치 문제를 방지해서 충돌 감지의 결과가 예상에 부합하도록 할 수 있습니다.
또한 충돌 모델은 최대한 대략적이고 세부 사항은 삭제해야 하며 충돌 감지에 필요한 윤곽선만 사용하면 됩니다. 그렇지 않으면 소프트웨어의 계산 속도를 낮출 수도 있습니다.
binvox 충돌 모델¶
포인트 클라우드 충돌 감지에 대해 고정밀도를 요구하는 시나리오에서 binvox 클램프 모델을 사용하는 것이 좋습니다. 가능하면 다른 시나리오에서도 binvox 모델을 사용하길 바랍니다.
SolidWorks 등 CAD 소프트웨어를 사용하여 모델을 STL, wrl 등 형식으로 저장할 수 있습니다.
STL 모델을 통해 전환된 binvox 모델은 윤곽선만 표시되는 충돌 모델입니다.
wrl 파일을 통해 전환된 binvox 모델은 완전한 충돌 모델입니다.
완전한 충돌 모델을 사용하면 충돌 정도(마찰/충돌)를 더 정확하게 판단할 수 있지만 계획 시간이 더 오래 걸립니다.
“生成binvox.zip”를 다운로드하고 압축을 푼 후 해당 폴더 아래에 notepad++를 통해 generate_binvoxes.py파일을 열어 아래의 그림과 같이 폴더 경로를 STL 모델이 저장된 폴더 경로로 수정해야 합니다. 주의해야 할 것은 “r”를 삭제하면 안됩니다. generate_binvoxes.py를 저장한 다음에 두번 클릭하여 실행하면 됩니다.
실행 후 해당 경로 폴더 아래에 있는 모든 STL와 wrl 모델이 binvox 모델로 전환될 것입니다.
주의
전환될 STL 모델은 ASCII 형식만 지원합니다 . 이진법 형식을 사용하면 안 됩니다. 원래의 STL 모델이 이진법 모델이라면 Mech-Viz를 통해 3D 모델을 추가한 다음에 프로젝트를 저장하면 됩니다. 이렇게 하면 원래의 모델이 프로젝트 폴더에 있는 end_effectors/3d_models 폴더에서 ASCII 형식으로 저장될 것입니다. 아래의 그림과 같습니다:
로딩 후의 binvox 모델:
gridSize를 수정함으로써 binvox 모델의 세밀도를 조정할 수 있습니다:
미터와 밀리미터의 단위 전환 문제로 인해 로딩 후 시나리오에 표시된 binvox 모델이 매우 큰 경우도 있습니다. 이 때 notepad++를 통해 binvox 파일을 열어 scale 및 translate 를 1,000배 축소하고 나서 모델을 다시 로드하면 됩니다.
차겟 물체 구성(궤적 계획에 사용됨)¶
모든 타겟 물체가 해당하는 물체 포즈 를 갖춥니다. 소프트웨어가 물체 포즈 에 의해 툴 포즈 를 계산하고 로봇이 피킹하도록 제어합니다.
대칭성 및 피킹 허용 오차¶
- 대칭성:
실제 작업 현장에 나타나는 타겟 물체와 피킹 포즈가 대칭성을 갖는 경우가 많습니다. 대칭성에 관한 자세한 사항은 대칭성 를 참고하세요.
- 피킹 허용 오차:
클램프(특히 빨판)와 물체 자체가 갖는 유연성으로 피킹 시 클램프와 물체 간에 일정한 오차가 존재해도 피킹할 수 있습니다. 피킹 허용 오차를 설정함으로써 로봇이 자발적으로 충돌 혹은 특이점 등 문제를 피할수 있게 됩니다. 최적의 운동 궤적을 계획하기 위해 피킹 시 Mech-Viz가 피킹 포즈의 대칭성, 피킹 허용 오차 및 물체 대칭성을 모두 고려하고 배치할 때 물체 대칭성에 의해 포즈를 선택할 것입니다.
주의
피킹 포즈의 대칭성과 피킹 허용 오차에 대해 구분할 필요가 있는지가 Mech-Vision 프로젝트의 출력 결과에 달립니다. Mech-Vision 프로젝트에서 “많은 피킹 포즈에 매칭하기”란 스텝이 사용되는 경우에만 두 개념을 구분해야 하고 단순히 포즈만 출력하는 Mech-Vision 프로젝트에는 피킹 포즈의 대칭성과 피킹 허용 오차가 같은 효과를 갖습니다.
대칭성 및 피킹 허용 오차에 대한 설명¶
피킹 포즈의 대칭성
피킹 포즈의 대칭성은 툴을 사용하여 물체를 피킹하는 방식과 관련이 있으며 최적의 피킹 포즈를 선택하는 데 사용됩니다. 아래 그렘에 표시되는 바와 같이 설정하면 됩니다.
더 많은 정보는 피킹 포즈 대칭성 를 참고하세요.
물체의 대칭성 및 피킹 허용 오차
물체 레이블:视觉移动 스텝에서 출력된 포즈가 레이블을 갖는 경우 여기서 대응하는 레이블을 검색하고 설정된 해당 유형 물체의 대칭성을 사용합니다. 대응하는 레이블을 못 찾는 경우 “디폴트”레이블과 대응하는 대칭성을 사용할 것입니다. “디폴트”레이블을 삭제하면 안 되고 다른 레이블은 사용자들이 자체 추가하거나 삭제할 수 있습니다.
회전 대칭:X축과 Y축 대칭 둘 중 하나만 설정할 수 있습니다(Z축은 이 설정의 영향을 받지 않음). 일반적으로 X축과 Y축 대칭을 모두 가지고 있는 물체가 구이며 실제로 이러한 경우가 거의 없기 때문입니다. 구에 대해 대칭성을 설정하려면 대칭성이 아닌 피킹 허용 오차를 통해 설정해야 합니다.
피킹 허용 오차:피킹 허용 오차는 X축과 Y축의 허용 오차를 동시에 설정할 수 있으며 실제 응용 시 따로 적용됩니다. 즉 기준 포즈가 X축혹은 Y축을 중심으로 회전할 수 있지만 동시에 두개의 축을 중심으로 회전하지 않을 것입니다. 또한 피킹 허용 오차와 물체 대칭성의 대칭축을 선택할 때 같은 축을 선택하면 안됩니다. 예를 들어 아래의 그림에 표기되는 바와 같이 X축 대칭성을 선택하면 X축 허용 오차를 선탁하지 못합니다.
물체X/Y축 대칭성 및 피킹 허용 오차의 차이
물체 X/Y축 대칭성은 엔드 이펙터와 물체가 X/Y축에 있는 상대 위치가 변하면 안되고 물체를 배치할 때 물체 포즈에 대해 명확한 요구가 있는 시나리오에 사용됩니다. 예를 들어 크랭크 축 피킹 시나리오에 크랭크 축을 배치할 때 X축의 회전 각도에 대해 특정한 요구가 있는 경우가 많습니다. 이때 크랭크 축이 배치 시 요구되는 각도에 의해 정확하게 배치될 수 있도록 X축 대칭성을 설정해야 합니다.
피킹 허용 오차는 엔드 이펙터와 물체가 X/Y축에 있는 상대 위치가 변해도 되는 시나리오에 사용됩니다. 예를 들어 빨판으로 물체를 피킹하는 시나리오에서 빨판과 물체 간에 사소한 각도 차이가 있어도 빨판의 유연성으로 여전히 물체를 성공적으로 피킹할 수 있습니다. 아래의 그림과 같습니다:
클램프로 부품을 피킹하는 시나리오도 마찬가지입니다. 예를 들어 크랭크 축 혹은 체인 링크 피킹 시 X/Y 축에서 작은 각도 편차가 허용되면 피킹 시 타겟 물체가 클램프와 딱 맞춰 물체를 피킹할 수 있습니다.
설정이 정당하지 않으면 계획 시간이 오래 걸릴 수도 있습니다.
피킹 포즈 대칭성, 물체 대칭성 및 피킹 허용 오차를 동시에 사용하면 최종의 시도 횟수는 이 세 가지 파라미터의 설정된 수치의 곱이기 때문에 잘못된 설정으로 인해 시도 횟수가 많아지고 계획 간이 너무 길어져서 Mech-Viz가 응답하지 않을 수 있습니다. 시도 횟수가 1500회를 초과해서 Mech-Viz에서 경고 알림이 나타나면 아래 그림과 같이 각 포즈의 시도 횟수표를 펼치기 를 클릭하여 자세한 정보를 확인할 수 있습니다.
최적 피킹 전략(피킹 태스크가 비전 이동일 때 적용됨)¶
현재 디폴트, 최소 전체 회전 그리고 최소 비전 포즈와의 회전 차액 등 세 가지의 모드를 선택할 수 있습니다.
주의
1.4.0 버전에서 《디폴트》와 《최소 전체 회전》의 효과가 같습니다.
최소 전체 회전:이 모드를 선택하면 《피킹-배치》 전 과정에서 피킹 포즈의 최소 Z축 회전 원칙에 의해 대칭성을 설정할 것입니다. 이 모드의 장점은 물체를 피킹한 후 로봇의 불필요한 회전 혹은 타겟 물체가 떨어질 위험을 피할 수 있다는 것입니다.
최소 비전 포즈와의 회전 차액:어떤 특별한 시나리오에서 더 나은 피킹 효과를 얻기 위해 Mech-Vision가 엔드 이펙터의 회전을 유도해야 합니다.
로봇의 클램프가 아래의 그림과 같습니다. 타겟 물체는 임의의 각도 대칭을 갖는 원기둥체입니다. 간섭이 없는 경우에 클램프가 임의의 Z축 각도로 물체를 피킹할 수 있습니다. 하지만 깊은 피킹 용기의 테두리 부분에 위치하는 물체를 피킹할 때 “최소 전체 회전”모드를 선택하면 실제 피킹 시 클램프가 용기 벽에 붙여서 피킹하여 충돌 가능성이 매우 큽니다. 이때 Mech-Vision을 통해 실제 피킹 시의 Z축 각도를 계산할 수 있습니다. 예를 들어 Mech-Vision 프로젝트에서 피킹 용기의 테두리 부분에 위치하는 물체의 X축은 모두 용기 중심점으로 가리키도록 설정함으로써 최소 비전 포즈와의 회전 차액을 유지하여 클램프가 물체를 피킹할 때 용기에서 최대한 정도 멀리 떨어져 있어 안전성을 크게 향상시킬 수 있습니다.
위에서 언급한 시나리오에 대해 피킹 결과를 최적화하려면 Mech-Vision 프로젝트에서 용기 중심과 내벽에 대해 서로 다른 레이블을 지정하여 Mech-Viz에서 이 두 가지의 레이블에 대해 따로 편집합니다. 용기 중심에 위치하는 물체는 최소 전체 회전 원칙에 의해 불필요한 회전을 줄이며 내벽에 위치하는 물체는 최소 비전 포즈와의 회전 차액 원칙에 의해 Mech-Vision 유도에 따라 보다 안전적인 피킹 포즈를 선택합니다.
타겟 물체의 사이즈¶
물체의 레이블과 상관없이 전반에서 이 파라미터는 하나만 있습니다. 피킹 태스크가 비전 이동이 아닌 경우에 적용되고 피킹 물체의 사이즈를 결정하는 것으로 개발자 테스트에 많이 사용됩니다.