---
# System prepended metadata

title: gipick_mgr

---

# gipick_mgr

## Description

程式運行主控node

## Topic

### Publish:

- /gipick_mgr/server_ip (`std_msgs::String`)
    - 顯示電腦ip
- /gipick_mgr/is_connect_robot (`std_msgs::Int8`)
    - 顯示連線狀態
- /log/info (`gipick_info::log_message`)
    - log訊息
- /log/warning (`gipick_info::log_message`)
    - log訊息
- /log/debug (`gipick_info::log_message`)
    - log訊息
- /match_result (`sensor_msgs::PointCloud2`)
    - 顯示gipick_match回傳的點雲
- /gipick_mgr/model_frame (`geometry_msgs::PoseArray`) 
    - 顯示轉置後的waitpoint
- /gipick_mgr/robot_joint_state (`moveit_msgs::DisplayRobotState `)
    - 顯示從手臂端送出的六軸Joint值
- /scanner_result （`sensor_msgs::PointCloud2`）
    - 顯示從gipick_scanner回傳的點雲
- /gipick_mgr/robot_type (std_msgs::String)
    - 顯示從manipulators.json讀取到的手臂名子
    
### Subscribe:


## Service

### Server:

- /model_setting (` mgr_model_info.srv`[^first]) 
    - 設定model
- /gipick_mgr/ip_setting (`mgr_robot.srv`[^second]) 
    - 設定ip
- /gipick_mgr/robot_type (`mgr_robot.srv`[^second]) 
    - 設定手臂endian，已沒在用 
- /gipick_mgr/link_robot (`mgr_robot.srv`[^second]) 
    - 手臂連線或斷開
 
### Client:

- /match_models (`model_match.srv`)
    ```
    int32 type
    string scene_filename
    sensor_msgs/PointCloud2 cloud_scene

    ---
    int32 ret
    bool match_result
    string[] result_index
    std_msgs/Int32MultiArray result_percentage
    geometry_msgs/PoseArray pose
    geometry_msgs/PoseArray model_frame
    sensor_msgs/PointCloud2 return_cloud
    sensor_msgs/PointCloud2 cloud_scene

    ```
- /StartMatch_Async (`model_match.srv`)    
    ```
    int32 type
    string scene_filename
    sensor_msgs/PointCloud2 cloud_scene

    ---
    int32 ret
    bool match_result
    string[] result_index
    std_msgs/Int32MultiArray result_percentage
    geometry_msgs/PoseArray pose
    geometry_msgs/PoseArray model_frame
    sensor_msgs/PointCloud2 return_cloud
    sensor_msgs/PointCloud2 cloud_scene
    ```
-  /GetMatch_Async (`model_match.srv`)
    ```
    int32 type
    string scene_filename
    sensor_msgs/PointCloud2 cloud_scene

    ---
    int32 ret
    bool match_result
    string[] result_index
    std_msgs/Int32MultiArray result_percentage
    geometry_msgs/PoseArray pose
    geometry_msgs/PoseArray model_frame
    sensor_msgs/PointCloud2 return_cloud
    sensor_msgs/PointCloud2 cloud_scene
    ```
- /object_cover (`model_object.srv `)
    ```
    int32 type
    string filename
    string index
    string model_name
    sensor_msgs/PointCloud2 model_cloud
    float32 subsample
    float32 resample_distance_create
    int32 max_num
    float32 min_score
    float32 resample_distance_find
    float32 keypoint_fraction
    int32 match_score
    geometry_msgs/Pose model_frame
    bool is_selected
    ---
    int32 ret
    string model_index
    string model_name
    sensor_msgs/PointCloud2 model_cloud
    float32 subsample
    float32 resample_distance_create
    int32 max_num
    float32 min_score
    float32 resample_distance_find
    float32 keypoint_fraction
    int32 match_score
    geometry_msgs/Pose model_frame
    bool is_selected

    ```
- /moveit_call (`moveit_setting.srv `)
    ```
    moveit_interface interface
    ---
    int8 PLAN_SUCCESS = 0
    int8 ERROR_IK_FAIL = 1
    int8 ERROR_PRE_PLAN_FAIL = 2
    int8 ERROR_JOINT_PLAN_FAIL = 3
    int8 ERROR_MULTI_PLAN_FAIL = 4
    int8 ERROR_ROTATE_OVER_LIMIT = 5
    int8 ERROR_COMMAND_FAIL = -1

    int32 error_code
    geometry_msgs/Pose pose
    trajectory_msgs/JointTrajectory[] trajectory_paths
    int32 current_pose_index

    ```
- /scan_command (`scanner_scan_result.srv`)
    ```
    int64 command
    string camera_ip
    ---
    bool return_value
    sensor_msgs/PointCloud2 cloud
    shape_msgs/Mesh mesh
    sensor_msgs/Image depth_map
    sensor_msgs/Image segmentation_map
    int64 depth_map_width
    int64 depth_map_height
    int64[] depth_map_offset
    int64 depth_map_x_offset
    int64 depth_map_y_offset
    int64 depth_map_z_offset

    ```
## Parameter server

## Others (tcp communication protocol etc..) 


[^first]: `mgr_model_info.srv`

    ```
    mgr_model model
    sensor_msgs/PointCloud2 model_cloud
    uint8 command
    uint8 ADD = 1
    uint8 MODIFY = 2
    uint8 DELETE = 3
    ---
    bool return_code

    ```
    
[^second]: `mgr_robot.srv`

    ```
    string ip
    uint16 port

    uint8 robot_socket_status
    uint8 CONNECTED = 1
    uint8 LISTENING = 2
    uint8 DISCONNECT = 3

    bool enable_robot_connect
    uint8 robot_type
    uint8 ABB = 0
    uint8 FANUC = 1

    string robot_log
    ---
    bool return_code
    ```