From 053701d0170ba64bbc2cbfdfd9e78f5a365fe458 Mon Sep 17 00:00:00 2001 From: Sierra Guequierre Date: Fri, 8 Mar 2024 16:21:30 -0500 Subject: [PATCH] More updates to configure a machine --- assets/build/configure/mode-selector.png | Bin 0 -> 16578 bytes docs/build/configure/_index.md | 136 +++++++++++------------ 2 files changed, 62 insertions(+), 74 deletions(-) create mode 100644 assets/build/configure/mode-selector.png diff --git a/assets/build/configure/mode-selector.png b/assets/build/configure/mode-selector.png new file mode 100644 index 0000000000000000000000000000000000000000..5c45de1ff83ca1d99e83205873bd2ae6501d968b GIT binary patch literal 16578 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 (hardware _{{< glossary_tooltip term_id="component" text="components" >}}_ and software _{{< glossary_tooltip term_id="service" text="services" >}}_) it has access to, as well as any relevant parameters for those resources. -To start configuring, go to the [Viam app](https://app.viam.com), create a new machine and follow the steps on your new machine’s **Setup** tab. +To start configuring, go to the [Viam app](https://app.viam.com) and create a new machine. +Open the part status dropdown menu in the top left corner of the page, next to the machine's name. +Click **View setup instructions** to open the setup instructions. +Follow the appropriate instructions for your machine's architecture. The setup steps copy your machine's credentials to your machine and store them at /etc/viam.json. The credentials look like this: @@ -48,18 +51,20 @@ The configuration is cached locally. If your machine will never connect to the internet, you can also create a [local configuration file](/internals/local-configuration-file/) on the machine itself. {{% /alert %}} -## The Config tab +## The CONFIGURE tab The **CONFIGURE** tab on the [Viam app](https://app.viam.com) is the place to configure everything about your machine. -You can use the mode selector to switch between **Builder** and **Raw JSON**: +You can switch between **Builder**, **JSON**, and **Frame** modes by clicking on the icon in the upper left-hand corner: -- **Builder** mode provides a graphical interface for configuring your machine resources. -- **Raw JSON** mode provides a text editing field where you can write and edit the config manually. +![Mode selector on CONFIGURE tab.](/build/configure/mode-selector.png) -![The CONFIG tab of the Viam app with a box highlighting the CONFIG tab and the Mode selector (where you can select Builder or Raw JSON).](/build/configure/config-tab.png) +- **Builder** mode provides a graphical interface for configuring your machine resources. +- **JSON** mode provides a text editing field where you can write and edit the config manually. +- **Frame** mode provides a graphical interface for configuring and visualizing the relative position of components in space. +For more information, see the [Frame System documentation](/mobility/frame-system/). -Regardless of the mode you choose, Viam stores the configuration file in [JSON (JavaScript Object Notation)](https://en.wikipedia.org/wiki/JSON). +Regardless of the editing mode you choose, Viam stores the configuration file in [JSON (JavaScript Object Notation)](https://en.wikipedia.org/wiki/JSON). {{< alert title="Caution: Simultaneous config edits" color="caution" >}} If you edit a config while someone else edits the same config, the person who saves last will overwrite any prior changes that aren't reflected in the new config. @@ -67,9 +72,9 @@ If you edit a config while someone else edits the same config, the person who sa Before editing a config, we recommend you refresh the page to ensure you have all the latest changes. {{< /alert >}} -If you add components in **Builder** mode and click **Save Config** at the bottom of the screen, you can switch to **Raw JSON** and see the JSON that has been generated by the builder. +If you add components in **Builder** mode and click **Save** in the top right corner of the screen, you can switch to **JSON** and see the JSON that has been generated by the builder. -{{% expand "An example config file for a machine with a board component, motor component, camera component, and vision service configured" %}} +{{% expand "An example JSON config file for a machine with a board component, motor component, camera component, and vision service configured" %}} ```json { @@ -134,29 +139,15 @@ See [Example JSON configuration file](/internals/local-configuration-file/#examp {{% /expand %}} -The **CONFIGURE** tab has subtabs for each section of your machine's config: - -- [Components](#components): Components are the hardware of your machine. -- [Services](#services): Services are the software that runs on your machine. -- [Modules](#modules): {{< glossary_tooltip term_id="module" text="Modules" >}} provide {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}, which are a way to add resource types or models that are not built into Viam. -- [Remotes](#remotes): Remotes are a way to connect two separate machines so one can access the resources of the other. -- [Processes](#processes): Processes automatically run specified scripts when the machine boots. -- [Fragments](#fragments): Fragments are a way of sharing and managing identical configuration files (or parts of config files) across multiple machines. -- [Auth/Network](#authnetwork): The auth and network section allows you to configure machine-level API keys and set a bind address for `viam-server`. -- [Frames](#frame-system): Frames hold reference frame information for the relative position of components in space. + -See [Build a simple smart machine](/use-cases/configure/) for a quick overview. - -{{% /alert %}} - -## Components +### Add a component Components represent the pieces of hardware on your machine that you want to control with Viam. +To add a new component, click the **+** icon next to your {{< glossary_tooltip term_id="part" text="machine part" >}} in the left-hand menu of the **CONFIGURE** tab and select **Component** or hit **C**. +Search for and select your desired {{< glossary_tooltip term_id="model" text="model" >}}. You must configure each component with a type, a model, a name, attributes, and dependencies: @@ -172,71 +163,89 @@ You must configure each component with a type, a model, a name, attributes, and - `attributes`: A struct to define things like how the component is wired to the machine, its dimensions, and other specifications; attributes vary widely between models. See the [component documentation](/components/) for a given component type and model for more details. - {{% alert title="Tip" color="tip" %}} - - Some optional attributes have default values. - If you omit these attributes from your config, or if you include them but leave their values empty, `viam-server` will apply these default values at runtime, even though they are not reflected in the configuration file. - - {{% /alert %}} - - `depends_on`: Any components that a given component relies upon, and that must be initialized on boot before this component is initialized. Many built-in components have convenient implicit dependencies, in which case `depends_on` can be left blank. For example, a [`gpio` motor](/components/motor/gpio/) depends on the `board` to which it is wired, but it has a dedicated `board` attribute and `viam-server` will automatically initialize that board before it looks for the motor. -If you are configuring several similar components, you can use the **Duplicate component** button in the upper-right of a component's configuration pane to create a new identical component beneath your existing one. +If you are configuring several similar components, you can click **...** in the upper-right of a component's configuration pane, then select the **Duplicate** button to create a new identical component beneath your existing one. Be sure to edit the duplicated component to change any parameters that are unique to the new component, such as its name and pins. -To delete a component, click the trash can icon in the upper-right of the component configuration pane. +To delete a component, click **...** in the upper-right of the component's configuration pane, then select the trash can icon. +Confirm that you are sure. For specific information on how to configure each supported component type, see the [components documentation](/components/). {{% alert title="Tip" color="tip" %}} -When you configure a component on the **CONFIGURE** tab, it will also appear on the **Control** tab which gives you an interface to test and interact with it. +When you configure a component on the **CONFIGURE** tab, it will also appear on the **CONTROL** tab which gives you an interface to test and interact with it. The **Code sample** page on the **CONNECT** tab will also update to include code for some basic interaction with that component using the Viam [SDKs](/build/program/apis/). {{}} {{% /alert %}} -## Services + + +### Add a service [Services](/services/) are built-in software packages that make it easier to add complex capabilities such as motion planning or object detection to your machine. +To add a new service, click the **+** icon next to your {{< glossary_tooltip term_id="part" text="machine part" >}} in the left-hand menu of the **CONFIGURE** tab and select **Service** or hit **S**. +Search for and select your desired {{< glossary_tooltip term_id="model" text="model" >}}. -For services, the `type` specifies which of the Viam services you want to use on your machine, such as the vision service or the motion service. +You must configure a service with a `name` and a `type`: -The `name` serves as an identifier when accessing the resource from your code, as well as when configuring other resources that are dependent on that resource. -You can choose any unique name for a service. +- `type`: specifies which of the Viam services you want to use on your machine, such as the vision service or the motion service. +- `name`: serves as an identifier when accessing the resource from your code, as well as when configuring other resources that are dependent on that resource. + You can choose any unique name for a service. The other aspects of configuring a service are highly specific to the type of service. See the [services documentation](/services/) for more information. -## Modules +### Add a process + +To automatically run a specified command when the machine boots, configure a _{{< glossary_tooltip term_id="process" text="process" >}}_. +You can configure any command, for example one that executes a binary or a script, to run as a process. + +To add a new process, click the **+** icon next to your {{< glossary_tooltip term_id="part" text="machine part" >}} in the left-hand menu of the **CONFIGURE** tab and select **Process**. +Find more information in the [processes documentation](/build/configure/processes/). + +### Add a local module [Modular resources](/registry/) are a way to add resource types or models that are not built into Viam. +Many models are available in the [registry](https://app.viam.com/registry) and you are able to add them as components or services. -To add a modular resource as a component or service of your machine, configure a module per the [modular resource documentation](/registry/). +To add a module that is not in the registry and is local to your machine, click the **+** icon next to your {{< glossary_tooltip term_id="part" text="machine part" >}} in the left-hand menu of the **CONFIGURE** tab and select **Local module**. +Follow the instructions in our [registry documentation](/registry/configure/#add-a-local-module) to configure the module. -## Remotes +### Add a remote part Configuring a remote is a way to connect two separate machines so one can access the resources of the other. -Find more information in our [remotes documentation](/build/configure/parts-and-remotes/). -## Processes +To configure a remote part, click the **+** icon next to your {{< glossary_tooltip term_id="part" text="machine part" >}} in the left-hand menu of the **CONFIGURE** tab and select **Remote part**. +Find more information in our [machine parts documentation](/build/configure/parts-and-remotes/). -To automatically run a specified command when the machine boots, configure a _{{< glossary_tooltip term_id="process" text="process" >}}_. -You can configure any command, for example one that executes a binary or a script, to run as a process. +### Add a sub-part -Find more information in the [processes documentation](/build/configure/processes/). +Configure a sub-part to connect two computers inside the same machine. + +To configure a sub-part, click the **+** icon next to your {{< glossary_tooltip term_id="part" text="machine part" >}} in the left-hand menu of the **CONFIGURE** tab and select **Sub-part**. +Find more information in our [machine parts documentation](/build/configure/parts-and-remotes/). + +## Fragments + +You can use fragments to share similar {{< glossary_tooltip term_id="resource" text="resource" >}} configuration files across multiple machines in your fleet. +For example, if you have multiple machines with the same motor hardware, wired the same way, you can create a fragment to configure that motor and share it easily across all of your machines, without needing to individually configure the motor component for each machine. + +See [Use Fragments to Configure a Fleet](/fleet/configure-a-fleet/) for more information on creating and deploying fragments. ## Webhooks Webhooks allow you to trigger actions when certain types of data are sent from your machine to the cloud. For example, you can configure a webhook to send you a notification when your robot's sensor collects a new reading. -Switch to **Raw JSON** mode to configure webhooks as follows: +Switch to **JSON** mode to configure webhooks as follows: -1. Paste the following JSON template into your raw JSON config. +1. Paste the following JSON template into your JSON config. `"webhooks"` is a top-level section like `"components"`, `"services"`, or any of the other config sections. {{< tabs >}} @@ -344,32 +353,11 @@ Switch to **Raw JSON** mode to configure webhooks as follows: ``` -## Fragments - -You can use fragments to share similar {{< glossary_tooltip term_id="resource" text="resource" >}} configuration files across multiple machines in your fleet. -For example, if you have multiple machines with the same motor hardware, wired the same way, you can create a fragment to configure that motor and share it easily across all of your machines, without needing to individually configure the motor component for each machine. - -See [Use Fragments to Configure a Fleet](/fleet/configure-a-fleet/) for more information on creating and deploying fragments. - -## Auth/network - -The auth section allows you to configure machine-level API keys for connecting over LAN. - -The network section allows you to set the address `viam-server` binds to for accepting connections. -By default, `viam-server` binds to `0.0.0.0:8080` when managed by the Viam app or when authentication and TLS are enabled. - -## Frame system - -The frame system holds reference frame information for the relative position of components in space. - -Configure a frame for a given component on its panel on the **Components** tab, then switch to the **Frame System** tab to visualize the relative positions. -Find more information in the [frame system documentation](/mobility/frame-system/). - ## Troubleshooting If you run into issues, here are some things to try: -- Check the [**Logs** tab](/fleet/machines/#logs) to view log messages and errors from `viam-server`. +- Check the [**LOGS** tab](/fleet/machines/#logs) to view log messages and errors from `viam-server`. You can also [access the local log file](/get-started/installation/manage/#view-viam-server-logs) on your machine if needed. - Make sure all configured components are actually saved to your config. If they aren't, you will see an **Unsaved Changes** note next to the **Save Config** button at the bottom of the config screen.