Capture and sync edge data
Capture data from a resource on your machine and sync the data to the cloud.
Capture data from a resource on your machine and sync the data to the cloud.
How a machine running on Viam is structured, from on-device to cloud communications.
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.
Data capture and sync works differently for viam-server and viam-micro-server.
Use your image data to train a model, so your machines can make inferences about their environments.
Reuse the machine configuration from one machine for multiple machines.
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 in C++.
Update or delete your existing modules, or change their privacy settings.
Set up an Espressif ESP32 microcontroller for development with the Micro-RDK including writing and using custom modules rather than using the pre-built viam-micro-server.
Use the motion service to move a robot arm and gripper.
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 constraints and transforms with the motion service.
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.
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.
A service that does not fit any of the other APIs.
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.
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.
Some usage may require you to define new APIs or deploy custom components using a server on a remote part