Skip to content

Commit

Permalink
DOCS-1447: Add info to components and services landing pages (#2641)
Browse files Browse the repository at this point in the history
  • Loading branch information
JessamyT authored Mar 14, 2024
1 parent d8e3a63 commit 9f99313
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 5 deletions.
2 changes: 1 addition & 1 deletion docs/appendix/glossary/machine.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Machine
id: machine
full_link: /fleet/machines/
short_description: An organizational concept, consisting of either one part, or multiple parts working closely together to complete tasks.
short_description: An organizational concept, consisting of a computer and the components and services it controls, or sometimes multiple computers working closely together.
---

A smart machine is an organizational concept, consisting of either one _{{< glossary_tooltip term_id="part" text="part" >}}_, or multiple _parts_ working closely together to complete tasks.
Expand Down
15 changes: 13 additions & 2 deletions docs/components/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,20 @@ aliases:
- "/components/"
---

A _component_ represents a physical piece of electrical or electromechanical hardware in a machine.
Viam provides support for a wide variety of hardware.
A _component_ represents a physical piece of hardware in your {{< glossary_tooltip term_id="machine" text="machine" >}}, and the software that directly supports that hardware.

{{< imgproc src="/viam/machine-components.png" alt="Diagram with various components and services on a smart machine. This machine employs the vision, navigation, and data capture services, which run within viam-server on the machine's single board computer." resize="1000x" style="max-width:650px" class="aligncenter" >}}
<br>

Viam groups categories of hardware together, with a [standardized API](/build/program/apis/#component-apis) for all _{{< glossary_tooltip term_id="model" text="models" >}}_ in each grouping.
For example, [`xarm7`](/components/arm/xarm7/) and [`ur5e`](/components/arm/ur5e/) are different arm models, which provide software support for xArm7 arms and UR5e arms, respectively.
Though the hardware is different, you use the same Viam SDK commands to control both models, for example [`MoveToPosition`](/components/arm/#movetoposition).

You need to [configure](/build/#step-2-configure) a component to represent each piece of hardware your machine controls.
Configuration is the process of editing the file that indicates to `viam-server` what hardware is available to it, how to communicate with that hardware, and how the pieces of hardware relate to each other (for example, which board a motor is connected to).

Viam provides built-in support for the following component types.
You can also add support for additional component types using {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}.
You can also add support for additional component types using [{{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}](/registry/).

If you are connecting components to a microcontroller instead of a 64-bit single-board computer, find component configuration information in the [micro-RDK documentation](/build/micro-rdk/).
2 changes: 1 addition & 1 deletion docs/components/base/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ linkTitle: "Base"
weight: 10
type: "docs"
no_list: true
description: "The moving platform that the other parts of a mobile robot attach to."
description: "A moving platform that the other parts of a mobile robot attach to."
tags: ["base", "components"]
icon: true
images: ["/icons/components/base.svg"]
Expand Down
19 changes: 18 additions & 1 deletion docs/services.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,25 @@ aliases:

Services are built-in software packages that make it easier to add complex capabilities such as motion planning or object detection to your machine.

In the following diagram, the machine is comprised of various hardware components including a GPS and a camera, and software (`viam-server`) running on a single-board computer.
Some of that software is the low-level code that communicates directly with the hardware [components](/components/), while some pieces of that software (the _services_) add higher-level functionality.
In this case, the vision service is configured to run computer vision models on output from the camera component.
The navigation service can take the raw output from the GPS component output and determine geographical location, and the data service captures data from any or all of the components, for example storing images from the camera.

{{< imgproc src="/viam/machine-components.png" alt="Machine components" resize="1000x" style="max-width:650px" class="aligncenter" >}}
<br>

Many built-in services run locally within `viam-server`, but you can think of them as discrete building blocks that you can mix and match however you want; you can run your machine using none, some, or all of them, depending on your use case.
To use a given service, add it to your machine's configuration.

[Configuring](/build/#step-2-configure) services on your machine indicates to `viam-server` which software packages you want to use with your machine, and how to integrate that software with your [components](/components/) and other services.
Services take many forms, so their configuration and usage varies widely.
For example, when you [configure data capture](/data/capture/), you indicate which types of data you want to capture, from which components.
When you configure the [frame system](/mobility/frame-system/), you indicate how the components relate to each other spatially.
Find more information in the documentation for each service below.

Viam provides built-in support for the following service types.
You can also add support for additional service types using {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}.
You can also add support for additional service types using [{{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}](/registry/).

{{< cards >}}
{{% card link="/data/" %}}
Expand Down

0 comments on commit 9f99313

Please sign in to comment.