> For the complete documentation index, see [llms.txt](https://docs.robpod.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.robpod.cloud/hmi-designer/hmi-components.md).

# HMI Components

You can find in this section details about **HMI components** and how they interact with robot functions and variables.&#x20;

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2F2a5vQNyFnSGUd0ydfiDO%2Flabel.png?alt=media&amp;token=0dc09c7a-a92f-4185-9d22-ae80a9d8c295" alt=""> Label</summary>

Label components are used to display fixed text information.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FQOY48aD1C7hJ1fHP9sSg%2Fbutton.png?alt=media&amp;token=3dfe84c7-629b-4652-ba0a-2ae1972cc486" alt=""> Button</summary>

Buttons are used to let users trigger robot **actions**.

Actions are expressed as robot **commands**. Any valid robot command can be linked to a button.&#x20;

Valid command examples for Universal Robots:

* ```python
  movej([1.56, -1.93, 1.69, -1.33, -1.57, -0.01]) # robot function
  ```
* ```python
  my_function() # user defined function
  ```
* ```python
  x = 100 # assignment
  ```
* ```python
  c = c + 1 # command
  ```

Actions **scope** can be configured as **MAIN** or **BACKGROUND**.&#x20;

The scope parameter is used to determine how the action will be executed by the robot. **MAIN** option is used to execute the command in the main thread, while **BACKGROUND** is used to execute the command inside a new thread.&#x20;

Multiple **BACKGROUND** actions can be executed simultaneously, while **MAIN** actions can be executed just one at time.&#x20;

You can also give the action a **display name** that will be shown on the HMI panel while the action is running.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FlD7xBJvlk1DmWOEJAPNv%2Ftab.png?alt=media&amp;token=e98111bf-ee96-4217-98b4-4a655e1ee944" alt=""> Tab</summary>

Tabs can be used to split the HMI panel in multiple sections.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FYQqDRDvmctCuaZfzJoRJ%2Fmonitor.png?alt=media&amp;token=caa0425b-cf53-430d-a346-9bd1ac077b24" alt=""> Monitor</summary>

Monitors can be used to display live runtime values on the HMI panel.

Monitors can be linked with **robot variables** of any type or with commands returning a value.

Valid linking examples for Universal Robots:

* ```python
  my_variable # user defined variable
  ```
* ```python
  get_actual_joint_positions() # robot function
  ```
* ```python
  my_function() # user defined function
  ```
* ```python
  x + y # command with return value
  ```

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FI2JTMcc6FfDDaXLuyDeg%2Finput.png?alt=media&amp;token=a0cfe021-121b-4156-b1d1-f252e7e499c8" alt=""> Input</summary>

Inputs compnents are used to let users set or change a value assigned to a **robot variable**.

Inputs can be linked with any robot variables with type Int, Float or String.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FNaTXX2O2tMH3JYQFStGv%2FlocalScopeAction.png?alt=media&amp;token=b9ff8d30-f940-40ed-ab04-2a893ebda8dd" alt=""> Pose Input</summary>

Pose Input compnents are used to let users set or change a **robot position** value assigned to a variable.

Pose Inputs can be linked with any robot variables of type **Tool Pose** (cartesian pose) or **Joint Pose**.&#x20;

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FzZAIFisB9lpLD10ZFVtk%2Fimage.png?alt=media&amp;token=4885a314-ff28-4cad-b297-4ae307cf4dcf" alt=""> Image</summary>

Image components are used to display a fixed picture on the HMI panel.

Like buttons images can be used by user trigger robot actions.&#x20;

Actions are expressed as robot **commands**. Any valid robot command can be linked to a button.&#x20;

Valid command examples for Universal Robots:

* ```python
  movej([1.56, -1.93, 1.69, -1.33, -1.57, -0.01]) # robot function
  ```
* ```python
  my_function() # user defined function
  ```
* ```python
  x = 100 # assignment
  ```
* ```python
  c = c + 1 # command
  ```

Actions **scope** can be configured as **MAIN** or **BACKGROUND**.&#x20;

The scope parameter is used to determine how the action will be executed by the robot. **MAIN** option is used to execute the command in the main thread, while **BACKGROUND** is used to execute the command inside a new thread.&#x20;

Multiple **BACKGROUND** actions can be executed simultaneously, while **MAIN** actions can be executed just one at time.&#x20;

You can also give the action a **display name** that will be shown on the HMI panel while the action is running.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FDxIvdwLUHEUCVJYPN6qh%2Fdropdown.png?alt=media&amp;token=447092b1-a6af-47a0-bc61-9cb78412c471" alt=""> DropDown</summary>

DropDown components are used to let users choose a value among a fixed list of elements.

DropDowns are linked to robot variables with type String.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2Fs28B2hpWOyLVlqLdxgoU%2Fcheckbox.png?alt=media&amp;token=9f0573ba-19db-4949-827a-077f77c6f190" alt=""> CheckBox</summary>

CheckBox components are used to let use choose a ON/OFF value.

CheckBoxs are linked to robot variables with type Boolean or Integer.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FrzG1MYUT6VOtdjlht1Q8%2Fslider.png?alt=media&amp;token=012bd56a-d0f1-4ff4-9143-96583d553e6a" alt=""> Slider</summary>

Slider components are used to let users choose a valued inside a fixed range.

Sliders are linked to robot variables with type Integer.

</details>

<details>

<summary><img src="https://175138337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fvxlh3prlGsBGF30oqbYW%2Fuploads%2FtMHVfrROM58j34J424yf%2Fchart.png?alt=media&amp;token=1b322c30-5593-48f4-a41a-0281f9cdca75" alt=""> Chart</summary>

See [HMI Charts](/hmi-designer/hmi-charts.md) section.

</details>
