# 1.1 자동연결 및 로봇 제어

## :link:자동연결(Auto-Connect)

HUENIT LAB에서 로봇팔을 제어하기 위해 우선 소프트웨어에 로봇팔을 연결해야 한다.&#x20;

1. HUENIT 로봇팔을 PC에 연결한다.

* 로봇팔의 <mark style="color:red;background-color:yellow;">DC IN</mark> 포트에 전원 선을 연결하고, <mark style="color:red;background-color:yellow;">PC</mark> 포트에 C-type 케이블로 PC와 연결한다.&#x20;

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FcqXBaHKAHhswm1ZUffxf%2Fimage.png?alt=media&#x26;token=63a5bc4e-b7ec-4d00-b7a8-c866a7d0c748" alt=""><figcaption></figcaption></figure>

2. <mark style="background-color:purple;">\[자동 연결]</mark> 버튼을 클릭하여 HUENIT LAB에 로봇팔을 연결한다.&#x20;

{% hint style="danger" %}
다음과 같이 <mark style="background-color:red;">connection 에러</mark>가 발생할 경우, 로봇팔이 PC에 제대로 연결되지 않은 것이다. \
![](https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2F7UMizSnCBM03HcLVbJEt%2Fimage.png?alt=media\&token=416a6c80-519a-460d-93cd-1356731ae2b8)
{% endhint %}

* "성공입니다" 라는 팝업이 보여지면 로봇팔이 소프트웨어 제대로 연결된 것이다.

{% hint style="danger" %}
로봇팔과의 자동 연결 도중에는 <mark style="color:purple;">`[컨트롤]`</mark> 탭 내의 다른 버튼들을 클릭할 수 없습니다.&#x20;
{% endhint %}

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FSiuIVdo7aBd4E0ZnHVvj%2F%E1%84%8C%E1%85%A6%E1%84%86%E1%85%A9%E1%86%A8%20%E1%84%8B%E1%85%A5%E1%86%B9%E1%84%82%E1%85%B3%E1%86%AB%20%E1%84%83%E1%85%B5%E1%84%8C%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AB%20(1).gif?alt=media&#x26;token=87385ae0-3ea2-44d1-8294-8e553506391d" alt=""><figcaption></figcaption></figure>

***

## :robot: 로봇 움직임 제어

{% hint style="warning" %}
로봇팔이 이미 이전의 제어 명령을 수행하고 있는 동안에 새로운 제어 버튼을 계속해서 클릭할 경우, 오류가 발생할 수 있다. 그러므로 모든 동작이 멈춘 후에 새로운 동작을 수행해야 한다.&#x20;
{% endhint %}

\[컨트롤] 탭의 오른쪽 영역에 있는 **\[컨트롤 영역]**&#xC5D0;서 로봇팔을 제어할 수 있다.&#x20;

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2Fki9Megat98ZJhALkNBHP%2Fcontrol-control.png?alt=media&#x26;token=8900d46a-1c16-4d4f-b20f-5d50a4db2152" alt=""><figcaption></figcaption></figure>

***

### 1) 움직임 폭 & 로봇 제어(버튼식)

* 총 12개의 버튼(1개의 홈 버튼, 11개의 방향 버튼)을 이용하여 원하는 방향으로 로봇팔을 제어할 수 있다.&#x20;

<div align="center"><figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2F5hwG1W0vbsFEixb5sylJ%2Fcontrol-move1.png?alt=media&#x26;token=a744f104-4326-415a-9abe-6428990f5854" alt="" width="375"><figcaption></figcaption></figure></div>

* ![](https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2F268Po1UF1UhSq0nnKrqS%2Fimage.png?alt=media\&token=c6999bfa-0c5c-48ec-b76d-ae4317dd56cb)(홈) 버튼을 제외한 11개의 방향 버튼들은 <mark style="color:purple;">\[움직임 폭]</mark>에서 설정한 폭 만큼 선택한 방향으로 로봇팔이 이동한다.&#x20;

  <figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FWdGmT72zdJ3RSGjAwoG4%2Fimage.png?alt=media&#x26;token=5981145c-1aac-43aa-a260-2f9fcb054782" alt="" width="363"><figcaption><p>[움직임 폭]</p></figcaption></figure>

  <mark style="color:purple;">\[움직임 폭]</mark>의 단위는 <mark style="background-color:yellow;">mm(밀리미터)</mark>이고, 0.1/1/10 뿐만 아니라 원하는 값을 지정할 수 있다.&#x20;
* ![](https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2F268Po1UF1UhSq0nnKrqS%2Fimage.png?alt=media\&token=c6999bfa-0c5c-48ec-b76d-ae4317dd56cb)(홈) 버튼 클릭 시, HUENIT 로봇팔의 홈 위치인 X = 0 , Y = 180, Z = 0 위치로 이동한다.

***

#### <mark style="background-color:purple;">X 축 이동</mark>

HUENIT 로봇팔을 다음과 같이 뒷면에서 바라 본 채, X-(마이너스) 방향과 X+(플러스) 방향 그리고 원점(X = 0) 상태일 때의 로봇팔의 방향을 살펴보면 다음과 같다.&#x20;

