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

Dad 283 tutorial viam on vm #590

Closed
wants to merge 4 commits into from
Closed

Dad 283 tutorial viam on vm #590

wants to merge 4 commits into from

Conversation

mikeViamTW
Copy link
Contributor

@mikeViamTW mikeViamTW commented Jan 13, 2023

Please note that the footnote shortcode is still broken. Lines 45 and 52 look that way because hugo wasn't allowed to render the footnotes.

This tutorial installs VirtualBox and Ubuntu VM image on a windows machine. After installing viam-server, it adds a fake arm and motor and uses python to generate movement in the arm. arm-move.py is a version of Joe's index.py and other code from the mock bot tute.

@mikeViamTW mikeViamTW self-assigned this Jan 13, 2023
@mcvella mcvella requested a review from npentrel January 15, 2023 03:47
Download the Ubuntu image: Ubuntu 22.04 LTS, "Jammy Jellyfish," from <a href="https://www.linuxvmimages.com/images/ubuntu-2204/ ">
LinuxVMImages.com</a>[^ubuimage]

[^ubimage]:Ubuntu 22.04 LTS, "Jammy Jellyfish," virtual image from Linuxvmimages: <<a href="https://www.linuxvmimages.com/images/ubuntu-2204/">ht<span></span>tps://www.linuxvmimages.com/images/ubuntu-2204/</a>
Copy link
Contributor

Choose a reason for hiding this comment

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

Are we sure this is a safe/trusted source for the VM image? I think its safer for us to instruct them to get the official Ubuntu ISO as per:
https://linuxhint.com/install-ubuntu22-04-virtual-box/


Since Viam-server only operates in linux and macOS environments, a virtual machine running a supported OS is the only way for Windows users to natively operate Viam from a Windows PC.

Using a linux virtual machine provides Windows users with a means to use Viam to configure and operate robots.
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we need a better explanation of why someone would do this, as:

  1. They can configure robots through the viam app
  2. They can operate robots from the app and via an SDK running anywhere (including windows)

However, other than a mock robot can someone run an actual robot based on the windows/VM compute? We need to be clear.

Copy link
Collaborator

Choose a reason for hiding this comment

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

And those should probably be things we call out as alternative options before letting them continue to ensure they know they have options. If there are links to relevant docs, we can additionally link to those.


While connected to the robot, you can verify the operation of the fake arm from the **CONTROL** tab or through code, which would allow you to control and observe to positioning of the arm component in the terminal and in the GUI.

#### Using the GUI
Copy link
Contributor

Choose a reason for hiding this comment

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

What GUI? I know you mean the control tab as mentioned above, but this might be confusing to the reader as you introduce a subsection for this when you've already told them they can control it from the CONTROL tab.


### Using the SDK

Alternatively, you can programmatically perform random changes and observe the returned positional value changes in the terminal, as well as on the **CONTROL** tab using either the Python SDK or the GO SDK.
Copy link
Contributor

Choose a reason for hiding this comment

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

perform random changes is really non-specific - explain what you mean clearly


In this tutorial, you learned how to create a mock robot using fake components on a Linux virtual machine a Windows host.

