{"id":13781308,"url":"https://github.com/simondlevy/TinyEKF","last_synced_at":"2025-05-11T14:34:59.011Z","repository":{"id":40336081,"uuid":"44352444","full_name":"simondlevy/TinyEKF","owner":"simondlevy","description":"Lightweight C/C++ Extended Kalman Filter with Python for prototyping","archived":false,"fork":false,"pushed_at":"2024-05-17T22:14:00.000Z","size":2499,"stargazers_count":1012,"open_issues_count":1,"forks_count":333,"subscribers_count":60,"default_branch":"master","last_synced_at":"2024-11-17T16:42:36.916Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simondlevy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-16T00:08:38.000Z","updated_at":"2024-11-16T10:26:59.000Z","dependencies_parsed_at":"2024-01-15T20:54:26.990Z","dependency_job_id":"961f31cd-358e-474b-bebf-0359aeec5c05","html_url":"https://github.com/simondlevy/TinyEKF","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simondlevy%2FTinyEKF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simondlevy%2FTinyEKF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simondlevy%2FTinyEKF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simondlevy%2FTinyEKF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simondlevy","download_url":"https://codeload.github.com/simondlevy/TinyEKF/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253580368,"owners_count":21930932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:01:24.758Z","updated_at":"2025-05-11T14:34:58.520Z","avatar_url":"https://github.com/simondlevy.png","language":"Python","readme":"# TinyEKF: Lightweight C/C++ Extended Kalman Filter with Python for prototyping\n\n\u003ca href=\"examples/SensorFusion/SensorFusion.ino\"\u003e\u003cimg src=\"media/barotemp2.jpg\" width=750\u003e\u003c/a\u003e\n\u003ca href=\"python/altitude_fuser.py\"\u003e\u003cimg src=\"media/altitude.png\" width=1000\u003e\u003c/a\u003e\n\nTinyEKF is a simple, header-only C/C++ implementation of the\n[Extended Kalman Filter](https://simondlevy.github.io/ekf-tutorial/) \nthat is general enough to use on different projects.  It supports both single- and\ndouble-precision floating-point computation.  In order to make it practical for\nrunning on Arduino, STM32, and other microcontrollers, it uses static\n(compile-time) memory allocation (no \"new\" or \"malloc\").  The **examples**\nfolder includes both a \"pure C\" example from the literature, as well as an\nArduino example of sensor fusion.  The **python** folder includes a Python\nclass that you can use to prototype your EKF before implementing it in C or C++.\n\nArduino users can simply install or drag the whole TinyEKF folder into their Arduino libraries folder. \nThe **examples/SensorFusion** folder contains a little sensor fusion example using a \n[BMP180 barometer](https://www.sparkfun.com/products/11824) and \n[LM35 temperature sensor](http://www.robotshop.com/en/dfrobot-lm35-linear-temperature-sensor.html).\nI have run this example on an Arduino Uno and a Teensy 3.2. The BMP180, being an I^2C sensor, should be connected\nto pins 4 (SDA) and 5 (SCL) of the Uno, or pins 18 (SDA) and 19 (SCL) of the Teensy.  For other Arduino boards,\nconsult the [documentation](https://www.arduino.cc/en/Reference/Wire) on the Wire library. The analog output\nfrom the LM35 should go to the A0 pin of your Arduino or Teensy.\n\nIn addition to the class definition, the **python** folder has an example of mouse tracking, using OpenCV. \nSo you will have to install OpenCV to run this example. There is also a sensor-fusion example in this folder.\n","funding_links":[],"categories":["Libraries","Code"],"sub_categories":["C"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimondlevy%2FTinyEKF","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimondlevy%2FTinyEKF","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimondlevy%2FTinyEKF/lists"}