diff --git a/assets/components/movement-sensor/adxl345-builder.png b/assets/components/movement-sensor/adxl345-builder.png index 04993174b0..6ec231dd81 100644 Binary files a/assets/components/movement-sensor/adxl345-builder.png and b/assets/components/movement-sensor/adxl345-builder.png differ diff --git a/assets/components/movement-sensor/fake-builder.png b/assets/components/movement-sensor/fake-builder.png index d7cec75aff..355802b149 100644 Binary files a/assets/components/movement-sensor/fake-builder.png and b/assets/components/movement-sensor/fake-builder.png differ diff --git a/assets/components/movement-sensor/gps-nmea-builder.png b/assets/components/movement-sensor/gps-nmea-builder.png index 8b52d7ecc8..b9ce20fd0b 100644 Binary files a/assets/components/movement-sensor/gps-nmea-builder.png and b/assets/components/movement-sensor/gps-nmea-builder.png differ diff --git a/assets/components/movement-sensor/gps-nmea-rtk-pmtk-builder.png b/assets/components/movement-sensor/gps-nmea-rtk-pmtk-builder.png index 8f760bc8c8..b96f4b710f 100644 Binary files a/assets/components/movement-sensor/gps-nmea-rtk-pmtk-builder.png and b/assets/components/movement-sensor/gps-nmea-rtk-pmtk-builder.png differ diff --git a/assets/components/movement-sensor/gps-nmea-rtk-serial-builder.png b/assets/components/movement-sensor/gps-nmea-rtk-serial-builder.png index a8afbaf4b2..ffd09297fb 100644 Binary files a/assets/components/movement-sensor/gps-nmea-rtk-serial-builder.png and b/assets/components/movement-sensor/gps-nmea-rtk-serial-builder.png differ diff --git a/assets/components/movement-sensor/imu-vectornav-builder.png b/assets/components/movement-sensor/imu-vectornav-builder.png index 80a59d944a..1682af0afa 100644 Binary files a/assets/components/movement-sensor/imu-vectornav-builder.png and b/assets/components/movement-sensor/imu-vectornav-builder.png differ diff --git a/assets/components/movement-sensor/imu-wit-builder.png b/assets/components/movement-sensor/imu-wit-builder.png index 0c01fcf3f3..011a9c0eb7 100644 Binary files a/assets/components/movement-sensor/imu-wit-builder.png and b/assets/components/movement-sensor/imu-wit-builder.png differ diff --git a/assets/components/movement-sensor/mpu6050-builder.png b/assets/components/movement-sensor/mpu6050-builder.png index 586dd1b290..ea39be1c43 100644 Binary files a/assets/components/movement-sensor/mpu6050-builder.png and b/assets/components/movement-sensor/mpu6050-builder.png differ diff --git a/assets/manage/configuration/config-tab.png b/assets/manage/configuration/config-tab.png index d2fb0bbbaa..16f22b6d42 100644 Binary files a/assets/manage/configuration/config-tab.png and b/assets/manage/configuration/config-tab.png differ diff --git a/assets/tutorials/custom-base-dog/config-modular-component.png b/assets/tutorials/custom-base-dog/config-modular-component.png index 9f803a9af7..0363e3eadc 100644 Binary files a/assets/tutorials/custom-base-dog/config-modular-component.png and b/assets/tutorials/custom-base-dog/config-modular-component.png differ diff --git a/assets/tutorials/custom-base-dog/raw-json.png b/assets/tutorials/custom-base-dog/raw-json.png new file mode 100644 index 0000000000..69d9d8ed72 Binary files /dev/null and b/assets/tutorials/custom-base-dog/raw-json.png differ diff --git a/docs/components/board/upboard.md b/docs/components/board/upboard.md index 86100d6d00..81338878b5 100644 --- a/docs/components/board/upboard.md +++ b/docs/components/board/upboard.md @@ -13,7 +13,7 @@ Configure an `upboard` board to integrate an Intel-based board like the [UP4000] Complete the following setup requirements, then move on to configuring your board in [the Viam app](https://app.viam.com): -## Set up requirements +## Setup requirements Flash your Intel-based board with: @@ -38,10 +38,6 @@ Edit and fill in the attributes as applicable. {{% /tab %}} {{% tab name="JSON Template" %}} -Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. -Select **Raw JSON** mode and copy and paste the following: - ```json {class="line-numbers linkable-line-numbers"} { "components": [ @@ -82,9 +78,6 @@ Select **Raw JSON** mode and copy and paste the following: {{% /tab %}} {{< /tabs >}} -Save the config. -Edit and fill in the attributes as applicable. - The following attributes are available for `upboard` boards: | Name | Type | Inclusion | Description | diff --git a/docs/components/component/model1.md b/docs/components/component/model1.md index 5dd335d92a..14cd280dd3 100644 --- a/docs/components/component/model1.md +++ b/docs/components/component/model1.md @@ -17,10 +17,6 @@ Optional additional description/information. {{% tab name="Config Builder" %}} Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. - -Enter a name for your arm, select the `arm` type, and select the `model1` model. - Click on the **Components** subtab and click **Create component**. Select the `arm` type, then select the `model1` model. Enter a name for your arm and click **Create**. diff --git a/docs/components/movement-sensor/adxl345.md b/docs/components/movement-sensor/adxl345.md index 8f01de4f43..3d0483a19a 100644 --- a/docs/components/movement-sensor/adxl345.md +++ b/docs/components/movement-sensor/adxl345.md @@ -17,10 +17,9 @@ If you are using a [Viam Rover](https://docs.viam.com/try-viam/), this is the ac {{% tab name="Config Builder" %}} Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. -Enter a name for your movement sensor, select the `movement-sensor` type, and select the `accel-adxl345` model. - -Click **Create Component** +Click on the **Components** subtab and click **Create component**. +Select the `movement-sensor` type, then select the `accel-adxl345` model. +Enter a name for your movement sensor and click **Create**. {{< imgproc src="/components/movement-sensor/adxl345-builder.png" alt="Creation of an `accel-adxl345` movement sensor in the Viam app config builder." resize="600x" >}} diff --git a/docs/components/movement-sensor/wheeled-odometry.md b/docs/components/movement-sensor/wheeled-odometry.md index 0e7d40f571..b26ef4dced 100644 --- a/docs/components/movement-sensor/wheeled-odometry.md +++ b/docs/components/movement-sensor/wheeled-odometry.md @@ -34,7 +34,6 @@ Make sure to configure the base width and circumference, as these measurements a ## Configuration Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. Select **Raw JSON** mode. Copy and paste the following: diff --git a/docs/manage/configuration.md b/docs/manage/configuration.md index f303b69660..654fcb4c33 100644 --- a/docs/manage/configuration.md +++ b/docs/manage/configuration.md @@ -149,10 +149,7 @@ Depending on your robot, you may not need to configure any modules, remotes, pro Components represent the pieces of hardware on your robot that you want to control with Viam. -You must configure each component with a name, a model, a type, attributes, and dependencies: - -- `name`: Serves as an identifier when accessing the resource from your code, as well as when configuring other resources that are dependent on that resource. -You can choose any unique name for a component. +You must configure each component with a type, a model, a name, attributes, and dependencies: - `type`: The broad component category, such as `motor`, `arm` or `camera`. Components of a given type have a common API. @@ -160,6 +157,9 @@ You can choose any unique name for a component. - `model`: Indicates the more specific category of hardware. Components of the same model are supported using the same low-level code. +- `name`: Serves as an identifier when accessing the resource from your code, as well as when configuring other resources that are dependent on that resource. +You can choose any unique name for a component. + - `attributes`: A struct to define things like how the component is wired to the robot, its dimensions, and other specifications; attributes vary widely between models. See the [component documentation](/components/) for a given component type and model for more details. diff --git a/docs/tutorials/custom/custom-base-dog.md b/docs/tutorials/custom/custom-base-dog.md index 1567f3328a..1883a1ff09 100644 --- a/docs/tutorials/custom/custom-base-dog.md +++ b/docs/tutorials/custom/custom-base-dog.md @@ -345,42 +345,59 @@ Name your module `my-custom-base`. Enter the path (for example, `/home/fido/robotdog/run.sh`) to your module's executable file in the **Executable path** field. Click **Save Config** at the bottom of the page. -![Screenshot of the Viam app CONFIG tab with the Modules subtab open, showing my-custom-base configured.](/tutorials/custom-base-dog/module-config.png) +![Screenshot of the Viam app Config tab with the Modules subtab open, showing my-custom-base configured.](/tutorials/custom-base-dog/module-config.png) ## Configure the components Now that the custom base code is set up, you need to configure all your hardware components. -Navigate to the **Components** subtab of the **Config** tab. +Navigate to the **Components** subtab of your robot's **Config** tab. -### Configure the base +### Configure the camera -In the **Create Component** field, give your base a name. -We called ours "quadruped". -In the **Type** drop-down select `base`. -In the **Model** field, type in `viamlabs:base:robotdog`. -Click **Create Component**. +Configure the ribbon camera on the dog as a `webcam` following our [webcam documentation](/components/camera/webcam/). -![Screenshot of the Viam app CONFIG tab with the Config subtab open, showing quadruped configured.](/tutorials/custom-base-dog/config-modular-component.png) +Click **Save config**. -You need to add the `ip_address` and `port` attributes to your base config. -In the attributes field, paste the following, replacing `` with your Pi's hostname (for example, `"ip_address": "robotdog.local"`): +### Configure the base + +Because your custom base relies on a local module, you need to use raw JSON to configure your modular resource. +Use the **Mode** selector in the upper-left corner of the **Config** tab to switch to **Raw JSON** mode. + +Locate the `"components": []` portion of the config file. +At the end of your camera configuration, add a comma and then add the following base configuration: ```json -{ - "ip_address": ".local", - "port": 5001 -} + { + "namespace": "rdk", + "name": "quadruped", + "type": "base", + "model": "viamlabs:base:robotdog", + "attributes": { + "ip_address": ".local", + + "port": 5001 + }, + "depends_on": [] + } ``` +Edit the `ip_address` attribute to match your robot's hostname, replacing `` with your Pi's hostname (for example, `"ip_address": "robotdog.local"`). If this doesn't work, you can instead try using the IP address of the machine where the module is running, for example, `"ip_address": "10.0.0.123"`. +If you are using a port other than `5001`, edit the `port` attribute. `5001` is the default port for sending and receiving instructions to and from the Freenove server. -Click **Save Config**. +Click **Save config**. -### Configure the camera +Your raw JSON configuration should look similar to the following: -Configure the ribbon camera on the dog as a `webcam` following our [webcam documentation](/components/camera/webcam/). +![Raw JSON mode on the Config tab, showing the components and modules sections of the robot's raw JSON config.](/tutorials/custom-base-dog/raw-json.png) + +Toggle back to **Builder** mode and make sure a configuration panel has been generated: + +![Screenshot of the Viam app CONFIG tab with the Config subtab open, showing quadruped configured.](/tutorials/custom-base-dog/config-modular-component.png) + +If yours doesn't resemble the following, go back to the raw JSON and double-check your JSON formatting. ## Start the Freenove server diff --git a/docs/tutorials/get-started/blink-an-led.md b/docs/tutorials/get-started/blink-an-led.md index 356c785055..4e356c3026 100644 --- a/docs/tutorials/get-started/blink-an-led.md +++ b/docs/tutorials/get-started/blink-an-led.md @@ -130,7 +130,7 @@ First, go to the [Viam app](https://app.viam.com/) on your web browser and navig {{% tab name="Config Builder" %}} Add a [*board component*](/components/board/) to represent your single-board computer, which in this case is the Raspberry Pi. -To create the new component, click **Create component** in the lower left corner of the **Config** tab. +To create the new component, click **Create component** in the lower-left corner of the **Config** tab. - Select `board` as the component type. - Select `pi` as the model. diff --git a/docs/tutorials/projects/claw-game.md b/docs/tutorials/projects/claw-game.md index 8d5659b9a4..7993b14988 100644 --- a/docs/tutorials/projects/claw-game.md +++ b/docs/tutorials/projects/claw-game.md @@ -164,10 +164,11 @@ Navigate to the **Config** tab of your robot's page and select your main part fr {{< tabs >}} {{% tab name="Builder UI" %}} -Click on the **Components** subtab and navigate to the **Create component** menu. +Click the **Components** subtab. +Click the **Create component** button in the lower-left corner. -Add your [board](https://docs.viam.com/components/board/) with the name `myBoard`, type `board`, and model `pi`. -Click **Create Component**. +Add your [board](https://docs.viam.com/components/board/) with type `board` and model `pi`. +Name your board `myBoard` and click **Create**. ![Create component panel, with the name attribute filled as myBoard, type attribute filled as board and model attribute filled as pi.](/tutorials/claw-game/app-component-myboard.png) @@ -175,7 +176,7 @@ You can name your board whatever you want as long as you use the same name to re We named it `myBoard` for simplicity. This is the only component in the main robot. -Click **Save config** in the bottom left corner of the screen. +Click **Save config** in the lower-left corner of the screen. {{% /tab %}} {{% tab name="Raw JSON" %}} @@ -196,7 +197,7 @@ On the [`Raw JSON` tab](/manage/configuration/#the-config-tab), replace the conf } ``` -Click **Save config** in the bottom left corner of the screen. +Click **Save config** in the lower-left corner of the screen. {{% /tab %}} {{< /tabs >}} @@ -210,10 +211,11 @@ Use the parts drop-down menu to navigate to the `planning` sub-part. {{< tabs >}} {{% tab name="Builder UI" %}} -Click on the **Components** subtab and navigate to the **Create component** menu. +Click the **Components** subtab. +Click the **Create component** button in the lower-left corner. -Add your [arm](/components/arm/) with the name `myArm`, type `arm`, and model `xArm6`. -Click **Create Component**. +Add your [arm](/components/arm/) with type `arm`, and model `xArm6`. +Name it `myArm` and click **Create**. ![Create component panel, with the name attribute filled as myArm, type attribute filled as arm and model attribute filled as xArm6. In the Attributes section, host is filled 10.1.1.26 and in Frame section, there is a world frame.](/tutorials/claw-game/app-myarm.png) @@ -222,7 +224,7 @@ Our arm's address was `10.1.1.26`, but you should use the IP address for your ar For more information on xArm6 configuration, see [Configure an xArm6 Arm](/components/arm/xarm6/). -Click **Save config** in the bottom left corner of the screen. +Click **Save config** in the lower-left corner of the screen. {{% /tab %}} {{% tab name="Raw JSON" %}} @@ -274,8 +276,9 @@ Click **Save config** in the bottom left corner of the screen. {{< tabs >}} {{% tab name="Builder UI" %}} -Add your [gripper](/components/gripper/) with the name `gripper`, type `gripper`, and model `fake`. -Click **Create Component**. +Click **Create component** and add your [gripper](/components/gripper/). +Choose type `gripper` and model `fake`. +Name it `gripper` and click **Create**. ![Create component panel, with the name attribute filled as gripper, type attribute filled as gripper and model attribute filled as fake. In the Frame section, there is a myArm parent in the frame.](/tutorials/claw-game/app-gripper.png) @@ -285,7 +288,7 @@ You will only use this as a placeholder for the size of the gripper to use with Measure the claw's height and width, and enter these values for the `fake` model. Ours was 120mm for the width and 180mm for the height. -Click **Save config** in the bottom left corner of the screen. +Click **Save config** in the lower-left corner of the screen. {{% /tab %}} {{% tab name="Raw JSON" %}} diff --git a/docs/tutorials/projects/foam-dart-launcher.md b/docs/tutorials/projects/foam-dart-launcher.md index afb9c01048..e59cba2459 100644 --- a/docs/tutorials/projects/foam-dart-launcher.md +++ b/docs/tutorials/projects/foam-dart-launcher.md @@ -171,11 +171,13 @@ Try activating the solenoid manually to ensure that it hits the foam dart launch ## Configure Your Foam Dart Launcher Robot with the Viam App Create a new robot in the Viam app and give it a name. +Navigate to your new robot's **Config** tab and click the **Components** subtab. ### Board Configuration (Raspberry Pi) -Add your board with the **Name** `local`, **Type** `board`, and **Model** `pi`. -Click **Create Component**. +Click **Create component** and add your [board](/components/board/). +Choose type `board` and model `pi`. +Name it `local` and click **Create**. {{}} @@ -186,8 +188,8 @@ Just remember to use that name consistently in the following steps. #### Left Motor -Add the left [motor](/components/motor/) with the **Name** `left`, **Type** `motor`, and **Model** `gpio`. -Click **Create Component**. +Click **Create component** and add the left [motor](/components/motor/) with type `motor` and model `gpio`. +Name it `left` and click **Create**. Select the name of the board the motor controller is wired to (for example, "local") from the **Board** drop-down. @@ -203,8 +205,8 @@ Click **Save config** at the bottom of the screen. #### Right Motor -Add the right motor with the **Name** `right`, **Type** `motor` and **Model** `gpio`. -Click **Create Component**. +Click **Create component** and add the right [motor](/components/motor/) with type `motor` and model `gpio`. +Name it `right` and click **Create**. Select the name of the board the motor controller is wired to (for example, "local") from the **Board** drop-down. @@ -228,7 +230,8 @@ Let’s add a base to be able to control them together. Configure a [base component](/components/base/) to coordinate your motors so you can move the base around with your keyboard. -Give it a **Name** (you can just call it "base"), set **Type** to `base`, set **Model** to `wheeled`, and click **Create Component**. +Click **Create component** and add the base with type `base` and model `wheeled`. +Give it a name (you can call it `base`) and click **Create**. From the **Right Motors** and **Left Motors** drop downs, select `right` and `left`, respectively (the motors you configured in the previous step). diff --git a/docs/tutorials/projects/guardian.md b/docs/tutorials/projects/guardian.md index 62701cdaa9..1263dc61b3 100644 --- a/docs/tutorials/projects/guardian.md +++ b/docs/tutorials/projects/guardian.md @@ -126,24 +126,27 @@ Go to the **Setup** tab of your new robot's page and follow the steps [to instal {{% tab name="Builder UI" %}} Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. +Click on the **Components** subtab. 1. **Add the board.** - Enter `local` for the name for your [board component](/components/board/), select the type `board`, and select the `pi` model. - Then click **Create component**. + Click **Create component** in the lower-left corner of the page. + Select `board` for the type, then select `pi` for the model. + Enter `local` as the name for your [board component](/components/board/), then click **Create**. 2. **Add the camera.** - Create a [camera component](/components/camera/) with the name `cam`, the type `camera` and the model `webcam`. - Click **Create Component** to add the camera. + Click **Create Component** to add the [camera](/components/camera/). + Select `camera` for the type, then select `webcam` for the model. + Enter `cam` as the name for the camera, then click **Create**. In the new camera panel, click the **Video Path** field to reveal a drop-down populated with camera paths that have been identified on your machine. Select `mmal service 16.1 (platform:bcm2835_v4l2-0)`. 3. **Add the servo.** - Create a [servo component](/components/servo/) with the name `servo`, the type `servo` and the model `pi`. - Click **Create Component** to add the servo. + Click **Create component** in the lower-left corner of the page. + Select `servo` for the type, then select `pi` for the model. + Enter `servo` as the name for your [servo component](/components/servo/), then click **Create**. Configure the attributes by adding the name of your board, `local`, and the {{< glossary_tooltip term_id="pin-number" text="pin number" >}} of the pin on `local` that you connected your servo PWM wire to, `12`: ```json diff --git a/docs/tutorials/projects/light-up.md b/docs/tutorials/projects/light-up.md index a4f47070a7..f7137b7db6 100644 --- a/docs/tutorials/projects/light-up.md +++ b/docs/tutorials/projects/light-up.md @@ -122,8 +122,9 @@ Click on the **Services** subtab and navigate to the **Create service** menu. To be able to test that the vision service is working, add a `transform` camera which will add bounding boxes and labels around the objects the service detects. -Click on the **Components** subtab and navigate to the **Create component** menu. -Create a [transform camera](/components/camera/transform/) with the name `detectionCam`, the type `camera` and the model `transform`. +Click the **Components** subtab and click the **Create component** button in the lower-left corner. +Create a [transform camera](/components/camera/transform/) with type `camera` and model `transform`. +Name it `detectionCam` and click **Create**. ![detectionCam component panel with type camera and model transform, Attributes section has source and pipeline but they are empty.](/tutorials/tipsy/app-detection-before.png) diff --git a/docs/tutorials/projects/modernize-retro-robot.md b/docs/tutorials/projects/modernize-retro-robot.md index e59d04d9ef..379cb21d44 100644 --- a/docs/tutorials/projects/modernize-retro-robot.md +++ b/docs/tutorials/projects/modernize-retro-robot.md @@ -271,17 +271,19 @@ Go to the **Setup** tab of your new robot's page and follow the steps [to instal {{% tab name="Builder UI" %}} Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. +Click on the **Components** subtab. -1. **Add the board** +1. **Add the board**. - Enter `local` for the name for your [board component](/components/board/), select the type `board`, and select the `pi` model. - Then click **Create component**. + Click the **Create component** button in the lower-left corner of the page. + Select the type `board`, then select the `pi` model. + Enter `local` as the name for your [board component](/components/board/), then click **Create**. -2. **Add the left base motor.** +2. **Add the left motor.** - Enter `base-l` for the name for your left base [motor component](/components/motor/), select the type `motor`, and select the `gpio` model. - Then click **Create component**. + Click **Create component** to add the [motor component](/components/motor/) on the left side of the robot base. + Select the type `motor`, and select the `gpio` model. + Enter `base-l` for the name, then click **Create**. Next, select `local` for the board attribute. Set `Max RPM` to 200. @@ -294,10 +296,11 @@ Click on the **Components** subtab and navigate to the **Create component** menu Finally, add `local` to `Depends on` - this ensures that the `local` board component is fully initialize prior to this motor. -3. **Add the right base motor** +3. **Add the right motor** - Enter `base-r` for the name for your right base [motor component](/components/motor/), select the type `motor`, and select the `gpio` model. - Then click **Create component**. + Click **Create component**. + For your right base [motor component](/components/motor/), select the type `motor`, and select the `gpio` model. + Enter `base-r` for the name, then click **Create**. Next, select `local` for the board attribute. Set `Max RPM` to 200. @@ -314,8 +317,9 @@ Click on the **Components** subtab and navigate to the **Create component** menu Configuring a [base component](/components/base/) allows you to create an interface to control the movement of MAIV withing needing to send individual motor commands. - Enter `base` for the name for your base, select the type `base`, and select the `wheeled` model. - Then click **Create component**. + Click **Create component**. + Select the type `base`, and select the `wheeled` model. + Enter `base` for the name for your base, then click **Create**. Next, add `base-r` to `Right Motors` and add `base-l` to `Left Motors`. @@ -481,10 +485,10 @@ You can use any free GPIO pins, but we connected pin 16 to `IN1`, pin 37 to `IN2 {{< tabs >}} {{% tab name="Builder UI" %}} To add the neck motor, navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. +Navigate to the **Components** subtab and click **Create component** in the lower-left corner. -Enter `neck` for the name for your neck [motor component](/components/motor/), select the type `motor`, and select the `gpio` model. -Then click **Create component**. +To create your [motor component](/components/motor/), select the type `motor`, and select the `gpio` model. +Enter `neck` as the name for your neck motor, then click **Create**. Next, select `local` for the board attribute. Set `Max RPM` to 200. @@ -563,11 +567,11 @@ Fit MAIV's neck into the torso, and re-assemble the torso. {{< tabs >}} {{% tab name="Builder UI" %}} -Add the camera to your robot by navigating to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. +Add the [camera component](/components/camera/) to your robot by navigating to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). +Click on the **Components** subtab and click the **Create component** button in the lower-left corner. -Enter `face-cam` for the name for your [camera component](/components/camera/), select the type `camera`, and select the `webcam` model. -Then click **Create component**. +Select the type `camera`, and select the `webcam` model. +Enter `face-cam` for the name, then click **Create**. Being that this is the only camera currently configured for MAIV, keep 'video path' blank, and viam-server will auto-detect the path on startup or reconfiguration. diff --git a/docs/tutorials/projects/send-security-photo.md b/docs/tutorials/projects/send-security-photo.md index 1a64059e24..8a588eec3f 100644 --- a/docs/tutorials/projects/send-security-photo.md +++ b/docs/tutorials/projects/send-security-photo.md @@ -134,12 +134,13 @@ Click on the **Services** subtab and navigate to the **Create service** menu. To be able to test that the vision service is working, add a `transform` camera which will add bounding boxes and labels around the objects the service detects. -Click on the **Components** subtab and navigate to the **Create component** menu. -Create a [transform camera](/components/camera/transform/) with the name `detectionCam`, the type `camera`, and the model `transform`. +Click on the **Components** subtab and click **Create component** in the lower-left corner. +Create a [transform camera](/components/camera/transform/) with type `camera` and model `transform`. +Name it `detectionCam` and click **Create**. ![detectionCam component panel with type camera and model transform, Attributes section has source and pipeline but they are empty.](/tutorials/tipsy/app-detection-before.png) -In the new transform camera panel, replace the attributes JSON object with the following object which specifies the camera source that the `transform` camera will be using and defines a pipeline that adds the defined `myPeopleDetector`: +In the new transform camera panel, replace the attributes JSON object with the following object which specifies the camera source that the `transform` camera will use, and defines a pipeline that adds the defined `myPeopleDetector`: ```json { @@ -156,7 +157,7 @@ In the new transform camera panel, replace the attributes JSON object with the f } ``` -Click **Save config** in the bottom left corner of the screen. +Click **Save config** in the lower-left corner of the screen. ![detectionCam component panel with type camera and model transform, Attributes section filled with source and pipeline information.](/tutorials/tipsy/app-detection-after.png) diff --git a/docs/tutorials/services/webcam-line-follower-robot.md b/docs/tutorials/services/webcam-line-follower-robot.md index d79bc7228d..af52fe8a1e 100644 --- a/docs/tutorials/services/webcam-line-follower-robot.md +++ b/docs/tutorials/services/webcam-line-follower-robot.md @@ -66,28 +66,31 @@ Follow the instructions until the Viam app shows that your robot has successfull {{% tab name="Builder UI" %}} Navigate to the **Config** tab of your robot's page in [the Viam app](https://app.viam.com). -Click on the **Components** subtab and navigate to the **Create component** menu. +Click on the **Components** subtab. 1. **Add the board.** - Enter `local` for the name for your [board component](/components/board/), select the type `board`, and select the `pi` model. - Then click **Create component**. + Click **Create component**. + Select the type `board`, and select the `pi` model. + Enter `local` as the name of your [board component](/components/board/), then click **Create**. 2. **Add the motors.** - Enter `leftm` for the name for your left [motor component](/components/base/), select the type `motor`, and select the `gpio` model. - Then click **Create component** and fill in the appropriate properties for your motor. + Click **Create component**. + Select the type `motor`, and select the `gpio` model. + Enter `leftm` as the name of your [motor component](/components/motor/), then click **Create** and fill in the appropriate properties for your motor. Repeat the same for the right motor and call it `rightm`. 3. **Add the base.** - Enter `scuttlebase` for the name for your [base component](/components/base/), select the type `base`, and select the `wheeled` model. - Then click **Create component** and select the motors. + Click **Create component**. + Select the type `base`, and select the `wheeled` model. + Enter `scuttlebase` as the name for your [base component](/components/base/), then click **Create** and select the motors. 4. **Add the camera.** Create a [camera component](/components/camera/) with the name `my_camera`, the type `camera` and the model `webcam`. - Click **Create Component** to add the camera. + Click **Create component** to add the camera. If your robot is connected, you can click the **Video Path** field in the new camera panel to reveal a drop-down populated with camera paths that have been identified on your machine. Select the path to the camera you want to use. @@ -240,8 +243,9 @@ Click on the **Services** subtab and navigate to the **Create service** menu. If you'd like to see the bounding boxes that the color detector identifies, you'll need to configure a [transform camera](/components/camera/transform/). This isn't another piece of hardware, but rather a virtual "camera" that takes in the stream from the webcam we just configured and outputs a stream overlaid with bounding boxes representing the color detections. - Click on the **Components** subtab and navigate to the **Create component** menu. - Create a [transform camera](/components/camera/transform/) with the name `transform_cam`, the type `camera` and the model `transform`. + Click on the **Components** subtab and click **Create component**. + Add a [transform camera](/components/camera/transform/) with type `camera` and model `transform`. + Name it `transform_cam` and click **Create**. Replace the attributes JSON object with the following object which specifies the camera source that the `transform` camera will be using and defines a pipeline that adds the defined `detector`: