From c466f8a1219603470a0f0804d0c8c6de30eafcf6 Mon Sep 17 00:00:00 2001 From: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> Date: Tue, 7 Jan 2025 16:54:20 +0100 Subject: [PATCH] More fixews --- .github/workflows/update_sdk_methods.py | 2 +- docs/data-ai/ai/train-tflite.md | 2 +- .../capture-data/filter-before-sync.md | 4 +-- docs/data-ai/data/query.md | 2 +- docs/data-ai/reference/vision/mlmodel.md | 8 ++--- .../reference/vision/obstacles_depth.md | 2 +- docs/dev/_index.md | 2 +- docs/dev/contributing.md | 4 +-- docs/dev/reference/apis/robot.md | 2 +- docs/dev/reference/apis/services/SLAM.md | 2 +- docs/dev/reference/apis/services/base-rc.md | 2 +- docs/dev/reference/apis/services/generic.md | 2 +- docs/dev/reference/apis/services/ml.md | 2 +- docs/dev/reference/apis/services/motion.md | 2 +- .../dev/reference/apis/services/navigation.md | 2 +- docs/dev/reference/apis/sessions.md | 2 +- docs/dev/reference/changelog.md | 36 +++++++++---------- .../glossary/api-namespace-triplet.md | 2 +- docs/dev/reference/glossary/frame-system.md | 2 +- docs/dev/reference/glossary/location.md | 4 +-- docs/dev/reference/glossary/machine.md | 2 +- .../glossary/model-namespace-triplet.md | 3 +- docs/dev/reference/glossary/model.md | 2 +- .../reference/glossary/modular-resource.md | 3 +- docs/dev/reference/glossary/module.md | 4 +-- docs/dev/reference/glossary/organization.md | 4 +-- docs/dev/reference/glossary/part.md | 2 +- docs/dev/reference/glossary/remote-part.md | 2 +- docs/dev/reference/glossary/slam.md | 4 +-- docs/dev/reference/sdks/connectivity.md | 4 +-- docs/dev/reference/sdks/python/python-venv.md | 4 +-- docs/dev/reference/sdks/use-extra-params.md | 4 +-- docs/dev/tools/cli.md | 20 +++++------ docs/dev/tools/common-errors.md | 2 +- docs/manage/fleet/provision/setup.md | 10 +++--- docs/manage/fleet/reuse-configuration.md | 4 +-- docs/manage/manage/access.md | 10 +++--- docs/manage/manage/rbac.md | 6 ++-- docs/manage/reference/organize.md | 6 ++-- docs/manage/software/update-packages.md | 2 +- docs/manage/troubleshoot/alert.md | 2 +- .../teleoperate/default-interface.md | 2 +- docs/operate/control/headless-app.md | 4 +-- .../get-started/other-hardware/cpp-module.md | 20 +++++------ .../other-hardware/manage-modules.md | 12 +++---- .../other-hardware/micro-module.md | 2 +- docs/operate/reference/architecture/_index.md | 14 ++++---- .../reference/components/arm/_index.md | 10 +++--- .../operate/reference/components/arm/lite6.md | 2 +- .../operate/reference/components/arm/xarm6.md | 2 +- .../operate/reference/components/arm/xarm7.md | 2 +- .../reference/components/base/_index.md | 4 +-- .../components/base/sensor-controlled.md | 2 +- .../reference/components/board/esp32.md | 2 +- .../reference/components/camera/_index.md | 2 +- .../reference/components/camera/webcam.md | 2 +- .../reference/components/component/_index.md | 2 +- .../reference/components/encoder/_index.md | 4 +-- .../reference/components/gantry/_index.md | 4 +-- .../reference/components/generic/_index.md | 4 +-- .../reference/components/gripper/_index.md | 4 +-- .../components/motor/encoded-motor.md | 2 +- .../components/movement-sensor/_index.md | 6 ++-- .../accel-adxl345-micro-rdk.md | 2 -- .../components/movement-sensor/merged.md | 4 +-- .../movement-sensor/wheeled-odometry.md | 2 +- .../reference/kinematic-chain-config.md | 4 +-- .../operate/reference/module-configuration.md | 4 +-- docs/operate/reference/orientation-vector.md | 2 +- docs/operate/reference/prepare/_index.md | 2 +- .../reference/services/frame-system/_index.md | 12 +++---- .../reference/services/generic/_index.md | 2 +- .../reference/services/motion/_index.md | 4 +-- .../reference/services/navigation/_index.md | 32 ++++++++--------- .../services/slam/cartographer/_index.md | 4 +-- .../services/slam/cloudslam/_index.md | 6 ++-- docs/operate/reference/sessions.md | 2 +- .../viam-micro-server-setup.md | 2 +- docs/tutorials/control/drive-rover.md | 4 +-- .../controlling-an-intermode-rover-canbus.md | 4 +-- docs/tutorials/custom/custom-base-dog.md | 2 +- docs/tutorials/get-started/blink-an-led.md | 2 +- docs/tutorials/projects/claw-game.md | 22 ++++++------ docs/tutorials/projects/helmet.md | 2 +- .../projects/integrating-viam-with-openai.md | 2 +- .../projects/make-a-plant-watering-robot.md | 2 +- .../tutorials/projects/send-security-photo.md | 2 +- .../tutorials/projects/verification-system.md | 10 +++--- docs/tutorials/services/constrain-motion.md | 4 +-- .../services/navigate-with-rover-base.md | 10 +++--- .../services/plan-motion-with-arm-gripper.md | 6 ++-- .../services/visualize-data-grafana.md | 2 +- layouts/shortcodes/board-carousel.html | 2 +- static/include/app/apis/generated/app.md | 2 +- .../include/app/apis/generated/mltraining.md | 2 +- .../overrides/protos/app.MarkPartAsMain.md | 2 +- .../mltraining.SubmitCustomTrainingJob.md | 2 +- .../include/components/apis/generated/arm.md | 4 +-- .../include/components/apis/generated/base.md | 4 +-- .../components/apis/generated/board.md | 4 +-- .../components/apis/generated/camera.md | 4 +-- .../components/apis/generated/encoder.md | 4 +-- .../components/apis/generated/gripper.md | 4 +-- .../apis/generated/input_controller.md | 4 +-- .../overrides/protos/arm.GetGeometries.md | 4 +-- .../overrides/protos/base.GetGeometries.md | 4 +-- .../overrides/protos/board.GetGeometries.md | 4 +-- .../overrides/protos/camera.GetGeometries.md | 4 +-- .../overrides/protos/encoder.GetGeometries.md | 4 +-- .../overrides/protos/gantry.GetGeometries.md | 4 +-- .../protos/generic_component.GetGeometries.md | 4 +-- .../overrides/protos/gripper.GetGeometries.md | 4 +-- .../protos/input_controller.GetGeometries.md | 4 +-- .../overrides/protos/motor.GetGeometries.md | 4 +-- .../protos/movement_sensor.GetGeometries.md | 4 +-- .../protos/power_sensor.GetGeometries.md | 4 +-- .../overrides/protos/sensor.GetGeometries.md | 4 +-- .../overrides/protos/servo.GetGeometries.md | 4 +-- static/include/micro-create-your-own.md | 2 +- static/include/services/apis/fleet.md | 2 +- .../include/services/apis/generated/motion.md | 18 +++++----- .../services/apis/generated/navigation.md | 2 +- .../methods/go.motion.Move.destination.md | 2 +- .../methods/go.motion.MoveOnMap.req.md | 2 +- .../methods/python.motion.move.destination.md | 2 +- ...on.motion.move_on_map.slam_service_name.md | 2 +- .../apis/overrides/protos/motion.GetPose.md | 2 +- .../overrides/protos/motion.MoveOnGlobe.md | 4 +-- .../apis/overrides/protos/motion.MoveOnMap.md | 6 ++-- .../protos/navigation.GetObstacles.md | 2 +- .../include/try-viam/extend-a-reservation.md | 2 +- 131 files changed, 292 insertions(+), 302 deletions(-) diff --git a/.github/workflows/update_sdk_methods.py b/.github/workflows/update_sdk_methods.py index 9826c43975..1c630585f1 100755 --- a/.github/workflows/update_sdk_methods.py +++ b/.github/workflows/update_sdk_methods.py @@ -435,7 +435,7 @@ "SLAM service": "/services/slam/", "frame": "/services/frame-system/", "Viam app": "https://app.viam.com/", - "organization settings page": "/cloud/organizations/", + "organization settings page": "/manage/reference/organize/", "image tags": "/fleet/dataset/#image-tags", "API key": "/fleet/cli/#authenticate", "board model": "/dev/reference/apis/components/board/" diff --git a/docs/data-ai/ai/train-tflite.md b/docs/data-ai/ai/train-tflite.md index 0cc6bb4dab..bc05de95df 100644 --- a/docs/data-ai/ai/train-tflite.md +++ b/docs/data-ai/ai/train-tflite.md @@ -85,7 +85,7 @@ Now that you have seen that the cameras on your Try Viam rover work, begin by [C You can drive the rover around as you capture data to get a variety of images from different angles. {{< alert title="Tip" color="tip" >}} -Be aware that if you are running out of time during your rental, you can [extend your rover rental](/appendix/try-viam/reserve-a-rover/#extend-your-reservation) as long as there are no other reservations. +Be aware that if you are running out of time during your rental, you can extend your rover rental as long as there are no other reservations. {{< /alert >}} {{% /expand%}} diff --git a/docs/data-ai/capture-data/filter-before-sync.md b/docs/data-ai/capture-data/filter-before-sync.md index 7e6ade69ae..16517071cb 100644 --- a/docs/data-ai/capture-data/filter-before-sync.md +++ b/docs/data-ai/capture-data/filter-before-sync.md @@ -15,7 +15,7 @@ Contributors have written several filtering {{< glossary_tooltip term_id="module The following steps use the [`filtered_camera`](https://github.com/erh/filtered_camera) module: {{< table >}} -{{% tablestep link="/services/ml/"%}} +{{% tablestep link="/data-ai/ai/deploy/"%}} {{}} **1. Add an ML model service to your machine** @@ -95,7 +95,7 @@ Images that pass your filter will be captured and will sync at the specified syn Your images will begin to appear under the **DATA** tab. If no data appears after the sync interval, check the [**Logs**](/manage/troubleshoot/troubleshoot/#check-logs) and ensure that the condition for filtering is met. -You can test the vision service from the [**CONTROL** tab](/cloud/machines/#control) to see its classifications and detections live. +You can test the vision service from the [**CONTROL** tab](/manage/troubleshoot/teleoperate/default-interface/) to see its classifications and detections live. {{% /tablestep %}} {{% tablestep %}} diff --git a/docs/data-ai/data/query.md b/docs/data-ai/data/query.md index 86dae8bc63..da4a9b279d 100644 --- a/docs/data-ai/data/query.md +++ b/docs/data-ai/data/query.md @@ -40,7 +40,7 @@ Follow the guide to [capture sensor data](/data-ai/capture-data/capture-sync/). Once your data has synced, you can query your data from within the Viam app using {{< glossary_tooltip term_id="sql" text="SQL" >}} or {{< glossary_tooltip term_id="mql" text="MQL" >}}. -You must have the [owner role](/cloud/rbac/) in order to query data in the Viam app. +You must have the [owner role](/manage/manage/rbac/) in order to query data in the Viam app. {{< table >}} {{% tablestep %}} diff --git a/docs/data-ai/reference/vision/mlmodel.md b/docs/data-ai/reference/vision/mlmodel.md index 74ede24a16..fc9e42d27b 100644 --- a/docs/data-ai/reference/vision/mlmodel.md +++ b/docs/data-ai/reference/vision/mlmodel.md @@ -27,14 +27,14 @@ Before configuring your `mlmodel` detector or classifier, you need to:

1. Train or upload an ML model

-You can add an [existing model](/data-ai/ai/deploy/#deploy-your-ml-model) or [train a TFlite](/data-ai/ai/train-tflite/) or [another model](data-ai/ai/train/) for object detection and classification using your data in the [Viam Cloud](/fleet/data-management/). +You can add an [existing model](/data-ai/ai/deploy/#deploy-your-ml-model) or [train a TFlite](/data-ai/ai/train-tflite/) or [another model](data-ai/ai/train/) for object detection and classification using your data in the [Viam Cloud](/data-ai/capture-data/capture-sync/). {{% /manualcard %}} {{% manualcard %}}

2. Deploy your ML model

-To use ML models with your machine, use a suitable [ML model service](/services/ml/) to deploy and run the model. +To use ML models with your machine, use a suitable [ML model service](/data-ai/ai/deploy/) to deploy and run the model. {{% /manualcard %}} {{< /cards >}} @@ -123,7 +123,7 @@ The following attributes are available for an `mlmodel` detector or classifier: | Parameter | Type | Required? | Description | | --------- | ---- | --------- | ----------- | -| `mlmodel_name` | string | **Required** | The name of the [ML model service](/services/ml/) you want to use the model from. | +| `mlmodel_name` | string | **Required** | The name of the [ML model service](/data-ai/ai/deploy/) you want to use the model from. | | `remap_output_names` | object | Optional | The names of your output tensors, mapped to the service requirements. See [Tensor names](#tensor-names) for more information. | | `remap_input_names` | object | Optional | The name of your input tensor, mapped to the service requirements. See [Tensor names](#tensor-names) for more information. | | `input_image_bgr` | bool | Optional | Set this to `true` if the ML model service expects the input image to have BGR pixels, rather than RGB pixels.
Default: `false` | @@ -217,7 +217,7 @@ The feature is only available for classifiers that were uploaded after September {{}} -If you have images stored in the [Viam Cloud](/fleet/data-management/), you can run your classifier against your images in the [Viam app](https://app.viam.com/). +If you have images stored in the [Viam Cloud](/data-ai/capture-data/capture-sync/), you can run your classifier against your images in the [Viam app](https://app.viam.com/). 1. Navigate to the [Data tab](https://app.viam.com/data/view) and click on the **Images** subtab. 2. Click on an image to open the side menu, and select the **Actions** tab under the **Data** tab. diff --git a/docs/data-ai/reference/vision/obstacles_depth.md b/docs/data-ai/reference/vision/obstacles_depth.md index b9117da1db..bdeeb1c19e 100644 --- a/docs/data-ai/reference/vision/obstacles_depth.md +++ b/docs/data-ai/reference/vision/obstacles_depth.md @@ -124,7 +124,7 @@ The following parameters are available for an `"obstacles_depth"` segmenter: If you want to identify multiple boxes over the flat plane with your segmenter: -- First, [configure your frame system](/services/frame-system/#configuration) to configure the relative spatial orientation of the components of your machine, including your [camera](/operate/reference/components/camera/), within Viam's [frame system service](/services/frame-system/). +- First, [configure your frame system](/operate/mobility/define-geometry/#configure-a-reference-frame) to configure the relative spatial orientation of the components of your machine, including your [camera](/operate/reference/components/camera/), within Viam's [frame system service](/operate/mobility/define-geometry/). - After configuring your frame system, your camera will populate its own `Properties` with these spatial intrinsic parameters from the frame system. - You can get those parameters from your camera through the [camera API](/dev/reference/apis/components/camera/#getproperties). - The segmenter now returns multiple boxes within the `GeometryInFrame` object it captures. diff --git a/docs/dev/_index.md b/docs/dev/_index.md index 375d644f8f..1f73a604b6 100644 --- a/docs/dev/_index.md +++ b/docs/dev/_index.md @@ -789,7 +789,7 @@ api_key, api_key_id = await cloud.create_key( Viam allows you to organize and manage any number of machines. When collaborating with others, you can assign permissions using Role-Based Access Control (RBAC). Programmatically you can do this with the fleet management API. -[Learn about access control →](/cloud/rbac/) +[Learn about access control →](/manage/manage/rbac/) diff --git a/docs/dev/contributing.md b/docs/dev/contributing.md index 73b097ae7a..edf97de2b2 100644 --- a/docs/dev/contributing.md +++ b/docs/dev/contributing.md @@ -62,7 +62,7 @@ The docs use the [Diátaxis Framework](https://diataxis.fr/) as the basis of t - **Explanation (conceptual)**: An understanding-oriented piece of content. This content provides background knowledge on a topic and tends to be referenced in how-to guides and tutorials. - For example the [`viam-server` page](/architecture/viam-server/) or the [Registry page](/registry/). + For example the [`viam-server` page](/architecture/viam-server/). It’s useful to have a real or imagined "Why?" question to serve as a prompt. {{< expand "Click to view template" >}} @@ -94,7 +94,7 @@ The docs use the [Diátaxis Framework](https://diataxis.fr/) as the basis of t - **How-to Guide (procedural)**: A task-oriented piece of content that directs a reader to perform actions step by step to complete a task, like instructions to sauté onions. Generally starts with a description of the task and things to consider, and then provides a set of numbered steps to follow. - For example, the [Installation page](/operate/get-started/setup/) or the [Find module page](/registry/modular-resources/). + For example, the [Move a base](/operate/mobility/move-base/) page. {{< expand "Click to view template" >}} diff --git a/docs/dev/reference/apis/robot.md b/docs/dev/reference/apis/robot.md index f55ab1f6fe..fb2318a557 100644 --- a/docs/dev/reference/apis/robot.md +++ b/docs/dev/reference/apis/robot.md @@ -24,7 +24,7 @@ The machine API supports the following methods: To interact with the machine API with Viam's SDKs, instantiate a `RobotClient` ([gRPC](https://grpc.io/) client) and use that class for all interactions. -To find the API key, API key ID, and machine address, go to [Viam app](https://app.viam.com/), select the machine you wish to connect to, and go to the [**Code sample**](/cloud/machines/#code-sample) tab. +To find the API key, API key ID, and machine address, go to [Viam app](https://app.viam.com/), select the machine you wish to connect to, and go to the **CONNECT** tab. Toggle **Include API key**, and then copy and paste the API key ID and the API key into your environment variables or directly into the code: {{< tabs >}} diff --git a/docs/dev/reference/apis/services/SLAM.md b/docs/dev/reference/apis/services/SLAM.md index 619a882b4b..4916891c9c 100644 --- a/docs/dev/reference/apis/services/SLAM.md +++ b/docs/dev/reference/apis/services/SLAM.md @@ -13,7 +13,7 @@ date: "2022-01-01" The SLAM service API allows you to get a machine's position within a map. -The [SLAM service](/services/slam/) supports the following methods: +The [SLAM service](/operate/reference/services/slam/) supports the following methods: {{< readfile "/static/include/services/apis/generated/slam-table.md" >}} diff --git a/docs/dev/reference/apis/services/base-rc.md b/docs/dev/reference/apis/services/base-rc.md index 3f5970ccf1..0d008f07bc 100644 --- a/docs/dev/reference/apis/services/base-rc.md +++ b/docs/dev/reference/apis/services/base-rc.md @@ -13,7 +13,7 @@ date: "2022-01-01" The base remote control service API allows you to get a list of inputs from the controller that are being monitored for that control mode. -The [SLAM service](/services/slam/) supports the following methods: +The [SLAM service](/operate/reference/operate/reference/operate/reference/operate/reference/services/slam/) supports the following methods: {{< readfile "/static/include/services/apis/generated/base_remote_control-table.md" >}} diff --git a/docs/dev/reference/apis/services/generic.md b/docs/dev/reference/apis/services/generic.md index c142951b31..73f82049f6 100644 --- a/docs/dev/reference/apis/services/generic.md +++ b/docs/dev/reference/apis/services/generic.md @@ -11,7 +11,7 @@ date: "2022-01-01" # updated: "" # When the content was last entirely checked --- -The generic service API allows you to give commands to your [generic services](/services/generic/) for running model-specific commands using [`DoCommand`](/dev/reference/apis/services/generic/#docommand). +The generic service API allows you to give commands to your [generic services](/operate/reference/components/generic/) for running model-specific commands using [`DoCommand`](/dev/reference/apis/services/generic/#docommand). The generic service supports the following methods: diff --git a/docs/dev/reference/apis/services/ml.md b/docs/dev/reference/apis/services/ml.md index bea271dcb5..ed7a3dbffb 100644 --- a/docs/dev/reference/apis/services/ml.md +++ b/docs/dev/reference/apis/services/ml.md @@ -13,7 +13,7 @@ date: "2022-01-01" The ML model service API allows you to make inferences based on a provided ML model. -The [ML Model service](/services/ml/) supports the following methods: +The [ML Model service](/data-ai/ai/deploy/) supports the following methods: {{< readfile "/static/include/services/apis/generated/mlmodel-table.md" >}} diff --git a/docs/dev/reference/apis/services/motion.md b/docs/dev/reference/apis/services/motion.md index 1ef07bfb5b..fee203d8cd 100644 --- a/docs/dev/reference/apis/services/motion.md +++ b/docs/dev/reference/apis/services/motion.md @@ -10,7 +10,7 @@ date: "2022-01-01" # updated: "" # When the content was last entirely checked --- -The motion service API allows you to give commands to your [motion service](/services/motion/) for moving a mobile robot based on a SLAM map or GPS coordinates or for moving a machine's components from one pose to another. +The motion service API allows you to give commands to your [motion service](/operate/reference/services/motion/) for moving a mobile robot based on a SLAM map or GPS coordinates or for moving a machine's components from one pose to another. The motion service supports the following methods: diff --git a/docs/dev/reference/apis/services/navigation.md b/docs/dev/reference/apis/services/navigation.md index 558c9d18e0..f8bc1ffb86 100644 --- a/docs/dev/reference/apis/services/navigation.md +++ b/docs/dev/reference/apis/services/navigation.md @@ -13,7 +13,7 @@ date: "2022-01-01" The navigation service API allows you to define waypoints and move your machine along those waypoints while avoiding obstacles. -The [navigation service](/services/navigation/) supports the following methods: +The [navigation service](/operate/reference/services/navigation/) supports the following methods: {{< readfile "/static/include/services/apis/generated/navigation-table.md" >}} diff --git a/docs/dev/reference/apis/sessions.md b/docs/dev/reference/apis/sessions.md index 10b8bfd7fe..e55b0bb357 100644 --- a/docs/dev/reference/apis/sessions.md +++ b/docs/dev/reference/apis/sessions.md @@ -32,7 +32,7 @@ This is especially important for machines that physically move. For example, imagine a wheeled rover gets a [`SetPower()`](/dev/reference/apis/components/base/#setpower) command as the last input from a client before the connection to the machine is interrupted. Without session management, the API request from the client would cause the rover's motors to move, causing the machine to continue driving forever and potentially colliding with objects and people. -For more information, see [Client Sessions and Machine Network Connectivity](/sdks/connectivity/). +For more information, see [Client Sessions and Machine Network Connectivity](/dev/reference/sdks/connectivity/). If you want to manage operations differently, you can manage your machine's client sessions yourself. The Session Management API provides functionality for: diff --git a/docs/dev/reference/changelog.md b/docs/dev/reference/changelog.md index d30d52c27d..9bdf21b91f 100644 --- a/docs/dev/reference/changelog.md +++ b/docs/dev/reference/changelog.md @@ -120,28 +120,28 @@ For more information, see [viam-micro-server](/architecture/viam-micro-server/). {{% changelog date="2024-08-26" color="added" title="Provisioning" %}} You can now configure provisioning for machines with the Viam Agent. -For more information, see [Configure provisioning with viam-agent](/how-tos/provision-setup/). +For more information, see [Configure provisioning with viam-agent](/manage/fleet/provision/setup/). {{% /changelog %}} {{% changelog date="2024-08-16" color="added" title="Data capture for vision" %}} Data capture is now possible for the vision service. -For more information, see [Supported components and services](/services/data/#supported-components-and-services). +For more information, see [Supported components and services](/data-ai/capture-data/capture-sync/#supported-resources). {{% /changelog %}} {{% changelog date="2024-08-01" color="added" title="Create custom training scripts" %}} You can now upload custom training scripts to the Viam Registry and use them to train machine learning models. -For more information, see [Create custom training scripts](/how-tos/create-custom-training-scripts/). +For more information, see [Create custom training scripts](/data-ai/ai/train/). {{% /changelog %}} {{% changelog date="2024-07-19" color="changed" title="Operators can now view data" %}} The operator role now has view permissions for the data in the respective resource a user has access to. -For more information, see [Data and machine learning permissions](/cloud/rbac/#data-and-machine-learning). +For more information, see [Data and machine learning permissions](/manage/manage/rbac/#data-and-machine-learning). {{% /changelog %}} @@ -265,7 +265,7 @@ You can now upload your own ML model(/data-ai/ai/deploy/#deploy-your-ml-model) u {{% changelog date="2024-03-01" color="added" title="Ultrasonic sensor for `viam-micro-server`" %}} -You can now use the [ultrasonic sensor component](/operate/reference/components/sensor/ultrasonic-micro-rdk/) with [`viam-micro-server`](/installation/viam-micro-server-setup/#install-viam-micro-server) to integrate an [HC-S204](https://www.sparkfun.com/products/15569) ultrasonic distance sensor into a machine running `viam-micro-server`. +You can now use the [ultrasonic sensor component](/operate/reference/components/sensor/ultrasonic-micro-rdk/) with [`viam-micro-server`](/operate/reference/viam-micro-server/) to integrate an [HC-S204](https://www.sparkfun.com/products/15569) ultrasonic distance sensor into a machine running `viam-micro-server`. {{% /changelog %}} @@ -292,7 +292,7 @@ The Viam Agent is a software provisioning manager that you can install on your m {{% changelog date="2024-02-12" color="added" title="Generic service" %}} -You can now use the [generic service](/services/generic/) to define new, unique types of services that do not already have an [appropriate API](/dev/reference/apis/#service-apis) defined for them. +You can now use the [generic service](/operate/reference/components/generic/) to define new, unique types of services that do not already have an [appropriate API](/dev/reference/apis/#service-apis) defined for them. {{% /changelog %}} @@ -342,7 +342,7 @@ You can now run `viam-server` on a [Raspberry Pi 5](/operate/reference/component {{% changelog date="2023-12-31" color="added" title="Role-based access control" %}} -Users can now have [access to different fleet management capabilities](/cloud/rbac/) depending on whether they are an owner or an operator of a given organization, location, or machine. +Users can now have [access to different fleet management capabilities](/manage/manage/rbac/) depending on whether they are an owner or an operator of a given organization, location, or machine. {{% /changelog %}} @@ -371,7 +371,7 @@ To make it easier to iterate while training machine learning models from image d {{% changelog date="2023-11-30" color="improved" title="Manage users access" %}} You can now manage users access to machines, locations, and organizations. -For more information, see [Access Control](/cloud/rbac/) +For more information, see [Access Control](/manage/manage/rbac/) {{% /changelog %}} @@ -412,7 +412,7 @@ This enhancement allows you to: {{% changelog date="2023-09-30" color="added" title="Modular registry" %}} -The [Modular Registry](/registry/) enables you to use, create, and share custom modules, extending the capabilities of Viam beyond the components and services that are natively supported. +The [Modular Registry](https://app.viam.com/registry/) enables you to use, create, and share custom modules, extending the capabilities of Viam beyond the components and services that are natively supported. You can: @@ -518,13 +518,13 @@ See the [Odrive module readme](https://github.com/viamrobotics/odrive) to learn {{% changelog date="2023-06-30" color="added" title="Implement custom robotic arms as Viam modules" %}} When prototyping a robotic arm, you can now facilitate movement without creating your own motion planning. -This update enables you to implement custom models of an arm component as a [modular resource](/registry/) by coding three endpoints of the [Arm API](/dev/reference/apis/components/arm/#api): +This update enables you to implement custom models of an arm component as a modular resource by coding three endpoints of the [Arm API](/dev/reference/apis/components/arm/#api): - `getJointPositions` - `movetoJointPositions` - `GetKinematics` -Then, use the [motion planning service](/services/motion/) to specify poses, and Viam handles the rest. +Then, use the [motion planning service](/operate/reference/services/motion/) to specify poses, and Viam handles the rest. For more information, see this [tutorial on creating a custom arm](/registry/examples/custom-arm/). @@ -581,7 +581,7 @@ This update allows you to: Now when you invite collaborators to join your organization, you can assign permissions to members by setting one of these roles: -- **Owner**: These members can see and edit [every tab on the machine page](/cloud/machines/#navigating-the-machine-page), as well as manage users in the app. +- **Owner**: These members can see and edit every tab on the machine page, as well as manage users in the app. This role is best for those on your team who are actively engineering and building machines. - **Operator**: These members can only see and use the [remote control tab](/manage/troubleshoot/teleoperate/default-interface/). @@ -985,7 +985,7 @@ You will no longer be able to add or remove models using the SDKs. #### Add machine learning vision models to a vision service The way to add machine learning vision models is changing. -You will need to first register the machine learning model file with the [ML model service](/services/ml/) and then add that registered model to a vision service. +You will need to first register the machine learning model file with the [ML model service](/data-ai/ai/deploy/) and then add that registered model to a vision service. {{% /changelog %}} @@ -1060,14 +1060,14 @@ Find more information in the [TypeScript SDK docs](https://ts.viam.dev/). {{% changelog date="2023-02-28" color="added" title="Frame system visualizer" %}} -When adding [frames](/services/frame-system/) to your machine's config in the Viam app, you can now use the **Frame System** subtab of the **CONFIGURE** tab to more easily visualize the relative positions of frames. +When adding [frames](/operate/mobility/define-geometry/) to your machine's config in the Viam app, you can now use the **Frame System** subtab of the **CONFIGURE** tab to more easily visualize the relative positions of frames. {{% /changelog %}} {{% changelog date="2023-02-28" color="added" title="Support for microcontrollers" %}} `viam-micro-server` is a lightweight version of `viam-server` that can run on an ESP32. -Find more information in the [`viam-micro-server` installation docs](/installation/viam-micro-server-setup/#install-viam-micro-server). +Find more information in the [`viam-micro-server` docs](/operate/reference/viam-micro-server/). {{% /changelog %}} @@ -1092,7 +1092,7 @@ The movement sensor API now includes a [GetLinearAcceleration](/dev/reference/ap {{% changelog date="2023-01-31" color="added" title="Support for capsule geometry" %}} -The [motion service](/services/motion/) now supports capsule geometries. +The [motion service](/operate/reference/services/motion/) now supports capsule geometries. The UR5 arm model has been improved using this new geometry type. @@ -1100,7 +1100,7 @@ The UR5 arm model has been improved using this new geometry type. {{% changelog date="2022-12-28" color="added" title="Modular resources" %}} -You can now implement your own custom {{< glossary_tooltip term_id="resource" text="resources" >}} as [_modular resources_](/registry/). +You can now implement your own custom {{< glossary_tooltip term_id="resource" text="resources" >}} as [_modular resources_ in the registry](https://app.viam.com/registry/). {{% alert title="Important: Breaking Change" color="note" %}} @@ -1136,7 +1136,7 @@ There are two new movement sensor {{< glossary_tooltip term_id="model" text="mod {{% changelog date="2022-12-28" color="improved" title="Motion planning with remote components" %}} -The [motion service](/services/motion/) is now agnostic to the networking topology of a machine. +The [motion service](/operate/reference/services/motion/) is now agnostic to the networking topology of a machine. - Kinematic information is now transferred over the robot API. This means that the motion service is able to get kinematic information for every component on the machine, regardless of whether it is on a main or remote viam-server. diff --git a/docs/dev/reference/glossary/api-namespace-triplet.md b/docs/dev/reference/glossary/api-namespace-triplet.md index ab504f25f8..10785c679f 100644 --- a/docs/dev/reference/glossary/api-namespace-triplet.md +++ b/docs/dev/reference/glossary/api-namespace-triplet.md @@ -13,7 +13,7 @@ The `namespace` for built-in Viam resources is `rdk`, while the `type` is `compo `subtype` refers to a specific component or service, like a `camera` or `vision`. One subtype can have various {{< glossary_tooltip term_id="model" text="models" >}}, custom or built-in, but they all must conform to the subtype's API definition. -This requirement ensures that when a resource of that model is deployed, you can [interface with it](/sdks/) using the same [client API methods](/dev/reference/apis/) you would when programming resources of the same subtype with a different model. +This requirement ensures that when a resource of that model is deployed, you can [interface with it](/dev/reference/sdks/) using the same [client API methods](/dev/reference/apis/) you would when programming resources of the same subtype with a different model. For example: diff --git a/docs/dev/reference/glossary/frame-system.md b/docs/dev/reference/glossary/frame-system.md index 29d9593ffd..1b7f97691e 100644 --- a/docs/dev/reference/glossary/frame-system.md +++ b/docs/dev/reference/glossary/frame-system.md @@ -1,7 +1,7 @@ --- title: Frame System id: frame-system -full_link: /services/frame-system/ +full_link: /operate/mobility/define-geometry/ short_description: The frame system holds reference frame information for the relative position of components in space. --- diff --git a/docs/dev/reference/glossary/location.md b/docs/dev/reference/glossary/location.md index c3be0b89e0..36d4b81d86 100644 --- a/docs/dev/reference/glossary/location.md +++ b/docs/dev/reference/glossary/location.md @@ -1,10 +1,10 @@ --- title: Location id: location -full_link: /cloud/locations/ +full_link: /manage/reference/organize/ short_description: A location is a virtual grouping of machines that allows you to organize machines and manage access to your fleet. --- A location is a virtual grouping of machines that allows you to organize machines and manage access to your fleet. -For more information, see [Manage Locations and Sub-Locations](/cloud/locations/). +For more information, see [Manage Locations and Sub-Locations](/manage/reference/organize/). diff --git a/docs/dev/reference/glossary/machine.md b/docs/dev/reference/glossary/machine.md index 7da2f42eb6..e71a038726 100644 --- a/docs/dev/reference/glossary/machine.md +++ b/docs/dev/reference/glossary/machine.md @@ -7,4 +7,4 @@ short_description: An organizational concept, consisting of a computer and the c 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. -For more information, see [Machines](/cloud/machines/). +For more information, see [Machines](/operate/get-started/setup/#what-is-a-machine). diff --git a/docs/dev/reference/glossary/model-namespace-triplet.md b/docs/dev/reference/glossary/model-namespace-triplet.md index 2f6a76f002..d6fa141f11 100644 --- a/docs/dev/reference/glossary/model-namespace-triplet.md +++ b/docs/dev/reference/glossary/model-namespace-triplet.md @@ -1,11 +1,10 @@ --- title: Model Namespace Triplet id: model-namespace-triplet -full_link: /operate/get-started/other-hardware/#name-your-new-resource-model short_description: namespace:module-name:name or rdk:builtin:name --- {{< glossary_tooltip term_id="model" text="Models" >}} are uniquely namespaced as colon-delimited-triplets. Modular resource model names have the form `namespace:module-name:model-name`, for example `esmeraldaLabs:sensors:moisture`. Built-in model names have the form `rdk:builtin:name`, for example `rdk:builtin:gpio`. -See [Name your new resource model](/operate/get-started/other-hardware/#name-your-new-resource-model) for more information. +See [Write your module](/operate/get-started/other-hardware/#write-your-module) for more information. diff --git a/docs/dev/reference/glossary/model.md b/docs/dev/reference/glossary/model.md index c6813e142b..b2d3dcfdb0 100644 --- a/docs/dev/reference/glossary/model.md +++ b/docs/dev/reference/glossary/model.md @@ -16,4 +16,4 @@ Models are either included with [`viam-server`](/architecture/viam-server/) or p All models are uniquely namespaced as colon-delimited-triplets. Built-in model names have the form `rdk:builtin:name`. Modular resource model names have the form `namespace:module-name:model-name`. -See [Name your new resource model](/operate/get-started/other-hardware/#name-your-new-resource-model) for more information. +See [Write your module](/operate/get-started/other-hardware/#write-your-module) for more information. diff --git a/docs/dev/reference/glossary/modular-resource.md b/docs/dev/reference/glossary/modular-resource.md index ba46d4abf4..0fe8fbe40a 100644 --- a/docs/dev/reference/glossary/modular-resource.md +++ b/docs/dev/reference/glossary/modular-resource.md @@ -1,7 +1,6 @@ --- title: Modular Resource id: modular-resource -full_link: /registry/ short_description: A modular resource is a model of a component or service provided by a module. --- @@ -9,4 +8,4 @@ A modular resource is a {{< glossary_tooltip term_id="model" text="model" >}} of A modular resource runs in a module process. This differs from built-in resources, which run as part of `viam-server`. -For more information see the [Modular Resource Documentation](/registry/). +For more information see the [Integrate other hardware](/operate/get-started/other-hardware/#write-your-module). diff --git a/docs/dev/reference/glossary/module.md b/docs/dev/reference/glossary/module.md index 8684f27e68..381e73cfbc 100644 --- a/docs/dev/reference/glossary/module.md +++ b/docs/dev/reference/glossary/module.md @@ -8,6 +8,4 @@ short_description: A module provides one or more modular resources, which add re A _module_ provides one or more {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}, which add {{< glossary_tooltip term_id="resource" text="resource" >}} {{< glossary_tooltip term_id="type" text="types" >}} or {{< glossary_tooltip term_id="model" text="models" >}} that are not built into Viam. Modules run alongside `viam-server` as separate process, communicating with `viam-server` over UNIX sockets. -You can [create your own module](/operate/get-started/other-hardware/) or [add existing modules from the Viam Registry](/registry/modular-resources/). - -For more information see the [modular resource documentation](/registry/). +You can [create your own module](/operate/get-started/other-hardware/) or [add existing modules from the Viam Registry](/operate/get-started/supported-hardware/). diff --git a/docs/dev/reference/glossary/organization.md b/docs/dev/reference/glossary/organization.md index 4334d9be57..a586578ff6 100644 --- a/docs/dev/reference/glossary/organization.md +++ b/docs/dev/reference/glossary/organization.md @@ -1,7 +1,7 @@ --- title: Organization id: organization -full_link: /fleet/organizations/ +full_link: /manage/reference/organize/ short_description: An organization is a group of one or more locations that helps you organize your fleet and manage who has access to your fleet. --- @@ -9,4 +9,4 @@ An organization is the highest level grouping in the Viam platform, which genera Every {{< glossary_tooltip term_id="location" text="location" >}} is grouped into an organization. You can also have organizations for departments or other entities, or for personal use. -For more information, see [Manage Organizations](/cloud/organizations/). +For more information, see [Organize your machines](/manage/reference/organize/). diff --git a/docs/dev/reference/glossary/part.md b/docs/dev/reference/glossary/part.md index e3e98780b2..d8d6c73332 100644 --- a/docs/dev/reference/glossary/part.md +++ b/docs/dev/reference/glossary/part.md @@ -7,4 +7,4 @@ short_description: A single-board computer, desktop, laptop, or other computer r Smart machines are organized into _parts_, where each part represents a computer (a single-board computer, desktop, laptop, or other computer) running `viam-server`, the hardware {{< glossary_tooltip term_id="component" text="components" >}} attached to it, and any {{< glossary_tooltip term_id="service" text="services" >}} or other resources running on it. -For more information, see [Machine Architecture: Parts](/architecture/parts/). +For more information, see [Machine Architecture: Parts](/operate/reference/architecture/parts/). diff --git a/docs/dev/reference/glossary/remote-part.md b/docs/dev/reference/glossary/remote-part.md index f8c66ac38b..950c9b1c3e 100644 --- a/docs/dev/reference/glossary/remote-part.md +++ b/docs/dev/reference/glossary/remote-part.md @@ -8,4 +8,4 @@ aka: A machine part which is controlled by another machine part. -For more information, see [Machine Architecture: Parts](/architecture/parts/). +For more information, see [Machine Architecture: Parts](/operate/reference/architecture/parts/). diff --git a/docs/dev/reference/glossary/slam.md b/docs/dev/reference/glossary/slam.md index ccdd0af799..dd39f4fc4c 100644 --- a/docs/dev/reference/glossary/slam.md +++ b/docs/dev/reference/glossary/slam.md @@ -1,10 +1,10 @@ --- title: SLAM id: slam -full_link: /services/slam/ +full_link: /operate/reference/services/slam/ short_description: Simultaneous Localization And Mapping (SLAM) algorithms use data from a machine's sensors to generate a map of the environment and determine the machine's position within it. --- SLAM (Simultaneous Localization and Mapping) algorithms use data from a machine's sensors, like LiDARs, cameras, and movement sensors, to generate a map of the environment and determine the machine's position within it. -For more information, see [SLAM](/services/slam/). +For more information, see [SLAM](/operate/reference/services/slam/). diff --git a/docs/dev/reference/sdks/connectivity.md b/docs/dev/reference/sdks/connectivity.md index b6978e8075..3d6876e782 100644 --- a/docs/dev/reference/sdks/connectivity.md +++ b/docs/dev/reference/sdks/connectivity.md @@ -13,7 +13,7 @@ date: "2022-01-01" # updated: "" # When the content was last entirely checked --- -When connecting to a machine using the connection code from the [**CONNECT** tab](/sdks/#code-samples), a [client session](/dev/reference/apis/sessions/) automatically uses the most efficient route to connect to your machine either through local LAN or WAN or the internet. +When connecting to a machine using the connection code from the [**CONNECT** tab](/dev/reference/sdks/), a [client session](/dev/reference/apis/sessions/) automatically uses the most efficient route to connect to your machine either through local LAN or WAN or the internet. When a machine loses its connection to the internet but is still connected to a LAN or WAN: @@ -28,7 +28,7 @@ When a machine loses its connection to LAN or WAN, all client sessions will time When your client cannot connect to your machine's `viam-server` instance, `viam-server` will end any current client [_sessions_](/dev/reference/apis/sessions/) on this machine and all client operations will [timeout automatically](/dev/reference/apis/sessions/) and halt: any active commands will be cancelled, stopping any moving parts, and no new commands will be able to reach the machine until the connection is restored. -To disable the default behavior and manage resource timeout and reconfiguration over a networking session yourself, you can [disable the default behavior](/dev/reference/apis/sessions/#disable-default-session-management) of session management, then use [Viam's SDKs](/sdks/) in your code to make calls to [the session management API](https://pkg.go.dev/go.viam.com/rdk/session#hdr-API). +To disable the default behavior and manage resource timeout and reconfiguration over a networking session yourself, you can [disable the default behavior](/dev/reference/apis/sessions/#disable-default-session-management) of session management, then use [Viam's SDKs](/dev/reference/sdks/) in your code to make calls to [the session management API](https://pkg.go.dev/go.viam.com/rdk/session#hdr-API). ## Configure a connection timeout diff --git a/docs/dev/reference/sdks/python/python-venv.md b/docs/dev/reference/sdks/python/python-venv.md index abd36daca9..12bf56b90f 100644 --- a/docs/dev/reference/sdks/python/python-venv.md +++ b/docs/dev/reference/sdks/python/python-venv.md @@ -67,7 +67,7 @@ pip3 install viam-sdk This installs the Viam Python SDK and all required general dependencies. -If you intend to use the [ML (machine learning) model service](/services/ml/), install the Python SDK using the `mlmodel` extra: +If you intend to use the [ML (machine learning) model service](/data-ai/ai/deploy/), install the Python SDK using the `mlmodel` extra: ```sh {class="command-line" data-prompt="$"} pip3 install 'viam-sdk[mlmodel]' @@ -100,4 +100,4 @@ Your IDE will now recognize all packages installed in this environment. ## Start building -You are now ready to [start using Viam's Python SDK](/sdks/)! +You are now ready to [start using Viam's Python SDK](/dev/reference/sdks/)! diff --git a/docs/dev/reference/sdks/use-extra-params.md b/docs/dev/reference/sdks/use-extra-params.md index aba421c07a..ab77f69566 100644 --- a/docs/dev/reference/sdks/use-extra-params.md +++ b/docs/dev/reference/sdks/use-extra-params.md @@ -96,7 +96,7 @@ If `extra` information must be passed to a resource, it is handled within a new, To do this, define a custom implementation of the resource's API as a new _model_, and modify the resource's API methods to handle the `extra` information you send. Follow the steps in the [Modular Resources documentation](/operate/get-started/other-hardware/) to do so. -For an example of how to check the values of keys in an `extra` parameter of a built-in resource [API method](/dev/reference/apis/), reference this modification to the built-in [sensor](/operate/reference/components/sensor/) resource type's [Readings](/dev/reference/apis/components/sensor/#getreadings) method in the code of a [new sensor model](/registry/): +For an example of how to check the values of keys in an `extra` parameter of a built-in resource [API method](/dev/reference/apis/), reference this modification to the built-in [sensor](/operate/reference/components/sensor/) resource type's [Readings](/dev/reference/apis/components/sensor/#getreadings) method in the code of a new sensor model: {{< tabs >}} {{% tab name="Python" %}} @@ -162,6 +162,6 @@ func (s *mySensor) Readings(ctx context.Context, extra map[string]interface{}) ( {{% /tab %}} {{% /tabs %}} -See [Extend Viam with Modular Resources](/registry/) for more information and [instructions](/registry/) on modifying built-in API specifications. +See [Integrate other hardware](/operate/get-started/other-hardware/) for more information and instructions on modifying built-in API specifications. {{% /expand%}} diff --git a/docs/dev/tools/cli.md b/docs/dev/tools/cli.md index 31acb638e2..0dccee7b72 100644 --- a/docs/dev/tools/cli.md +++ b/docs/dev/tools/cli.md @@ -17,10 +17,10 @@ date: "2024-08-23" The Viam CLI (command line interface) tool enables you to manage your machines and {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}} across organizations and locations from the command line. The CLI lets you: -- Retrieve [organization](/cloud/organizations/) and location information +- Retrieve [organization](/dev/reference/glossary/organizaion/) and location information - Manage [machine fleet](/fleet/) data and logs - Control machines by issuing component and service commands -- Upload and manage [modular resources](/registry/) in the Viam Registry +- Upload and manage modular resources in the [Viam Registry](https://app.viam.com/registry/) For example, this CLI command moves a servo to the 75 degree position: @@ -540,7 +540,7 @@ done ### `locations` -The `locations` command allows you to manage the [locations](/cloud/locations/) that you have access to. +The `locations` command allows you to manage the [locations](/manage/reference/organize/) that you have access to. With it, you can list available locations, filter locations by organization, or create a new location API key. ```sh {class="command-line" data-prompt="$"} @@ -715,7 +715,7 @@ viam module upload --version=1.0.0 --platform=darwin/arm64 packaged-module.tar.g | `--local-only` | Create a meta.json file for local use, but don't create the module on the backend (default: `false`). | `create` | Optional | | `--name` | The name of the custom module to be created | `create` | **Required** | | `--org-id` | The organization ID to associate the module to. See [Using the `--org-id` argument](#using-the---org-id-and---public-namespace-arguments) | `create`, `upload` | **Required** | -| `--public-namespace` | The [namespace](/cloud/organizations/#create-a-namespace-for-your-organization) to associate the module to. See [Using the `--public-namespace` argument](#using-the---org-id-and---public-namespace-arguments) | `create`, `upload` | **Required** | +| `--public-namespace` | The namespace to associate the module to. See [Using the `--public-namespace` argument](#using-the---org-id-and---public-namespace-arguments) | `create`, `upload` | **Required** | | `--platform` | The architecture of your module binary. See [Using the `--platform` argument](#using-the---platform-argument) | `upload`, `build logs` | **Required** | | `--tags` | Comma-separated list of platform tags that determine to which platforms this binary can be deployed. Examples: `distro:debian,distro:ubuntu, os_version:22.04,os_codename:jammy`. For a machine to use an uploaded binary, all tags must be satisfied as well as the `--platform` field. | `upload` | Optional | | `--version` | The version of your module to set for this upload. See [Using the `--version` argument](#using-the---version-argument) | `upload` | **Required** | @@ -725,7 +725,7 @@ viam module upload --version=1.0.0 --platform=darwin/arm64 packaged-module.tar.g All of the `module` commands accept either the `--org-id` or `--public-namespace` argument. -- Use the `--public-namespace` argument to supply the [namespace](/cloud/organizations/#create-a-namespace-for-your-organization) of your organization. This will upload your module to the Viam Registry and share it with other users. +- Use the `--public-namespace` argument to supply the namespace of your organization. This will upload your module to the Viam Registry and share it with other users. - Use the `--org-id` to provide your organization ID instead, This will upload your module privately within your organization. You may use either argument for the `viam module create` command, but must use `--public-namespace` for the `update` and `upload` commands when uploading as a public module (`"visibility": "public"`) to the Viam Registry. @@ -802,14 +802,14 @@ The `meta.json` file includes the following configuration options: module_id string Required - The name of the module, including its namespace. + The name of the module, including its namespace. visibility string Required - Whether the module is accessible only to members of your organization (private), or visible to all Viam users (public). You can change this setting later using the viam module update command.

Default: private + Whether the module is accessible only to members of your organization (private), or visible to all Viam users (public). You can change this setting later using the viam module update command.

Default: private url @@ -857,7 +857,7 @@ For example, the following represents the configuration of an example `my-module ``` {{% alert title="Important" color="note" %}} -If you are publishing a public module (`"visibility": "public"`), the [namespace of your model](/operate/get-started/other-hardware/#name-your-new-resource-model) must match the [namespace of your organization](/cloud/organizations/#create-a-namespace-for-your-organization). +If you are publishing a public module (`"visibility": "public"`), the namespace of your model match the namespace of your [organization](/dev/reference/glossary/organization/). In the example above, the model namespace is set to `acme` to match the owning organization's namespace. If the two namespaces do not match, the command will return an error. {{% /alert %}} @@ -1071,7 +1071,7 @@ See [create an organization API key](#create-an-organization-api-key) for more i | Command option | Description | Positional arguments | | -------------- | ----------- | -------------------- | -| `list` | List all organizations (name, id, and [namespace](/cloud/organizations/#create-a-namespace-for-your-organization)) that the authenticated session has access to. | - | +| `list` | List all organizations (name, id, and namespace) that the authenticated session has access to. | - | | `api-key` | Create a new organization API key |`create` | | `--help` | Return help | - | @@ -1405,7 +1405,7 @@ viam whoami ### `auth-app` The `auth-app` command allows you to register, update, and get your web or mobile application (created with the Viam Flutter or TypeScript [SDKs](/sdks/)) with [FusionAuth](https://fusionauth.io/) (the tool Viam uses for authentication and authorization) so that you or other users can log into your app with the same credentials they use to log into the [Viam app](https://app.viam.com). -The user's credentials allow them the same [permissions](/cloud/rbac/) to organizations, locations, and machines that they have in the Viam app. +The user's credentials allow them the same [permissions](/manage/manage/rbac/) to organizations, locations, and machines that they have in the Viam app. ```sh {class="command-line" data-prompt="$" data-output="2-8,10-14"} viam auth-app register --org-id= --application-name= --origin-uris= --redirect-uris= --logout-uri= diff --git a/docs/dev/tools/common-errors.md b/docs/dev/tools/common-errors.md index e4c3b99bd7..0118323319 100644 --- a/docs/dev/tools/common-errors.md +++ b/docs/dev/tools/common-errors.md @@ -147,7 +147,7 @@ When a machine is disconnected, it will continue to run with its locally-cached **Full Error:** `Error: cannot parse config: JSON: cannot unmarshal string into Go struct field Component.components.frame of type float64.` -**Description:** A [frame](/services/frame-system/) attribute may be malformed, and is preventing the parsing of the component's configuration. +**Description:** A [frame](/operate/mobility/define-geometry/) attribute may be malformed, and is preventing the parsing of the component's configuration. **Solution:** Check the **CONFIGURE** tab for your machine in the [Viam app](https://app.viam.com) and look for a `frame` attribute, either in **Frame** or **JSON** mode. If you see a `frame` attribute that you didn't create yourself, delete the whole `frame` object from the JSON config. diff --git a/docs/manage/fleet/provision/setup.md b/docs/manage/fleet/provision/setup.md index f7a1922393..f50d115330 100644 --- a/docs/manage/fleet/provision/setup.md +++ b/docs/manage/fleet/provision/setup.md @@ -41,7 +41,7 @@ This guide will show you how to install and configure `viam-agent`. {{% expand "One or more physical devices with supported operating system" %}} -To find out more about supported systems, see [`viam-server` Platform requirements](/installation/viam-server-setup/#platform-requirements) and [`viam-micro-server` Platform requirements](/installation/viam-micro-server-setup/#platform-requirements). +To find out more about supported systems, see [`viam-server` Platform requirements](/operate/get-started/setup/#supported-systems) and [`viam-micro-server` hardware requirements](/operate/reference/viam-micro-server/#hardware-requirements). If you are flashing a Raspberry Pi using the Raspberry Pi Imager, flash a 64-bit image to your SD card and customize at least the hostname when prompted by the Raspberry Pi Imager. @@ -246,7 +246,7 @@ If you know in advance which other networks a machine should be able to connect However, if you want to add additional networks to the provisioning configuration you can add them to the `networks` field value. {{< alert title="Important" color="note" >}} -You must enable `roaming_mode` in the [`agent-provisioning` configuration](#configuration) of the machine to allow the machine to connect to the specified networks after provisioning. +You must enable `roaming_mode` in the [`agent-provisioning` configuration](/manage/fleet/provision/setup/#configure-agent-provisioning) of the machine to allow the machine to connect to the specified networks after provisioning. {{< /alert >}} If `roaming_mode` is enabled, `agent-provisioning` will try to connect to each specified network in order of `priority` from highest to lowest. @@ -300,7 +300,7 @@ The following configuration defines the connection information and credentials f The following instructions will preinstall `viam-agent` into an image. -**Only use the following method for offline pre-installs with images. For live systems, follow the instructions on a machine's setup tab to [install `viam-server` with `viam-agent`](/installation/viam-server-setup/).** +**Only use the following method for offline pre-installs with images. For live systems, follow the instructions on a machine's setup tab to install `viam-server` with `viam-agent`.** {{< alert title="Support notice" color="note" >}} Please note this script works only under POSIX (MacOS and Linux) at the moment. @@ -464,7 +464,7 @@ For a guide you can give to end users for setting up their machine, see [Setup m 1. When you power on the machine that has `viam-agent` installed and `agent-provisioning` configured, `viam-agent` creates a WiFi hotspot. - - The [`agent-provisioning` configuration](#configuration) is at /etc/viam-provisioning.json on your machine. + - The [`agent-provisioning` configuration](/manage/fleet/provision/setup/#configure-agent-provisioning) is at /etc/viam-provisioning.json on your machine. 1. You then use your mobile device or computer and connect to the WiFi hotspot. @@ -490,7 +490,7 @@ For a guide you can give to end users for setting up their machine, see [Setup m 1. When you, as the end user, power on the machine that has `viam-agent` installed and `agent-provisioning` configured, `agent-provisioning` creates a WiFi hotspot. - - The [`agent-provisioning` configuration](#configuration) is at /etc/viam-provisioning.json. + - The [`agent-provisioning` configuration](/manage/fleet/provision/setup/#configure-agent-provisioning) is at /etc/viam-provisioning.json. - If a machine already exists, a machine cloud credentials file, if provided, is at /etc/viam.json. 1. You as the end user then use your mobile device or computer and connect to the WiFi hotspot. diff --git a/docs/manage/fleet/reuse-configuration.md b/docs/manage/fleet/reuse-configuration.md index d36fc5cb99..b2e1d7f8db 100644 --- a/docs/manage/fleet/reuse-configuration.md +++ b/docs/manage/fleet/reuse-configuration.md @@ -28,7 +28,7 @@ If one rover has an arm attached, you can add the rover configuration fragment ( ## Create a fragment -You must be an [organization owner](/cloud/rbac/#permissions) to create fragments for an organization. +You must be an [organization owner](/manage/manage/rbac/) to create fragments for an organization. {{< table >}} {{% tablestep link="/configure/" %}} @@ -336,7 +336,7 @@ This example uses [`$set`](https://www.mongodb.com/docs/manual/reference/operato {{< /expand >}} {{< expand "Pin a module version" >}} -This example uses [`$set`](https://www.mongodb.com/docs/manual/reference/operator/update/set/#mongodb-update-up.-set) to set [version update settings for a module](/registry/modular-resources/#configuration) named `custom-sensor` in the fragment: +This example uses [`$set`](https://www.mongodb.com/docs/manual/reference/operator/update/set/#mongodb-update-up.-set) to set [version update settings for a module](/operate/reference/module-configuration/#module-configuration-details) named `custom-sensor` in the fragment: ```json {class="line-numbers linkable-line-numbers"} "fragment_mods": [ diff --git a/docs/manage/manage/access.md b/docs/manage/manage/access.md index c86f365a9c..f92ce81882 100644 --- a/docs/manage/manage/access.md +++ b/docs/manage/manage/access.md @@ -27,16 +27,16 @@ In the [Viam app](https://app.viam.com), click on the organization dropdown in t {{% tablestep %}} **2. Grant access** -In the **Members** section of the organization settings page you can click on **Grant access** to invite new users to an organization or a location to [share access](/cloud/#use-viam-for-collaboration) to the machines within it. +In the **Members** section of the organization settings page you can click on **Grant access** to invite new users to an organization or a location to [share access](/manage/manage/access/) to the machines within it. {{< imgproc alt="The user invitation menu on the Organization settings page." src="/fleet/app-usage/invite-user.png" resize="900x" declaredimensions=true >}} {{% /tablestep %}} -{{% tablestep link="/cloud/rbac/#permissions" %}} +{{% tablestep link="/manage/manage/rbac/" %}} **3. Select a resource and role** Then select the resource that you would like to grant the user access to and the designated role (owner or operator). -Users with owner access to a location or organization, can collaborate on the [machines](/cloud/machines/) within it. +Users with owner access to a location or organization, can collaborate on the [machines](/operate/get-started/setup/#what-is-a-machine) within it. You can grant a user access to the following resources: @@ -77,7 +77,7 @@ You must have the **Owner** role to be able to grant permissions. In the [Viam app](https://app.viam.com), click on the organization dropdown in the top navigation bar and click on **Settings**. {{% /tablestep %}} -{{% tablestep link="/cloud/rbac/#permissions" %}} +{{% tablestep link="/manage/manage/rbac/" %}} **2. Limit access** In the **Members** section of the organization settings page, click on the user to open the access settings for the user. @@ -116,4 +116,4 @@ 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 >}} -Machine [configuration](machines/#configure) and machine [code](/sdks/) is intentionally kept separate, allowing you to keep track of versioning and debug issues separately. +Machine [configuration](machines/#configure) and machine [code](/dev/reference/sdks/) is intentionally kept separate, allowing you to keep track of versioning and debug issues separately. diff --git a/docs/manage/manage/rbac.md b/docs/manage/manage/rbac.md index d8406629cd..91a919c517 100644 --- a/docs/manage/manage/rbac.md +++ b/docs/manage/manage/rbac.md @@ -16,9 +16,9 @@ no_list: true Role-Based Access Control (RBAC) is a way to enforce security in the [Viam app](https://app.viam.com) by assigning organization members or API keys roles that confer permissions. You can assign an owner or an operator role for an {{< glossary_tooltip term_id="organization" text="organization" >}}, {{< glossary_tooltip term_id="location" text="location" >}}, or {{< glossary_tooltip term_id="machine" text="machine" >}}. -- **Owner**: Can see and edit [every tab on the machine page](/cloud/machines/#navigating-the-machine-page) and perform equivalent operations from the APIs. +- **Owner**: Can see and edit every tab on the machine page and perform equivalent operations from the APIs. - **Operator**: Can see and use only the [**CONTROL**](/manage/troubleshoot/teleoperate/default-interface/#viam-app) tab and perform equivalent operations from the APIs. - Cannot see or edit the [**CONFIGURE**](/cloud/machines/#configure), [**LOGS**](/manage/troubleshoot/troubleshoot/#check-logs), or **CONNECT** tabs. + Cannot see or edit the **CONFIGURE**, [**LOGS**](/manage/troubleshoot/troubleshoot/#check-logs), or **CONNECT** tabs. The following sections describe the permissions for each user role when it comes to managing machines, locations, organizations, fragments, and data. @@ -99,7 +99,7 @@ Permissions for managing {{< glossary_tooltip term_id="fragment" text="fragments ## Data and machine learning -Permissions for [data management](/fleet/data-management/) and [machine learning](/services/ml/) are as follows: +Permissions for [data management](/data-ai/capture-data/capture-sync/) and [machine learning](/data-ai/ai/deploy/) are as follows: | Permissions | Org owner | Org operator | Location owner | Location operator | Machine owner | Machine operator | diff --git a/docs/manage/reference/organize.md b/docs/manage/reference/organize.md index 64ab8fc93e..f64ccd4e10 100644 --- a/docs/manage/reference/organize.md +++ b/docs/manage/reference/organize.md @@ -29,7 +29,7 @@ You cannot move machines to other locations once created. ## Create organizations and locations {{< table >}} -{{% tablestep link="/cloud/organizations/" %}} +{{% tablestep link="/dev/reference/glossary/organization/" %}} **1. Create organizations** 1. Log into [Viam app](https://app.viam.com) in a web browser. @@ -38,7 +38,7 @@ You cannot move machines to other locations once created. 1. Create additional organizations as needed. {{% /tablestep %}} -{{% tablestep link="/cloud/locations/" %}} +{{% tablestep %}} **2. Create locations** 1. Click **FLEET** in the upper-left corner of the page and click **LOCATIONS**. @@ -50,7 +50,7 @@ You cannot move machines to other locations once created. 1. Create additional locations as needed using the **Add location** button, on the left of the **LOCATIONS** page. {{% /tablestep %}} -{{% tablestep link="/cloud/locations/" %}} +{{% tablestep %}} **3. Create sub-locations** If needed, you can add further sub-locations to, for example, differentiate groups of machines within an office. diff --git a/docs/manage/software/update-packages.md b/docs/manage/software/update-packages.md index dde4f5b30d..de7c0aa118 100644 --- a/docs/manage/software/update-packages.md +++ b/docs/manage/software/update-packages.md @@ -7,7 +7,7 @@ type: "docs" description: "As new versions of software modules or ML models become available, you can update the deployed version on all machines in one go." --- -If you have already [deployed a package](/manage/deploy/deploy-package/), you can inspect fragment you have created. +If you have already [deployed a package](/manage/software/deploy-packages/), you can inspect fragment you have created. The JSON object for the deployed package has a `version` field. As new versions of software modules or ML models become available, you can update the deployed version in one go using the fragment. diff --git a/docs/manage/troubleshoot/alert.md b/docs/manage/troubleshoot/alert.md index 7bdf61cf76..cff85ba079 100644 --- a/docs/manage/troubleshoot/alert.md +++ b/docs/manage/troubleshoot/alert.md @@ -73,7 +73,7 @@ You must run `viam-server` with `sudo` to monitor machine performance metrics. ### Add performance sensor {{< table >}} -{{% tablestep link="/registry/modular-resources/#configuration" %}} +{{% tablestep link="/operate/reference/module-configuration/#modular-resource-configuration-details" %}} **1. Add the performance metrics sensor** On your machine's **CONFIGURE** page, click the **+** icon next to your machine part in the left-hand menu and select **Component**. diff --git a/docs/manage/troubleshoot/teleoperate/default-interface.md b/docs/manage/troubleshoot/teleoperate/default-interface.md index 48810c0d90..3671166f21 100644 --- a/docs/manage/troubleshoot/teleoperate/default-interface.md +++ b/docs/manage/troubleshoot/teleoperate/default-interface.md @@ -42,7 +42,7 @@ Additionally, the app allows you to: - see if your machines are online - [view a machine's logs](/manage/troubleshoot/troubleshoot/#check-logs) -- [upload images from your phone to the cloud](/how-tos/upload-data/#upload-images-with-the-viam-mobile-app) +- [upload images from your phone to the cloud](/data-ai/ai/advanced/upload-external-data/#upload-images-with-the-viam-mobile-app) - [invite people to collaborate with you and modify access](/cloud/rbac/#use-the-mobile-app)
diff --git a/docs/operate/control/headless-app.md b/docs/operate/control/headless-app.md index 2f4fb81c6e..54f23bc4ab 100644 --- a/docs/operate/control/headless-app.md +++ b/docs/operate/control/headless-app.md @@ -47,7 +47,7 @@ Install your preferred Viam SDK on the Linux or macOS computer SBC where you pla {{< tabs >}} {{% tab name="Python" %}} -If you are using the Python SDK, [set up a virtual environment](/sdks/python/python-venv/) to package the SDK inside before running your code, avoiding conflicts with other projects or your system. +If you are using the Python SDK, [set up a virtual environment](/dev/reference/sdks/python/python-venv/) to package the SDK inside before running your code, avoiding conflicts with other projects or your system. For macOS (both Intel `x86_64` and Apple Silicon) or Linux (`x86`, `aarch64`, `armv6l`), run the following commands: @@ -61,7 +61,7 @@ Windows is not supported. If you are using Windows, use the [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) and install the Python SDK using the preceding instructions for Linux. For other unsupported systems, see [Installing from source](https://python.viam.dev/#installing-from-source). -If you intend to use the [ML (machine learning) model service](/services/ml/), use the following command instead, which installs additional required dependencies along with the Python SDK: +If you intend to use the [ML (machine learning) model service](/data-ai/ai/deploy/), use the following command instead, which installs additional required dependencies along with the Python SDK: ```sh {class="command-line" data-prompt="$"} pip install 'viam-sdk[mlmodel]' diff --git a/docs/operate/get-started/other-hardware/cpp-module.md b/docs/operate/get-started/other-hardware/cpp-module.md index f1c1ab4db8..8364bf5da7 100644 --- a/docs/operate/get-started/other-hardware/cpp-module.md +++ b/docs/operate/get-started/other-hardware/cpp-module.md @@ -19,12 +19,12 @@ draft: true # Take out Go and Python, and check updatedness before un-drafting. Viam provides built-in support for a variety of different {{< glossary_tooltip term_id="component" text="components" >}} and {{< glossary_tooltip term_id="service" text="services" >}}, as well as a registry full of {{< glossary_tooltip term_id="module" text="modules" >}} created by other users. If no [existing modules](/registry/modular-resources/) support your specific use case, you can write your own custom modular {{< glossary_tooltip term_id="resource" text="resources" >}} by creating a module, and either upload it to the [Viam Registry](https://app.viam.com/registry) to share it publicly, or deploy it to your machine as a local module without uploading it to the registry. -Follow the instructions below to learn how to write a new module using your preferred language and its corresponding [Viam SDK](/sdks/), and then deploy it to your machines. +Follow the instructions below to learn how to write a new module using your preferred language and its corresponding [Viam SDK](/dev/reference/sdks/), and then deploy it to your machines. {{< alert title="Note: viam-micro-server modules" color="note" >}} -[`viam-micro-server`](/installation/viam-micro-server-setup/#install-viam-micro-server) works differently from the RDK (and `viam-server`), so creating modular resources for it is different from the process described on this page. +[`viam-micro-server`](/operate/reference/viam-micro-server/) works differently from the RDK (and `viam-server`), so creating modular resources for it is different from the process described on this page. Refer to the [Micro-RDK Module Template on GitHub](https://github.com/viamrobotics/micro-rdk/tree/main/templates/module) for information on how to create custom resources for your `viam-micro-server` machine. -You will need to [recompile and flash your ESP32 yourself](/installation/viam-micro-server-setup/#install-viam-micro-server) instead of using Viam's prebuilt binary and installer. +You will need to [recompile and flash your ESP32 yourself](/operate/get-started/setup/) instead of using Viam's prebuilt binary and installer. {{< /alert >}} {{% alert title="Tip" color="tip" %}} @@ -61,7 +61,7 @@ For example, the [sensor API](/dev/reference/apis/components/sensor/) has a `Get If instead of just getting readings, you actually have an encoder and need to be able to reset the zero position, use the [encoder API](/dev/reference/apis/components/encoder/) so you can define functionality behind the `GetPosition` and `ResetPosition` methods. In addition to the list of methods, another reason to choose one API over another is how certain APIs fit into the Viam ecosystem. -For example, though you could technically implement a GPS as a sensor with just the `GetReadings` method, if you implement it as a movement sensor then you have access to methods like `GetCompassHeading` which allow you to use your GPS module with the [navigation service](/services/navigation/). +For example, though you could technically implement a GPS as a sensor with just the `GetReadings` method, if you implement it as a movement sensor then you have access to methods like `GetCompassHeading` which allow you to use your GPS module with the [navigation service](/operate/reference/services/navigation/). For this reason, it's generally best to choose the API that most closely matches your hardware or software. {{< /expand >}} @@ -69,7 +69,7 @@ For this reason, it's generally best to choose the API that most closely matches If you want to write a module to add support to a new type of component or service that is relatively unique, consider using the generic API for your resource type to build your own API: - If you are working with a component that doesn't fit into any of the existing component APIs, you can use the [generic component](/operate/reference/components/generic/) to build your own component API. -- If you are designing a service that doesn't fit into any of the existing service APIs, you can use the [generic service](/services/generic/) to build your own service API. +- If you are designing a service that doesn't fit into any of the existing service APIs, you can use the [generic service](/operate/reference/components/generic/) to build your own service API. - It is also possible to [define an entirely new API](/registry/advanced/create-subtype/), but this is even more advanced than using `generic`. Most module use cases, however, benefit from implementing an existing API instead of `generic`. @@ -126,7 +126,7 @@ The models implement the `rdk:component:arm` and the `rdk:component:gripper` API A resource model is identified by a unique name, called the {{< glossary_tooltip term_id="model-namespace-triplet" text="model namespace triplet" >}}, using the format: `namespace:module-name:model-name`, where: -- `namespace` is the [namespace of your organization](/cloud/organizations/#create-a-namespace-for-your-organization). +- `namespace` is the [namespace of your organization](/dev/reference/glossary/organization/#create-a-namespace-for-your-organization). - For example, if your organization uses the `acme` namespace, your models must all begin with `acme`, like `acme:module-name:mybase`. If you do not intend to [upload your module](#upload-your-module-to-the-modular-resource-registry) to the [Viam Registry](https://app.viam.com/registry), you do not need to use your organization's namespace as your model's namespace. - The `viam` namespace is reserved for models provided by Viam. @@ -174,7 +174,6 @@ Browse additional example modules by language: For more Python module examples: - See the [Python SDK `examples` directory](https://github.com/viamrobotics/viam-python-sdk/tree/main/examples) for sample module code of varying complexity. -- For tutorials featuring modular resource creation, see the [Modular resource examples](/registry/examples/) page. - For an example featuring a sensor, see [MCP300x](https://github.com/viam-labs/mcp300x-adc-sensor). - For additional examples use the [modular resources search](/registry/modular-resources/) to search for examples of the model you are implementing, and click on the model's link to be able to browse its code. @@ -1223,7 +1222,7 @@ When packaged in this fashion, you can run the resulting executable on your desi To create a packaged executable: -1. First, [create a Python virtual environment](/sdks/python/python-venv/) in your module's directory to ensure your module has access to any required libraries. +1. First, [create a Python virtual environment](/dev/reference/sdks/python/python-venv/) in your module's directory to ensure your module has access to any required libraries. Be sure you are within your Python virtual environment for the rest of these steps: your terminal prompt should include the name of your virtual environment in parentheses. 1. Create a `requirements.txt` file containing a list of all the dependencies your module requires. @@ -1333,7 +1332,7 @@ This is the recommended approach for modules written in Python: Using a virtual environment together with a `requirements.txt` file and a `run.sh` file that references it ensures that your module has access to any packages it requires during runtime. If you intend to share your module with other users, or to deploy it to a fleet of machines, this approach handles dependency resolution for each deployment automatically, meaning that there is no need to explicitly determine and install the Python packages your module requires to run on each machine that installs your module. -See [prepare a Python virtual environment](/sdks/python/python-venv/) for more information. +See [prepare a Python virtual environment](/dev/reference/sdks/python/python-venv/) for more information. {{% /tab %}} {{% tab name="Python: nuitka" %}} @@ -1342,7 +1341,7 @@ Use the [`nuitka` Python compiler](https://pypi.org/project/Nuitka/) to compile 1. In order to use Nuitka, you must install a [supported C compiler](https://github.com/Nuitka/Nuitka#c-compiler) on your machine. -1. Then, [create a Python virtual environment](/sdks/python/python-venv/) in your module's directory to ensure your module has access to any required libraries. +1. Then, [create a Python virtual environment](/dev/reference/sdks/python/python-venv/) in your module's directory to ensure your module has access to any required libraries. Be sure you are within your Python virtual environment for the rest of these steps: your terminal prompt should include the name of your virtual environment in parentheses. 1. Create a `requirements.txt` file containing a list of all the dependencies your module requires. @@ -1682,6 +1681,5 @@ To read more about module development at Viam, check out these tutorials that cr {{< cards >}} {{% card link="/tutorials/custom/custom-base-dog/" %}} -{{% card link="/registry/examples/custom-arm/" %}} {{% card link="/tutorials/configure/pet-photographer/" %}} {{< /cards >}} diff --git a/docs/operate/get-started/other-hardware/manage-modules.md b/docs/operate/get-started/other-hardware/manage-modules.md index bfd2a19ac6..e02113b1bc 100644 --- a/docs/operate/get-started/other-hardware/manage-modules.md +++ b/docs/operate/get-started/other-hardware/manage-modules.md @@ -23,7 +23,7 @@ cost: "0" After you [create and deploy a module](/operate/get-started/other-hardware/), you may need to update or delete it. -For information on pinning module deployments to versions, see [Module versioning](/registry/modular-resources/#module-versioning). +For information on pinning module deployments to versions, see [Module versioning](/operate/reference/module-configuration/#module-versioning). ## Update an existing module @@ -333,7 +333,7 @@ For more details, see the [`upload-module` GitHub Action documentation](https:// {{% /tab %}} {{< /tabs >}} -4. Create an [organization API key](/dev/tools/cli/#create-an-organization-api-key) with the [owner](/cloud/rbac/#permissions) role, which the GitHub action will use to authenticate to the Viam platform, using one of the following methods: +4. Create an [organization API key](/dev/tools/cli/#create-an-organization-api-key) with the [owner](/manage/manage/rbac/) role, which the GitHub action will use to authenticate to the Viam platform, using one of the following methods: - Use the Viam CLI to create an organization API key, which includes the owner role by default: @@ -345,7 +345,7 @@ For more details, see the [`upload-module` GitHub Action documentation](https:// Make sure your organization API key is set to **Role: Owner**, or the GitHub action will not be able to successfully authenticate during runs. If you are using an existing organization API key which is not set to **Role: Owner**, you can change an API key's permissions from the Viam app on the organizations page by clicking the **Show details** link next to your API key. The operator role cannot be used to authenticate GitHub action runs. - For more information see [Manage organizations](/cloud/organizations/). + For more information see [Organize your machines](/manage/reference/organize/). Both methods return a `key id` and a `key value` which together comprise your organization API key. @@ -374,7 +374,7 @@ For more details, see the [`upload-module` GitHub Action documentation](https:// You can change the visibility of a module from public to private if: -- you are an [owner](/cloud/rbac/) in the {{< glossary_tooltip term_id="organization" text="organization" >}} that owns the module, AND +- you are an [owner](/manage/manage/rbac/) in the {{< glossary_tooltip term_id="organization" text="organization" >}} that owns the module, AND - no machines outside of the organization that owns the module have the module configured (no other orgs are using it). To change the visibility, navigate to its page in the [**REGISTRY** section of the Viam app](https://app.viam.com/registry), hover to the right of the visibility indicator near the right side of the page until an **Edit** button appears, and click it to make changes. @@ -391,7 +391,7 @@ viam module update You can delete a module if: -- you are an [owner](/cloud/rbac/) in the {{< glossary_tooltip term_id="organization" text="organization" >}} that owns the module, AND +- you are an [owner](/manage/manage/rbac/) in the {{< glossary_tooltip term_id="organization" text="organization" >}} that owns the module, AND - no machines have the module configured. To delete a module, navigate to its page in the [**REGISTRY** section of the Viam app](https://app.viam.com/registry), click the **...** menu in the upper-right corner of the page, and click **Delete**. @@ -419,7 +419,7 @@ To upload another version, you must increment the version number to a later vers ## Next steps {{< cards >}} -{{% manualcard link="/registry/modular-resources/#module-versioning" %}} +{{% manualcard link="/operate/reference/module-configuration/#module-versioning" %}} {{}}
diff --git a/docs/operate/get-started/other-hardware/micro-module.md b/docs/operate/get-started/other-hardware/micro-module.md index 1897ebf584..988f653a4c 100644 --- a/docs/operate/get-started/other-hardware/micro-module.md +++ b/docs/operate/get-started/other-hardware/micro-module.md @@ -26,7 +26,7 @@ aliases: This page provides instructions for configuring a development environment for working with `viam-micro-server`, outlines the steps for performing various development tasks, and provides troubleshooting and development tips to help organize and streamline work. {{< alert title="Looking to install viam-micro-server?" color="note" >}} -If you only want to install and use `viam-micro-server`, see [Install `viam-micro-server`](/installation/viam-micro-server-setup/#install-viam-micro-server) instead. +If you only want to install and use `viam-micro-server`, follow the normal [setup instructions](/operate/get-started/setup/) instead. {{< /alert >}} The instructions below are for configuring a development environment in order to: diff --git a/docs/operate/reference/architecture/_index.md b/docs/operate/reference/architecture/_index.md index 07e1ec553a..79d02a9312 100644 --- a/docs/operate/reference/architecture/_index.md +++ b/docs/operate/reference/architecture/_index.md @@ -39,12 +39,12 @@ When `viam-server` can connect to the cloud, it also: - Automatically pulls configuration updates you make in the Viam app - Gets new versions of software packages - Uploads and syncs image and sensor data -- Handles requests from client code you write with [SDKs](/sdks/) +- Handles requests from client code you write with [SDKs](/dev/reference/sdks/) - Allows you to remotely monitor and control your machine from the Viam app `viam-server` can use the internet, wide area networks (WAN) or local networks (LAN) to establish peer-to-peer connections between two {{< glossary_tooltip term_id="machine" text="machines" >}}, or to a client application. -[`viam-micro-server`](/installation/viam-micro-server-setup/#install-viam-micro-server) is the lightweight version of `viam-server` that you can run on ESP32 microcontrollers. +[`viam-micro-server`](/operate/reference/viam-micro-server/) is the lightweight version of `viam-server` that you can run on ESP32 microcontrollers. It supports a limited set of {{< glossary_tooltip term_id="resource" text="resources" >}} and can connect with the cloud as well as with devices running `viam-server`. ## Components, services, modules @@ -55,7 +55,7 @@ A {{< glossary_tooltip term_id="service" text="service" >}} is a software packag Viam has many built-in components and services that run within `viam-server`. -A [_modular resource_](/registry/) is a custom component or service, not built into `viam-server` but rather provided by a _module_ that you or another user have created. +A _modular resource_ is a custom component or service, not built into `viam-server` but rather provided by a _module_ that you or another user have created. A module runs as a process managed by `viam-server` on your machine, communicating over UNIX sockets, and `viam-server` manages its lifecycle. {{}} @@ -85,7 +85,7 @@ If you want to add some other high-level software functionality beyond the built A diagram illustrating secure machine control. Viam uses peer-to-peer communication, where all machines running `viam-server` or [`viam-micro-server`](/installation/viam-micro-server-dev/) (the version of `viam-server` for microcontrollers) communicate directly with each other as well as with the cloud. -This peer-to-peer connectivity is enabled by sending [gRPC commands over WebRTC connections](/architecture/machine-to-machine-comms/#low-level-inter-robotsdk-communication). +This peer-to-peer connectivity is enabled by sending [gRPC commands over WebRTC connections](/operate/reference/architecture/machine-to-machine-comms/#low-level-inter-robotsdk-communication). On startup, `viam-server` establishes a {{< glossary_tooltip term_id="webrtc" text="WebRTC" >}} connection with the [Viam app](https://app.viam.com). `viam-server` pulls its configuration from the app, caches it locally, and initializes all components and services based on that configuration. @@ -103,7 +103,7 @@ The Viam app uses the same API endpoints as your SDK client code (in fact, it us All Viam APIs are defined with the [Protocol Buffers (protobuf)](https://protobuf.dev/) framework. {{% /alert %}} -For more details, see [Machine-to-Machine Communication](/architecture/machine-to-machine-comms/). +For more details, see [Machine-to-Machine Communication](/operate/reference/architecture/machine-to-machine-comms/). ### Security @@ -151,7 +151,7 @@ Here is how this works in Viam: Now imagine you want to run code to turn on a fan when the temperature sensor reads over 100 degrees Fahrenheit: - Configure the fan motor as a motor component and wire the fan motor relay to the same board as the sensor. -- Write your script using one of the Viam [SDKs](/sdks/), for example the Viam Python SDK, using the sensor API and motor API. +- Write your script using one of the Viam [SDKs](/dev/reference/sdks/), for example the Viam Python SDK, using the sensor API and motor API. - You then run this code either locally on the SBC, or on a separate server. See [Run code](/sdks/#run-code) for more options. Your code connects to the machine, authenticating with API keys, and uses the [sensor API](/operate/reference/components/sensor/#api) to get readings and the [motor API](/operate/reference/components/motor/#api) to turn the motor on and off. @@ -199,7 +199,7 @@ However, in some high-bandwidth cases it is better to establish a direct connect {{< /expand >}} -See [Parts, Sub-parts and Remotes](/architecture/parts/) for more details. +See [Parts, Sub-parts and Remotes](/operate/reference/architecture/parts/) for more details. ## Next steps diff --git a/docs/operate/reference/components/arm/_index.md b/docs/operate/reference/components/arm/_index.md index 524f9f8572..b1198eeb53 100644 --- a/docs/operate/reference/components/arm/_index.md +++ b/docs/operate/reference/components/arm/_index.md @@ -44,8 +44,6 @@ For additional configuration information, click on the model name: If none of the existing models fit your use case, you can create a {{< glossary_tooltip term_id="modular-resource" text="modular resource" >}} to add support for it. -You can follow [this guide](/registry/examples/custom-arm/) to implement your arm model. - {{< /alert >}} {{% /tab %}} @@ -69,10 +67,10 @@ The [arm API](/dev/reference/apis/components/arm/) supports the following method ## Motion planning with your arm The arm API sends requests for the arm to move to a set of joint positions, and reports the arm's current joint positions. -Viam's motion service provides an [API for moving the end of the arm to a given position, around any obstacles](/services/motion/#api). +Viam's motion service provides an [API for moving the end of the arm to a given position, around any obstacles](/operate/reference/services/motion/#api). For each arm model, there is a JSON file that describes the [kinematics parameters of the arm](/internals/kinematic-chain-config/#kinematic-parameters). -When you configure an arm model, the arm driver parses the kinematics file for the [frame system](/services/frame-system/) service to use. +When you configure an arm model, the arm driver parses the kinematics file for the [frame system](/operate/mobility/define-geometry/) service to use. The frame system allows the motion service to calculate where any component of your machine is relative to any other component, other machine, or object in the environment. ## Troubleshooting @@ -97,5 +95,5 @@ For general configuration, development, and usage info, see: You can also use the arm component with the following services: -- [Motion service](/services/slam/): To move machines or components of machines -- [Frame system service](/services/navigation/): To configure the positions of your components +- [Motion service](/operate/reference/services/slam//services/slam/): To move machines or components of machines +- [Frame system service](/operate/reference/services/navigation/): To configure the positions of your components diff --git a/docs/operate/reference/components/arm/lite6.md b/docs/operate/reference/components/arm/lite6.md index f1c8a5f9c6..488aee18a8 100644 --- a/docs/operate/reference/components/arm/lite6.md +++ b/docs/operate/reference/components/arm/lite6.md @@ -101,7 +101,7 @@ The following attributes are available for `lite6` arms: | `speed_degs_per_sec` | float | Optional | Desired maximum speed of joint movement in degrees/sec.
Default: `20.0` | | `acceleration_degs_per_sec_per_sec` | float | Optional | Desired maximum acceleration of joint movement in degrees/sec2.
Default: `50.0` | -See [the frame system service](/services/frame-system/) for more information on utilizing and modifying the `"frame"` configuration shown in the `JSON Example` above. +See [the frame system service](/operate/mobility/define-geometry/) for more information on utilizing and modifying the `"frame"` configuration shown in the `JSON Example` above. {{< readfile "/static/include/components/test-control/arm-control.md" >}} diff --git a/docs/operate/reference/components/arm/xarm6.md b/docs/operate/reference/components/arm/xarm6.md index 125874b4cf..624f8174d6 100644 --- a/docs/operate/reference/components/arm/xarm6.md +++ b/docs/operate/reference/components/arm/xarm6.md @@ -102,7 +102,7 @@ The following attributes are available for `xArm6` arms: | `speed_degs_per_sec` | float | Optional | Desired maximum speed of joint movement in degrees/sec.
Default: `20.0` | | `acceleration_degs_per_sec_per_sec` | float | Optional | Desired maximum acceleration of joint movement in degrees/sec2.
Default: `50.0` | -See [the frame system Service](/services/frame-system/) for more information on utilizing and modifying the `"frame"` configuration shown in the `JSON Example` above. +See [the frame system Service](/operate/mobility/define-geometry/) for more information on utilizing and modifying the `"frame"` configuration shown in the `JSON Example` above. {{< readfile "/static/include/components/test-control/arm-control.md" >}} diff --git a/docs/operate/reference/components/arm/xarm7.md b/docs/operate/reference/components/arm/xarm7.md index 27cb42ce16..c3be211596 100644 --- a/docs/operate/reference/components/arm/xarm7.md +++ b/docs/operate/reference/components/arm/xarm7.md @@ -102,7 +102,7 @@ The following attributes are available for `xArm7` arms: | `speed_degs_per_sec` | float | Optional | Desired maximum speed of joint movement in degrees/sec.
Default: `20.0` | | `acceleration_degs_per_sec_per_sec` | float | Optional | Desired maximum acceleration of joint movement in degrees/sec2.
Default: `50.0` | -See [the frame system service](/services/frame-system/) for more information on utilizing and modifying the `"frame"` configuration shown in the `JSON Example` above. +See [the frame system service](/operate/mobility/define-geometry/) for more information on utilizing and modifying the `"frame"` configuration shown in the `JSON Example` above. {{< readfile "/static/include/components/test-control/arm-control.md" >}} diff --git a/docs/operate/reference/components/base/_index.md b/docs/operate/reference/components/base/_index.md index 4065423f5f..35832cd386 100644 --- a/docs/operate/reference/components/base/_index.md +++ b/docs/operate/reference/components/base/_index.md @@ -95,5 +95,5 @@ For general configuration, development, and usage info, see: You can also use the base component with the following services: -- [Navigation service](/services/navigation/): to navigate with GPS -- [SLAM service](/services/slam/): for mapping +- [Navigation service](/operate/reference/services/navigation/): to navigate with GPS +- [SLAM service](/operate/reference/services/slam/): for mapping diff --git a/docs/operate/reference/components/base/sensor-controlled.md b/docs/operate/reference/components/base/sensor-controlled.md index 323eea5927..f6e9b85c2c 100644 --- a/docs/operate/reference/components/base/sensor-controlled.md +++ b/docs/operate/reference/components/base/sensor-controlled.md @@ -103,7 +103,7 @@ The following base control API methods are available on a `sensor-controlled` ba - [Spin()](/dev/reference/apis/components/base/#spin): available if base is configured to receive orientation feedback. - [MoveStraight()](/dev/reference/apis/components/base/#movestraight): available if base is configured to receive position feedback. -For example, a [Viam Rover](/appendix/try-viam/rover-resources/) using `sensor-controlled` base following both an [angular](/dev/reference/apis/components/base/#spin) and [linear](/dev/reference/apis/components/base/#movestraight) velocity command: +For example, a rover using `sensor-controlled` base following both an [angular](/dev/reference/apis/components/base/#spin) and [linear](/dev/reference/apis/components/base/#movestraight) velocity command: {{}} diff --git a/docs/operate/reference/components/board/esp32.md b/docs/operate/reference/components/board/esp32.md index 3a429da0fd..f7aad2a52c 100644 --- a/docs/operate/reference/components/board/esp32.md +++ b/docs/operate/reference/components/board/esp32.md @@ -16,7 +16,7 @@ micrordk_component: true {{% alert title="REQUIREMENTS" color="caution" %}} -Follow the [setup guide](/installation/viam-micro-server-setup/#install-viam-micro-server) to prepare your ESP32 for running `viam-micro-server` before configuring an `esp32` board. +Follow the [setup guide](/operate/get-started/setup/) to install and run `viam-micro-server` before configuring an `esp32` board. Viam recommends purchasing the ESP32 with a development board. The following ESP32 microcontrollers are supported: diff --git a/docs/operate/reference/components/camera/_index.md b/docs/operate/reference/components/camera/_index.md index d5b106f94b..a3822aa018 100644 --- a/docs/operate/reference/components/camera/_index.md +++ b/docs/operate/reference/components/camera/_index.md @@ -98,4 +98,4 @@ You can also use the camera component with the following services: - [Data management service](/data-ai/capture-data/capture-sync/: To capture and sync the camera's data - [Vision service](/data-ai/reference/vision/): To use computer vision to interpret the camera stream -- [SLAM service](/services/slam/): for mapping +- [SLAM service](/operate/reference/services/slam/): for mapping diff --git a/docs/operate/reference/components/camera/webcam.md b/docs/operate/reference/components/camera/webcam.md index 32626d789d..992883caa2 100644 --- a/docs/operate/reference/components/camera/webcam.md +++ b/docs/operate/reference/components/camera/webcam.md @@ -174,7 +174,7 @@ On your Linux system, verify each of the following: ``` In the list of camera devices returned, find the entry for your camera. - For example, the webcam on the [Viam Rover](/appendix/try-viam/) appears as follows: + For example, the webcam on a rover may appear as follows: ```sh {class="command-line" data-prompt="$"} GENERAL WEBCAM: GENERAL WEBCAM (usb-0000:01:00.0-1.4): diff --git a/docs/operate/reference/components/component/_index.md b/docs/operate/reference/components/component/_index.md index af3558ec0f..7f3f38eca2 100644 --- a/docs/operate/reference/components/component/_index.md +++ b/docs/operate/reference/components/component/_index.md @@ -59,7 +59,7 @@ Add services commonly used with the component. {{< cards >}} {{< relatedcard link="/services/data/" >}} -{{< relatedcard link="/services/frame-system/" >}} +{{< relatedcard link="/operate/mobility/define-geometry/" >}} {{< /cards >}} ## API diff --git a/docs/operate/reference/components/encoder/_index.md b/docs/operate/reference/components/encoder/_index.md index 602bd6b9d5..a1e59dc7fd 100644 --- a/docs/operate/reference/components/encoder/_index.md +++ b/docs/operate/reference/components/encoder/_index.md @@ -95,5 +95,5 @@ For general configuration, development, and usage info, see: You can also use the encoder component with the following services: - [Data management service](/data-ai/capture-data/capture-sync/): To capture and sync the encoder's data -- [Motion service](/services/motion/): To move machines or components of machines -- [Navigation service](/services/navigation/): To navigate with GPS +- [Motion service](/operate/reference/services/motion/): To move machines or components of machines +- [Navigation service](/operate/reference/services/navigation/): To navigate with GPS diff --git a/docs/operate/reference/components/gantry/_index.md b/docs/operate/reference/components/gantry/_index.md index 559a0ad086..5e36e1cc19 100644 --- a/docs/operate/reference/components/gantry/_index.md +++ b/docs/operate/reference/components/gantry/_index.md @@ -84,5 +84,5 @@ For general configuration and development info, see: You can also use the gantry component with the following services: -- [Motion service](/services/motion/): To move machines or components of machines -- [Frame system service](/services/frame-system/): To configure the positions of your components +- [Motion service](/operate/reference/services/motion/): To move machines or components of machines +- [Frame system service](/operate/mobility/define-geometry/): To configure the positions of your components diff --git a/docs/operate/reference/components/generic/_index.md b/docs/operate/reference/components/generic/_index.md index 56c9ab5992..74b6d406f2 100644 --- a/docs/operate/reference/components/generic/_index.md +++ b/docs/operate/reference/components/generic/_index.md @@ -27,7 +27,7 @@ For example, if you want to use an LED display, you need functionality that isn' Instead, you can use the generic component API to add support for your unique type of hardware, like LED displays, to your machine. You should use the generic component for {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}} that represent a unique type of hardware. -If you are adding new high-level software functionality, rather than supporting new hardware components, use the [generic service](/services/generic/) instead. +If you are adding new high-level software functionality, rather than supporting new hardware components, use the [generic service](/operate/reference/components/generic/) instead. {{% alert title="Important" color="note" %}} @@ -60,7 +60,7 @@ If your `viam-micro-server` machine includes a resource that isn't a [base](/ope {{< alert title="Important" color="note" >}} `viam-micro-server` works differently from the RDK, so creating modular resources for it is different. Refer to the [Micro-RDK Module Template on GitHub](https://github.com/viamrobotics/micro-rdk/tree/main/templates/module) for information on how to create custom resources for your `viam-micro-server` machine. -You will need to [recompile and flash your ESP32 yourself](/installation/viam-micro-server-setup/#install-viam-micro-server) instead of using Viam's prebuilt binary and installer. +You will need to [recompile and flash your ESP32 yourself](/operate/get-started/setup/) instead of using Viam's prebuilt binary and installer. {{< /alert >}} {{% /tab %}} diff --git a/docs/operate/reference/components/gripper/_index.md b/docs/operate/reference/components/gripper/_index.md index 281ada552b..e0c7e253b0 100644 --- a/docs/operate/reference/components/gripper/_index.md +++ b/docs/operate/reference/components/gripper/_index.md @@ -76,5 +76,5 @@ For general configuration, development, and usage info, see: You can also use the gripper component with the following services: -- [Motion service](/services/slam/): To move machines or components of machines -- [Frame system service](/services/navigation/): To configure the positions of your components +- [Motion service](/operate/reference/services/slam/): To move machines or components of machines +- [Frame system service](/operate/reference/services/navigation/): To configure the positions of your components diff --git a/docs/operate/reference/components/motor/encoded-motor.md b/docs/operate/reference/components/motor/encoded-motor.md index 69acd9cfe7..660d6c1d0f 100644 --- a/docs/operate/reference/components/motor/encoded-motor.md +++ b/docs/operate/reference/components/motor/encoded-motor.md @@ -182,7 +182,7 @@ Use the buttons to try turning your motor forwards or backwards at different pow ![Motor control panel.](/components/motor/control.png) -For example, a [Viam Rover](/appendix/try-viam/rover-resources/) with encoded motors following both an [angular](/dev/reference/apis/components/base/#spin) and [linear](/dev/reference/apis/components/base/#movestraight) velocity command: +For example, a rover with encoded motors following both an [angular](/dev/reference/apis/components/base/#spin) and [linear](/dev/reference/apis/components/base/#movestraight) velocity command: {{}} diff --git a/docs/operate/reference/components/movement-sensor/_index.md b/docs/operate/reference/components/movement-sensor/_index.md index 62ad6a9df4..7a9c07d1c3 100644 --- a/docs/operate/reference/components/movement-sensor/_index.md +++ b/docs/operate/reference/components/movement-sensor/_index.md @@ -90,6 +90,6 @@ For general configuration and development info, see: To capture data from the movement sensor or use it for motion, see the following services: - [data management service](/data-ai/capture-data/capture-sync/): to capture and sync the movement sensor's data -- [motion service](/services/motion/): to move machines or components of machines -- [navigation service](/services/navigation/): to navigate with GPS -- [SLAM service](/services/slam/): for mapping +- [motion service](/operate/reference/services/motion/): to move machines or components of machines +- [navigation service](/operate/reference/services/navigation/): to navigate with GPS +- [SLAM service](/operate/reference/services/slam/): for mapping diff --git a/docs/operate/reference/components/movement-sensor/accel-adxl345-micro-rdk.md b/docs/operate/reference/components/movement-sensor/accel-adxl345-micro-rdk.md index f49ec30bbc..9b24af3ff1 100644 --- a/docs/operate/reference/components/movement-sensor/accel-adxl345-micro-rdk.md +++ b/docs/operate/reference/components/movement-sensor/accel-adxl345-micro-rdk.md @@ -16,8 +16,6 @@ toc_hide: true The `accel-adxl345` movement sensor model supports the Analog Devices [ADXL345 digital accelerometer](https://www.analog.com/en/products/adxl345.html). This three axis accelerometer supplies linear acceleration data, supporting the `LinearAcceleration` method. -If you are using a [Viam Rover](/appendix/try-viam/), this is the accelerometer on it. - Physically connect your movement sensor to your microcontroller and power both on. Then, configure the movement sensor: diff --git a/docs/operate/reference/components/movement-sensor/merged.md b/docs/operate/reference/components/movement-sensor/merged.md index 4935e088a8..b3f3259456 100644 --- a/docs/operate/reference/components/movement-sensor/merged.md +++ b/docs/operate/reference/components/movement-sensor/merged.md @@ -17,9 +17,9 @@ This allows you to aggregate the API methods supported by multiple sensors into This is especially useful if you want to get readings of position and orientation _or_ linear and angular velocity at the same time, which are normally separately supported and returned by [`GPS`](/operate/reference/components/movement-sensor/#configuration) or [`IMU`](/operate/reference/components/movement-sensor/#configuration) models, respectively. -To reduce velocity error when your machine is using the [navigation service](/services/navigation/), aggregate `Position()` from a [`GPS`](/operate/reference/components/movement-sensor/#configuration) and `Orientation()` from an [`IMU`](/operate/reference/components/movement-sensor/#configuration) movement sensor in a `merged` model. +To reduce velocity error when your machine is using the [navigation service](/operate/reference/services/navigation/), aggregate `Position()` from a [`GPS`](/operate/reference/components/movement-sensor/#configuration) and `Orientation()` from an [`IMU`](/operate/reference/components/movement-sensor/#configuration) movement sensor in a `merged` model. -Configure a [navigation service](/services/navigation/) to use your merged sensor to navigate. +Configure a [navigation service](/operate/reference/services/navigation/) to use your merged sensor to navigate. Before configuring a `merged` movement sensor, configure each movement sensor you want to merge as an individual component according to its [model's configuration instructions](/operate/reference/components/movement-sensor/#configuration). Reference the `name` you configure for each individual component in the `merged` sensor's configuration attributes: diff --git a/docs/operate/reference/components/movement-sensor/wheeled-odometry.md b/docs/operate/reference/components/movement-sensor/wheeled-odometry.md index ed0a4339d6..2b6aa215c5 100644 --- a/docs/operate/reference/components/movement-sensor/wheeled-odometry.md +++ b/docs/operate/reference/components/movement-sensor/wheeled-odometry.md @@ -31,7 +31,7 @@ With a configured `wheeled-odometry` movement sensor, your machine calculates an You can access these readings through the [movement sensor API](/dev/reference/apis/components/movement-sensor/#api). For the best accuracy with odometry calculations, it is recommended you configure a time interval of less than `1000` milliseconds. -After configuring a `wheeled-odometry` movement sensor, you can operate your base with Viam's built-in services like the [navigation service](/services/navigation/). +After configuring a `wheeled-odometry` movement sensor, you can operate your base with Viam's built-in services like the [navigation service](/operate/reference/services/navigation/). ## Set-up requirements diff --git a/docs/operate/reference/kinematic-chain-config.md b/docs/operate/reference/kinematic-chain-config.md index 83d2cd73ee..080471f96c 100644 --- a/docs/operate/reference/kinematic-chain-config.md +++ b/docs/operate/reference/kinematic-chain-config.md @@ -11,7 +11,7 @@ no_list: true # SMEs: Motion --- -Many components have complex kinematic chains and require an additional set of intermediate reference frames to use the [motion service](/services/motion/). +Many components have complex kinematic chains and require an additional set of intermediate reference frames to use the [motion service](/operate/reference/services/motion/). For example, an [arm](/operate/reference/components/arm/) has a reference frame originating where the arm is attached to a surface, but it also has links and joints whose frames of reference matter when attempting to move the arm to a [pose](/operate/reference/orientation-vector/) with [`MoveToPosition()`](/dev/reference/apis/components/arm/#movetoposition). @@ -32,7 +32,7 @@ Additionally, if you are making your own robot and defining new drivers, incorre {{% alert title="Info" color="info" %}} These reference frames are ingested by the frame system. -They are not exposed in the [client SDKs](/sdks/), with one exception. +They are not exposed in the [client SDKs](/dev/reference/sdks/), with one exception. If your resource is an [arm component](/operate/reference/components/arm/), you can use the [`GetKinematics()`](/dev/reference/apis/components/arm/#getkinematics) method to access its kinematics information. {{% /alert %}} diff --git a/docs/operate/reference/module-configuration.md b/docs/operate/reference/module-configuration.md index e4b799c76d..46c5e57858 100644 --- a/docs/operate/reference/module-configuration.md +++ b/docs/operate/reference/module-configuration.md @@ -195,7 +195,7 @@ The following properties are configurable for each module: | Name | Type | Required? | Description | | ---- | ---- | --------- | ----------- | -| `version` | string | **Required** |

You can specify:

  • a specific version (X.Y.Z) of the module to use
  • to pin the module version to the newest release, so your machine automatically updates to the latest version of the module that is available or to the latest patch release of a configured minor (X.Y.\_) or major (X.\_) version.
For more information, see [Module versioning](/registry/modular-resources/#module-versioning).

| +| `version` | string | **Required** |

You can specify:

  • a specific version (X.Y.Z) of the module to use
  • to pin the module version to the newest release, so your machine automatically updates to the latest version of the module that is available or to the latest patch release of a configured minor (X.Y.\_) or major (X.\_) version.
For more information, see [Module versioning](/operate/reference/module-configuration/#module-versioning).

| | `type` | string | **Required** | `registry` or `local`, depending on whether the module is in the [Viam Registry](https://app.viam.com/registry) or is only available [locally](/operate/get-started/other-hardware/#test-your-module-locally) on your computer. | | `module_id` | string | **Required** | The module author's organization namespace or UUID, then a colon, then the name of the module. Identical to the first two pieces of the {{< glossary_tooltip term_id="model-namespace-triplet" text="model namespace triplet" >}}. `:`. | | `name` | string | **Required** | A name for this instance of the module. | @@ -241,7 +241,7 @@ Each module has access to the following default environment variables: | ---- | ----------- | | `VIAM_HOME` | The root of the `viam-server` configuration.
Default: `$HOME/.viam` | | `VIAM_MODULE_ROOT` | The root of the module install directory. The module process uses this directory as its current working directory (`cwd`). This variable is useful for file navigation that is relative to the root of the module. If you are using a [local module](/operate/get-started/other-hardware/#test-your-module-locally), you must set this value manually if your module requires it.
Example: `/opt/my-module/verxxxx-my-module/` | -| `VIAM_MODULE_DATA` | A persistent folder location a module can use to store data across reboots and versions. This location is a good place to store [python virtual environments](/sdks/python/python-venv/).
Example: `$VIAM_HOME/module-data/cloud-machine-id/my-module-name/` | +| `VIAM_MODULE_DATA` | A persistent folder location a module can use to store data across reboots and versions. This location is a good place to store [python virtual environments](/dev/reference/sdks/python/python-venv/).
Example: `$VIAM_HOME/module-data/cloud-machine-id/my-module-name/` | | `VIAM_MODULE_ID` | The module ID of the module.
Example: `viam:realsense` | You can also set additional environment variables. diff --git a/docs/operate/reference/orientation-vector.md b/docs/operate/reference/orientation-vector.md index 667c8d3b9f..a20cabc895 100644 --- a/docs/operate/reference/orientation-vector.md +++ b/docs/operate/reference/orientation-vector.md @@ -12,7 +12,7 @@ no_list: true --- An _orientation vector_ specifies the orientation of an object in 3D space. -You use orientation vectors to specify relative orientations of components when using the [motion service](/services/motion/) and [frame system](/services/frame-system/). +You use orientation vectors to specify relative orientations of components when using the [motion service](/operate/reference/services/motion/) and [frame system](/operate/mobility/define-geometry/). The first three components of this vector form an axis pointing in the same direction as the object. **Theta** specifies the angle of the object's rotation about that axis. diff --git a/docs/operate/reference/prepare/_index.md b/docs/operate/reference/prepare/_index.md index 8271bee053..7e0971fabc 100644 --- a/docs/operate/reference/prepare/_index.md +++ b/docs/operate/reference/prepare/_index.md @@ -4,7 +4,7 @@ title: "Prepare Devices" weight: 95 empty_node: true layout: "empty" -canonical: "/installation/viam-server-setup/" +canonical: "/operate/get-started/setup/" type: "docs" toc_hide: true --- diff --git a/docs/operate/reference/services/frame-system/_index.md b/docs/operate/reference/services/frame-system/_index.md index 84c021a2c1..d05cefa2eb 100644 --- a/docs/operate/reference/services/frame-system/_index.md +++ b/docs/operate/reference/services/frame-system/_index.md @@ -17,7 +17,7 @@ updated: "2024-10-18" # SMEs: Peter L, Gautham, Bijan --- -The frame system is the basis for some of Viam's other services, like [motion](/services/motion/) and [vision](/data-ai/reference/vision/). +The frame system is the basis for some of Viam's other services, like [motion](/operate/reference/services/motion/) and [vision](/data-ai/reference/vision/). It stores the required contextual information to use the position and orientation readings returned by some components. It is a mostly static system for storing the "reference frame" of each component of a machine within a coordinate system configured by the user. @@ -176,8 +176,8 @@ For non base components, there is no inherent concept of "forward," so it is up For more information about determining the appropriate values for these parameters, see these two examples: -- [A Reference Frame:](/services/frame-system/frame-config/) A component attached to a static surface -- [Nested Reference Frames:](/services/frame-system/nested-frame-config/) A component attached to another, dynamic, component +- [A Reference Frame:](/operate/mobility/define-geometry/#configure-a-reference-frame) A component attached to a static surface +- [Nested Reference Frames:](/operate/mobility/define-geometry/#configure-nested-reference-frames) A component attached to another, dynamic, component ### Visualize the frame system @@ -217,7 +217,7 @@ Adjust the [orientation vector](/operate/reference/orientation-vector/) to 0.5 d ![Camera oriented 0.5 degrees OX shown in the Frame System Editor](/services/frame-system/demo_camera_edited_2.png) -Now that you have configured the frame system with the machine's spatial orientation, you can use [motion service](/services/motion/) methods that take in reference frame information. +Now that you have configured the frame system with the machine's spatial orientation, you can use [motion service](/operate/reference/services/motion/) methods that take in reference frame information. ### Geometries @@ -253,7 +253,7 @@ Access a [topologically-sorted list](https://en.wikipedia.org/wiki/Topological_s ![an example of a logged frame system](/services/frame-system/frame_sys_log_example.png) -Consider the example of nested reference frame configuration where [two dynamic components are attached](/services/frame-system/nested-frame-config/): a robotic arm, `A`, attaches to a gantry, `G`, which in turn is fixed in place at a point on the `World` of a table. +Consider the example of nested reference frame configuration where [two dynamic components are attached](/operate/mobility/define-geometry/#configure-nested-reference-frames): a robotic arm, `A`, attaches to a gantry, `G`, which in turn is fixed in place at a point on the `World` of a table. The resulting tree of reference frames looks like: @@ -280,7 +280,7 @@ _Additional transforms_ exist to help the frame system determine the location of For example: -- In our [example of nested dynamic attachment](/services/frame-system/nested-frame-config/), the arm can be managed by the frame system without additional transforms because the base of the arm is fixed with respect to the gantry's platform, and the gantry's origin is fixed with respect to the `world` reference frame (centered at `(0, 0, 0)` in the machine's coordinate system). +- In our [example of nested dynamic attachment](/operate/mobility/define-geometry/#configure-nested-reference-frames), the arm can be managed by the frame system without additional transforms because the base of the arm is fixed with respect to the gantry's platform, and the gantry's origin is fixed with respect to the `world` reference frame (centered at `(0, 0, 0)` in the machine's coordinate system). However, an arm with an attached [camera](/operate/reference/components/camera/) might generate additional information about the poses of other objects with respect to references frames on the machine. diff --git a/docs/operate/reference/services/generic/_index.md b/docs/operate/reference/services/generic/_index.md index 0fd2db60c6..12d967bc9c 100644 --- a/docs/operate/reference/services/generic/_index.md +++ b/docs/operate/reference/services/generic/_index.md @@ -20,7 +20,7 @@ date: "2022-01-01" The _generic_ service {{< glossary_tooltip term_id="subtype" text="subtype" >}} enables you to add support for unique types of services that do not already have an [appropriate API](/dev/reference/apis/#service-apis) defined for them. -For example, when writing code to manage [simultaneous localization and mapping (SLAM)](/services/slam/) for your machine, it makes sense to use the existing [SLAM API](/dev/reference/apis/services/slam/#api), which provides specific functionality required for generating accurate maps of an environment. +For example, when writing code to manage [simultaneous localization and mapping (SLAM)](/operate/reference/services/slam/) for your machine, it makes sense to use the existing [SLAM API](/dev/reference/apis/services/slam/#api), which provides specific functionality required for generating accurate maps of an environment. However, if you want to create a new service to monitor your machine's CPU and RAM usage for example, you need very different functionality that isn't currently exposed in any API. Instead, you can use the generic service API to add support for your unique type of service, like local system monitoring, to your machine. diff --git a/docs/operate/reference/services/motion/_index.md b/docs/operate/reference/services/motion/_index.md index fb2ccca21d..0989d5759d 100644 --- a/docs/operate/reference/services/motion/_index.md +++ b/docs/operate/reference/services/motion/_index.md @@ -20,7 +20,7 @@ date: "2022-01-01" The motion service enables your machine to plan and move itself or its components relative to itself, other machines, and the world. The motion service: -1. Gathers the current positions of the machine’s components as defined with the [frame system](/services/frame-system/). +1. Gathers the current positions of the machine’s components as defined with the [frame system](/operate/mobility/define-geometry/). 2. Plans the necessary motions to move a component to a given destination while obeying any [constraints you configure](constraints/). The motion service can: @@ -30,7 +30,7 @@ The motion service can: ## Configuration -You need to configure frames for your machine's components with the [frame system](/services/frame-system/). +You need to configure frames for your machine's components with the [frame system](/operate/mobility/define-geometry/). This defines the spatial context within which the motion service operates. The motion service itself is enabled on the machine by default, so you do not need to do any extra configuration in the [Viam app](https://app.viam.com/) to enable it. diff --git a/docs/operate/reference/services/navigation/_index.md b/docs/operate/reference/services/navigation/_index.md index 80357cb8e5..3b31f9446e 100644 --- a/docs/operate/reference/services/navigation/_index.md +++ b/docs/operate/reference/services/navigation/_index.md @@ -17,7 +17,7 @@ date: "2022-01-01" # SMEs: Raymond --- -The navigation service is the stateful definition of Viam's [motion service](/services/motion/). +The navigation service is the stateful definition of Viam's [motion service](/operate/reference/services/motion/). It uses GPS to autonomously navigate a rover [base](/operate/reference/components/base/) to user-defined waypoints. Configure your base with a navigation service, add waypoints, and set the mode of the service to [**Waypoint**](/dev/reference/apis/services/navigation/#setmode) to move your rover along a defined path at your desired motion configuration. @@ -151,23 +151,23 @@ The following attributes are available for `Navigation` services: | `store` | obj | **Required** | The type and configuration of data storage to use. Either type `"memory"`, where no additional configuration is needed and the waypoints are stored in local memory while the navigation process is running, or `"mongodb"`, where data persists at the specified [MongoDB URI](https://www.mongodb.com/docs/manual/reference/connection-string) of your MongoDB deployment.
Default: `"memory"` | | `base` | string | **Required** | The `name` you have configured for the [base](/operate/reference/components/base/) you are operating with this service. | | `movement_sensor` | string | **Required** | The `name` of the [movement sensor](/operate/reference/components/movement-sensor/) you have configured for the base you are operating with this service. | -| `motion_service` | string | Optional | The `name` of the [motion service](/services/motion/) you have configured for the base you are operating with this service. If you have not added a motion service to your machine, the default motion service will be used. Reference this default service in your code with the name `"builtin"`. | +| `motion_service` | string | Optional | The `name` of the [motion service](/operate/reference/services/motion/) you have configured for the base you are operating with this service. If you have not added a motion service to your machine, the default motion service will be used. Reference this default service in your code with the name `"builtin"`. | | `obstacle_detectors` | array | Optional | An array containing objects with the `name` of each [`"camera"`](/operate/reference/components/camera/) you have configured for the base you are navigating, along with the `name` of the [`"vision_service"`](/services/motion/) you are using to detect obstacles. Note that any vision services on remote parts will only be able to access cameras on the same remote part. | | `position_polling_frequency_hz` | float | Optional | The frequency in Hz to poll for the position of the machine.
Default: `1` | | `obstacle_polling_frequency_hz` | float | Optional | The frequency in Hz to poll each vision service for new obstacles.
Default: `1` | | `plan_deviation_m` | float | Optional | The distance in meters that a machine is allowed to deviate from the motion plan.
Default: `2.6`| | `degs_per_sec` | float | Optional | The default angular velocity for the [base](/operate/reference/components/base/) in degrees per second.
Default: `20` | | `meters_per_sec` | float | Optional | The default linear velocity for the [base](/operate/reference/components/base/) in meters per second.
Default: `0.3` | -| `obstacles` | obj | Optional | Any obstacles you wish to add to the machine's path. See the [motion service](/services/motion/) for more information. | -| `bounding_regions` | obj | Optional | Set of bounds which the robot must remain within while navigating. See the [motion service](/services/motion/) for more information. | +| `obstacles` | obj | Optional | Any obstacles you wish to add to the machine's path. See the [motion service](/operate/reference/services/motion/) for more information. | +| `bounding_regions` | obj | Optional | Set of bounds which the robot must remain within while navigating. See the [motion service](/operate/reference/services/motion/) for more information. | ### Configure and calibrate the frame system service for GPS navigation {{% alert title="Info" color="info" %}} -The [frame system service](/services/frame-system/) is an internally managed and mostly static system for storing the reference frame of each component of a machine within a coordinate system configured by the user. +The [frame system service](/operate/mobility/define-geometry/) is an internally managed and mostly static system for storing the reference frame of each component of a machine within a coordinate system configured by the user. -It stores the required contextual information for Viam's services like [Motion](/services/motion/) and [Vision](/data-ai/reference/vision/) to use the position and orientation readings returned by components like [movement sensors](/operate/reference/components/movement-sensor/). +It stores the required contextual information for Viam's services like [Motion](/operate/reference/services/motion/) and [Vision](/data-ai/reference/vision/) to use the position and orientation readings returned by components like [movement sensors](/operate/reference/components/movement-sensor/). {{% /alert %}} @@ -175,7 +175,7 @@ To make sure your rover base's autonomous GPS navigation with the navigation ser #### Configure -Add a [nested reference frame](/services/frame-system/nested-frame-config/) configuration to your rover [base](/operate/reference/components/base/) and [movement sensor](/operate/reference/components/movement-sensor/): +Add a [nested reference frame](/operate/mobility/define-geometry/#configure-nested-reference-frames) configuration to your rover [base](/operate/reference/components/base/) and [movement sensor](/operate/reference/components/movement-sensor/): - Navigate to the **CONFIGURE** tab of your machine's page in the [Viam app](https://app.viam.com) and select the **Frame** mode. - From the left-hand menu, select your base. @@ -238,12 +238,12 @@ Each concept is a type of relative or absolute measurement, taken by a [movement Here's how to use the following types of measurements: -- [Compass Heading](/services/navigation/#compass-heading) -- [Orientation](/services/navigation/#orientation) -- [Angular Velocity](/services/navigation/#angular-velocity) -- [Position](/services/navigation/#position) -- [Linear Acceleration](/services/navigation/#linear-acceleration) -- [Linear Velocity](/services/navigation/#linear-velocity) +- [Compass Heading](/operate/reference/services/navigation/#compass-heading) +- [Orientation](/operate/reference/services/navigation/#orientation) +- [Angular Velocity](/operate/reference/services/navigation/#angular-velocity) +- [Position](/operate/reference/services/navigation/#position) +- [Linear Acceleration](/operate/reference/services/navigation/#linear-acceleration) +- [Linear Velocity](/operate/reference/services/navigation/#linear-velocity) ### Compass heading @@ -284,11 +284,11 @@ orientation, err := imuwit.Orientation(context.Background(), nil) Use orientation readings to determine the orientation of an object in 3D space as an [_orientation vector_](/operate/reference/orientation-vector/). An orientation vector indicates how it is rotated relative to an origin coordinate system around the x, y, and z axes. -You can choose the origin reference frame by configuring it using Viam's [frame system](/services/frame-system/). +You can choose the origin reference frame by configuring it using Viam's [frame system](/operate/mobility/define-geometry/). The `GetOrientation` readings will report orientations relative to that initial frame. To read orientation, first [configure a capable movement sensor](/operate/reference/components/movement-sensor/#configuration) on your machine. -Additionally, follow [these instructions](/operate/mobility/define-geometry/#configure-a-reference-frame) to configure the geometries of each component of your machine within the [frame system](/operate/services/frame-system/). +Additionally, follow [these instructions](/operate/mobility/define-geometry/#configure-a-reference-frame) to configure the geometries of each component of your machine within the [frame system](/operate/mobility/define-geometry/). Then use the movement sensor API's [`GetOrientation()`](/dev/reference/apis/components/movement-sensor/#getorientation) method to get orientation readings. ### Angular velocity @@ -371,7 +371,7 @@ An example of a `LinearAcceleration` reading: linearAcceleration, err := imu.LinearAcceleration(context.Background(), nil) ``` -You can use linear acceleration readings to determine the rate of change of the [linear velocity](/services/navigation/#linear-velocity) of your machine, or, the acceleration at which your machine is moving through space. +You can use linear acceleration readings to determine the rate of change of the [linear velocity](/operate/reference/services/navigation/#linear-velocity) of your machine, or, the acceleration at which your machine is moving through space. To get linear acceleration, [configure a capable movement sensor](/operate/reference/components/movement-sensor/#configuration) on your machine. Then use the movement sensor API's [`GetLinearAcceleration()`](/dev/reference/apis/components/movement-sensor/#getlinearacceleration) method to get linear acceleration readings from the sensor. diff --git a/docs/operate/reference/services/slam/cartographer/_index.md b/docs/operate/reference/services/slam/cartographer/_index.md index 4294c8c9e0..49eccf8a13 100644 --- a/docs/operate/reference/services/slam/cartographer/_index.md +++ b/docs/operate/reference/services/slam/cartographer/_index.md @@ -78,9 +78,9 @@ You can use data from one or more movement sensors on your machine to supplement If you choose to use movement sensor data for SLAM, you can: - Add only inertial measurement unit (IMU) data - - Requires a movement sensor that supports [`AngularVelocity`](/services/navigation/#angular-velocity) and [`LinearAcceleration`](/services/navigation/#linear-acceleration) readings + - Requires a movement sensor that supports [`AngularVelocity`](/operate/reference/services/navigation/#angular-velocity) and [`LinearAcceleration`](/operate/reference/services/navigation/#linear-acceleration) readings - Add only odometry data - - Requires a movement sensor that collects [`Position`](/services/navigation/#position) and [`Orientation`](/services/navigation/#orientation) data (for example, [`wheeled-odometry`](/operate/reference/components/movement-sensor/wheeled-odometry/)) + - Requires a movement sensor that collects [`Position`](/operate/reference/services/navigation/#position) and [`Orientation`](/operate/reference/services/navigation/#orientation) data (for example, [`wheeled-odometry`](/operate/reference/components/movement-sensor/wheeled-odometry/)) - Add both IMU _and_ odometry data - Requires all four of the above kinds of data, merged together using the [`merged` movement sensor model](/operate/reference/components/movement-sensor/merged/) - If you choose this option, be sure to configure data capture on the `merged` sensor and not on the individual movement sensors when following the steps below. diff --git a/docs/operate/reference/services/slam/cloudslam/_index.md b/docs/operate/reference/services/slam/cloudslam/_index.md index de97c77bce..9de15ef78d 100644 --- a/docs/operate/reference/services/slam/cloudslam/_index.md +++ b/docs/operate/reference/services/slam/cloudslam/_index.md @@ -71,7 +71,7 @@ To use CloudSLAM on a live machine, you must meet the following requirements: To use CloudSLAM you must enable data capture and configure your `cloudslam-wrapper` SLAM service: {{< alert title="Tip: Managing Data Capture" color="tip" >}} -Note that when the [data management service](/data-ai/capture-data/capture-sync/) is enabled, it continuously monitors and syncs your machine’s sensor data while the machine is running. +Note that when the [data management service](/services/data/) is enabled, it continuously monitors and syncs your machine’s sensor data while the machine is running. To avoid incurring charges while not in use, [turn off data capture for your sensors](/data-ai/capture-data/capture-sync/#configuration) once you have finished your SLAM session. {{< /alert >}} @@ -430,8 +430,8 @@ The following attributes are available for `viam:cloudslam-wrapper:cloudslam` | `slam_service` | string | **Required** | The name of the SLAM Service on the machine to use with cloudslam. | | `api_key` | string | **Required** | An [API key](/cloud/rbac/#api-keys) with location owner or higher permission. | | `api_key_id` | string | **Required** | The associated API key ID with the API key. | -| `organization_id` | string | **Required** | The organization ID of your [organization](/cloud/organizations/). | -| `location_id` | string | **Required** | The location ID of your [location](/cloud/locations/). | +| `organization_id` | string | **Required** | The organization ID of your [organization](/dev/reference/glossary/organization/). | +| `location_id` | string | **Required** | The location ID of your [location](/dev/reference/glossary/location/). | | `machine_id` | string | **Required** | The machine ID of your [machine](/dev/reference/apis/fleet/#find-machine-id). | | `machine_part_id` | string | Optional | The machine part ID of your [machine part](/dev/reference/apis/fleet/#find-machine-id). Used for local package creation and updating mode. | | `viam_version` | string | Optional | The version of viam-server to use with CloudSLAM. Defaults to `stable`. | diff --git a/docs/operate/reference/sessions.md b/docs/operate/reference/sessions.md index 187c07137d..cf3823c253 100644 --- a/docs/operate/reference/sessions.md +++ b/docs/operate/reference/sessions.md @@ -33,7 +33,7 @@ This is especially important for machines that physically move. For example, imagine a wheeled rover gets a [`SetPower()`](/dev/reference/apis/components/base/#setpower) command as the last input from a client before the connection to the machine is interrupted. Without session management, the API request from the client would cause the rover's motors to move, causing the machine to continue driving forever and potentially colliding with objects and people. -For more information, see [Client Sessions and Machine Network Connectivity](/sdks/connectivity/). +For more information, see [Client Sessions and Machine Network Connectivity](/dev/reference/sdks/connectivity/). If you want to manage operations differently, you can manage your machine's client sessions yourself. The Session Management API provides functionality for: diff --git a/docs/operate/reference/viam-micro-server/viam-micro-server-setup.md b/docs/operate/reference/viam-micro-server/viam-micro-server-setup.md index 34f3ccc14d..d8263e4077 100644 --- a/docs/operate/reference/viam-micro-server/viam-micro-server-setup.md +++ b/docs/operate/reference/viam-micro-server/viam-micro-server-setup.md @@ -17,7 +17,7 @@ For code examples and more information on `viam-micro-server`, see [GitHub](http ## SDK usage recommendation -If you run [control code](/sdks/) to control your `viam-micro-server` machine, you may experience instability. +If you run [control code](/dev/reference/sdks/) to control your `viam-micro-server` machine, you may experience instability. If the connection to the ESP32 with an SDK is unstable, we recommend the following changes to the default settings in your connection code. This will disable the SDK background task that monitors the connection to `viam-micro-server`, saving bandwidth. diff --git a/docs/tutorials/control/drive-rover.md b/docs/tutorials/control/drive-rover.md index 7820da0b50..11dd01ff72 100644 --- a/docs/tutorials/control/drive-rover.md +++ b/docs/tutorials/control/drive-rover.md @@ -75,7 +75,7 @@ If you are running out of time during your session, you can [extend your rover s {{% tab name="Other Rover" %}} {{% alert title="Important" color="note" %}} -If you are using your own robot for this tutorial instead of [borrowing one](https://app.viam.com/try), be sure to [install `viam-server`](/installation/viam-server-setup/#install-viam-server) on it, and connect and [configure](/tutorials/configure/configure-rover/) its hardware before proceeding with this tutorial. +If you are using your own robot for this tutorial instead of [borrowing one](https://app.viam.com/try), be sure to [follow the setup instructions and install `viam-server`](/operate/get-started/setup/) on it, and connect and [configure](/tutorials/configure/configure-rover/) its hardware before proceeding with this tutorial. {{% /alert %}} {{% /tab %}} @@ -91,7 +91,7 @@ To install your preferred Viam SDK on your Linux or macOS development machine or {{< tabs >}} {{% tab name="Python" %}} -If you are using the Python SDK, [set up a virtual environment](/sdks/python/python-venv/) to package the SDK inside before running your code, avoiding conflicts with other projects or your system. +If you are using the Python SDK, [set up a virtual environment](/dev/reference/sdks/python/python-venv/) to package the SDK inside before running your code, avoiding conflicts with other projects or your system. For macOS (both Intel `x86_64` and Apple Silicon) or Linux (`x86`, `aarch64`, `armv6l`), run the following commands: diff --git a/docs/tutorials/custom/controlling-an-intermode-rover-canbus.md b/docs/tutorials/custom/controlling-an-intermode-rover-canbus.md index 60a96bb4c1..a3bc54226f 100644 --- a/docs/tutorials/custom/controlling-an-intermode-rover-canbus.md +++ b/docs/tutorials/custom/controlling-an-intermode-rover-canbus.md @@ -314,7 +314,7 @@ Now that `viam-server` can find the module, you can add the base component it pr 1. Click **Create** to create the modular resource provided by the local module. 1. Click **Save** in the top right corner. -For more information on modules and how they work, see the [modular resources documentation](/registry/). +For more information on modules and how they work, see the [integrate other hardware](/operate/get-started/other-hardware/). ### Control the rover @@ -339,7 +339,7 @@ Check out this [GitHub repository](https://github.com/viam-labs/tutorial-intermo ## Next steps -Now that you have integrated your rover or mobile base with Viam, you can use the [Viam SDKs](/sdks/) to operate your rover. +Now that you have integrated your rover or mobile base with Viam, you can use the [Viam SDKs](/dev/reference/sdks/) to operate your rover. If your rover has a [`camera`](/operate/reference/components/camera/) or a [`movement_sensor`](/operate/reference/components/movement-sensor/), you can try the following tutorials: {{< cards >}} diff --git a/docs/tutorials/custom/custom-base-dog.md b/docs/tutorials/custom/custom-base-dog.md index d029d8ebb2..c8df7ce659 100644 --- a/docs/tutorials/custom/custom-base-dog.md +++ b/docs/tutorials/custom/custom-base-dog.md @@ -347,7 +347,7 @@ Don't forget to save. ### Make your module executable Now that you defined the methods for the custom component, you need to set up an [executable file](https://en.wikipedia.org/wiki/Executable) to run your custom component module. -You can find more information in [the relevant section of the modular resource documentation](/registry/). +You can find more information in [integrate other hardware](/operate/get-started/other-hardware/). Since the command line tool already created a run.sh for you, all you need to do is make that shell script executable by running this command from your robotdog directory: ```sh {class="command-line" data-prompt="$"} diff --git a/docs/tutorials/get-started/blink-an-led.md b/docs/tutorials/get-started/blink-an-led.md index db4fe41e50..615346ef76 100644 --- a/docs/tutorials/get-started/blink-an-led.md +++ b/docs/tutorials/get-started/blink-an-led.md @@ -35,7 +35,7 @@ This is a great place to start if you have never built a robot or a circuit befo {{}} First, you'll use the control interface on the [Viam app](https://app.viam.com) to turn the LED on and off. -Then, you'll write code to control the LED using the Viam [software development kits](/sdks/). +Then, you'll write code to control the LED using the Viam [software development kits](/dev/reference/sdks/). ## What you'll need for this guide diff --git a/docs/tutorials/projects/claw-game.md b/docs/tutorials/projects/claw-game.md index 67a150c467..587f82f848 100644 --- a/docs/tutorials/projects/claw-game.md +++ b/docs/tutorials/projects/claw-game.md @@ -27,7 +27,7 @@ In this tutorial, you will: - assemble the claw game machine and learn how to fabricate your own encasement for the machine - learn how to configure the components using Viam -- master the art of controlling your robot with our [motion service](/services/motion/) using the [Viam Python SDK](https://python.viam.dev/) +- master the art of controlling your robot with our [motion service](/operate/reference/services/motion/) using the [Viam Python SDK](https://python.viam.dev/) - learn how to create a custom control interface using the [Viam TypeScript SDK](https://ts.viam.dev/) ## Requirements @@ -140,8 +140,8 @@ Machines are organized into {{< glossary_tooltip term_id="part" text="parts" >}} Every machine has a main part which is automatically created when you create the machine. Since you just created a new machine, your machine's main part is already defined. Multi-part machines also have one or more sub-parts representing additional computers running `viam-server`. -If you have two computers within the _same machine_, you can use one as the main part and [connect the other to it as a sub-part](/architecture/parts/#configure-a-sub-part). -This is the approach this tutorial follows: you'll run the [motion planning service](/services/motion/) on a laptop and connect that laptop as a sub-part to your machine. +If you have two computers within the _same machine_, you can use one as the main part and [connect the other to it as a sub-part](/operate/reference/architecture/parts/rchitecture/parts/#configure-a-sub-part). +This is the approach this tutorial follows: you'll run the [motion planning service](/operate/reference/services/motion/) on a laptop and connect that laptop as a sub-part to your machine. {{< alert title="Tip" color="tip" >}} Technically you could configure all the components within one part, but motion planning is more performant when running on a computer like a macOS or Linux laptop running `viam-server`. @@ -155,7 +155,7 @@ Use the parts dropdown menu in the top banner of your machine’s page on the [V Follow the instructions on the **Setup** tab to install `viam-server` on your development machine and connect to your robot's sub-part. -For more information about parts, see [Machine Architecture: Parts](/architecture/parts/). +For more information about parts, see [Machine Architecture: Parts](/operate/reference/architecture/parts/). Now you are ready to configure the individual components in the [Viam app](https://app.viam.com). Navigate to the **Config** tab of your machine's page and select your main part from the parts dropdown. @@ -431,7 +431,7 @@ Now select `low` and click **Set Pin State** again: the claw will open. ## Create obstacles and a world state -The claw game machine will use the [motion service](/services/motion/) to plan its movements. +The claw game machine will use the [motion service](/operate/reference/services/motion/) to plan its movements. To make sure the arm doesn't hit the walls of the enclosure or the prize drop hole, you need to create representations of obstacles around the arm that the motion service can use when planning. Obstacles are geometries located at a pose relative to some frame. @@ -449,7 +449,7 @@ The list of obstacles are defined in a `WorldState` object, which is passed as a {{< alert title="Tip" color="tip" >}} If the arm is not mounted exactly perpendicular to the x/y axis of the enclosure, you can adjust the theta (_th_) of the arm within the arm component configuration by a number of degrees to compensate. Obstacles can then be configured as if the arm were straight in the enclosure. -See the [frame system documentation](/services/frame-system/) for more information. +See the [frame system documentation](/operate/mobility/define-geometry/) for more information. {{< /alert >}} ### Find the home pose within the enclosure @@ -544,7 +544,7 @@ home_pose = Pose(x=390.0, y=105.0, z=home_plane, o_x=0, o_y=0, o_z=-1, theta=0) grab_plane = 240.0 ``` -Then we define the [constraints](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.Constraints) - in this case we are using an [orientation constraint](/services/motion/constraints/#orientation-constraint). +Then we define the [constraints](https://python.viam.dev/autoapi/viam/proto/service/motion/index.html#viam.proto.service.motion.Constraints) - in this case we are using an [orientation constraint](/operate/reference/services/motion/constraints/#orientation-constraint). The orientation constraint places a restriction on the orientation change during a motion, as the arm in a claw game should always face down so the gripper is always in a position where is can descend and grab a prize: ```python @@ -600,7 +600,7 @@ async def grab(board, doGrab): await pin.set(False) ``` -Lastly, the code defines the functions `move_absolute()`, `home()`, `move_to_offset()` and `move_z()`, which construct new pose requests to send to the [motion service](/services/motion/). +Lastly, the code defines the functions `move_absolute()`, `home()`, `move_to_offset()` and `move_z()`, which construct new pose requests to send to the [motion service](/operate/reference/services/motion/). ```python {class="line-numbers linkable-line-numbers"} async def move_absolute(arm, motion_service, pose): @@ -933,13 +933,13 @@ async function grab(boardClient: BoardClient) { In this tutorial, you learned how to: - Make your own claw machine. -- Test, configure, and control a robot arm using Viam’s [motion service](/services/motion/), the [Viam Python SDK](https://python.viam.dev/), and the [Viam app](https://app.viam.com). +- Test, configure, and control a robot arm using Viam’s [motion service](/operate/reference/services/motion/), the [Viam Python SDK](https://python.viam.dev/), and the [Viam app](https://app.viam.com). - Design your own custom interface using the [Viam TypeScript SDK](https://ts.viam.dev/). For some next steps, you could: -- Use the advanced interface included in the project repository to leverage the [motion service](/services/motion/) for larger, more complex arm movement within the enclosure. -- Add a camera and use the [vision service](/data-ai/reference/vision/) to add color detection, or use an [ML model](/services/ml/) to determine grab success rate and create a score counter. +- Use the advanced interface included in the project repository to leverage the [motion service](/operate/reference/services/motion/) for larger, more complex arm movement within the enclosure. +- Add a camera and use the [vision service](/data-ai/reference/vision/) to add color detection, or use an [ML model](/data-ai/ai/deploy/) to determine grab success rate and create a score counter. - Design a hard mode where the prizes are shuffled around with the arm every few attempts. - Add a camera and extend the interface to allow folks from anywhere in the world to play the claw game and win. diff --git a/docs/tutorials/projects/helmet.md b/docs/tutorials/projects/helmet.md index a64140794a..7146190086 100644 --- a/docs/tutorials/projects/helmet.md +++ b/docs/tutorials/projects/helmet.md @@ -108,7 +108,7 @@ If it doesn't, double-check that your config is saved correctly, and check the * ### Configure the vision service Now that you know the camera is properly connected to your machine, it is time to add computer vision by configuring the [vision service](/data-ai/reference/vision/) on your machine. -Viam's built-in [`mlmodel` vision service](/data-ai/reference/vision/mlmodel/) works with Tensor Flow Lite models, but since this tutorial uses a YOLOv8 model, we will use a {{< glossary_tooltip term_id="module" text="module" >}} from the [modular resource registry](/registry/) that augments Viam with YOLOv8 integration. +Viam's built-in [`mlmodel` vision service](/data-ai/reference/vision/mlmodel/) works with Tensor Flow Lite models, but since this tutorial uses a YOLOv8 model, we will use a {{< glossary_tooltip term_id="module" text="module" >}} from the [modular resource registry](https://app.viam.com/registry/) that augments Viam with YOLOv8 integration. The [YOLOv8 module](https://github.com/viam-labs/YOLOv8) enables you to use any [YOLOv8 model](https://huggingface.co/models?other=yolov8) with your Viam machines. 1. Navigate to your machine's **CONFIGURE** tab. diff --git a/docs/tutorials/projects/integrating-viam-with-openai.md b/docs/tutorials/projects/integrating-viam-with-openai.md index 6678a36f9a..75aed238ce 100644 --- a/docs/tutorials/projects/integrating-viam-with-openai.md +++ b/docs/tutorials/projects/integrating-viam-with-openai.md @@ -242,7 +242,7 @@ We found that if set up this way, the following positions accurately show the co ### 2. Configure the ML Model and vision services to use the detector -The [ML model service](/services/ml/) allows you to deploy a machine learning model to your robot. +The [ML model service](/data-ai/ai/deploy/) allows you to deploy a machine learning model to your robot. This tutorial uses a pre-trained machine learning (ML) model from the Viam Registry named [`EfficientDet-COCO`](https://app.viam.com/ml-model/viam-labs/EfficientDet-COCO). This model can detect a variety of objects, which you can find in the provided [labels.txt](https://github.com/viam-labs/devrel-demos/raw/main/Light%20up%20bot/labels.txt) file. diff --git a/docs/tutorials/projects/make-a-plant-watering-robot.md b/docs/tutorials/projects/make-a-plant-watering-robot.md index ff16d3e4f3..5a2b9635d1 100644 --- a/docs/tutorials/projects/make-a-plant-watering-robot.md +++ b/docs/tutorials/projects/make-a-plant-watering-robot.md @@ -273,7 +273,7 @@ sudo apt upgrade ``` Then run the following command to create and activate the virtual environment: -If you want to read more on virtual environments, check out [the documentation](/sdks/python/python-venv/). +If you want to read more on virtual environments, check out [the documentation](/dev/reference/sdks/python/python-venv/). ```sh {class="command-line" data-prompt="$"} python3 -m venv .venv diff --git a/docs/tutorials/projects/send-security-photo.md b/docs/tutorials/projects/send-security-photo.md index 6b4737313b..c77d099d6c 100644 --- a/docs/tutorials/projects/send-security-photo.md +++ b/docs/tutorials/projects/send-security-photo.md @@ -24,7 +24,7 @@ Maybe someone is eating your chocolates when you are away. You're not sure who, but you suspect Steve. This robot will help you catch the culprit. -When someone comes to your desk, the robot will use the [vision service](/data-ai/reference/vision/) and the [ML model service](/services/ml/) to detect a person, take their photo, and text you an alert with a photo of the person. +When someone comes to your desk, the robot will use the [vision service](/data-ai/reference/vision/) and the [ML model service](/data-ai/ai/deploy/) to detect a person, take their photo, and text you an alert with a photo of the person. ![Text message reading "Alert There is someone at your desk beware" with a photo of a person (Steve) detected by the camera as he approaches the desk.](/tutorials/send-security-photo/text-message.png) diff --git a/docs/tutorials/projects/verification-system.md b/docs/tutorials/projects/verification-system.md index bc8c4d9c3f..45fd91610e 100644 --- a/docs/tutorials/projects/verification-system.md +++ b/docs/tutorials/projects/verification-system.md @@ -86,7 +86,7 @@ In order for your machine's camera to be able to detect the presence of a person ### Use an existing ML model -The [ML model service](/services/ml/) allows you to deploy a machine learning model to your robot. +The [ML model service](/data-ai/ai/deploy/) allows you to deploy a machine learning model to your robot. For your machine to be able to detect people, you will use a Machine Learning model from the Viam Registry called [`EfficientDet-COCO`](https://app.viam.com/ml-model/viam-labs/EfficientDet-COCO). The model can detect a variety of things which you can see in [labels.txt](https://github.com/viam-labs/devrel-demos/raw/main/Light%20up%20bot/labels.txt) file including `person`s. @@ -169,7 +169,7 @@ Then, create a new dataset using your uploaded images and train a new model usin You only want this model to be able to distinguish between what is and isn't a person, so you can conduct this training step with anyone, not necessarily the specific people you intend to approve later. 3. [Train a TFlite model on your dataset](/data-ai/ai/train-tflite/). Give it the name `"persondetect"`, and select **Object Detection** as the **Model Type**. -4. [Deploy the model](/services/ml/) to your machine so it can be used by other services, such as the vision service. +4. [Deploy the model](/data-ai/ai/deploy/) to your machine so it can be used by other services, such as the vision service. Finally, configure an `mlmodel` detector to use your new `"persondetect"` ML model: @@ -201,7 +201,7 @@ scp /path/to/my-photo.jpg username@my-machine.local:/home/me/my-photo.jpg After you have copied at least one image of a person to your machine, you are ready to configure the second detection layer: the facial recognition detector. For this tutorial, you will use Viam Labs's `facial-detector` module, available from the [Viam Registry](https://app.viam.com/module/viam-labs/facial-detector). -The `facial-detector` module provides a [modular](/registry/) vision service that uses Facebook's DeepFace library to perform facial detections. +The `facial-detector` module provides a modular vision service that uses Facebook's DeepFace library to perform facial detections. To add the `facial-detector` module to your machine: @@ -317,7 +317,7 @@ To add a transform camera to your machine: {{% alert title="Note" color="note" %}} The various states do not cause anything to happen on their own besides appearing as overlays on the transform cam. -To trigger an audio alarm or otherwise have your machine take an action based on the reported state, you can write your own logic using one of the [Viam SDKs](/sdks/) to [poll the classifications](/dev/reference/apis/services/vision/#getclassificationsfromcamera). +To trigger an audio alarm or otherwise have your machine take an action based on the reported state, you can write your own logic using one of the [Viam SDKs](/dev/reference/sdks/) to [poll the classifications](/dev/reference/apis/services/vision/#getclassificationsfromcamera). See [2D Image Classification](/data-ai/reference/vision/#classifications) for information about working with classifiers in Viam, and [Vision API](/dev/reference/apis/services/vision/#api) for usage of the Computer Vision API this module implements. {{% /alert %}} @@ -338,7 +338,7 @@ To view your machine's transform camera overlay: Now that you've got the verification aspect of your system working, you can use this as a launch point for customizing your own DIY home security system. For example: -- Write a program using one of the [Viam SDK](/sdks/) to poll the `facial-verification` module for its current state, and take action when a particular state is reached. +- Write a program using one of the [Viam SDK](/dev/reference/sdks/) to poll the `facial-verification` module for its current state, and take action when a particular state is reached. For example, you could use [`GetClassificationsFromCamera()`](/dev/reference/apis/services/vision/#getclassificationsfromcamera) to capture when a transition into the `ALARM` state occurs, and then send you an email with the captured image of the trespasser! - Try changing the type of [detectors](/data-ai/reference/vision/#detections), using different detectors for the `TRIGGER_1` and `TRIGGER_2` states. - Add the [filtered camera module](/data-ai/capture-data/filter-before-sync/) to your machine, and use it as the source camera in your verification system in order to save images to the Viam Cloud only when the system enters into specific states. diff --git a/docs/tutorials/services/constrain-motion.md b/docs/tutorials/services/constrain-motion.md index 69ee218d4f..58c586456d 100644 --- a/docs/tutorials/services/constrain-motion.md +++ b/docs/tutorials/services/constrain-motion.md @@ -28,7 +28,7 @@ aliases: Say you want your robot to pass you a cup of tea, but you don't want it to spill the water or bump into other objects on the table. -If you followed along with the [Plan Motion with an Arm tutorial](../plan-motion-with-arm-gripper/), you used the [motion service](/services/motion/) to move a robot arm and end effector to desired positions. +If you followed along with the [Plan Motion with an Arm tutorial](../plan-motion-with-arm-gripper/), you used the [motion service](/operate/reference/services/motion/) to move a robot arm and end effector to desired positions. This tutorial builds on this foundation. In this tutorial, you will learn about transforms and constraints with the example of moving a cup across a table without hitting another object, and while remaining upright. @@ -64,7 +64,7 @@ Before starting this tutorial, you must: ## Configure your robot -Use the same robot configuration from [the previous tutorial](../plan-motion-with-arm-gripper/) for this tutorial, including the [arm](/operate/reference/components/arm/) and [gripper](/operate/reference/components/gripper/) components with [frames](/services/frame-system/) configured. +Use the same robot configuration from [the previous tutorial](../plan-motion-with-arm-gripper/) for this tutorial, including the [arm](/operate/reference/components/arm/) and [gripper](/operate/reference/components/gripper/) components with [frames](/operate/mobility/define-geometry/) configured. Make one change: Change the Z translation of the gripper frame from `90` to `0`. The motion service is one of the "built-in" services, so you don't need to do anything to enable it on your robot. diff --git a/docs/tutorials/services/navigate-with-rover-base.md b/docs/tutorials/services/navigate-with-rover-base.md index c2ecb7f52f..de97ada92a 100644 --- a/docs/tutorials/services/navigate-with-rover-base.md +++ b/docs/tutorials/services/navigate-with-rover-base.md @@ -37,7 +37,7 @@ weight: 5 # SMEs: Ray Bjorkman, Fahmina --- -The [navigation service](/services/navigation/) allows you to queue up user-defined waypoints for your machine to move to in the order that you specify. +The [navigation service](/operate/reference/services/navigation/) allows you to queue up user-defined waypoints for your machine to move to in the order that you specify. You can also add obstacles or set linear and angular velocity targets in your navigation service config. Viam's motion planner will plan routes that avoid those obstacles and attempt to keep the robot at your specified velocity. @@ -72,7 +72,7 @@ Follow this tutorial to get started using Viam's Navigation service to help your 3. A [`merged`](/operate/reference/components/movement-sensor/merged/) model aggregating the readings together for the navigation service to consume. You can use any combo of movement sensors you want as long as you are getting all the types of measurements required. - See [the navigation service](/services/navigation/#requirements) for more info on movement sensor requirements. + See [the navigation service](/operate/reference/services/navigation/#requirements) for more info on movement sensor requirements. {{% alert title="Tip" color="tip" %}} @@ -461,7 +461,7 @@ To add the navigation service to your robot, do the following: ``` Edit the attributes as applicable. - Attribute information is available in [the navigation service documentation](/services/navigation/#configuration). + Attribute information is available in [the navigation service documentation](/operate/reference/services/navigation/#configuration). 1. Click **Save** in the top right corner of the screen to save your changes. @@ -469,7 +469,7 @@ Your navigation service should now appear in your machine's **CONFIGURE** tab as ![Navigation Card](/tutorials/navigate-with-rover-base/navigation-config-builder.png) -For more detailed information see [the navigation service](/services/navigation/#configuration). +For more detailed information see [the navigation service](/operate/reference/services/navigation/#configuration). {{% /tab %}} {{% tab name="JSON" %}} @@ -622,7 +622,7 @@ You can alternatively use [`viam:ultrasonic:camera`](https://github.com/viam-mod If you want the robot to be able to automatically detect obstacles in front of it, [configure a Vision service segmenter](/data-ai/reference/vision/#segmentations). For example, [configure](/data-ai/reference/vision/obstacles_depth/) the Vision service model [`obstacles_depth`](/data-ai/reference/vision/obstacles_depth/) to detect obstacles in front of the robot. -Then, use one of [Viam's client SDKs](/sdks/) to automate obstacle avoidance with the navigation service like in the following Python program: +Then, use one of [Viam's client SDKs](/dev/reference/sdks/) to automate obstacle avoidance with the navigation service like in the following Python program: {{%expand "Click to view full example of automated obstacle avoidance with the Python SDK" %}} diff --git a/docs/tutorials/services/plan-motion-with-arm-gripper.md b/docs/tutorials/services/plan-motion-with-arm-gripper.md index d2f349e04b..33fa32912c 100644 --- a/docs/tutorials/services/plan-motion-with-arm-gripper.md +++ b/docs/tutorials/services/plan-motion-with-arm-gripper.md @@ -25,7 +25,7 @@ aliases: --- With Viam you can move individual components, like [arms](/operate/reference/components/arm/), by issuing commands like `MoveToPosition` or `MoveToJointPosition`. -The [motion service](/services/motion/) enables you to do much more sophisticated movement involving one or many components of your robot. +The [motion service](/operate/reference/services/motion/) enables you to do much more sophisticated movement involving one or many components of your robot. The service abstracts the lower-level commands away so that instead of passing in a series of joint positions, you can call the `Move()` command with the desired destination and any obstacles, and the service will move your machine to the desired location for you. {{< alert title="Learning Goals" color="info" >}} @@ -105,7 +105,7 @@ if err != nil { {{% /tab %}} {{< /tabs >}} -The Motion service has a method that can get the _pose_ of a component relative to a [_reference frame_](/services/frame-system/). +The Motion service has a method that can get the _pose_ of a component relative to a [_reference frame_](/operate/mobility/define-geometry/). In the tutorial where we interacted with an arm component, we used the `GetEndPosition` method to determine the pose of the end effector of `myArm`. The `GetPose` method provided by the motion service serves a similar function to `GetEndPosition`, but allows for querying of pose data with respect to other elements of the robot (such as another component or the robot's fixed "world" frame). @@ -302,7 +302,7 @@ In this section you will add a new component to your machine. One device that is very commonly attached to the end of a robot arm is a [_gripper_](/operate/reference/components/gripper/). Most robot arms pick up and manipulate objects in the world with a gripper, so learning how to directly move a gripper is very useful. Though various motion service commands cause the gripper to move, ultimately the arm is doing all of the work in these situations. -This is possible because the motion service considers other components of the robot (through the [frame system](/services/frame-system/)) when calculating how to achieve the desired motion. +This is possible because the motion service considers other components of the robot (through the [frame system](/operate/mobility/define-geometry/)) when calculating how to achieve the desired motion. ### Add a gripper component diff --git a/docs/tutorials/services/visualize-data-grafana.md b/docs/tutorials/services/visualize-data-grafana.md index 314e533e61..beeb01558a 100644 --- a/docs/tutorials/services/visualize-data-grafana.md +++ b/docs/tutorials/services/visualize-data-grafana.md @@ -162,7 +162,7 @@ With your machine capturing data and syncing it to Viam, and direct query of tha 1. Click the **Save & test** button to save your settings. Grafana will perform a health check on your configuration settings to verify that everything looks good. -This connection allows Grafana to access all synced sensor data under your [organization](/cloud/organizations/), from any machine. +This connection allows Grafana to access all synced sensor data under your [organization](/dev/reference/glossary/organization/), from any machine. ## Visualize your data diff --git a/layouts/shortcodes/board-carousel.html b/layouts/shortcodes/board-carousel.html index b6b4fd1a76..975ed8c442 100644 --- a/layouts/shortcodes/board-carousel.html +++ b/layouts/shortcodes/board-carousel.html @@ -42,7 +42,7 @@
  • - + {{ partial "imgproc" (dict "src" "/installation/thumbnails/esp32-espressif.png" "resize" "148x120" "declaredimensions" true "alt" "E S P 32 - espressif") }} diff --git a/static/include/app/apis/generated/app.md b/static/include/app/apis/generated/app.md index 631e6ccaa8..8718b45e2e 100644 --- a/static/include/app/apis/generated/app.md +++ b/static/include/app/apis/generated/app.md @@ -1093,7 +1093,7 @@ For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/ ### MarkPartAsMain -Mark a machine part as the [_main_ part](/architecture/parts/#machine-parts) of a machine. +Mark a machine part as the [_main_ part](/operate/reference/architecture/parts/#machine-parts) of a machine. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/app/apis/generated/mltraining.md b/static/include/app/apis/generated/mltraining.md index 6091162c19..f92a77771c 100644 --- a/static/include/app/apis/generated/mltraining.md +++ b/static/include/app/apis/generated/mltraining.md @@ -41,7 +41,7 @@ For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/ ### SubmitCustomTrainingJob Submit a training job from a custom training script. -Follow the guide to [Train a Model with a Custom Python Training Script](/how-tos/create-custom-training-scripts/). +Follow the guide to [Train a Model with a Custom Python Training Script](/data-ai/ai/train/). {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/app/apis/overrides/protos/app.MarkPartAsMain.md b/static/include/app/apis/overrides/protos/app.MarkPartAsMain.md index a8c6baf696..5a35e66ff4 100644 --- a/static/include/app/apis/overrides/protos/app.MarkPartAsMain.md +++ b/static/include/app/apis/overrides/protos/app.MarkPartAsMain.md @@ -1 +1 @@ -Mark a machine part as the [_main_ part](/architecture/parts/#machine-parts) of a machine. +Mark a machine part as the [_main_ part](/operate/reference/architecture/parts/#machine-parts) of a machine. diff --git a/static/include/app/apis/overrides/protos/mltraining.SubmitCustomTrainingJob.md b/static/include/app/apis/overrides/protos/mltraining.SubmitCustomTrainingJob.md index 7f91aaec3c..fd12ae964b 100644 --- a/static/include/app/apis/overrides/protos/mltraining.SubmitCustomTrainingJob.md +++ b/static/include/app/apis/overrides/protos/mltraining.SubmitCustomTrainingJob.md @@ -1,2 +1,2 @@ Submit a training job from a custom training script. -Follow the guide to [Train a Model with a Custom Python Training Script](/how-tos/create-custom-training-scripts/). +Follow the guide to [Train a Model with a Custom Python Training Script](/data-ai/ai/train/). diff --git a/static/include/components/apis/generated/arm.md b/static/include/components/apis/generated/arm.md index 4c35a3c30e..de531b702c 100644 --- a/static/include/components/apis/generated/arm.md +++ b/static/include/components/apis/generated/arm.md @@ -560,8 +560,8 @@ For more information, see the [Flutter SDK Docs](https://flutter.viam.dev/viam_s ### GetGeometries -Get all the geometries associated with the arm in its current configuration, in the [frame](/services/frame-system/) of the arm. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the arm in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the arm. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/generated/base.md b/static/include/components/apis/generated/base.md index f85ebf679b..7a7c4a3a8e 100644 --- a/static/include/components/apis/generated/base.md +++ b/static/include/components/apis/generated/base.md @@ -595,8 +595,8 @@ For more information, see the [Flutter SDK Docs](https://flutter.viam.dev/viam_s ### GetGeometries -Get all the geometries associated with the base in its current configuration, in the [frame](/services/frame-system/) of the base. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the base in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the base. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/generated/board.md b/static/include/components/apis/generated/board.md index 1b461e2c16..85aa337b8f 100644 --- a/static/include/components/apis/generated/board.md +++ b/static/include/components/apis/generated/board.md @@ -1103,8 +1103,8 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/c ### GetGeometries -Get all the geometries associated with the board in its current configuration, in the [frame](/services/frame-system/) of the board. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the board in its current configuration, in the [frame](/operate/mobility/define-geometry/e-geometry/) of the board. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/generated/camera.md b/static/include/components/apis/generated/camera.md index 6cb2e82567..f1be2a8c3a 100644 --- a/static/include/components/apis/generated/camera.md +++ b/static/include/components/apis/generated/camera.md @@ -384,8 +384,8 @@ For more information, see the [Flutter SDK Docs](https://flutter.viam.dev/viam_s ### GetGeometries -Get all the geometries associated with the camera in its current configuration, in the [frame](/services/frame-system/) of the camera. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the camera in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the camera. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/generated/encoder.md b/static/include/components/apis/generated/encoder.md index d8a4deb8d9..b296d53188 100644 --- a/static/include/components/apis/generated/encoder.md +++ b/static/include/components/apis/generated/encoder.md @@ -175,8 +175,8 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/c ### GetGeometries -Get all the geometries associated with the encoder in its current configuration, in the [frame](/services/frame-system/) of the encoder. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the encoder in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the encoder. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/generated/gripper.md b/static/include/components/apis/generated/gripper.md index 917862143a..98b14a76ee 100644 --- a/static/include/components/apis/generated/gripper.md +++ b/static/include/components/apis/generated/gripper.md @@ -296,8 +296,8 @@ For more information, see the [Flutter SDK Docs](https://flutter.viam.dev/viam_s ### GetGeometries -Get all the geometries associated with the gripper in its current configuration, in the [frame](/services/frame-system/) of the gripper. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the gripper in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the gripper. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/generated/input_controller.md b/static/include/components/apis/generated/input_controller.md index ad735101fe..09c5ad37e2 100644 --- a/static/include/components/apis/generated/input_controller.md +++ b/static/include/components/apis/generated/input_controller.md @@ -175,8 +175,8 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/c ### GetGeometries -Get all the geometries associated with the input controller in its current configuration, in the [frame](/services/frame-system/) of the input controller. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the input controller in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the input controller. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/components/apis/overrides/protos/arm.GetGeometries.md b/static/include/components/apis/overrides/protos/arm.GetGeometries.md index 40cb21c587..c5ea261e64 100644 --- a/static/include/components/apis/overrides/protos/arm.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/arm.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the arm in its current configuration, in the [frame](/services/frame-system/) of the arm. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the arm in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the arm. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/base.GetGeometries.md b/static/include/components/apis/overrides/protos/base.GetGeometries.md index 6c0df2da90..280ee499cb 100644 --- a/static/include/components/apis/overrides/protos/base.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/base.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the base in its current configuration, in the [frame](/services/frame-system/) of the base. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the base in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the base. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/board.GetGeometries.md b/static/include/components/apis/overrides/protos/board.GetGeometries.md index a586a36c1a..7affc6d6dd 100644 --- a/static/include/components/apis/overrides/protos/board.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/board.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the board in its current configuration, in the [frame](/services/frame-system/) of the board. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the board in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the board. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/camera.GetGeometries.md b/static/include/components/apis/overrides/protos/camera.GetGeometries.md index 29d7436524..643c0319bb 100644 --- a/static/include/components/apis/overrides/protos/camera.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/camera.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the camera in its current configuration, in the [frame](/services/frame-system/) of the camera. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the camera in its current configuration, in the [frame](/operate/mobility/define-geometry/e-geometry/) of the camera. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/encoder.GetGeometries.md b/static/include/components/apis/overrides/protos/encoder.GetGeometries.md index fd5e7a4631..ceaf5a1b38 100644 --- a/static/include/components/apis/overrides/protos/encoder.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/encoder.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the encoder in its current configuration, in the [frame](/services/frame-system/) of the encoder. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the encoder in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the encoder. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/gantry.GetGeometries.md b/static/include/components/apis/overrides/protos/gantry.GetGeometries.md index 2b58a9d7fb..6d5a72e9ed 100644 --- a/static/include/components/apis/overrides/protos/gantry.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/gantry.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the gantry in its current configuration, in the [frame](/services/frame-system/) of the gantry. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the gantry in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the gantry. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/generic_component.GetGeometries.md b/static/include/components/apis/overrides/protos/generic_component.GetGeometries.md index b6f43ab065..f6b3d99855 100644 --- a/static/include/components/apis/overrides/protos/generic_component.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/generic_component.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the generic component in its current configuration, in the [frame](/services/frame-system/) of the generic component. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the generic component in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the generic component. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/gripper.GetGeometries.md b/static/include/components/apis/overrides/protos/gripper.GetGeometries.md index 9a11dae406..89c16ac924 100644 --- a/static/include/components/apis/overrides/protos/gripper.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/gripper.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the gripper in its current configuration, in the [frame](/services/frame-system/) of the gripper. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the gripper in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the gripper. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/input_controller.GetGeometries.md b/static/include/components/apis/overrides/protos/input_controller.GetGeometries.md index bc438e8522..aa7e41a206 100644 --- a/static/include/components/apis/overrides/protos/input_controller.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/input_controller.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the input controller in its current configuration, in the [frame](/services/frame-system/) of the input controller. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the input controller in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the input controller. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/rvices/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/motor.GetGeometries.md b/static/include/components/apis/overrides/protos/motor.GetGeometries.md index 106c46b87e..188aef9781 100644 --- a/static/include/components/apis/overrides/protos/motor.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/motor.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the motor in its current configuration, in the [frame](/services/frame-system/) of the motor. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the motor in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the motor. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/movement_sensor.GetGeometries.md b/static/include/components/apis/overrides/protos/movement_sensor.GetGeometries.md index 719ff2f691..4d68243ea3 100644 --- a/static/include/components/apis/overrides/protos/movement_sensor.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/movement_sensor.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the movement sensor in its current configuration, in the [frame](/services/frame-system/) of the movement sensor. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the movement sensor in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the movement sensor. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/power_sensor.GetGeometries.md b/static/include/components/apis/overrides/protos/power_sensor.GetGeometries.md index 3dc9196d90..88e9a298ce 100644 --- a/static/include/components/apis/overrides/protos/power_sensor.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/power_sensor.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the power sensor in its current configuration, in the [frame](/services/frame-system/) of the power sensor. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the power sensor in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the power sensor. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/sensor.GetGeometries.md b/static/include/components/apis/overrides/protos/sensor.GetGeometries.md index 8a5feda1ce..f5b97ce316 100644 --- a/static/include/components/apis/overrides/protos/sensor.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/sensor.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the sensor in its current configuration, in the [frame](/services/frame-system/) of the sensor. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the sensor in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the sensor. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/components/apis/overrides/protos/servo.GetGeometries.md b/static/include/components/apis/overrides/protos/servo.GetGeometries.md index df8fbfaa08..134c57a9ed 100644 --- a/static/include/components/apis/overrides/protos/servo.GetGeometries.md +++ b/static/include/components/apis/overrides/protos/servo.GetGeometries.md @@ -1,2 +1,2 @@ -Get all the geometries associated with the servo in its current configuration, in the [frame](/services/frame-system/) of the servo. -The [motion](/services/motion/) and [navigation](/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. +Get all the geometries associated with the servo in its current configuration, in the [frame](/operate/mobility/define-geometry/) of the servo. +The [motion](/operate/reference/services/motion/) and [navigation](/operate/reference/services/navigation/) services use the relative position of inherent geometries to configured geometries representing obstacles for collision detection and obstacle avoidance while motion planning. diff --git a/static/include/micro-create-your-own.md b/static/include/micro-create-your-own.md index 06702b6c8f..1c2a3c7839 100644 --- a/static/include/micro-create-your-own.md +++ b/static/include/micro-create-your-own.md @@ -3,5 +3,5 @@ If none of the existing models fit your use case, you can create a {{< glossary_ `viam-micro-server` works differently from the RDK, so creating modular resources for it is different. Refer to the [Micro-RDK Module Template on GitHub](https://github.com/viamrobotics/micro-rdk/tree/main/templates/module) for information on how to create custom resources for your `viam-micro-server` machine. -You will need to [recompile and flash your ESP32 yourself](/installation/viam-micro-server-setup/#install-viam-micro-server) instead of using Viam's prebuilt binary and installer. +You will need to [recompile and flash your ESP32 yourself](/operate/get-started/setup/) instead of using Viam's prebuilt binary and installer. {{< /alert >}} diff --git a/static/include/services/apis/fleet.md b/static/include/services/apis/fleet.md index f66c1248bc..c906305f09 100644 --- a/static/include/services/apis/fleet.md +++ b/static/include/services/apis/fleet.md @@ -22,7 +22,7 @@ Method Name | Description [`UpdateRobotPart`](/dev/reference/apis/fleet/#updaterobotpart ) | Update the name or configuration of a machine part. [`NewRobotPart`](/dev/reference/apis/fleet/#newrobotpart ) | Create a new machine part. [`DeleteRobotPart`](/dev/reference/apis/fleet/#deleterobotpart ) | Delete a machine part. -[`MarkPartAsMain`](/dev/reference/apis/fleet/#markpartasmain ) | Mark a part as the [_main_ part](/architecture/parts/#machine-parts) of a machine. +[`MarkPartAsMain`](/dev/reference/apis/fleet/#markpartasmain ) | Mark a part as the [_main_ part](/operate/reference/architecture/parts/#machine-parts) of a machine. [`MarkPartForRestart`](/dev/reference/apis/fleet/#markpartforrestart ) | Mark a machine part for restart. [`CreateRobotPartSecret`](/dev/reference/apis/fleet/#createrobotpartsecret ) | Create a machine part secret. *Deprecated*. [`DeleteRobotPartSecret`](/dev/reference/apis/fleet/#deleterobotpartsecret ) | Delete a machine part secret. *Deprecated*. diff --git a/static/include/services/apis/generated/motion.md b/static/include/services/apis/generated/motion.md index 924c8d1486..3e3700235b 100644 --- a/static/include/services/apis/generated/motion.md +++ b/static/include/services/apis/generated/motion.md @@ -16,7 +16,7 @@ The motion service takes the volumes associated with all configured machine comp **Parameters:** - `component_name` ([viam.proto.common.ResourceName](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.ResourceName)) (required): The `ResourceName` of the piece of the robot that should arrive at the destination. Note that `move` moves the distal end of the component to the destination. For example, when moving a robotic arm, the piece that will arrive at the destination is the end effector attachment point, not the base of the arm. -- `destination` ([viam.proto.common.PoseInFrame](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.PoseInFrame)) (required): Describes where the `component_name` frame should be moved to. Can be any pose, from the perspective of any component whose location is configured as a [`frame`](/services/frame-system/). +- `destination` ([viam.proto.common.PoseInFrame](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.PoseInFrame)) (required): Describes where the `component_name` frame should be moved to. Can be any pose, from the perspective of any component whose location is configured as a [`frame`](/operate/mobility/define-geometry/). - `world_state` ([viam.proto.common.WorldState](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.WorldState)) (optional): Data structure specifying information about the world around the machine. Used to augment the motion solving process. `world_state` includes obstacles and transforms: @@ -125,12 +125,12 @@ You can monitor the progress of the `MoveOnMap()` call by querying `GetPlan()` a Use the machine's position reported by the {{< glossary_tooltip term_id="slam" text="SLAM" >}} service to check the location of the machine. -`MoveOnMap()` is intended for use with the [navigation service](/services/navigation/), providing autonomous indoor navigation for rover [bases](/operate/reference/components/base/). +`MoveOnMap()` is intended for use with the [navigation service](/operate/reference/services/navigation/), providing autonomous indoor navigation for rover [bases](/operate/reference/components/base/). {{< alert title="Requirements" color="info" >}} -To use `MoveOnMap()`, your [SLAM service](/services/slam/) must implement `GetPointCloudMap()` and `GetPosition()` +To use `MoveOnMap()`, your [SLAM service](/operate/reference/services/slam/) must implement `GetPointCloudMap()` and `GetPosition()` -Make sure the [SLAM service](/services/slam/) you use alongside this motion service supports the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [SLAM service API](/dev/reference/apis/services/slam/): +Make sure the [SLAM service](/operate/reference/services/slam/) you use alongside this motion service supports the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [SLAM service API](/dev/reference/apis/services/slam/): - It must support `GetPointCloudMap()` to report the SLAM map as a pointcloud. - It must support `GetPosition()` to report the machine's current location on the SLAM map. @@ -143,7 +143,7 @@ Make sure the [SLAM service](/services/slam/) you use alongside this motion serv - `component_name` ([viam.proto.common.ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)) (required): The `ResourceName` of the base to move. - `destination` ([viam.proto.common.Pose](https://python.viam.dev/autoapi/viam/components/arm/index.html#viam.components.arm.Pose)) (required): The destination, which can be any [Pose](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose) with respect to the SLAM map's origin. -- `slam_service_name` ([viam.proto.common.ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)) (required): The `ResourceName` of the [SLAM service](/services/slam/) from which the SLAM map is requested. +- `slam_service_name` ([viam.proto.common.ResourceName](https://python.viam.dev/autoapi/viam/gen/common/v1/common_pb2/index.html#viam.gen.common.v1.common_pb2.ResourceName)) (required): The `ResourceName` of the [SLAM service](/operate/reference/services/slam/) from which the SLAM map is requested. - `configuration` ([viam.proto.service.motion.MotionConfiguration](https://python.viam.dev/autoapi/viam/gen/service/motion/v1/motion_pb2/index.html#viam.gen.service.motion.v1.motion_pb2.MotionConfiguration)) (optional): The configuration you want to set across this machine for this motion service. This parameter and each of its fields are optional. @@ -193,7 +193,7 @@ A `MoveOnMapReq` which contains the following values: - `ComponentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to move. - `Destination` [(spatialmath.Pose)](https://pkg.go.dev/go.viam.com/rdk/spatialmath#Pose): The destination, which can be any [Pose](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose) with respect to the SLAM map's origin. -- `SlamName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [SLAM service](/services/slam/) from which the SLAM map is requested. +- `SlamName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [SLAM service](/operate/reference/services/slam/) from which the SLAM map is requested. - `MotionConfig` [(\*MotionConfiguration)](https://pkg.go.dev/go.viam.com/rdk/services/motion#MotionConfiguration): The configuration you want to set across this machine for this motion service. This parameter and each of its fields are optional. - `ObstacleDetectors` [([]ObstacleDetectorName)](https://pkg.go.dev/go.viam.com/rdk/services/motion#ObstacleDetectorName): The names of each [vision service](/data-ai/reference/vision/) and [camera](/operate/reference/components/camera/) resource pair you want to use for transient obstacle avoidance. - `PositionPollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the position of the machine. @@ -258,7 +258,7 @@ If you specify a goal pose and the robot's current position is already within th You can monitor the progress of the `MoveOnGlobe()` call by querying `GetPlan()` and `ListPlanStatuses()`. -`MoveOnGlobe()` is intended for use with the [navigation service](/services/navigation/), providing autonomous GPS navigation for rover [bases](/operate/reference/components/base/). +`MoveOnGlobe()` is intended for use with the [navigation service](/operate/reference/services/navigation/), providing autonomous GPS navigation for rover [bases](/operate/reference/components/base/). {{< alert title="Requirements" color="info" >}} To use `MoveOnGlobe()`, your movement sensor must be able to measure the GPS location and orientation of the machine. @@ -276,7 +276,7 @@ The `heading` parameter is experimental. Specifying `heading` in a request to `MoveOnGlobe` is not currently recommended if the minimum turning radius of your component is greater than zero, as this combination may cause high latency in the [motion planning algorithms](/services/motion/algorithms/). Specifying `obstacles` in a request to `MoveOnGlobe()` will cause an error if you configure a `"translation"` in the `"geometries"` of any of the `GeoGeometry` objects. -Translation in obstacles is not supported by the [navigation service](/services/navigation/). +Translation in obstacles is not supported by the [navigation service](/operate/reference/services/navigation/). {{< /alert >}} @@ -393,7 +393,7 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/s ### GetPose -`GetPose` gets the location and orientation of a component within the [frame system](/services/frame-system/). +`GetPose` gets the location and orientation of a component within the [frame system](/operate/mobility/define-geometry/). The return type of this function is a `PoseInFrame` describing the pose of the specified component with respect to the specified destination frame. You can use the `supplemental_transforms` argument to augment the machine's existing frame system with supplemental frames. diff --git a/static/include/services/apis/generated/navigation.md b/static/include/services/apis/generated/navigation.md index aab775ed1c..9f6179d1f0 100644 --- a/static/include/services/apis/generated/navigation.md +++ b/static/include/services/apis/generated/navigation.md @@ -337,7 +337,7 @@ For more information, see the [Go SDK Docs](https://pkg.go.dev/go.viam.com/rdk/s Get an array or list of the obstacles currently in the service's data storage. These are objects designated for the robot to avoid when navigating. These include all transient obstacles which are discovered by the vision services configured for the navigation service, in addition to the obstacles that are configured as a part of the service. -See the [motion service](/services/motion/) for more information. +See the [motion service](/operate/reference/services/motion/) for more information. {{< tabs >}} {{% tab name="Python" %}} diff --git a/static/include/services/apis/overrides/methods/go.motion.Move.destination.md b/static/include/services/apis/overrides/methods/go.motion.Move.destination.md index 641939b5eb..f0faeeb045 100644 --- a/static/include/services/apis/overrides/methods/go.motion.Move.destination.md +++ b/static/include/services/apis/overrides/methods/go.motion.Move.destination.md @@ -1,4 +1,4 @@ Describes where the `component_name` should end up. -Can be any pose, from the perspective of any component whose location is configured as a [`frame`](/services/frame-system/). +Can be any pose, from the perspective of any component whose location is configured as a [`frame`](/operate/mobility/define-geometry/). Note that the destination pose is relative to the distal end of the specified frame. This means that if the `destination` is the same as the `component_name` frame, for example an arm's frame, then a pose of `{X: 10, Y: 0, Z: 0}` will move that arm’s end effector by 10 mm in the local `X` direction. diff --git a/static/include/services/apis/overrides/methods/go.motion.MoveOnMap.req.md b/static/include/services/apis/overrides/methods/go.motion.MoveOnMap.req.md index 75efb61cea..65b0ea4827 100644 --- a/static/include/services/apis/overrides/methods/go.motion.MoveOnMap.req.md +++ b/static/include/services/apis/overrides/methods/go.motion.MoveOnMap.req.md @@ -4,7 +4,7 @@ A `MoveOnMapReq` which contains the following values: - `ComponentName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the base to move. - `Destination` [(spatialmath.Pose)](https://pkg.go.dev/go.viam.com/rdk/spatialmath#Pose): The destination, which can be any [Pose](https://python.viam.dev/autoapi/viam/proto/common/index.html#viam.proto.common.Pose) with respect to the SLAM map's origin. -- `SlamName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [SLAM service](/services/slam/) from which the SLAM map is requested. +- `SlamName` [(resource.Name)](https://pkg.go.dev/go.viam.com/rdk/resource#Name): The `resource.Name` of the [SLAM service](/operate/reference/services/slam/) from which the SLAM map is requested. - `MotionConfig` [(\*MotionConfiguration)](https://pkg.go.dev/go.viam.com/rdk/services/motion#MotionConfiguration): The configuration you want to set across this machine for this motion service. This parameter and each of its fields are optional. - `ObstacleDetectors` [([]ObstacleDetectorName)](https://pkg.go.dev/go.viam.com/rdk/services/motion#ObstacleDetectorName): The names of each [vision service](/data-ai/reference/vision/) and [camera](/operate/reference/components/camera/) resource pair you want to use for transient obstacle avoidance. - `PositionPollingFreqHz` [(float64)](https://pkg.go.dev/builtin#float64): The frequency in hz to poll the position of the machine. diff --git a/static/include/services/apis/overrides/methods/python.motion.move.destination.md b/static/include/services/apis/overrides/methods/python.motion.move.destination.md index 00255fba23..5f6aebb8a2 100644 --- a/static/include/services/apis/overrides/methods/python.motion.move.destination.md +++ b/static/include/services/apis/overrides/methods/python.motion.move.destination.md @@ -1,2 +1,2 @@ Describes where the `component_name` frame should be moved to. -Can be any pose, from the perspective of any component whose location is configured as a [`frame`](/services/frame-system/). +Can be any pose, from the perspective of any component whose location is configured as a [`frame`](/operate/mobility/define-geometry/). diff --git a/static/include/services/apis/overrides/methods/python.motion.move_on_map.slam_service_name.md b/static/include/services/apis/overrides/methods/python.motion.move_on_map.slam_service_name.md index bb7aa86b01..e4dafa9e13 100644 --- a/static/include/services/apis/overrides/methods/python.motion.move_on_map.slam_service_name.md +++ b/static/include/services/apis/overrides/methods/python.motion.move_on_map.slam_service_name.md @@ -1 +1 @@ -The `ResourceName` of the [SLAM service](/services/slam/) from which the SLAM map is requested. +The `ResourceName` of the [SLAM service](/operate/reference/services/slam/) from which the SLAM map is requested. diff --git a/static/include/services/apis/overrides/protos/motion.GetPose.md b/static/include/services/apis/overrides/protos/motion.GetPose.md index b7f970041a..0bda71a629 100644 --- a/static/include/services/apis/overrides/protos/motion.GetPose.md +++ b/static/include/services/apis/overrides/protos/motion.GetPose.md @@ -1,3 +1,3 @@ -`GetPose` gets the location and orientation of a component within the [frame system](/services/frame-system/). +`GetPose` gets the location and orientation of a component within the [frame system](/operate/mobility/define-geometry/). The return type of this function is a `PoseInFrame` describing the pose of the specified component with respect to the specified destination frame. You can use the `supplemental_transforms` argument to augment the machine's existing frame system with supplemental frames. diff --git a/static/include/services/apis/overrides/protos/motion.MoveOnGlobe.md b/static/include/services/apis/overrides/protos/motion.MoveOnGlobe.md index 7f4247c3ef..aa73e5f266 100644 --- a/static/include/services/apis/overrides/protos/motion.MoveOnGlobe.md +++ b/static/include/services/apis/overrides/protos/motion.MoveOnGlobe.md @@ -11,7 +11,7 @@ If you specify a goal pose and the robot's current position is already within th You can monitor the progress of the `MoveOnGlobe()` call by querying `GetPlan()` and `ListPlanStatuses()`. -`MoveOnGlobe()` is intended for use with the [navigation service](/services/navigation/), providing autonomous GPS navigation for rover [bases](/operate/reference/components/base/). +`MoveOnGlobe()` is intended for use with the [navigation service](/operate/reference/services/navigation/), providing autonomous GPS navigation for rover [bases](/operate/reference/components/base/). {{< alert title="Requirements" color="info" >}} To use `MoveOnGlobe()`, your movement sensor must be able to measure the GPS location and orientation of the machine. @@ -29,6 +29,6 @@ The `heading` parameter is experimental. Specifying `heading` in a request to `MoveOnGlobe` is not currently recommended if the minimum turning radius of your component is greater than zero, as this combination may cause high latency in the [motion planning algorithms](/services/motion/algorithms/). Specifying `obstacles` in a request to `MoveOnGlobe()` will cause an error if you configure a `"translation"` in the `"geometries"` of any of the `GeoGeometry` objects. -Translation in obstacles is not supported by the [navigation service](/services/navigation/). +Translation in obstacles is not supported by the [navigation service](/operate/reference/services/navigation/). {{< /alert >}} diff --git a/static/include/services/apis/overrides/protos/motion.MoveOnMap.md b/static/include/services/apis/overrides/protos/motion.MoveOnMap.md index fae9c41213..d145ed9d25 100644 --- a/static/include/services/apis/overrides/protos/motion.MoveOnMap.md +++ b/static/include/services/apis/overrides/protos/motion.MoveOnMap.md @@ -12,12 +12,12 @@ You can monitor the progress of the `MoveOnMap()` call by querying `GetPlan()` a Use the machine's position reported by the {{< glossary_tooltip term_id="slam" text="SLAM" >}} service to check the location of the machine. -`MoveOnMap()` is intended for use with the [navigation service](/services/navigation/), providing autonomous indoor navigation for rover [bases](/operate/reference/components/base/). +`MoveOnMap()` is intended for use with the [navigation service](/operate/reference/services/navigation/), providing autonomous indoor navigation for rover [bases](/operate/reference/components/base/). {{< alert title="Requirements" color="info" >}} -To use `MoveOnMap()`, your [SLAM service](/services/slam/) must implement `GetPointCloudMap()` and `GetPosition()` +To use `MoveOnMap()`, your [SLAM service](/operate/reference/services/slam/) must implement `GetPointCloudMap()` and `GetPosition()` -Make sure the [SLAM service](/services/slam/) you use alongside this motion service supports the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [SLAM service API](/dev/reference/apis/services/slam/): +Make sure the [SLAM service](/operate/reference/services/slam/) you use alongside this motion service supports the following methods in its {{< glossary_tooltip term_id="model" text="model's" >}} implementation of the [SLAM service API](/dev/reference/apis/services/slam/): - It must support `GetPointCloudMap()` to report the SLAM map as a pointcloud. - It must support `GetPosition()` to report the machine's current location on the SLAM map. diff --git a/static/include/services/apis/overrides/protos/navigation.GetObstacles.md b/static/include/services/apis/overrides/protos/navigation.GetObstacles.md index 9f090242e8..1a21180b2b 100644 --- a/static/include/services/apis/overrides/protos/navigation.GetObstacles.md +++ b/static/include/services/apis/overrides/protos/navigation.GetObstacles.md @@ -1,4 +1,4 @@ Get an array or list of the obstacles currently in the service's data storage. These are objects designated for the robot to avoid when navigating. These include all transient obstacles which are discovered by the vision services configured for the navigation service, in addition to the obstacles that are configured as a part of the service. -See the [motion service](/services/motion/) for more information. +See the [motion service](/operate/reference/services/motion/) for more information. diff --git a/static/include/try-viam/extend-a-reservation.md b/static/include/try-viam/extend-a-reservation.md index b29bc3ca83..112aa95759 100644 --- a/static/include/try-viam/extend-a-reservation.md +++ b/static/include/try-viam/extend-a-reservation.md @@ -2,4 +2,4 @@ During your rental, if the next time slot is open, you can click **Extend** at t If the option is not available, that means there is another reservation waiting. You must do this _before your session ends_ to reset the timer. Once your session has ended, you can no longer access this option, but the robot's final configuration will remain in your account. -You can always create a new reservation and [reuse the configuration](/appendix/try-viam/reserve-a-rover/#how-can-i-reuse-my-borrowed-rover) to experience Try Viam again. +You can always create a new reservation and reuse the configuration to experience Try Viam again.