diff --git a/assets/components/arm/lite6-ui-config.png b/assets/components/arm/lite6-ui-config.png deleted file mode 100644 index 10c2656827..0000000000 Binary files a/assets/components/arm/lite6-ui-config.png and /dev/null differ diff --git a/assets/components/arm/xarm6-ui-config.png b/assets/components/arm/xarm6-ui-config.png deleted file mode 100644 index d3d827d592..0000000000 Binary files a/assets/components/arm/xarm6-ui-config.png and /dev/null differ diff --git a/assets/components/arm/xarm7-ui-config.png b/assets/components/arm/xarm7-ui-config.png deleted file mode 100644 index b093791bac..0000000000 Binary files a/assets/components/arm/xarm7-ui-config.png and /dev/null differ diff --git a/assets/tutorials/claw-game/app-myarm.png b/assets/tutorials/claw-game/app-myarm.png deleted file mode 100644 index f9602df554..0000000000 Binary files a/assets/tutorials/claw-game/app-myarm.png and /dev/null differ diff --git a/docs/dev/reference/changelog.md b/docs/dev/reference/changelog.md index d83c2c0ef2..1fd8544126 100644 --- a/docs/dev/reference/changelog.md +++ b/docs/dev/reference/changelog.md @@ -211,6 +211,9 @@ The following resource models have moved to modules. | Resource | Model | | -------- | ----- | +| arm | [`lite6`](https://github.com/viam-modules/viam-ufactory-xarm) | +| arm | [`xArm6`](https://github.com/viam-modules/viam-ufactory-xarm) | +| arm | [`xArm7`](https://github.com/viam-modules/viam-ufactory-xarm) | | board | [`customlinux`](https://github.com/viam-modules/customlinux/) | | board | [`jetson`](https://github.com/viam-modules/nvidia) | | board | [`pca9685`](https://github.com/viam-modules/pca/tree/main) | diff --git a/docs/operate/reference/components/arm/lite6.md b/docs/operate/reference/components/arm/lite6.md deleted file mode 100644 index bce5d15ff4..0000000000 --- a/docs/operate/reference/components/arm/lite6.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: "Configure a lite6 Arm" -linkTitle: "lite6" -weight: 34 -type: "docs" -description: "Configure a UFACTORY Lite 6 arm for your machine." -tags: ["arm", "components"] -aliases: - - "/components/arm/xarmlite/" - - /components/arm/lite6/ -component_description: "Supports UFACTORY Lite 6." -# SMEs: Bucket, Motion ---- - -Configure a `lite6` arm to add a [UFACTORY Lite 6](https://www.ufactory.us/product/lite-6) to your machine. - -If you want to test your arm as you configure it, connect it to your machine's computer and turn it on. -Then, configure the arm: - -{{< tabs >}} -{{% tab name="Config Builder" %}} - -Navigate to the **CONFIGURE** tab of your machine's page in the [Viam app](https://app.viam.com). -Click the **+** icon next to your machine part in the left-hand menu and select **Component**. -Select the `arm` type, then select the `lite6` model. -Enter a name or use the suggested name for your arm and click **Create**. - -![Web UI configuration panel for an arm of model lite6 in the Viam app, with Attributes & Depends On dropdowns and the option to add a frame.](/components/arm/lite6-ui-config.png) - -Fill in the attributes as applicable to your arm, according to the table below. - -{{% /tab %}} -{{% tab name="JSON Template" %}} - -```json {class="line-numbers linkable-line-numbers"} -{ - "components": [ - { - "name": "", - "model": "lite6", - "api": "rdk:component:arm", - "attributes": { - "host": "", - "port": , - "speed_degs_per_sec": , - "acceleration_degs_per_sec_per_sec": - }, - "depends_on": [] - } - ] -} -``` - -{{% /tab %}} -{{% tab name="JSON Example" %}} - -```json {class="line-numbers linkable-line-numbers"} -{ - "components": [ - { - "name": "my_arm", - "model": "lite6", - "api": "rdk:component:arm", - "attributes": { - "host": "10.0.0.97" - }, - "depends_on": [], - "frame": { - "orientation": { - "type": "ov_degrees", - "value": { - "th": 0, - "x": 0, - "y": 0, - "z": 1 - } - }, - "parent": "world", - "translation": { - "x": 0, - "y": 0, - "z": 0 - } - } - } - ] -} -``` - -{{% /tab %}} -{{% /tabs %}} - -The following attributes are available for `lite6` arms: - - -| Attribute | Type | Required? | Description | -| --------- | ---- | --------- | ----------- | -| `host` | string | **Required** | IP address of the arm's system on your network. Find this when setting up your xArm. | -| `port` | int | Optional | Port number of the arm's system. Find this when setting up your xArm.
Default: `502` | -| `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](/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" >}} - -### Additional commands - -In addition to the [Arm API](/dev/reference/apis/components/arm/), the `lite6` arm supports some model-specific commands that allow you to set the speed and the acceleration of the arm. -You can invoke these commands by passing the following JSON document to the [`DoCommand()`](/dev/reference/apis/components/arm/#docommand) method: - -```json -{ - "set_speed": 45.0, - "set_acceleration": 10.0 -} -``` - -| Key | Type | Description | -| ------------------ | ----- | ---------------------------------------------- | -| `set_speed` | float | Speed in degrees per second. | -| `set_acceleration` | float | Acceleration in degrees per second per second. | - -For example: - -{{< tabs >}} -{{% tab name="Python" %}} - -```python {class="line-numbers linkable-line-numbers"} -command = { - "set_speed": 45.0, # Set speed to 45.0 degrees per second - "set_acceleration": 10.0 # Set acceleration to 10.0 degrees - # per second squared -} -result = await my_arm.do_command(command) -``` - -{{% /tab %}} -{{% tab name="Go" %}} - -```go {class="line-numbers linkable-line-numbers"} -myArm, err := arm.FromRobot(machine, "my_arm") - -cmd := map[string]interface{}{ - "set_speed": 45.0, // Set speed to 45.0 degrees per second - "set_acceleration": 10.0 // Set acceleration to 10.0 degrees per second squared -} - -result, err := myArm.DoCommand(context.Background(), cmd) -``` - -{{% /tab %}} -{{% tab name="Flutter" %}} - -```dart {class="line-numbers linkable-line-numbers"} -const command = { - 'set_speed': 45.0, // Set speed to 45.0 degrees per second - 'set_acceleration': 10.0 // Set acceleration to 10.0 degrees per second squared -}; - -var result = myArm.doCommand(command); -``` - -{{% /tab %}} -{{< /tabs >}} - -## Troubleshooting - -{{< readfile "/static/include/components/troubleshoot/arm.md" >}} - -## Next steps - -For more configuration and usage info, see: - -{{< cards >}} -{{% card link="/dev/reference/apis/components/arm/" customTitle="Arm API" noimage="true" %}} -{{% card link="/operate/get-started/supported-hardware/" noimage="true" %}} -{{% card link="/operate/mobility/move-arm/" noimage="true" %}} -{{< /cards >}} diff --git a/docs/operate/reference/components/arm/xarm6.md b/docs/operate/reference/components/arm/xarm6.md deleted file mode 100644 index b9cf0ba277..0000000000 --- a/docs/operate/reference/components/arm/xarm6.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: "Configure an xArm6 Arm" -linkTitle: "xArm6" -weight: 34 -type: "docs" -description: "Configure a UFACTORY xArm 6 into your machine." -images: ["/icons/components/arm.svg"] -tags: ["arm", "components"] -aliases: - - "/components/arm/xarm6/" -component_description: "Supports UFACTORY xArm 6." -# SMEs: Bucket, Motion ---- - -Configure an `xArm6` arm to integrate a [UFACTORY xArm 6](https://www.ufactory.us/product/ufactory-xarm-6) into your machine. - -If you want to test your arm as you configure it, connect it to your machine's computer and turn it on. -Then, configure the arm: - -{{< tabs >}} -{{% tab name="Config Builder" %}} - -Navigate to the **CONFIGURE** tab of your machine's page in the [Viam app](https://app.viam.com). -Click the **+** icon next to your machine part in the left-hand menu and select **Component**. -Select the `arm` type, then select the `xArm6` model. -Enter a name or use the suggested name for your arm and click **Create**. - -![Web UI configuration panel for an arm of model xArm6 in the Viam app, with Attributes & Depends On dropdowns and the option to add a frame.](/components/arm/xArm6-ui-config.png) - -Edit and fill in the attributes as applicable. - -{{% /tab %}} -{{% tab name="JSON Template" %}} - -```json {class="line-numbers linkable-line-numbers"} -{ - "components": [ - { - "name": "", - "model": "xArm6", - "api": "rdk:component:arm", - "attributes": { - "host": "", - "port": , - "speed_degs_per_sec": , - "acceleration_degs_per_sec_per_sec": - }, - "depends_on": [] - } - ] -} -``` - -{{% /tab %}} -{{% tab name="JSON Example" %}} - -```json {class="line-numbers linkable-line-numbers"} -{ - "components": [ - { - "name": "my_xArm6", - "model": "xArm6", - "api": "rdk:component:arm", - "attributes": { - "host": "10.0.0.97" - }, - "depends_on": [], - "frame": { - "orientation": { - "type": "ov_degrees", - "value": { - "th": 0, - "x": 0, - "y": 0, - "z": 1 - } - }, - "parent": "world", - "translation": { - "x": 0, - "y": 0, - "z": 0 - } - } - } - ] -} -``` - -{{% /tab %}} -{{% /tabs %}} - -The following attributes are available for `xArm6` arms: - - -| Attribute | Type | Required? | Description | -| --------- | ---- | --------- | ----------- | -| `host` | string | **Required** | IP address of the arm's system on your network. Find this when setting up your xArm. | -| `port` | int | Optional | Port number of the arm's system. Find this when setting up your xArm.
Default: `502` | -| `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](/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" >}} - -### Additional commands - -In addition to the [Arm API](/dev/reference/apis/components/arm/), the `xArm6` arm supports some model-specific commands that allow you to set the speed and the acceleration of the arm. -You can invoke these commands by passing the following JSON document to the [`DoCommand()`](/dev/reference/apis/components/arm/#docommand) method: - -```json -{ - "set_speed": 45.0, - "set_acceleration": 10.0 -} -``` - -| Key | Type | Description | -| ------------------ | ----- | ---------------------------------------------- | -| `set_speed` | float | Speed in degrees per second. | -| `set_acceleration` | float | Acceleration in degrees per second per second. | - -For example: - -{{< tabs >}} -{{% tab name="Python" %}} - -```python {class="line-numbers linkable-line-numbers"} -command = { - "set_speed": 45.0, # Set speed to 45.0 degrees per second - "set_acceleration": 10.0 # Set acceleration to 10.0 degrees - # per second squared -} -result = await my_arm.do_command(command) -``` - -{{% /tab %}} -{{% tab name="Go" %}} - -```go {class="line-numbers linkable-line-numbers"} -myArm, err := arm.FromRobot(machine, "my_arm") - -cmd := map[string]interface{}{ - "set_speed": 45.0, // Set speed to 45.0 degrees per second - "set_acceleration": 10.0 // Set acceleration to 10.0 degrees per second squared -} - -result, err := myArm.DoCommand(context.Background(), cmd) -``` - -{{% /tab %}} -{{% tab name="Flutter" %}} - -```dart {class="line-numbers linkable-line-numbers"} -const command = { - 'set_speed': 45.0, // Set speed to 45.0 degrees per second - 'set_acceleration': 10.0 // Set acceleration to 10.0 degrees per second squared -}; - -var result = myArm.doCommand(command); -``` - -{{% /tab %}} -{{< /tabs >}} - -## Troubleshooting - -{{< readfile "/static/include/components/troubleshoot/arm.md" >}} - -## Next steps - -For more configuration and usage info, see: - -{{< cards >}} -{{% card link="/dev/reference/apis/components/arm/" customTitle="Arm API" noimage="true" %}} -{{% card link="/operate/get-started/supported-hardware/" noimage="true" %}} -{{% card link="/operate/mobility/move-arm/" noimage="true" %}} -{{< /cards >}} diff --git a/docs/operate/reference/components/arm/xarm7.md b/docs/operate/reference/components/arm/xarm7.md deleted file mode 100644 index 04c7b51e1a..0000000000 --- a/docs/operate/reference/components/arm/xarm7.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: "Configure an xArm7 Arm" -linkTitle: "xArm7" -weight: 34 -type: "docs" -description: "Configure a UFACTORY xArm 7 for your machine." -images: ["/icons/components/arm.svg"] -tags: ["arm", "components"] -aliases: - - "/components/arm/xarm7/" -component_description: "Supports UFACTORY xArm 7." -# SMEs: Bucket, Motion ---- - -Configure an `xArm7` arm to integrate a [UFACTORY xArm 7](https://www.ufactory.us/product/ufactory-xarm-7) into your machine. - -If you want to test your arm as you configure it, connect it to your machine's computer and turn it on. -Then, configure the arm: - -{{< tabs >}} -{{% tab name="Config Builder" %}} - -Navigate to the **CONFIGURE** tab of your machine's page in the [Viam app](https://app.viam.com). -Click the **+** icon next to your machine part in the left-hand menu and select **Component**. -Select the `arm` type, then select the `xArm7` model. -Enter a name or use the suggested name for your arm and click **Create**. - -![Web UI configuration panel for an arm of model xArm6 in the Viam app, with Attributes & Depends On dropdowns and the option to add a frame.](/components/arm/xArm7-ui-config.png) - -Edit and fill in the attributes as applicable. - -{{% /tab %}} -{{% tab name="JSON Template" %}} - -```json {class="line-numbers linkable-line-numbers"} -{ - "components": [ - { - "name": "", - "model": "xArm7", - "api": "rdk:component:arm", - "attributes": { - "host": "", - "port": , - "speed_degs_per_sec": , - "acceleration_degs_per_sec_per_sec": - }, - "depends_on": [] - } - ] -} -``` - -{{% /tab %}} -{{% tab name="JSON Example" %}} - -```json {class="line-numbers linkable-line-numbers"} -{ - "components": [ - { - "name": "my_xArm7", - "model": "xArm7", - "api": "rdk:component:arm", - "attributes": { - "host": "10.0.0.97" - }, - "depends_on": [], - "frame": { - "orientation": { - "type": "ov_degrees", - "value": { - "th": 0, - "x": 0, - "y": 0, - "z": 1 - } - }, - "parent": "world", - "translation": { - "x": 0, - "y": 0, - "z": 0 - } - } - } - ] -} -``` - -{{% /tab %}} -{{% /tabs %}} - -The following attributes are available for `xArm7` arms: - - -| Attribute | Type | Required? | Description | -| ----------| ---- | --------- | ----------- | -| `host` | string | **Required** | IP address of the arm's system on your network. Find this when setting up your xArm. | -| `port` | int | Optional | Port number of the arm's system. Find this when setting up your xArm.
Default: `502` | -| `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](/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" >}} - -### Additional commands - -In addition to the [Arm API](/dev/reference/apis/components/arm/), the `xArm7` arm supports some model-specific commands that allow you to set the speed and the acceleration of the arm. -You can invoke these commands by passing the following JSON document to the [`DoCommand()`](/dev/reference/apis/components/arm/#docommand) method: - -```json -{ - "set_speed": 45.0, - "set_acceleration": 10.0 -} -``` - -| Key | Type | Description | -| ------------------ | ----- | ---------------------------------------------- | -| `set_speed` | float | Speed in degrees per second. | -| `set_acceleration` | float | Acceleration in degrees per second per second. | - -For example: - -{{< tabs >}} -{{% tab name="Python" %}} - -```python {class="line-numbers linkable-line-numbers"} -command = { - "set_speed": 45.0, # Set speed to 45.0 degrees per second - "set_acceleration": 10.0 # Set acceleration to 10.0 degrees - # per second squared -} -result = await my_arm.do_command(command) -``` - -{{% /tab %}} -{{% tab name="Go" %}} - -```go {class="line-numbers linkable-line-numbers"} -myArm, err := arm.FromRobot(machine, "my_arm") - -cmd := map[string]interface{}{ - "set_speed": 45.0, // Set speed to 45.0 degrees per second - "set_acceleration": 10.0 // Set acceleration to 10.0 degrees per second squared -} - -result, err := myArm.DoCommand(context.Background(), cmd) -``` - -{{% /tab %}} -{{% tab name="Flutter" %}} - -```dart {class="line-numbers linkable-line-numbers"} -const command = { - 'set_speed': 45.0, // Set speed to 45.0 degrees per second - 'set_acceleration': 10.0 // Set acceleration to 10.0 degrees per second squared -}; - -var result = myArm.doCommand(command); -``` - -{{% /tab %}} -{{< /tabs >}} - -## Troubleshooting - -{{< readfile "/static/include/components/troubleshoot/arm.md" >}} - -## Next steps - -For more configuration and usage info, see: - -{{< cards >}} -{{% card link="/dev/reference/apis/components/arm/" customTitle="Arm API" noimage="true" %}} -{{% card link="/operate/get-started/supported-hardware/" noimage="true" %}} -{{% card link="/operate/mobility/move-arm/" noimage="true" %}} -{{< /cards >}} diff --git a/docs/tutorials/projects/claw-game.md b/docs/tutorials/projects/claw-game.md index 18701deeb2..605a77da03 100644 --- a/docs/tutorials/projects/claw-game.md +++ b/docs/tutorials/projects/claw-game.md @@ -213,19 +213,15 @@ Use the parts dropdown menu to navigate to the `planning` sub-part. {{< tabs >}} {{% tab name="Builder UI" %}} -Click the **Components** subtab. -Click the **Create component** button in the lower-left corner. +Click the **+** icon next to your machine part in the left-hand menu and select **Component**. -Add your [arm](/operate/reference/components/arm/) with type `arm`, and model `xArm6`. +Select type `arm`, and model `viam:ufactory: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) - Configure the arm component with the arm's IP address in the `host` field. -Click the **{}** (Switch to Advanced) button in the top right of the component panel to edit the component's attributes directly with JSON. Our arm's address was `10.1.1.26`, but you should use the IP address for your arm. -For more information on xArm6 configuration, see [Configure an xArm6 Arm](/operate/reference/components/arm/xarm6/). +For more information on xArm6 configuration, see [Configure an xArm6 Arm](https://github.com/viam-modules/viam-ufactory-xarm). Click **Save config** in the lower-left corner of the screen. @@ -238,7 +234,7 @@ On the `Raw JSON` tab, replace the configuration with the following JSON configu { "components": [ { - "model": "xArm6", + "model": "viam:ufactory:xArm6", "api": "rdk:component:arm", "attributes": { "acceleration_degs_per_sec_per_sec": 0, diff --git a/docs/tutorials/services/constrain-motion.md b/docs/tutorials/services/constrain-motion.md index 03438cbe0a..5d99399da5 100644 --- a/docs/tutorials/services/constrain-motion.md +++ b/docs/tutorials/services/constrain-motion.md @@ -81,7 +81,7 @@ If instead you create a new machine for this tutorial, copy and paste the follow "components": [ { "name": "myArm", - "model": "xArm6", + "model": "viam:ufactory:xArm6", "api": "rdk:component:arm", "attributes": { "host": "", diff --git a/netlify.toml b/netlify.toml index 9603c7d40b..db1880b948 100644 --- a/netlify.toml +++ b/netlify.toml @@ -57,7 +57,7 @@ [plugins.inputs] # change this key to a new one any time you need to restart from scratch - cacheKey = ["Mar122025"] + cacheKey = ["Apr042025"] # either "warn" or "error" failBuildOnError = true