Expand description
§openpilot
openpilot
is a Rust crate that provides functionalities related to autonomous driving and sensor fusion.
This crate includes modules for working with sensor readings, simple sensors, GPS sensors, and an implementation
of a 1D Extended Kalman Filter (EKF). These components are designed to be used in the development of autonomous
vehicle systems and sensor fusion applications.
§Modules
openpilot
is organized into several modules, each serving a specific purpose:
-
SensorReading: Represents a sensor reading with observed data, observation model, and covariance matrix.
-
SimpleSensor: Represents a simple sensor with an observation model and covariance matrix.
-
GPS: Represents a GPS sensor with specific parameters for position calculations.
-
EKF Trait: Defines a trait for Extended Kalman Filter (EKF) functionality.
-
FastEKF1D: Represents a fast 1D Extended Kalman Filter (EKF) implementation.
§Usage
To use the openpilot
crate in your project, add the following line to your Cargo.toml
file:
[dependencies]
openpilot = "0.0.4"
Then, you can import the necessary modules and use the provided functionalities in your code.
§Example
use openpilot::common::ext_kal_fltr::{EKF, FastEKF1D, SensorReading};
use ndarray::{arr2, arr1};
// Create a FastEKF1D instance
let mut fast_ekf_1d = FastEKF1D::new(0.1, 0.01, 0.001);
// Create a sensor reading
let reading = SensorReading::new(arr2(&[[1.0]]), arr2(&[[0.1]]), arr2(&[[0.01]]));
// Update the FastEKF1D with the sensor reading
fast_ekf_1d.update_scalar(&reading);
// Access the updated state and covariance
let updated_state = fast_ekf_1d.state;
let updated_covar = fast_ekf_1d.covar;
// Perform other operations as needed
// ...
§Contributing
Contributions and feedback are welcome! If you’d like to contribute, report an issue, or suggest an enhancement, please engage with the project on GitHub. Your contributions help improve this crate for the community.
§License
This project is licensed under the MIT License.