Skip to content

randhid/agilex

Repository files navigation

This module implements the rdk:component:base API in an agilex model for the AgileX LIMO base to be used with viam-server. This driver supports differential, ackermann, and omni directional steering modes over the serial port.

Configure your agilex-limo base

Note

Before configuring your base, you must create a machine.

Navigate to the CONFIGURE tab of your machine’s page in the Viam app. Add base / agilex-limo to your machine.

On the new component panel, copy and paste the following attribute template into your base’s attributes field:

{
  "drive_mode": "<ackermann|differential|omni>",
  "serial_path": "<your-serial-path>"
}

Note

For more information, see Configure a Machine.

Attributes

The following attributes are available for viam:base:agilex-limo bases:

Name Type Inclusion Description
drive_mode string Required LIMO steering mode. Options: differential, ackermann, omni (mecanum).
serial_path string Optional The full filesystem path to the serial device, starting with /dev/. With your serial device connected, you can run sudo dmesg | grep tty to show relevant device connection log messages, and then match the returned device name, such as ttyTHS1, to its device file, such as /dev/ttyTHS1. If you omit this attribute, Viam will attempt to automatically detect the path.
Default: /dev/ttyTHS1

Example configurations:

{
  "drive_mode": "differential"
}
{
  "drive_mode": "omni",
  "serial_path": "/dev/ttyTHS1"
}

Next steps

Local development

This module is written in Go.

To build: make limobase
To test: make test

License

Copyright 2021-2023 Viam Inc.
Apache 2.0