#![doc = include_str!("../README.md")]
#![no_std]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[cfg(all(doctest, feature = "alloc"))]
mod tutorial_examples;
#[cfg(feature = "alloc")]
#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
extern crate alloc;
pub use libm;
pub use scalar::Numeric;
pub use scalar::Dual;
pub use scalar::HyperDual;
pub use scalar::Jet;
pub use scalar::{ScalarFn, ScalarFnN, VectorFn};
pub use scalar::{Const, Primal, c};
pub use numerical_derivative::{
AutoDiffMulti, AutoDiffSingle, DerivatorMultiVariable, DerivatorSingleVariable,
FiniteDifferenceConfig, FiniteDifferenceMode, FiniteDifferenceMulti, FiniteDifferenceSingle,
Hessian, Jacobian,
};
pub use numerical_derivative::{derivative, partial, second_derivative};
pub use numerical_integration::{
GaussianConfig, GaussianMulti, GaussianQuadratureMethod, GaussianSingle,
IntegratorMultiVariable, IntegratorSingleVariable, IterativeConfig, IterativeMethod,
IterativeMulti, IterativeSingle, SummationMethod,
};
pub use numerical_integration::integral;
pub use approximation::{
LinearApproximation, LinearApproximationPredictionMetrics, LinearApproximator,
QuadraticApproximation, QuadraticApproximationPredictionMetrics, QuadraticApproximator,
};
pub use linear_algebra::{Matrix, Vector};
pub use linear_algebra::{Matrix2D, Matrix3D, Matrix4D, Matrix6D, Vector2D, Vector3D, Vector6D};
pub use linear_algebra::{solve_discrete_lyapunov, solve_discrete_riccati};
pub use discretization::{q_discrete_white_noise, van_loan, zoh};
pub use ode::{ExponentialMap, Rk4, Rk45};
pub use signal_processing::{
Biquad, BiquadCascade, BiquadCoefficients, Deadband, Hysteresis, MovingAverage,
MultiChannelBiquad, OnePoleLowPass, RunningMedian, SavitzkyGolay, SlewRateLimiter,
harmonic_notch_coefficients,
};
pub use spatial::Quaternion;
pub use spatial::{SE2, SE3, SO2, SO3};
pub use spatial::{Twist, Wrench};
pub use spatial::SpatialInertia;
pub use spatial::FreeJointState;
pub use kinematics::{BodyArc, BodyTwist, DifferentialDrive, WheelRotations, WheelVelocities};
pub use mapping::{MutableOccupancyMap, OccupancyMap, ScanGeometry};
#[cfg(feature = "alloc")]
#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
pub use mapping::DynamicOccupancyGrid;
pub use estimation::{
CovarianceUpdate, ExtendedKalmanFilter, KalmanFilter, KalmanModel, UnscentedKalmanFilter,
};
pub use estimation::{ErrorStateKalmanFilter, ImuNoise, NominalState, NominalStateFn};
pub use estimation::{MadgwickFilter, MahonyFilter};
pub use estimation::{ConstantTurnAndSpeed, DirectMeasurement, residual_with_wrapped_angles};
#[cfg(feature = "alloc")]
#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
pub use estimation::{GaussianLikelihood, Likelihood, ParticleFilter, ResamplingScheme};
#[cfg(feature = "alloc")]
#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
pub use estimation::{BeamModel, InitialParticleCloud, MonteCarloLocalizer};
pub use random::{Pcg32, RandomSource};
pub use optimization::{GaussNewton, LevenbergMarquardt, MinimizationReport, TerminationReason};
pub use root_finding::{Bisection, Newton, NewtonSystem, RootReport, RootReportN, RootTermination};
pub use polynomial::{
MultivariatePolynomial, MultivariateTerm, PiecewisePolynomial, Polynomial, RealRoots,
};
pub use control::{
Curvature, FollowTheGap, FollowTheGapOutput, GeometricAttitudeController, Lqr, Pid,
ThrustCommand, pure_pursuit_curvature, thrust_command_from_acceleration,
};
pub use motion::{
BoundaryDerivatives, EndOfPath, MinimumSnapPlanner, PathProjection, PolylinePath,
durations_from_average_speed,
};
pub use dynamics::{RigidBody, RigidBodyAcceleration};
pub use plant::{MultirotorMixer, RotorCommands, RotorLag, RotorSpin};
pub use error::{
CalcError, ControlError, DiffError, DynamicsError, EstimationError, IntegrateError,
KinematicsError, LinalgError, MappingError, MotionError, PlantError, PolynomialError,
SignalError, SolveError, SpatialError,
};
pub mod approximation;
pub mod control;
pub mod discretization;
pub mod dynamics;
pub mod error;
pub mod estimation;
pub mod gaussian_tables;
pub mod kinematics;
pub mod linear_algebra;
pub mod mapping;
pub mod motion;
pub mod numerical_derivative;
pub mod numerical_integration;
pub mod ode;
pub mod optimization;
pub mod plant;
pub mod polynomial;
pub mod prelude;
pub mod random;
pub mod root_finding;
pub mod scalar;
pub mod signal_processing;
pub mod spatial;
mod utils;
pub mod vector_field;