Services reference

Built-in services are software capabilities that ship with viam-server. Unlike hardware drivers, which talk to a specific piece of equipment, services provide advanced capabilities that often work across many components, such as motion planning coordinating clear paths for an arm around obstacles.

Before you add a service, search the Viam registry for the capability you need. The registry has modules maintained by Viam and the community that provide a wide range of services, such as vision models and integrations with external platforms and APIs. Use a built-in service when it covers your use case: because it ships with viam-server, you can add it to any machine’s configuration without installing a module. If neither fits, build your own.

Each page below covers available models, configuration attributes, and JSON templates. For API method reference, see Service APIs.

ServiceDescription
Base remote controlDrive a mobile base with an input controller like a gamepad or joystick
DiscoveryDetect available hardware on a machine and suggest component configurations
Frame systemStore spatial relationships between components so other services can reason about position and orientation
GenericA catch-all API for services that don’t fit other service types
MotionPlan and execute movement for components relative to themselves, other machines, and the world
VisionAdd computer vision capabilities like detection, classification, and segmentation to cameras