{"id":32564186,"url":"https://github.com/cirquit/clara","last_synced_at":"2025-10-29T03:55:51.976Z","repository":{"id":80313606,"uuid":"154718327","full_name":"cirquit/clara","owner":"cirquit","description":"A SLAM algorithm for the Formula Student Driverless competition","archived":false,"fork":false,"pushed_at":"2019-04-29T13:16:19.000Z","size":64953,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-10T03:01:08.244Z","etag":null,"topics":["bundle-adjustment","clustering","cpp","cpp14","embedded","formula-student","kalman-filter","slam"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cirquit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-25T18:25:11.000Z","updated_at":"2024-08-05T16:39:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"00ebfc2b-d287-45c4-bcf7-88955a659e9f","html_url":"https://github.com/cirquit/clara","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cirquit/clara","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cirquit%2Fclara","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cirquit%2Fclara/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cirquit%2Fclara/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cirquit%2Fclara/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cirquit","download_url":"https://codeload.github.com/cirquit/clara/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cirquit%2Fclara/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281556917,"owners_count":26521572,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bundle-adjustment","clustering","cpp","cpp14","embedded","formula-student","kalman-filter","slam"],"created_at":"2025-10-29T03:55:26.462Z","updated_at":"2025-10-29T03:55:51.971Z","avatar_url":"https://github.com/cirquit.png","language":"C++","readme":"# CLARA\n### Cone-based Localization for Autonomous Racing Applications\n\nThe version 1.0 of this SLAM algorithm was designed by [Alexander Isenko](https://github.com/cirquit) for the Formula Student competition 2018 for the UAS Munich team - [municHMotorsport](https://munichmotorsport.de).\n\nThe corresponding master thesis of the LMU Munich can be found [here](https://github.com/cirquit/master-thesis).\n\nIf you see this on github, it's only a mirror of our internal municHMotorsport gitlab repository.\n\n---\n\n#### General Information\n\nWe designed this algorithm with performance, future proofness and minimal requirements in mind. Everything is header only besides our own [Extended Kalman Filter](https://github.com/cirquit/ekf) implementation which has to be installed globally.\n\nIt's a c++14 code base with doxygen and inline comments for almost every class, function or member.\n\nAlso it's **`virtual`**, **`new`**, **`delete`** and exception **free**.\nWe use **only** static allocation for every component to get the `O(1)` runtime complexity.\n\nWe purposefully implemented everything besides the matrix multiplication in the EKF by ourselves to get a deep dive in the algorithms which allows a full performance analysis and possible future improvements without waiting for maintainer outside of the team.\n\n---\n\n#### Interface\n\nTODO\n\n---\n\n#### Build\n\n[Install our Kalman Filter library (v1.0)](https://github.com/cirquit/ekf).\n[Install our Connector library (v1.0)](https://github.com/cirquit/connector).\n\n```bash\n\u003e git clone https://github.com/cirquit/clara\n\u003e mkdir build \u0026\u0026 cd build\n\u003e cmake .. -DENABLE_OPTIMIZATIONS_CLARA=ON\n\u003e make -j4\n```\n\nTo enable tests:\n\n```bash\n\u003e cmake .. -DENABLE_TESTS_CLARA=ON\n```\n\nYou can enable critical only debugging (`=1`), all (`=2`) or none (`=0`) with:\n\n```bash\n\u003e cmake .. -DENABLE_DEBUGGING_LVL_CLARA=2\n```\n---\n\n#### Installation\n\nYou can easily reference the headers by hand and link to the `clara` library in your `CMakeLists.txt`. If you want a system-level installation just type `make install` in your `build` directory.\n\nIf you add the following to your own `CMakeLists.txt`:\n\n```cmake\nfind_package(clara version 1.0 REQUIRED)\ntarget_link_libraries(${your-awesome-executable} ${your-awesome-library} clara )\n```\n\nyou can reference the library by\n\n```c++\n#include \u003cclara-1.0/clara.h\u003e\n```\n\n---\n\n#### Source Code documentation\n\nTo create documentation install doxygen an run in the source directory:\n\n```bash\n\u003e doxygen doxygen.config\n\u003e cd documentation/latex\n\u003e make\n```\n\nNow you can open the PDF at `documentation/latex/refman.pdf` or the static HTML at `documentation/html/index.html` in your favourite browser.\n\n---\n\n#### Playground\n\nWe have multiple ipython notebooks and plotting scripts which we used throughout the season which can be found in [here](playground). Please read the [README](playground/README.md) for the build tutorial.\n\n---\n\n#### Dependencies\n\n* [ekf](https://github.com/cirquit/ekf)\n    - our `O(1)` extended kalman filter, install the same way as this library (see its [README.md](https://github.com/cirquit/ekf/README.md))\n* [connector](https://github.com/cirquit/connector)\n    - our own C++ TCP/UDP wrapper, install the same way as this library (see its [README.md](https://github.com/cirquit/connector/README.md))\n* [fast-cpp-csv-parser](https://github.com/ben-strasser/fast-cpp-csv-parser)\n    - header only\n    - used for tests\n    - already included in the source, no need to download anything\n* [catch](https://github.com/catchorg/Catch2)\n    - header only\n    - used for tests as this is a testing framework\n    - already included in the source, no need to download anything\n* [blaze](https://bitbucket.org/blaze-lib/blaze/overview)\n    - we currently don't have this dependecy, but we already prepared the `FindLAPACK.cmake` and `FindBLAS.cmake` to add it if you want to extend it with anything matrix related. Otherwise remove the linking in `libraries/CMakeLists.txt`\n```bash\n\u003e wget https://bitbucket.org/blaze-lib/blaze/downloads/blaze-3.3.tar.gz\n\u003e tar -xvf blaze-3.3.tar.gz\n\u003e sudo apt-get install libopenblas-dev\n\u003e sudo apt-get install libboost-all-dev\n\u003e cmake -DCMAKE_INSTALL_PREFIX=/usr/local/\n\u003e sudo make install\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirquit%2Fclara","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcirquit%2Fclara","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirquit%2Fclara/lists"}