Sensors Guide

Configure and use sensors with Clasi Template.

IMU (Inertial)

Used for heading/turning. Required for accurate turns.

constexpr bool kUseImu = true;
constexpr int kImuPort = 11;

Make sure the IMU is mounted securely and has time to calibrate on boot.

Tracking Wheels (Rotation Sensors)

Provides accurate odometry. Configure diameter and offsets carefully.

constexpr bool kUseTrackingWheels = true;
constexpr int kLeftTrackingPort = 4;
constexpr int kRightTrackingPort = 5;
constexpr int kBackTrackingPort = 6;

constexpr double kTrackingWheelDiameterIn = 2.75;
constexpr double kLeftTrackingOffsetIn = 6.0;
constexpr double kRightTrackingOffsetIn = 6.0;
constexpr double kBackTrackingOffsetIn = 5.5;

Motor Encoders (Fallback Odom)

If tracking wheels are disabled, Clasi uses drive motor encoders.

This is less accurate than tracking wheels but still usable for basic auton.

Distance Sensor

Not built-in by default. You can add it to robot_devices and use in auton.

// robot_devices.hpp
extern vex::distance DistanceSensor;

// robot_devices.cpp
vex::distance DistanceSensor = vex::distance(PORT);

Example usage:

if (DistanceSensor.objectDistance(inches) < 6) {
  drive.stop();
}

Optical Sensor

Used for color detection or object presence. Add like other sensors.

extern vex::optical ColorSensor;
// Usage: ColorSensor.color();