# 오브젝트 중심의 피킹 시나리오 예

[워크스페이스](../connector/workspace.md)는 협동로봇를 기반으로 하는 여러 커넥터의 집합을 의미하며 일반적으로 협동로봇, 카메라, 오브젝트를 기반으로 동작하도록 고안되어 있다.
워크스페이스 내에 구성된 협동로봇, 카메라, 오브젝트는 개별적으로 태스크를 가지고 있으며 이러한 시나리오 상에서 조합해서 오브젝트 피킹 등의 작업을 수행할 수 있다.

## 특정 오브젝트가 일정 시간 이동 후, 정지했을 때 로봇을 통한 피킹

### 주요 태스크

- marked-object

  - [trackable-object-wait-for-move](../task/trackable-object-wait-for-move.md): tracking의 대상이 되는 object가 정지해 있거나 혹은 tracking-workspace에 설정되어 있는 '상태포즈 경계값'의 범위 이내에 있을 경우에는 다음 스탭으로 이동하지 않고 대기 상태에 있으며 일정 한계 이상 이동하며, 이동한 이후 일정 구간 동안 정지하면 대기 상태에서 풀리면 현재 object의 위치를 반환합니다.

- indydcp-connector

  - [indydcp-move-to-pick](../../integration-indydcp/task/indydcp-move-to-pick.md): 'trackable-object-wait-for-move' 태스크에서 반환된 위치 값을 접근자로 받습니다. 접근자 입력은 'trackable-object-wait-for-move' 태스크를 사용한 스탭 이름이 'WAIT-FOR-MOVE'라면 'WAIT-FOR-MOVE.pose'와 같이 입력합니다. 로봇이 물체에 접근한 이후, 'indydcp-do' 등의 IO 제어 태스크를 통해서 그립퍼 혹은 석션 등을 제어합니다.
  - [indydcp-move-by-pose](../../integration-indydcp/task/indydcp-move-by-pose.md): 'indydcp-move-to-pick'와 'indydcp-do' 등의 태스크를 통해서 로봇이 object를 Picking하면 'indydcp-move-by-pose' 태스크를 통해서 물체를 들어올리는 작업을 수행합니다.
  - [indydcp-move-to-pose](../../integration-indydcp/task/indydcp-move-to-pose.md): 물체를 집어든 로봇을 특정 방향으로 이동하기 위해서 사용합니다.

### 시나리오 구성 예

- 특정 오브젝트가 일정 한계 범위 이상 이동한 이후에 정지하면 로봇이 해당 물체를 피킹하기 위해서 이동합니다.

![wait-for-move-scenario example](../images/wait-for-move-scenario.png 'wait-for-move-scenario example')
