Configure a Sensor-Controlled Base

A sensor-controlled base supports a robotic base with feedback control from a movement sensor.

To configure a sensor-controlled base as a component of your machine, first configure the model of base you want to wrap with feedback control and each required movement sensor. To see what models of movement sensor report which feedback, reference the appropriate column in Movement Sensor API.

Configure a sensor-controlled base as follows:

Navigate to the Config tab of your machine’s page in the Viam app. Click on the Components subtab and click Create component. Select the base type, then select the sensor-controlled model. Enter a name for your base and click Create.

An example configuration for a sensor-controlled base in the Viam app config builder

Edit and fill in the attributes as applicable.

  "components": [
      "name": "my-sensor-controlled-base",
      "model": "sensor-controlled",
      "type": "base",
      "namespace": "rdk",
      "attributes": {
        "movement_sensor": [
        "base": "<your-base>"
      "depends_on": []

The following attributes are available for sensor-controlled bases:

movement-sensorarrayRequiredArray with the names of any movement sensors on your base you want to gather feedback from. The driver will select the first movement sensor providing appropriate feedback for either the SetVelocity() or the Spin() endpoint.
basestringRequiredString with the name of the base you want to wrap with sensor control.

Test the base

After you configure the base, go to the Control tab and expand the base component to view the controls to enable keyboard or discrete control over your machine’s movement. If your base makes use of a camera component, the Control tab for your base will also display a Live Feeds section. This section contains buttons to toggle cameras on or off and to arrange how you view the camera feeds.

The base component in control tab

The following base control API methods are available with feedback control on a sensor-controlled base:

  • SetVelocity(): available if base is configured to receive angular and linear velocity feedback.
  • Spin(): available if base is configured to receive orientation feedback.

Have questions, or want to meet other people working on robots? Join our Community Discord.

If you notice any issues with the documentation, feel free to file an issue or edit this file.