If you're ready to get started with building robots with real hardware components, you should pick up a Raspberry Pi and try building one of Viam's introductory robots on the [tutorials page in our documentation](https://docs.viam.com/tutorials/).
Copy link
Contributor

Choose a reason for hiding this comment

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

Here I think you are getting to the intent of the tutorial - to allow people to try Viam locally without a pi or other supported compute. We need to make this clear up front

Do not share your robot secret or robot address publicly. Sharing this information compromises your system security by allowing unauthorized access to your computer.
{{% /alert %}}

### Control the mock robot arm
Copy link
Contributor

Choose a reason for hiding this comment

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

I might suggest that "Control" is a section at the same header level as "Create"

tags: ["mock", "simulation", "virtual machine", "Windows"]
---

**Objective**: Setup and configure viam-server and a mock robot in a linux virtual machine (VM) hosted on Windows.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we normally have an "Objective"? This, the title, and description are all similar and thus repetitive

Copy link
Collaborator

Choose a reason for hiding this comment

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

+1 let's change the description to:

This tutorial provides instructions to install and configure viam-server on a virtual machine hosted on Windows and to use it with a mock robot.


**Objective**: Setup and configure viam-server and a mock robot in a linux virtual machine (VM) hosted on Windows.

## What you’ll need for this tutorial
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this should probably be part of "requirements" after the intro

* SSH Terminal software (e.g., Putty, TeraTerm, etc.)

{{% alert title="Note" color="note"%}}
VMare may be a viable option for hosting VMs for use with Viam.
Copy link
Contributor

Choose a reason for hiding this comment

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

typo: VMware

Also, we might want to say "VMware or other virtualization technologies may be a viable...

Copy link
Collaborator

Choose a reason for hiding this comment

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

This is not a very helpful note. Do we anticipate VMware or other virtualization software wouldn't work? If so just leave out the note. If not just say "You can also use other visualization software".

If your VM image uses FUSE3, libfuse2 is most likely _not_ installed and you must install libfuse2.<br>
<file>sudo apt-get install libfuse2</file>

* pip - The installation procedure requires pip.<br>
Copy link
Contributor

Choose a reason for hiding this comment

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

Only for the SDK, correct?

@@ -0,0 +1,242 @@
---
title: "How to setup Viam-Server on a Linux virtual machine hosted on Windows"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
title: "How to setup Viam-Server on a Linux virtual machine hosted on Windows"
title: "Use viam-server on a Linux virtual machine hosted on Windows"

^this tutorial goes further than just setup

@@ -0,0 +1,242 @@
---
title: "How to setup Viam-Server on a Linux virtual machine hosted on Windows"
linkTitle: "Viam-server on a Linux VM on Windows"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Good - but I think we shouldn't capitalize viam-server but use it as is since it's the name of the bianry

tags: ["mock", "simulation", "virtual machine", "Windows"]
---

**Objective**: Setup and configure viam-server and a mock robot in a linux virtual machine (VM) hosted on Windows.
Copy link
Collaborator

Choose a reason for hiding this comment

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

+1 let's change the description to:

This tutorial provides instructions to install and configure viam-server on a virtual machine hosted on Windows and to use it with a mock robot.

## What you’ll need for this tutorial

* A laptop or desktop running Windows 10 or 11.
* *Python 3.9+.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
* *Python 3.9+.
* Python 3.9+.

Do we actually need 3.9+? Anything in this that requires functionality that 3.0 doesn't have?


## What you’ll need for this tutorial

* A laptop or desktop running Windows 10 or 11.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think this can be omitted since it is in the title, so the premise is clear.

However: is this actually a requirement? If I ran a vm elsewhere would it not work?

Comment on lines +134 to +139
1. Perform Step 1, "Download Viam app config to your computer."
Click **COPY** on Step 1, then paste into the terminal window and press **Enter**.
This step downloads the viam-server configuration file used by your robot to connect to app.viam.com.
1. Perform Step 2, "Download and install viam-server"
Click **COPY** on Step 2, then paste into the terminal window and press **Enter**.
This step downloads and installs the most recent stable viam-server AppImage package.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think here we should just defer to the steps on the setup page rather than duplicating them - it will make this more evergreen in case the steps change.

Click **COPY** on Step 2, then paste into the terminal window and press **Enter**.
This step downloads and installs the most recent stable viam-server AppImage package.

If the configuration is correct, then the app displays a connection confirmation beneath Step 3 after a short wait, :
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
If the configuration is correct, then the app displays a connection confirmation beneath Step 3 after a short wait, :
Once you see a connection confirmation, the robot is configured and connected correctly:


If the configuration is correct, then the app displays a connection confirmation beneath Step 3 after a short wait, :

{{< figure src="../img/viam-on-vm/successful-connection.png" width="400px" alt="Successful connection message." title="Successful connection message." >}}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Does this figure need a title?


## Create a mock robot

This section adds a fake motor and arm in the same manner as the [How to Build a Mock Robot](../tutorials/build-a-mock-robot/) tutorial.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think this may not resolve - you are already in the tutorial folder so I think it shouldn't be in the file location


{{< figure src="../img/viam-on-vm/successful-connection.png" width="400px" alt="Successful connection message." title="Successful connection message." >}}

## Create a mock robot
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why are we not just linking to the build a mock robot tutorial and leaving it at that? Is there something in particular that is different in this than in the other tutorial?

Will stop review here for now until that questio in answered

@mikeViamTW mikeViamTW closed this by deleting the head repository Jan 17, 2023
@npentrel npentrel reopened this Jan 21, 2023
@npentrel npentrel self-assigned this Jan 21, 2023
@viambot
Copy link
Member

viambot commented Jan 21, 2023

You can view a rendered version of the docs from this PR at https://docs-test.viam.dev/a2f3acd7b00fa7d739da505b6d99684667d981f6/public

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants