Table of Contents

Namespace Pamoja.Kit

Classes

Anomaly

Flags a reading that stands out from the ones before it.

Calibration

Turns a raw sensor count into the units the reading is actually in.

Complementary

Fuses a drifting rate, such as a gyroscope's, with a noisy absolute reading, such as an accelerometer's tilt, into one steady estimate.

Debounce

Stops a flickering input from acting until it has settled.

Depletion

Warns before a falling level runs out, by projecting its rate of fall.

EStop

An emergency stop that latches until a person resets it.

Geofence

Keeps a tracked point inside an area, and notices when it leaves.

Kalman

Estimates a true value from noisy readings.

Kit

The stateless helpers from the pamoja kit.

Limits

Speed and acceleration limits, with the motion they last allowed.

Median

Rejects a single wild reading, where an average would let it pull the answer.

Odometry

Tracks a robot's pose by adding up its motion.

Pid

Holds a value at a setpoint by trading off present, past, and predicted error.

Quadrature

Counts a quadrature encoder's steps from its A and B channels.

Ramp

Limits how fast a value may change, so a load is never slammed.

SafetyGate

The gate every motion command passes through: an e-stop, a watchdog, and limits.

Smoother

Smooths a noisy reading by weighting each new sample against the running value.

Surge

Notices a step change between successive readings.

Thermostat

Switches a load on and off around a setpoint, with hysteresis to stop chatter.

Transform

A 4x4 homogeneous transform: a rotation and a translation.

Trend

Fits a line through recent readings, so a slow drift shows before it matters.

Trigger

Fires once when a reading crosses a line, and not again until it has come back past the release band.

Units

Converts readings between the units a sensor reports and the ones a person reads.

Watchdog

A deadman timer that expires unless fed often enough.

Window

A rolling window of the most recent readings, with the stats over them.

Structs

Ackermann

Car-like steering: one steered axle and a driven axle a wheelbase apart.

Coordinate

A latitude and longitude in degrees.

DhParameters

One joint of a serial arm in the Denavit-Hartenberg convention.

DiffDrive

Wheel speeds for a desired body motion, and the body motion measured wheel speeds make, for a robot that steers by spinning two wheels at different speeds.

Esc

An electronic speed controller's pulse widths from full reverse to full forward.

Guidance

The command toward a waypoint, with the geometry behind it.

Mecanum

A four-wheel mecanum base, which drives, strafes, and turns at once.

Pose

Where a robot is and which way it faces.

QuadratureScale

Turns encoder steps into the distance and speed of the wheel they turn with.

ServoMap

A hobby servo's pulse widths across its travel.

SkidSteer

A tracked or four-wheel drive that turns by skidding, with its track widened by a slip factor.

Tilt

Roll and pitch, in degrees.

Twist

How fast a robot is asked to move.

TwoLinkArm

A planar arm of two links, with a closed-form inverse.

WaypointFollower

Steers toward a waypoint: pivot toward it, then drive, slowing as the heading error grows.

WheelSpeeds

The four wheel speeds of a mecanum base.

Enums

Boundary

Where a fix sits relative to a Geofence, including the moment it crosses.

Edge

What a Trigger reports when a reading changes its state.

Elbow

Which way a TwoLinkArm's elbow bends; both reach the same point.