{% hint style="warning" %} <mark style="color:purple;">**현재 Y좌표와 Z좌표의 값에 따라 이동할 수 있는 X좌표의 범위가 항상 달라진다.**</mark> \*(Y좌표와 Z좌표도 마찬가지이다.)
{% endhint %}

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2Fe0W5GT7EggQ75XDnDEdE%2Fimage.png?alt=media&#x26;token=4f5205a8-be6f-4fdc-b515-80403362ce74" alt="" data-size="line">좌표 : (X = -200, Y = 120, Z = 0)

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FJpTd4JCweoPWJAYwM8UM%2Fimage.png?alt=media&#x26;token=29dae80d-5098-4a8e-a8b8-acb93e14d18c" alt="" data-size="line">좌표 : ![](https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2F268Po1UF1UhSq0nnKrqS%2Fimage.png?alt=media\&token=c6999bfa-0c5c-48ec-b76d-ae4317dd56cb)홈 위치(X = 0, Y = 180, Z = 0)&#x20;

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FttSUUsF4oIDhXdWEno5l%2Fimage.png?alt=media&#x26;token=a5c69931-33e1-4b86-a115-90f8d49e0e21" alt="" data-size="line">좌표 : (X = 200, Y = 120, Z = 0)

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FiHL681LpIvs4qs7X7Fa6%2F%E1%84%85%E1%85%A9%E1%84%87%E1%85%A9%E1%86%BA%20X%E1%84%8E%E1%85%AE%E1%86%A8%20%E1%84%89%E1%85%A5%E1%86%AF%E1%84%86%E1%85%A7%E1%86%BC2.png?alt=media&#x26;token=64dad853-5170-4402-b7dd-042d88a6acae" alt=""><figcaption></figcaption></figure>

***

#### <mark style="background-color:purple;">Y 축 이동</mark>

HUENIT 로봇팔을 다음과 같이 좌측에서 바라 본 채, X좌표는 0으로 고정하고 Y-(마이너스) 방향과 Y+(플러스) 방향으로의 움직임을 살펴보면 다음과 같다.&#x20;

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2Fe0W5GT7EggQ75XDnDEdE%2Fimage.png?alt=media&#x26;token=4f5205a8-be6f-4fdc-b515-80403362ce74" alt="" data-size="line">좌표 : (X = 0, Y = 130, Z = 0)

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FJpTd4JCweoPWJAYwM8UM%2Fimage.png?alt=media&#x26;token=29dae80d-5098-4a8e-a8b8-acb93e14d18c" alt="" data-size="line">좌표 : (X = 0, Y = 370, Z = 0)

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FQiV1PYaaoxQGAWYpliT0%2F%E1%84%85%E1%85%A9%E1%84%87%E1%85%A9%E1%86%BA%20y%E1%84%8E%E1%85%AE%E1%86%A8%20%E1%84%89%E1%85%A5%E1%86%AF%E1%84%86%E1%85%A7%E1%86%BC.png?alt=media&#x26;token=25fd2d1b-944d-4773-9845-0f93576a738e" alt=""><figcaption></figcaption></figure>

하지만, Y 좌표가 그렇다고 해서 항상 양수(플러스)값은 아니다. X좌표가 -100일 때, Y축 방향으로의 움직임을 살펴보면 다음과 같다.&#x20;

{% hint style="warning" %}
X 좌표가 -100인 지점에서 Y축이 -300부터 -100까지 이동이 가능하다고 해서 항상 Y좌표의 이동 범위가 -300에서 -100인 것은 아니다. <mark style="color:purple;">**현재 X좌표와 Z좌표의 값에 따라 이동할 수 있는 Y 좌표의 범위가 항상 달라진다.**</mark> \*(X좌표와 Z좌표도 마찬가지이다.)
{% endhint %}

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FBBWRvZMLUS0zCWquyGHc%2Fx%3D-100%E1%84%8B%E1%85%B5%E1%86%AF%E1%84%84%E1%85%A2%20Y%E1%84%8E%E1%85%AE%E1%86%A8%20%E1%84%87%E1%85%A7%E1%86%AB%E1%84%92%E1%85%AA.png?alt=media&#x26;token=739b065a-5c4d-43b5-a64b-74a365dfecc1" alt=""><figcaption></figcaption></figure>

***

#### <mark style="background-color:purple;">Z 축 이동</mark>

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2Fe0W5GT7EggQ75XDnDEdE%2Fimage.png?alt=media&#x26;token=4f5205a8-be6f-4fdc-b515-80403362ce74" alt="" data-size="line">좌표 : (X = 0, Y = 235, Z = 145)

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FJpTd4JCweoPWJAYwM8UM%2Fimage.png?alt=media&#x26;token=29dae80d-5098-4a8e-a8b8-acb93e14d18c" alt="" data-size="line">좌표 : (X = 0, Y = 235, Z = 0)

