Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOCS-1113: Add clarification for running code remotely to client SDK Run Code page #1819

Merged
merged 11 commits into from
Sep 21, 2023
37 changes: 19 additions & 18 deletions docs/program/run.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,28 @@ tags: ["client", "sdk", "application", "sdk", "fleet", "program"]

After saving your [code sample](/program/#hello-world-the-code-sample-tab) and adding control logic with [Viam's SDKs](/program/apis/), run your program to control your Viam-connected robot.

## Run Code Remotely
### Authentication

You must reference a robot's location secret to authenticate yourself to the robot.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think a user would know what they are supposed to do to "reference a robot's location secret", maybe include or add would be better?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see now you were just movign this up... We can fix it separetely

However, the app hides the robot location secret from the sample by default for your security.

To copy the robot location secret, select **Include Secret** on the **Code sample** tab of your robot's page on the [Viam app](https://app.viam.com).
Paste it into your SDK code as directed by the code sample.

You must also include the robot's remote address, like `12345.somerobot-main.viam.cloud`, as an external or public address to connect to your robot.
The code sample includes this address at default.
You can find it at the top of the robot's **Control** tab.

As long as you are connecting to your robot through an external signaling address, you can remotely control your robot without editing the app-generated connection code in your SDK program beyond including the necessary [authentication credentials](#authentication).
{{% snippet "secret-share.md" %}}

## Run Code Remotely

Do this by running a command to execute the program in the terminal of a machine with the appropriate programming language and Viam SDK installed.
Most of the time, as long as both you and your robot are connected to the internet, you will want to run code to control your robot remotely.
The advantage of this method is that your robot and your computer do not have to be connected to the same WAN/LAN to issue control commands.
You can remotely control your robot with any application you implement from anywhere in the world.
For example, you can run code on your personal computer, creating a client [session](/program/apis/sessions/), where the code running on that computer sends instructions to your robot's `viam-server` instance over the internet.

sguequierre marked this conversation as resolved.
Show resolved Hide resolved
For example:
After editing your code to include your robot's [authentication credentials](#authentication), run a command to execute the program in the terminal of a machine with the appropriate programming language and Viam SDK installed:

{{< tabs >}}
{{% tab name="Python" %}}
Expand Down Expand Up @@ -54,20 +69,6 @@ flutter run <DART_FILE>

This is useful because as long as that computer is able to establish a network connection with the robot's computer, your control logic will be executed on the robot.

### Authentication

You must reference a robot's location secret to authenticate yourself to the robot.
However, the app hides the robot location secret from the sample by default for your security.

To copy the robot location secret, select **Include Secret** on the **Code sample** tab of your robot's page on the [Viam app](https://app.viam.com).
Paste it into your SDK code as directed by the code sample.

You must also include the robot's remote address, like `12345.somerobot-main.viam.cloud`, as an external or public address to connect to your robot.
The code sample should include this address at default.
You can find it at the top of the robot's **Control** tab.

{{% snippet "secret-share.md" %}}

## Run Code On-Robot

{{< alert title="Info" color="info" >}}
Expand Down
Loading