---
# System prepended metadata

title: gipick_mgr node interface document(robot <-> pc)
tags: [robot, gipick_mgr, interface, node]

---

# gipick_mgr node interface document(robot <-> pc)

###### tags: `gipick_mgr`,`interface`, `node`, `robot`

###### verison: `3.9.0`

## Description 

IsReady ->FindObject ->FindPath ->GetModelName ->GetModelIndex -> RunPathF -> RunPathB

GetTrajectoryNumber->GetTrajectoryPoints : 要回所有點

GetPathSize->GetWaypointIndex

### Command: IS_READY=0

詢問 gipick 主程式狀態是不是正常可以運作了, 例如：與 camera 的連線是否正常

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 0 |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

:::info
Remark: 
目前不一定要使用
:::

### Command: FIND_OBJ_C=5

開始進行 掃描, matching, 路徑規劃, 應該搭配 WAIT_OBJ_FOUND 使用, 才可以知道完成了沒


#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 5 |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

:::info
Remark: 
非同步的
:::

### Command: WAIT_OBJ_FOUND=4
 
 執行此 function 會卡住 , 直到 FIND_OBJ_C 找到解才會回傳值
 
#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 4 |

#### Output
|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

### Command: GET_TRAJECTORY_NUMBER=301

取得所有規劃結果的路徑點位數量

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 301 |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |
| unsigned int |  `number_of_points`  | size of trajectory points |

### Command: GET_TRAJECTORY_POINTS=302

給定 trajectory index , 得到對應的 trajectory point 6 axis

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 302 |
| unsigned int | `index` | trajectory index |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |
| float[6] |  `pose`  | 6 axis values |

### Command: SET_START_STATE=350

給定路徑規劃起始位置的 6 axis , 以決定從哪裡開始規劃

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 350 |
| float[6] |  `joint`  | start state 6 axis values |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

### Command: SET_SHOW_STATE=400

給定目前手臂 6 axis, gipick_ui 會顯示目前手臂姿態

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 400 |
| float[6] |  `joint`  | start state 6 axis values |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

### Command: GET_PATH_SIZE=500

得到 size of waypoints 

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 500 |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |
| unsigned int |  `number_of_points`  | size of waypoints |

### Command: GET_WAIT_POINT_INDEX=501

給定 waypoints index, 會回傳對應的 trajectory index

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 501 |
| unsigned int | `index` | waypoints index |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |
| unsigned int |  `number_of_points`  | get each waypoint segment trajectory index |

### Command: AIR_COUNTER=600

//deprecate

### Command: HAND_EYE_CALIBRATION_POSE=700



#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 700 |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

### Command: HAND_EYE_CALIBRATION=701

每到達一個要校正的位置, 給定目前 6 axis , gipick 將會記住此校正資訊

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 701 |
| float[6] |  `joint`  | current 6 axis values |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |

### Command: GET_MODEL_NAME=800

取得目前要去夾取的 model name, path_index 以得知目前要去夾取的是哪種 model , 以及想用哪種方式夾取

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 800 |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| string |  `empty`  | `"return_code,model_name,path_index"` |

### Command: FIND_PATH=801

給定 start_state , 開始路徑規劃

#### Input

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int | `command` | 801 |
| float[6] |  `joint`  | start state 6 axis values |

#### Output

|型態 | 變數名 | 描述 |
| -------- | -------- | -- |
| unsigned int |  `return_code`  | 0 = 正常, 999 = command 長度不對 |
“