<img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FttSUUsF4oIDhXdWEno5l%2Fimage.png?alt=media&#x26;token=a5c69931-33e1-4b86-a115-90f8d49e0e21" alt="" data-size="line">좌표 : (X = 0, Y = 235, Z = -85.8)

HUENIT 로봇팔의 X좌표(X:0)와 Y좌표(Y:235)로 고정하고, 좌측에서 Z축의 변화를 살펴보면 다음과 같다.&#x20;

{% hint style="warning" %} <mark style="color:purple;">**로봇의 현재 X좌표와 Y좌표의 값에 따라 이동할 수 있는 Z 좌표의 범위가 항상 달라진다.**</mark> \*(X좌표와 Y좌표도 마찬가지이다.)
{% endhint %}

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FlTPJ1gu7OidhPqecC1eu%2F%E1%84%85%E1%85%A9%E1%84%87%E1%85%A9%E1%86%BA%20Z%E1%84%8E%E1%85%AE%E1%86%A8%20%E1%84%87%E1%85%A1%E1%86%BC%E1%84%92%E1%85%A3%E1%86%BC.png?alt=media&#x26;token=7e967756-5703-4c1a-b6ce-2b43ab59a740" alt="" width="375"><figcaption></figcaption></figure>

***

### 2) 속도 제어

기본 속도가 100으로 설정되어 있고, 아래의 슬라이드를 사용하여 원하는 속도로 조절할 수 있다(1\~400).&#x20;

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FuiMxfAAej31Da2y39JrY%2Fcontrol-speed.png?alt=media&#x26;token=e55dc48b-99de-4593-a20f-691a404baef8" alt="" width="375"><figcaption></figcaption></figure>

좌표1(x=250, y=150, z=0) 와 좌표2(x=-250, y=150, z=0)을 번갈아 이동했을 때, 속도를 10/100/300으로 바꾸어 차이를 확인해보면 다음과 같다.&#x20;

<mark style="background-color:orange;">\[속도 : 10 인 경우]</mark>

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FeMnXbqFTjdY2ZNynrbyN%2F%E1%84%89%E1%85%A9%E1%86%A8%E1%84%83%E1%85%A9%20%2010.gif?alt=media&#x26;token=3f76bc65-c40b-45b7-99d5-cef5c04c3c87" alt=""><figcaption></figcaption></figure>

<mark style="background-color:orange;">\[속도 : 100 인 경우]</mark>

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2F3DBQiLkJSVfvbcK2zYcj%2F%E1%84%89%E1%85%A9%E1%86%A8%E1%84%83%E1%85%A9%20%20100.gif?alt=media&#x26;token=1bc7e5f7-c3dd-403e-b5cc-c102636bdd03" alt=""><figcaption></figcaption></figure>

<mark style="background-color:orange;">\[속도 : 300 인 경우]</mark>

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FHL0EZPrlTomYMpq2mR7z%2F%E1%84%8C%E1%85%A6%E1%84%86%E1%85%A9%E1%86%A8%20%E1%84%8B%E1%85%A5%E1%86%B9%E1%84%82%E1%85%B3%E1%86%AB%20%E1%84%83%E1%85%B5%E1%84%8C%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AB%20(3).gif?alt=media&#x26;token=14f28b77-d949-4cfe-981f-149aa678cdcf" alt=""><figcaption></figcaption></figure>

***

### 3) 목표 위치 지정

로봇팔을 원하는 위치로 이동시킨다. 목표 지점의 X, Y, Z 좌표를 입력하고, \[바로 이동하기] 버튼을 클릭하면 로봇팔이 해당 위치로 이동한다.&#x20;

{% hint style="warning" %}
로봇팔의 현재 위치에서 이동할 수 없는 목표지점을 입력할 경우, 다음과 같은 No reachable(도달할 수 없는) 에러가 발생한다. <img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FUo9qLLGvKAmcULNflPIF%2Fimage.png?alt=media&#x26;token=3876ad14-22ae-4d2c-a7ed-0ef2162e64e9" alt="" data-size="original">&#x20;
{% endhint %}

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FPNqoAdqfNx6qYIQtOWNu%2Fcontorl-move2.png?alt=media&#x26;token=d0d33603-fb1a-4b30-ab47-5395cb79994a" alt="" width="375"><figcaption></figcaption></figure>

***

## :house\_with\_garden: 현재 로봇팔 위치 확인

* 상태(Status)에서는 <mark style="color:purple;">현재 로봇의 X, Y, Z 좌표를 확인</mark>할 수 있다. 컨트롤 패드로 X, Y, Z 좌표를 제어할 때, 움직임 폭 만큼 제어하기 때문에 이동 후 정확한 현재 위치를 확인하기 위해서는 상태에 표시된 값을 확인한다.&#x20;

<figure><img src="https://3075547475-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmpoZH5TMk0ougpcCYECz%2Fuploads%2FbSyU99y2QL2kj0R1dz82%2Fcontrol-status.png?alt=media&#x26;token=d17175c4-f96b-4919-be58-8f0ff1296ca2" alt="" width="375"><figcaption></figcaption></figure>
