VIAM Rovers
Introduction & Overview
This is the VIAM Rover page where we are building the VIAM capable Rovers and Robots
WORK IN PROGRESS
I'm working on this module, but it's not at the top of my priority list. That's because I have passed this section in my class this year, or we have not got to it yet... either way, I'm way behind. ALSO my ADHD and ability to fucus on projects because other "shiny" projects keep getting in the way does not help... If you wanted to help shape my priorities, you could connect with me here on my "How To Support My Curriculum Development" page
VIAM Rover and Robots
Viam is the modern robotics platform.
VIAM brings the revolutionary power of modern software to computers that interact with the physical world.
Whether you are building a robot, an IOT device, or an industrial automation system, with VIAM you can go from paper, to prototype, to production, to scale in record time.
Unify hardware & software prototyping
VIAM provides a single interface to configure robots and expose APIs. Common hardware is abstracted into types such as ‘motor’ or ‘arm’. Hardware engineers simply select the model they’re using, and VIAM automatically configures their robot. Viam supports hundreds of common drivers and provides an SDK to easily create additional drivers. Each piece of hardware can be independently changed, and every robot automatically updates its configuration. Once configured, you can test hardware in VIAM’s control UI, and software engineers immediately have intuitive APIs to start writing code.
Sponsor Shout Out
I would like to thank VIAM for their generous support of my classroom and curriculum development. Because of their support, I have 4 Rovers. Thanks
The software platform for smart machines
Flexible. Powerful. Scalable. - VIAMis a comprehensive open source platform that simplifies the building, monitoring, and data management of smart machines.
From industrial robots to autonomous vehicles to smart home appliances and IoT devices — VIAM is transforming the way software powers hardware for any device with sensing, compute, and actuation.
(If you would like to sponsor this, or other Modules or presentation, please contact TopClown@STEAMClown.org or check out my "How To Help Page"
- Unit: Robot Club - Rovers & Python Hardware
- VIAM Rovers - Lessons, Projects, Technology & Resources
- This is a LEARNING Activity : Lesson / Lab
- Last Revised: April 30, 2024 - Authored: April 8, 2023
- Original Author: Jim Burnham - TopClown@STEAMClown.org
- Content License: Distributed as Open Source. See Rights & Usage
Sid Bar for Teachers: This Module or lesson is how I teach in my class. Many of the lessons might be specific to my class, but you could probably adjust them for your class. I'll try to make them a neutral as I can, so they can be used in any Mathematics, Physics, Computer Science, or any other Engineering / Technology class. Let me know how I can make that better. I'll try to keep this unit current and relevant. Please let me know if any resource links are broken or not accessible. Use this email link to let me know what is broken @ TopClown@STEAMClown.org
Caution & Safety Considerations:
Primer: "Aaron, I can imagine no way in which this thing could be considered anywhere remotely close to safe. All I know is I spent six hours in there and I'm still alive... You still want to do it?"
As with any activity, please make sure you are using appropriate safety equipment. If you are coding, writing, reading, or working a lab, make sure you stand up and stretch every hour or so, Please consider any safety issues connecting to a Raspberry Pi, Arduino, computers and other electronic equipment.
Robots and Resources
New Links & Resources:
These are resources, that have been added in the last few weeks. They were found by your teacher or fellow students. Take a look. There are linked here, but also will be listed under an appropriate heading below too...
VIAM - https://www.viam.com/
Robot Club VIAM Engineering Notebook (mostly about Party-Rover-0, but really about "How To" for any Mechatronics VIAM Rovers)
VIAM Support / Docs / Resources:
Links to DIYROBOCARS RC Car Conversions Resources
Check out the Random Links Below
Getting Started - Lessons, Projects, & Labs
Introduction To VIAM and the Rover Hardware
Introduction To VIAM and the Rover Hardware
Introduction To VIAM
VIAM Introduction, is a Presentation and Lesson introducing the VIAM company, what they do, their goals, and opportunities. A Deep dive into resources on their web site and how to find information to setup your Rover.
Mechatronics - Robot Club - VIAM Introduction - 📖 Lesson Tutorial (Coming Soon)
Mechatronics - Robot Club - VIAM Introduction - 📽️ Video / Podcast (Coming Soon)
Mechatronics - Robot Club - VIAM Introduction - 📰 Slide Presentation
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Hardware - Let's Build A Rover
High Level Hardware Introduction
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the Hardware of the VIAM Rover, and show that most rover designs could be used. It's a very high level, where students can see the big features. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Hardware - Install a Raspberry Pi 4/5 On The Rover Chasse:
The following is the instructions to install a Raspberry Pi 4/5 on a VIAM Chasse. 3 of the Chassis we have in class, are the new
VIAM Docs for new Chassis - https://docs.viam.com/viam-rover-resources
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Hardware - Install a Raspberry Pi 3B On The Rover Chasse:
The first thing you need to verify is that you have an OS installation on a Raspberry Pi (or Other Python capable device, like a NVIDIA Jetson Nano). You can run the viam-server on a 32 bit Raspbian OS on a Raspberry Pi 3B, but you will not be able to run the VIAM SDK. To run the SDK, you will need a 64-bit OS targeting a Pi4 or better. See the setup for the Raspberry Pi 3B and Raspberry Pi 4 or better below.
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Software - Install a Raspberry Pi 4/5 with 64 bit OS:
The first thing you need to verify is that you have an OS installation on a Raspberry Pi (or Other Python capable device, like a NVIDIA Jetson Nano). You can run the viam-server on a 32 bit Raspbian OS on a Raspberry Pi 3B, but you will not be able to run the VIAM SDK. To run the SDK, you will need a 64-bit OS targeting a Pi4 or better. See the setup for the Raspberry Pi 3B and Raspberry Pi 4 or better below.
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Software - Install a Raspberry Pi 3B with 64 bit OS:
The first thing you need to verify is that you have an OS installation on a Raspberry Pi (or Other Python capable device, like a NVIDIA Jetson Nano). You can run the viam-server on a 32 bit Raspbian OS on a Raspberry Pi 3B, but you will not be able to run the VIAM SDK. To run the SDK, you will need a 64-bit OS targeting a Pi4 or better. See the setup for the Raspberry Pi 3B and Raspberry Pi 4 or better below.
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Software - Install a viam-server:
After installing your OS on the Raspberry Pi (or Other Python capable device, like a NVIDIA Jetson Nano), you can setup the viam-server. Please see the presentation/ Tutorial
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Mechatronics Engineering - VIAM Rover / Robot - Labs: Flashing an LED with your viam-server app
Lesson 1 - https://docs.viam.com/tutorials/get-started/make-an-led-blink-with-the-viam-app/
Lesson 2 -
Lesson 3 -
Lesson 4 -
Minimum Rover Features
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the minimum Hardware needed to run a Rover with the VIAM interface. It will have a set of lessons to build and verify each feature. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover - Power System
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the minimum Hardware needed to run a Rover with the VIAM interface. It will have a set of lessons to build and verify each feature. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover - Drive Train & Motor Controllers
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the minimum Hardware needed to run a Rover with the VIAM interface. It will have a set of lessons to build and verify each feature. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover - Camera
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the minimum Hardware needed to run a Rover with the VIAM interface. It will have a set of lessons to build and verify each feature. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover - GPIO
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the minimum Hardware needed to run a Rover with the VIAM interface. It will have a set of lessons to build and verify each feature. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover - <Other>
ADD Intro Text Paragraph - This Lesson is coming soon - This lesson will be a introduction to the minimum Hardware needed to run a Rover with the VIAM interface. It will have a set of lessons to build and verify each feature. There will be a short slide deck, and then some research assignments/quiz (Canvas)
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
Rover Software:
Let's Connect To A Server In New York, Via the Moon & Back
Let's Connect To A Server In New York, Via the Moon & Back
Mechatronics Engineering Introduction - <topic>
This Lesson is coming soon - click here to be notified when it's available - Professional Development Newsletter
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity
VIAM Rover and Server Setup
Install a Raspberry Pi 64 bit OS:
I recommend you install the Desk Top Version, so you can play with the Raspberry Pi as a Full OS desktop and even KVM
Verify and update all the Localization settings
Verify the following Interfaces are set: ssh, vnc, I2C, Serial Port, Serial Console & 1 wire
This Set Raspberry Pi Preferences shell script update the following:
Sets the local to US, US keyboard, and time zone to America/Los_Angeles.
Turns on the following interfaces: SSH, VNC, I2C, Serial and 1-Wire
wget -O rpi_set_preferences.sh https://raw.githubusercontent.com/jimTheSTEAMClown/RaspberryPi/master/rpi_set_preferences.sh
chmod 744 rpi_set_preferences.sh
When you run this script it will make the interface and changes above and then reboot
./rpi_set_preferences.sh
Update and Install tools and software:
Get some Shell Scripts and in a Pi console window run the following commands
Just check you know where you are... cd to a working directory you want to do all your Viam work in.
cd ~
pwd
ls -l
Copy and run this script which will pull down 2 other shell scripts to setup your Raspberry Pi and then setup the VIAM server.
wget -O new-pi-64bit-build-prep.sh https://raw.githubusercontent.com/jimTheSTEAMClown/VIAM-Party-Rover-0/main/new-pi-64bit-build-prep.sh
chmod 744 new-pi-64bit-build-prep.sh
Run the shell script new-pi-64bit-build-prep.sh. It will copy more shell scripts that update the tools and apps that are required or recommended for a new viam rover build.
./new-pi-64bit-build-prep.sh
This will take a few minutes to run. It's probably running update, upgrade for the first time
If you want to run everything and not worry about what is getting installed, you can run this wget instead
wget -O new-build.sh https://raw.githubusercontent.com/jimTheSTEAMClown/VIAM-Party-Rover-0/main/new-build.sh
chmod 744 new-build.sh
./new-build.sh
ls -l
The shell script rover_image_build_64bit.sh will update and upgrade, then install some apps and tools like curl, git, and the Arduino tools. Other might be installed to, so check the latest version of this shell found on my github site - rover_image_build_64bit.sh
The shell script viam-new-setup.sh will update and upgrade, then install the needed viam tools and apps, including the viam-server. Other might be installed to, so check the latest version of this shell found on my github site - viam-new-setup.sh
./rover_image_build_64bit.sh
./viam-new-setup.sh
Now go to the Viam Rover site: https://app.viam.com/robots
Random Stuff To Sort
Mechatronics Engineering - VIAM Rover / Robot - Steps To Start A Rover:
go to https://app.viam.com/robots and log into your viam account to see your robots
select or create a Rover - In my case, I have Party_Rover-0
if you need to run to following on your Rover's Raspberry Pi
sudo curl -H "Secret: 8vbtfisl81ia3qk6i56my9za61rigrwad7bdnhydbt9vkn38" "https://app.viam.com/api/json1/config?id=be17bc44-ea90-4038-bb8b-88f4215053ae&client=true" -o /etc/viam.json
curl http://packages.viam.com/apps/viam-server/viam-server-stable-aarch64.AppImage -o viam-server && chmod 755 viam-server && sudo ./viam-server --aix-install
Mechatronics Engineering - VIAM Rover / Robot - Labs: Driving in a square (SDK)
Lesson 1 - Installing the VIAM SDK
Follow the instructions found https://python.viam.dev/
I'm trying this on the Raspberry PI that is my VIAM Rover... we will see if that is an appropriate Linux platform to to run the viam-sdk
Install the Viam-SDK
pip install viam-sdk
Or if you have it already installed run pip install -U viam-sdk
export PATH="$HOME/.local/bin:$PATH"
TO DO: I want to add some steps for running a source script to setup the path, start your viam-server and stuff, like checking that your viam-server is running..
Now in a browser, navigate to app.viam.com. and in your organization find your rover you want to work with and select it. If your robot raspberry Pi is live, and you have run the viam-server setup before, it should auto start the server and will connect after a min of selecting the robot.
Lesson 2 -
Lesson 3 -
Lesson 4 -
Mechatronics Engineering - VIAM Rover / Robot - Rover Connections based on VIAM Rover:
Lesson 1 - How Does VIAM make the Raspberry Pi Connections
Lesson 2 -
Lesson 3 -
Lesson 4 -
Mechatronics Engineering - VIAM Rover / Robot - Lessons, Lectures, Labs:
Lesson 1 - Intro to VIAM cars
Lesson 2 -
Lesson 3 -
Lesson 4 -
Teachers - Unit, Module and Lesson Plans
Mechatronics Engineering Introduction - <topic>
This Lesson is coming soon - click here to be notified when it's available - Professional Development Newsletter
Mechatronics - <topic> - 📖 Lesson Tutorial
Mechatronics - <topic> - 📽️ Video / Podcast
Mechatronics - <topic> - 📰 Slide Presentation (Coming Soon)
Mechatronics - <topic> - LAB #1 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #2 - 🛠️ LAB Activity
Mechatronics - <topic> - LAB #3 - 🛠️ LAB Activity