From 4b2debed546d0b8b707ec8e067a65f193e8b0f0f Mon Sep 17 00:00:00 2001 From: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> Date: Tue, 12 Sep 2023 08:33:18 -0400 Subject: [PATCH] Update Smart Machines copy (#1794) --- docs/_index.md | 20 +++---- docs/appendix/glossary/smart-machine.md | 10 ++++ docs/program/_index.md | 14 ++--- docs/try-viam/_index.md | 4 +- docs/viam/_index.md | 80 ++++++++++++------------- 5 files changed, 69 insertions(+), 59 deletions(-) create mode 100644 docs/appendix/glossary/smart-machine.md diff --git a/docs/_index.md b/docs/_index.md index 49af563d6f..4c6b55319d 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -1,7 +1,7 @@ --- title: "Viam Documentation" linkTitle: "Viam Documentation" -description: "Viam is a complete software platform for robots that runs on any 64-bit Linux OS and macOS." +description: "Viam is a complete software platform for smart machines that runs on any 64-bit Linux OS and macOS." weight: 1 no_list: true type: "docs" @@ -13,7 +13,7 @@ sitemap:

Welcome to the Viam Documentation! - Viam is a complete software platform for robots that runs on Linux and macOS and supports a wide variety of popular systems, including: + Viam is a complete software platform for {{< glossary_tooltip term_id="smart-machine" text="smart machines">}} that runs on Linux and macOS and supports a wide variety of popular systems, including:

@@ -136,13 +136,13 @@ sitemap:
-
Configure your robots
+
Configure your smart machine
    -
  1. Configure your robot or fleet
  2. -
  3. Install Viam on your robot
  4. -
  5. Configure robot components and add services
  6. -
  7. Control and test your robot
  8. +
  9. Configure a machine or a fleet
  10. +
  11. Install Viam on your machine
  12. +
  13. Configure components and add services
  14. +
  15. Control and test your machine
@@ -150,9 +150,9 @@ sitemap:
-
Program your robots
+
Program your machine

- Program and control your robots in the languages you already know like Python, Go, TypeScript, C++, or Flutter. + Program and control your machines in the languages you already know like Python, Go, TypeScript, C++, or Flutter.

@@ -162,7 +162,7 @@ sitemap:
Community
-

Have questions, or want to meet other people working on robots? Join us in the Community Discord!

+

Have questions, or want to meet other people working on smart machines? Join us in the Community Discord!

{{}}
diff --git a/docs/appendix/glossary/smart-machine.md b/docs/appendix/glossary/smart-machine.md new file mode 100644 index 0000000000..669df49af7 --- /dev/null +++ b/docs/appendix/glossary/smart-machine.md @@ -0,0 +1,10 @@ +--- +title: Smart Machine +id: smart-machine +full_link: +short_description: A machine or device that lives in the real world and has some ability to perceive the world (with a sensor, for example) and perform actions like operating a motor. +aka: +--- + +A machine or device that lives in the real world and has some ability to perceive the world (with a sensor, for example) and perform actions like operating a motor. +The machine might also interact with other systems, with the cloud, or with users. diff --git a/docs/program/_index.md b/docs/program/_index.md index c1ff586094..3fb1f90fe1 100644 --- a/docs/program/_index.md +++ b/docs/program/_index.md @@ -1,13 +1,13 @@ --- -title: "Program a Robot" -linkTitle: "Program Robots" -childTitleEndOverwrite: "Program Robots" -description: "Use the SDK of your preferred language to write code to control your robots." +title: "Program a Smart Machine" +linkTitle: "Program Machines" +childTitleEndOverwrite: "Program Machines" +description: "Use the SDK of your preferred language to write code to control your smart machines." weight: 45 no_list: true type: docs image: "/general/code.png" -imageAlt: "Program a Robot" +imageAlt: "Program a smart machine" images: ["/general/code.png"] aliases: - "product-overviews/sdk-as-client" @@ -17,12 +17,12 @@ aliases: Viam offers software development kits (SDKs) in popular languages which -- Broker connection, authentication, and encryption for communication with robots running `viam-server` using {{< glossary_tooltip term_id="webrtc" >}} +- Broker connection, authentication, and encryption for communication with {{< glossary_tooltip term_id="smart-machine" text="smart machines">}} running `viam-server` using {{< glossary_tooltip term_id="webrtc" >}} - Enable you to interface with robot [gRPC APIs](https://github.com/viamrobotics/api) in a way that is idiomatic to that programming language ![Diagram showing how a client connects to a robot with Viam. Diagram shows a client as a computer sending commands to a robot. Robot 1 then communicates with other robotic parts over gRPC and WebRTC and communicating that information back to the client.](/program/sdks/robot-client.png) -Use the SDK of your preferred language to write code to control your robots. +Use the SDK of your preferred language to write code to control your smart machine. Viam currently offers SDKs for the following languages: diff --git a/docs/try-viam/_index.md b/docs/try-viam/_index.md index 6be7fe96cc..30cf5f1ad0 100644 --- a/docs/try-viam/_index.md +++ b/docs/try-viam/_index.md @@ -14,7 +14,7 @@ aliases: - "/getting-started/try-viam/" --- -Viam is a general robotics platform that can run on any hardware. +Viam is a general {{< glossary_tooltip term_id="smart-machine" text="smart machine">}} platform that can run on any hardware. The easiest way to try Viam is to [rent and remotely configure and control a Viam Rover](https://app.viam.com/try) located on-site at Viam in New York: @@ -35,7 +35,7 @@ See detailed instructions.

{{}} 3. Get started with Viam -

Try a Viam Rover in our robotics lab. Control, drive, or program the rover to see how you can build a robot with Viam. You can also try services like computer vision.

+

Try a Viam Rover in our robotics lab. Control, drive, or program the rover to see how you can build a smart machine with Viam. You can also try services like computer vision.

diff --git a/docs/viam/_index.md b/docs/viam/_index.md index 3b8ae38623..51a2acc5e6 100644 --- a/docs/viam/_index.md +++ b/docs/viam/_index.md @@ -1,7 +1,7 @@ --- title: "Viam in 3 minutes" linkTitle: "Viam in 3 minutes" -description: "Viam is a complete software platform for robots which provides modular robot components and services for vision, motion, SLAM, ML, and data management." +description: "Viam is a complete software platform for smart machines which provides modular components and services for vision, motion, SLAM, ML, and data management." weight: 10 no_list: true type: docs @@ -14,54 +14,54 @@ imageAlt: "/general/understand.png" images: ["/general/understand.png"] --- -Viam is a complete software platform that supports every step of your robot development lifecycle. +Viam is a complete software platform that supports every step of your {{< glossary_tooltip term_id="smart-machine" text="smart machine">}} development lifecycle. -## Plan your robot +## Plan your smart machine -When using Viam, this is what you'll need to know to plan your robot: +When using Viam, this is what you'll need to know to plan your smart machine: -A diagram of robotic parts and software +A diagram of smart machine parts and software - **Hardware**: -Many {{< glossary_tooltip term_id="component" text="robotic components">}} are natively supported by the Viam platform. +Many {{< glossary_tooltip term_id="component" text="components">}} are natively supported by the Viam platform. You will not need to write a single line of code to integrate them, and swapping out component models will not require code changes. - **Functionality**: You can make use of computer vision, motion planning, SLAM, data management, machine learning, and more by configuring Viam's built-in {{< glossary_tooltip term_id="service" text="services">}}. - **Architecture**: -You can build simple robots or multi-part robots that use secure communication channels across local networks and the cloud, all of which can be managed with a uniform API. -- **Extensibility**: If you need additional functionality, you can leverage community contributed and modular resources to [extend](/extend/) Viam from the [Viam registry](/extend/modular-resources/). +You can build simple smart machines or multi-part smart machines that use secure communication channels across local networks and the cloud, all of which can be managed with a uniform API. +- **Extensibility**: If you need additional functionality, you can leverage community contributed and modular resources to [extend](/extend/) Viam from [the Viam registry](/extend/modular-resources/). Join the [**Viam community**](https://discord.gg/viam) to collaborate during planning and beyond. ## Get started -A *robot* in Viam consists of at least one computer, typically a [single-board computer](/installation/), running `viam-server` and communicating with any hardware connected to it by signaling through digital data pins. +A *smart machine* in Viam consists of at least one computer, typically a [single-board computer](/installation/), running `viam-server` and communicating with any hardware connected to it by signaling through digital data pins. Viam supports devices running **any** 64-bit Linux OS or macOS. {{< imgproc src="/viam/board-viam-server.png" alt="A diagram of a single-board computer running viam-server." resize="270x" class="alignleft" style="max-width:270px" >}} -The Viam platform provides a user interface for connecting to and managing robots, the [Viam app](https://app.viam.com/). +The Viam platform provides a user interface for connecting to and managing smart machines, the [Viam app](https://app.viam.com/). -To use the Viam platform with your robot, log in to [the app](https://app.viam.com/), create a new robot, and [install](/installation/) the [`viam-server`](https://github.com/viamrobotics/rdk) binary which: +To use the Viam platform with your smart machine, log in to [the app](https://app.viam.com/), create a new robot, and [install](/installation/) the [`viam-server`](https://github.com/viamrobotics/rdk) binary which: -- Creates, configures, and maintains the robot. +- Creates, configures, and maintains the smart machine. - Securely handles all communications. - Runs drivers, custom code, and any other software. - Accepts API requests. - Runs services like computer vision, data synchronization, and motion planning. {{% alert title="Info" color="info" %}} -Everything Viam runs on your robot is [open-source](https://github.com/viamrobotics). +Everything Viam runs on your smart machine is [open-source](https://github.com/viamrobotics). {{% /alert %}} -## Configure your robot +## Configure your smart machine Robots can be small and simple or very complex. -A robot can be a single-board computer with a single sensor or LED wired to it, or a robot can consist of multiple computers with many physical components connected, acting as one unit. +A smart machine can be a single-board computer with a single sensor or LED wired to it, or a smart machine can consist of multiple computers with many physical components connected, acting as one unit. The term {{% glossary_tooltip term_id="component" text="*component*" %}} describes a piece of hardware that a computer controls, like an arm or a motor. -For each component that makes up your robot: +For each component that makes up your smart machine:

{{< imgproc src="/viam/test_components.png" alt="Multiple components being tested in the Viam app." resize="320x" style="max-width:320px" class="alignright" >}} @@ -71,32 +71,32 @@ For each component that makes up your robot: 2. Test it with the visual [control tab](/manage/fleet/robots/#control). 3. See any problems with in-app [logs](/manage/fleet/robots/#logs), review or roll back configuration [history](/manage/fleet/robots/#history). -After configuring your robot's hardware, you can configure [high level functionality](/services/) the same way: +After configuring your smart machine's hardware, you can configure [high level functionality](/services/) the same way: -- **Data Management** enables you to capture and sync data from one or more robots, and use that data for machine learning and beyond. -- **Fleet management** enables you to configure, control, debug, and manage entire fleets of robots. -- **Motion planning** enables your robot to plan and move itself. -- **Vision** enables your robot to intelligently see and interpret the world around it. -- **Simultaneous Localization And Mapping (SLAM)** enables your robot to map its surroundings and find its position on a map. +- **Data Management** enables you to capture and sync data from one or more smart machine, and use that data for machine learning and beyond. +- **Fleet management** enables you to configure, control, debug, and manage entire fleets of smart machines. +- **Motion planning** enables your smart machine to plan and move itself. +- **Vision** enables your smart machine to intelligently see and interpret the world around it. +- **Simultaneous Localization And Mapping (SLAM)** enables your smart machine to map its surroundings and find its position on a map.

{{< imgproc src="/viam/robot-components.png" alt="Robot components" resize="600x" class="aligncenter" >}}
-## Control your robot +## Control your smart machine -A diagram illustrating secure robot control. +A diagram illustrating secure smart machine control. -The Viam platform provides a consistent programming interface for all robots, allowing you to [control your robots](/program/apis/) with code in the **language of your choice**. +The Viam platform provides a consistent programming interface for all smart machines, allowing you to [control your smart machines](/program/apis/) with code in the **language of your choice**. Viam currently has SDKs for [Go](https://pkg.go.dev/go.viam.com/rdk), [Python](https://python.viam.dev/), and [TypeScript](https://ts.viam.dev/). Additional SDKs are coming soon, including Rust, Java, C++, and Flutter. TLS certificates provided by [app.viam.com](https://app.viam.com) ensure that all communication is authenticated and encrypted. -Viam uses {{< glossary_tooltip term_id="webrtc" >}} to create secure peer-to-peer paths between robots and clients for fast, low-latency communication. -The Viam cloud does not receive any command or control information regarding your robots, ensuring low latency, robustness, and privacy. -With WebRTC established, Viam uses {{< glossary_tooltip term_id="grpc" text="gRPC" >}} so you can program your robot in many common programming languages. +Viam uses {{< glossary_tooltip term_id="webrtc" >}} to create secure peer-to-peer paths between smart machines and clients for fast, low-latency communication. +The Viam cloud does not receive any command or control information regarding your smart machines, ensuring low latency, robustness, and privacy. +With WebRTC established, Viam uses {{< glossary_tooltip term_id="grpc" text="gRPC" >}} so you can program your smart machines in many common programming languages. -This provides flexibility and security whether you are building tight control loops for autonomous mobile robots, event-based triggers for IoT devices, or custom web-based robot management interfaces. +This provides flexibility and security whether you are building tight control loops for autonomous mobile smart machines, event-based triggers for IoT devices, or custom web-based smart machine management interfaces. There are four categories of APIs: @@ -109,44 +109,44 @@ You can see the Viam API specification on [GitHub](https://github.com/viamroboti ### Network flexibility -Your robot does not need to be connected to the cloud. +Your smart machine does not need to be connected to the cloud. -The `viam-server` software resides on your robot alongside your configurations, your code, and appropriate services. -In scenarios without cloud connectivity, you can still connect your robot to a local area network (LAN), or to any relevant devices (such as a gamepad). +The `viam-server` software resides on your smart machine alongside your configurations, your code, and appropriate services. +In scenarios without cloud connectivity, you can still connect your smart machine to a local area network (LAN), or to any relevant devices (such as a gamepad). It all depends on your use case and configuration. - All APIs work locally or in the cloud - Data is cached locally and synced when possible - Configuration is cached -When your robot is connected (to either LAN or WAN), `viam-server` can act as both a client and a server. +When your smart machine is connected (to either LAN or WAN), `viam-server` can act as both a client and a server. In other words, each instance can request resources, as well as provide them. This allows for tremendous flexibility in terms of your architecture design. ## Scale -With robots in production, Viam provides [fleet management capabilities](/manage/fleet/) to help you scale. +With smart machines in production, Viam provides [fleet management capabilities](/manage/fleet/) to help you scale. With it you can: - Manage permissions within your organization and locations. - Manage software across your fleet, including deployment of code and machine learning models. -- Keep your robot configuration and capabilities up-to-date. +- Keep your smart machine configuration and capabilities up-to-date. ## Extensibility -You can also extend Viam to support additional hardware components or software services by deploying a module from the [Viam registry](https://app.viam.com/registry) to your robot. +You can also extend Viam to support additional hardware components or software services by deploying a module from the [Viam registry](https://app.viam.com/registry) to your smart machine. -The Viam registry allows hardware and software engineers to collaborate on their robotics projects by writing and sharing custom modules with each other. -You can add a module from the Viam registry directly from your robot's **Configuration** tab in [the Viam app](https://app.viam.com/), using the **+ Create component** button. +The Viam registry allows hardware and software engineers to collaborate on their smart machine projects by writing and sharing custom modules with each other. +You can add a module from the Viam registry directly from your smart machine's **Configuration** tab in [the Viam app](https://app.viam.com/), using the **+ Create component** button. You can also [upload your own module to the Viam registry](/extend/modular-resources/upload/). See [Modular resources](/extend/modular-resources/) for more information. ## Next steps -Start by borrowing one of our robots. +Start by borrowing one of our rovers. Use [Try Viam](/try-viam/). -If you already have your own robot, [set up `viam-server`](/installation/) and learn how Viam helps you prototype and scale. +If you already have your own smart machine, [set up `viam-server`](/installation/) and learn how Viam helps you prototype and scale. For more inspiration, check out our [tutorials](/tutorials/) or visit our community on [Discord](https://discord.gg/viam) to get help or workshop ideas with others!