Skip to content
State estimation and filtering algorithms in Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
estimate Estimate now returns value and its covariance only. Dec 31, 2018
examples Fixed bfgocv simulation. Removed some comments from bfdynamics Apr 8, 2019
kalman Renamed imports to go-estimate. Updated dependencies. Apr 4, 2019
noise Updated and cleaned up dependencies May 6, 2019
particle BF dynamics now runs falling ball simulation Apr 8, 2019
rand Fixed a typo. Jan 28, 2019
sim Initial commit for smoothing implementation Jan 16, 2019
smooth Renamed imports to go-estimate. Updated dependencies. Apr 4, 2019
.gitignore
.travis.yml Fixed Travis config Jan 2, 2019
Gopkg.lock Updated and cleaned up dependencies May 6, 2019
Gopkg.toml Updated and cleaned up dependencies May 6, 2019
LICENSE Initial commit Nov 4, 2018
Makefile Updated and cleaned up dependencies May 6, 2019
README.md
filter.go Fixed crucial bugs. Updated example. Added screenshot. Jan 17, 2019
go.mod Updated and cleaned up dependencies May 6, 2019
go.sum Updated and cleaned up dependencies May 6, 2019

README.md

go-estimate

GoDoc License Travis CI Go Report Card codecov

This package offers a small suite of basic filtering algorithms written in Go. It currently provides the implementations of the following filters and estimators:

In addition it provides an implementation of Rauch–Tung–Striebel smoothing for Kalman filter, which is an optimal Gaussian smoothing algorithm. There are variants for both LKF (Linear Kalman Filter) and EKF (Extended Kalman Filter) implemented in the smooth package. UKF smoothing will be implemented in the future.

Get started

Get the package:

$ go get -u github.com/milosgajdos83/go-estimate

Get dependencies:

$ make godep && make dep

Run unit tests:

$ make test

Examples

The project provides a few example programs which demonstrate basic usage of the go-estimate packages.

You can build the examples by running the following command:

$ make examples

This will create a directory called _build in your current working directory and places the newly built binaries into it. You can now run the programs by executing any of the binaries from the _build directory.

Alternatively, you can also install the examples by either running go install for each of the examples or do it all with one command:

$ make install

Most of the examples are static i.e. they generate a plot which shows how filter estimates new values from the noise measurements.

There are however two examples which use the wonderful gocv. They allow you to watch the filter live in action.

Example of bootstrap filter in action:

Bootstrap filter in action

TODO

Contributing

YES PLEASE!

You can’t perform that action at this time.