Configure a WitMotion IMU

An inertial measurement unit (IMU) provides data for the AngularVelocity, Orientation, CompassHeading, LinearAcceleration, and GetAccuracy methods. Acceleration and magnetometer data are available by using the sensor GetReadings method, which IMUs wrap.

The imu-wit movement sensor model supports the following IMUs manufactured by WitMotion:

  • BWT61CL
  • BWT901CL
  • HWT901B TTL

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 movement-sensor type, then select the imu-wit model. Enter a name for your movement sensor and click Create.

Creation of an `imu-wit` movement sensor in the Viam app config builder.

Copy and paste the following attribute template into your movement sensor’s Attributes box. Then remove and fill in the attributes as applicable to your movement sensor, according to the table below.

{
  "serial_path": "<your-port>",
  "serial_baud_rate": <int>
}
{
  "serial_path": "/dev/serial/by-path/<device_ID>",
  "serial_baud_rate": 9600
}
{
  "components": [
    {
      "name": "<your-sensor-name>",
      "model": "imu-wit",
      "type": "movement_sensor",
      "namespace": "rdk",
      "attributes": {
        "serial_path": "<your-port>",
        "serial_baud_rate": <int>
      },
      "depends_on": []
    }
  ]
}
{
  "components": [
    {
      "name": "myIMU",
      "model": "imu-wit",
      "type": "movement_sensor",
      "namespace": "rdk",
      "attributes": {
        "serial_path": "/dev/serial/by-path/usb-0:1.1:1.0",
        "serial_baud_rate": 115200
      },
      "depends_on": []
    }
  ]
}

The "serial_path" filepath used in this example is specific to serial devices connected to Linux systems. The "serial_path" filepath on a macOS system might resemble "/dev/ttyUSB0" or "/dev/ttyS0".

Attributes

NameTypeInclusionDescription
serial_pathstringRequiredThe full filesystem path to the serial device, starting with /dev/. To find your serial device path, first connect the serial device to your machine, then:
  • On Linux, run ls /dev/serial/by-path/* to show connected serial devices, or look for your device in the output of sudo dmesg | grep tty. Example: "/dev/serial/by-path/usb-0:1.1:1.0".
  • On macOS, run ls /dev/tty* | grep -i usb to show connected USB serial devices, ls /dev/tty* to browse all devices, or look for your device in the output of sudo dmesg | grep tty. Example: "/dev/ttyS0".
serial_baud_rateintOptionalThe rate at which data is sent from the sensor over the serial connection. Valid rates are 9600 and 115200. The default rate will work for all models. Only the HWT901B can have a different serial baud rate. Refer to your model’s data sheet.
Default: 115200

Test the movement sensor

After you configure your movement sensor, navigate to the Control tab and select the dedicated movement sensor dropdown panel. This panel presents the data collected by the movement sensor. The sections in the panel include the orientation, angular velocity and linear acceleration.

The movement sensor component in the control tab


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.