Extend Viam with Modules from the Viam Registry
Viam provides built-in support for a variety of resources:
- Various types of hardware components.
- High-level functionality exposed as services.
If the component or service you want to use for your project is not natively supported, you can use modular resources from the Viam Registry or create your own.
The Viam Registry
The Viam registry is the central place where you can browse modules that add capabilities to your machine beyond what is built-in to viam-server
.
A module provides one or more modular resources. You can search the available modular resources from the Viam Registry here:
You can see details about each module in the Viam registry on its dedicated module page. You can integrate modules into any Viam-powered machine.
Use modules
To use a modular resource from the registry, add it from your robot’s Config tab in the Viam app, using the Create component button.
After adding a module to your robot, you can choose to configure it for automatic version updates from the Viam registry, or update your module manually. By default, newly added modules will remain at the version they were when you installed them, and will not update automatically.
Once you have added and configured the module you would like to use in the Viam app, you can test your added resource using the Control tab and program it using standardized APIs.
viam-server
manages the dependencies, start-up, reconfiguration, data management, and shutdown behavior of your modular resource.
Tutorials using modules
Create your own modules
If none of the existing modular resources in the Viam registry support your use case, you can create your own modules with your own modular resources:
Implement a custom component: Write a driver for an unsupported component by implementing the corresponding component API.
Implement a custom service: Implement your own algorithm or model against a corresponding service API or use custom algorithms or data models when working with services such as SLAM, vision, or motion planning.
You can write modules in a variety of programming languages, such as, Go, Python, C++, Rust, while implementing the same APIs. To create a new module:
- Create a module with one or more modular resources by implementing all methods for the component’s or service’s standardized API.
- Upload the module to the Viam registry to make it available for deployment to robots or add it as a local module. You can upload private modules for your organization or public modules.
- Once you have uploaded your module to the registry, deploy and configure the module from the Viam app. Then, you can test your added resource using the Control tab and program it with Viam’s Go or Python SDKs.
Tutorials creating modules
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!