The RDK includes several built-in services that make it easy to move your robot in intelligent ways, whether moving a single arm, a connected system of gantries and arms, or an entire robot on wheels.

The following services work together to coordinate your robot’s movement:

Frame system

Bounding boxes displayed in the Viam app frame system tab

The frame system service:

  • Allows you to describe the physical relationship between your machine’s parts by organizing the machine’s components into a tree of reference frames.
  • Displays a visualization of that tree of reference frames in the Viam app.
  • Has an API method that allows you to translate a point in the coordinate system of one component (such as a camera) to a point in the coordinate system of another component (such as an arm)
  • The motion service uses the tree of reference frames internally to make and execute motion plans while avoiding self-collisions as well as collisions with external objects.

Motion and navigation

The motion service allows you to:

  • Create and execute plans to move components to goal positions in the components’ own coordinate systems, as well as to move an entire robot on a GPS map or SLAM map.
  • Set constraints on the motion plans, such as requiring a component to maintain its orientation throughout the move (for example, an arm holding a cup upright as it moves).
A map of part of a city displayed in the Viam app with user-defined waypoints and the location of a robot shown on the map.

The navigation service lets you specify a list of waypoints that a robot should travel through on a GPS map, and delegates to the motion service to create and execute the corresponding sequence of motion plans.

Simultaneous localization and mapping (SLAM)

  • The SLAM service defines an API for returning a map of a robot’s environment as a point cloud, or set of points that represent the occupied space in the environment.
  • The platform includes a module that wraps the Cartographer SLAM algorithm.
  • Viam’s SLAM tools allow you to:
    • Use the Cartographer module to create, update, or do pure localization on maps created either using a live robot or data that was previously captured on a robot using data capture.
    • View all maps you have created in your SLAM library tab on the Viam app.
    • Deploy a map from your SLAM library onto a robot to use the map with the motion service.

Get started

To get acquainted with the frame system, configure the frame system for an arm attached to a table.

To create a SLAM map of your home or office, use a mobile base of your choice along with an RPLIDAR A1 or A3 and the Cartographer module.

Or, get started with one of our tutorials: