1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//! # kernelvex
//!
//! A VEX robotics control library for the Vexide platform.
//!
//! `kernelvex` provides high-level abstractions for building autonomous and
//! driver-controlled robot programs. It includes odometry, motion control,
//! trajectory following, and drivetrain management.
//!
//! ## Features
//!
//! - **Odometry**: Track robot position using [`TrackingRig`] with wheel encoders and IMU
//! - **Drivetrains**: [`DifferentialDrive`] with tank, arcade, and curvature control
//! - **Motion Profiles**: [`TrapezoidalConstraints`] for smooth acceleration
//! - **Trajectory Following**: [`PurePursuit`] and [`RamseteController`] for path tracking
//! - **PID Control**: [`Pid`] and [`AngularPid`] for closed-loop control
//! - **Feedforward**: [`FeedForward`] and [`ArmFeedForward`] for model-based control
//! - **Type-Safe Units**: [`QLength`], [`QAngle`], [`QTime`] prevent unit errors
//!
//! ## Quick Start
//!
//! ```ignore
//! use kernelvex::*;
//!
//! // Create a differential drivetrain
//! let left_motors = MotorGroup::new(vec![left1, left2]);
//! let right_motors = MotorGroup::new(vec![right1, right2]);
//! let drivetrain = DifferentialDrive::new(left_motors, right_motors, track_width);
//!
//! // Set up odometry
//! let rig = TrackingRig::new(
//! Pose::default(),
//! [horizontal_wheel],
//! [left_wheel, right_wheel],
//! Some(imu),
//! );
//!
//! // Create an odometry chassis for autonomous
//! let chassis = OdomChassis::new(drivetrain, rig, linear_pid, angular_pid);
//!
//! // Drive to a point
//! chassis.shoot(target_pose, constraints).await?;
//! ```
//!
//! ## Module Overview
//!
//! | Module | Description |
//! |--------|-------------|
//! | [`control`] | PID controllers, feedforward, RAMSETE, pure pursuit |
//! | [`dt`] | Drivetrain models and motor groups |
//! | [`motion`] | Motion profiles and trajectories |
//! | [`odom`] | Odometry, pose estimation, tracking wheels |
//! | [`util`] | Type-safe units, logging, solenoid groups |
pub use ;
pub use ;
pub use ;
pub use *;
pub use TrapezoidalConstraints;
pub use ;
pub use ;
pub use ;
pub use *;
pub use SolenoidGroup;
pub use DifferentialDrive;
pub use MotorGroup;
pub use Logger;
pub use ;
pub use ;
pub use PurePursuit;
pub use *;
pub use *;