Skip to main content

rust_robotics_control/
lib.rs

1#![forbid(unsafe_code)]
2//! Control and path tracking algorithms for the RustRobotics workspace.
3
4pub mod experiments;
5
6pub mod admm_consensus;
7pub mod arm_obstacle_navigation;
8pub mod behavior_tree;
9pub mod cbf_safety_filter;
10pub mod cgmres_nmpc;
11pub mod ddp;
12pub mod drone_3d_trajectory;
13pub mod lqr_control;
14pub mod lqr_speed_steer_control;
15pub mod lqr_steer_control;
16pub mod minimum_snap_trajectory;
17pub mod model_predictive_trajectory_generator;
18pub mod move_to_pose;
19pub mod mpc;
20pub mod mpc_control;
21pub mod mppi;
22pub mod n_joint_arm_3d;
23pub mod n_joint_arm_control;
24pub mod person_following_mppi;
25pub mod pure_pursuit;
26pub mod pusher_slider;
27pub mod racing_mppi_3d;
28pub mod racing_mppi_motor;
29pub mod racing_mppi_powertrain;
30pub mod racing_mppi_quadrotor;
31pub mod rear_wheel_feedback;
32pub mod rocket_landing;
33pub mod rrt_star_seven_joint_arm;
34pub mod stanley_controller;
35pub mod state_machine;
36pub mod two_joint_arm_control;
37
38pub mod backstepping_control;
39pub mod feedback_linearization;
40pub mod ilqr;
41pub mod pid_controller;
42pub mod sliding_mode_control;
43
44// Re-exports
45pub use admm_consensus::{
46    solve_formation_consensus, solve_graph_consensus, solve_horizon_consensus, AdmmConfig,
47    AdmmReport, AgentSpec, AgentTrajectory, GraphConsensusReport, HorizonConsensusReport,
48};
49pub use behavior_tree::{BehaviorStatus, BehaviorTree, Blackboard};
50pub use cbf_safety_filter::{
51    simulate_cbf_navigation, CbfConvexObstacle2D, CbfFilterResult, CbfHalfspace2D, CbfNavConfig,
52    CbfNavReport, CbfSafetyFilter,
53};
54pub use lqr_control::InvertedPendulumLQR;
55pub use lqr_steer_control::{LQRSteerConfig, LQRSteerController};
56pub use move_to_pose::{MoveToPoseConfig, MoveToPoseController};
57pub use mppi::{
58    MppiCircularObstacle2D, MppiConfig, MppiControl2D, MppiController2D, MppiGateRace2D,
59    MppiGateRaceReport2D, MppiMovingObstacle2D, MppiPlan2D, MppiRacingGate2D,
60    MppiSamplingDiagnostics2D, MppiState2D, MppiTerminalValueGrid2D,
61    MppiTerminalValueReplayBuffer2D, MppiTerminalValueReplayUpdateReport2D,
62    MppiTerminalValueUpdateConfig2D, MppiTerminalValueUpdateReport2D, MppiTerminalValueUpdater2D,
63    MppiTrackProjection2D, MppiWaypointTrack2D,
64};
65pub use person_following_mppi::{
66    MppiPersonFollowingCandidate2D, MppiPersonFollowingConfig2D, MppiPersonFollowingSampler2D,
67    PersonFollowingMetricsAccumulator2D, PersonFollowingMetricsConfig2D,
68    PersonFollowingRolloutMetrics2D,
69};
70pub use pure_pursuit::{PurePursuitConfig, PurePursuitController};
71pub use pusher_slider::{
72    simulate_multi_push, simulate_push, simulate_push_with_obstacles, ContactMode, MultiPushReport,
73    PushReport, PusherCommand, PusherMppiConfig, PusherMppiPlan, PusherSliderMppiController,
74    PusherSliderParams, SliderState,
75};
76pub use racing_mppi_3d::{
77    simulate_lap_race, RacingDroneControl3D, RacingDroneDynamics3D, RacingDroneState3D,
78    RacingGateLap3D, RacingGatePlane3D, RacingLapReport3D, RacingMppi3DConfig,
79    RacingMppi3DController, RacingMppi3DPlan,
80};
81pub use racing_mppi_motor::{
82    simulate_motor_race, MotorCommand, MotorMppiConfig, MotorMppiController, MotorMppiPlan,
83    MotorQuadParams, MotorQuadState, MotorRacingLapReport,
84};
85pub use racing_mppi_powertrain::{
86    simulate_powertrain_race, simulate_powertrain_race_aware, simulate_powertrain_race_budgeted,
87    ChargeBudget, PowertrainLapReport, PowertrainMppiController, PowertrainParams, PowertrainState,
88};
89pub use racing_mppi_quadrotor::{
90    simulate_quadrotor_race, QuadrotorControl, QuadrotorLapReport, QuadrotorMppiConfig,
91    QuadrotorMppiController, QuadrotorMppiPlan, QuadrotorParams, QuadrotorState,
92};
93pub use rear_wheel_feedback::{RearWheelFeedbackConfig, RearWheelFeedbackController};
94pub use stanley_controller::{StanleyConfig, StanleyController};
95pub use state_machine::StateMachine;
96pub use two_joint_arm_control::TwoJointArm;