Configure your Viam Rover with a Fragment

To be able to drive your rover, you need to configure it. Viam provides reusable fragments for Viam rovers.

Prerequisites

Add the fragment

Follow the appropriate instructions for the model of rover and board you have:

Navigate to your machine in the Viam app. In the left-hand menu of the CONFIGURE tab, click the + (Create) icon next to the machine part you want to add the fragment to.

Select Insert fragment. Now, you can see the available fragments to add. Select ViamRover2-2024-rpi4-a and click Insert fragment again to add the fragment to your machine configuration:

List of available fragments

Click Save in the upper right corner of the page to save your new configuration.

The fragment adds the following components to your machine’s JSON configuration:

  • A board component named local representing the Raspberry Pi.
  • Two motors (right and left)
    • The configured pin numbers correspond to where the motor drivers are connected to the board.
  • Two encoders, one for each motor
  • A wheeled base, an abstraction that coordinates the movement of the right and left motors
  • A webcam camera
  • An accelerometer
  • A power sensor

For information about how to configure components yourself when you are not using the fragment, click the links on each component above. To see the configured pin numbers and other values specific to this fragment, view it in the app.

Navigate to your machine in the Viam app. In the left-hand menu of the CONFIGURE tab, click the + (Create) icon next to the machine part you want to add the fragment to.

Select Insert fragment. Now, you can see the available fragments to add. Select ViamRover202210b and click Insert fragment again to add the fragment to your machine configuration:

List of available fragments

Click Save in the upper right corner of the page to save your configuration.

Fragment configuration

The fragment adds the following components to your machine’s JSON configuration:

  • A board component named local representing the Raspberry Pi
    • An I2C bus for connection to the accelerometer.
  • Two motors (right and left)
    • The configured pin numbers correspond to where the motor drivers are connected to the board.
  • Two encoders, one for each motor
  • A wheeled base, an abstraction that coordinates the movement of the right and left motors
    • Width between the wheel centers: 260 mm
    • Wheel circumference: 217 mm
    • Spin slip factor: 1
  • A webcam camera
  • An accelerometer

For information about how you would configure a component yourself if you weren’t using the fragment, click the links on each component above. To see the configured pin numbers and other values specific to this fragment, view it in the app.

Navigate to your machine in the Viam app. In the left-hand menu of the CONFIGURE tab, click the + (Create) icon next to the machine part you want to add the fragment to.

Select Insert fragment. Now, you can see the available fragments to add. Select ViamRover2-2024-jetson-nano-a and click Insert fragment again to add the fragment to your machine configuration.

List of available fragments

Click Save in the upper right corner of the page to save your new configuration.

The fragment adds the following components to your machine’s JSON configuration:

  • A board component named local representing the Jetson.
  • Two motors (right and left)
    • The configured pin numbers correspond to where the motor drivers are connected to the board.
  • Two encoders, one for each motor
  • A wheeled base, an abstraction that coordinates the movement of the right and left motors
  • A webcam camera
  • An accelerometer
  • A power sensor

For information about how to configure components yourself when you are not using the fragment, click the links on each component above. To see the configured pin numbers and other values specific to this fragment, view it in the app.

Navigate to your machine in the Viam app. In the left-hand menu of the CONFIGURE tab, click the + (Create) icon next to the machine part you want to add the fragment to.

Select Insert fragment. Now, you can see the available fragments to add. Find ViamRover2-2024-nano-orin-a and select Insert fragment again to add the fragment to your machine configuration.

Click Save in the upper right corner of the page to save your new configuration.

List of available fragments

The fragment adds the following components to your machine’s JSON configuration:

  • A board component named local representing the Jetson.
  • Two motors (right and left)
    • The configured pin numbers correspond to where the motor drivers are connected to the board.
  • Two encoders, one for each motor
  • A wheeled base, an abstraction that coordinates the movement of the right and left motors
  • A webcam camera
  • An accelerometer
  • A power sensor

For information about how to configure components yourself when you are not using the fragment, click the links on each component above. To see the configured pin numbers and other values specific to this fragment, view it in the app.

See the components on the configuration page

Adding a fragment to your machine adds the configuration to your machine. The components and services included in the fragment will now appear as cards on the CONFIGURE tab, along with a card for your fragment:

List of available fragments

Modify the config

The fragment you added is read-only, but if you need to modify your rover’s config you can do the following:

  1. Navigate to the card belonging to your fragment on the CONFIGURE tab.
  2. Click the View JSON button in the upper right corner of the card. Copy all the JSON.
  3. Return to the fragment card. Click the (Actions) button in the upper right corner of the card. Click Delete and confirm your choice.
  4. In the left-hand menu of the CONFIGURE tab, click JSON to switch to JSON mode.
  5. Paste the raw fragment contents into the editor and click Save in the upper-right corner of the screen to save your config.
  6. Now, you can edit the config in either JSON or Builder mode.

Next steps

After you have configured your rover, follow one of these tutorials:

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.