Modular Resources
Integrate additional hardware or software functionality into your machine with modular resources.
Integrate additional hardware or software functionality into your machine with modular resources.
A heuristic detector that draws boxes around objects according to their hue (does not detect black, gray, and white).
Configure a fake generic service using the generic service API.
A detector or classifier that uses an ML model available on the machine to draw bounding boxes around objects or return a class label.
Use your image data to train a model, so your machines can make inferences about their environments.
The vision service enables your machine to use its on-board cameras to intelligently see and interpret the world around it.
Give commands to get detections, classifications, or point cloud objects, depending on the ML model the vision service is using.
This model takes 2D bounding boxes from an object detector and projects the pixels in the bounding box to points in 3D space.
A segmenter for depth cameras that returns the perceived obstacles as a set of 3-dimensional bounding boxes, each with a Pose as a vector.
A segmenter that takes point clouds from a camera input and returns the average single closest point to the camera as a perceived obstacle.
A segmenter that identifies well-separated objects above a flat plane.
Get started writing your own modular resources by creating a Hello World module.
Add support for a new component or service model by writing a module.
Add a new model of sensor component by writing a module in Python.
Make your module available to others by uploading it to the modular resource registry.
Update or delete your existing modules, or change their privacy settings.
Capture images from a camera on your machine and selectively sync images to the cloud with filtering.
Detect people and their location in an image with any webcam and a vision service.
Viam has a built-in tool called fragments for using the same configuration on multiple machines.
Capture data from machines, sync it to the cloud, and access it and train image classification and object detection models on the data.
The motion service enables your machine to plan and move its components relative to itself, other machines, and the world.
Connect multiple machine parts to each other as sub-parts or remotes.
How to configure the frame system in an scenario where a component is fixed to a static object.
How to configure the Frame System in an scenario where a component is attached to another component.
The frame system holds reference frame information for the relative position of components in space.
Give commands to define waypoints and move your machine along those waypoints while avoiding obstacles.
The navigation service uses GPS to autonomously navigate a rover to user-defined waypoints.
Use Viam to teleoperate and navigate rover bases.
Give commands to your generic components for running model-specific commands using DoCommand.
Give commands to get a machine’s position within a map.
Simultaneous localization and mapping (SLAM) allows your machine to create a map of its surroundings and find its location within that map.
Use Viam’s fleet management capabilities to share and manage access to your machines.
Give commands to get a list of inputs from the controller that are being monitored for that control mode.
The base remote control service allows you to remotely control a base with an input controller like a gamepad.
Configure a Simultaneous Localization And Mapping (SLAM) service with the Cartographer modular resource.
Configure a Simultaneous Localization And Mapping (SLAM) service that runs in the cloud using Viam.
Define kinematic parameters to configure intermediate reference frames for components with complex kinematic chains.
Tutorials and repositories with modular resources configuration examples.
Add an ML model modular-resource-based service which uses TensorFlow Lite to classify audio samples.
Some usage may require you to define new APIs or deploy custom components using a server on a remote part
How a machine running on Viam is structured, from on-device to cloud communications.
A service that does not fit any of the other APIs.
Add additional models of components and services or ML models from the Viam Registry, or extend Viam by creating new modular resources.
Collect data from your machine or fleet and visualize it in Grafana.
Create an alarm system that can detect people and can recognize faces, allowing it to smartly trigger alarms.
Use the filter modular component in the Viam app to photograph your pet in their collar.
Use constraints and transforms with the motion service.
Use the motion service to move robot arms and other components.
Detect colors and their location in an image with any webcam and a vision service.
Build a line-following robot that relies on a webcam and color detection.
Instructions for detecting and following a colored object with a rover, like a SCUTTLE robot.