Playground for 2D EKF-SLAM as TUI in Rust

Overview

SLAMme.RS

Playground for 2D EKF-SLAM as TUI in Rust

Installation

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh  # install RUST
$ sudo apt install libopenblas-dev # install dependencies for linalg crate

Demo

$ cd slamme.rs
$ cargo run

This brings renders the state of the world to the terminal (must support UTF8). Pressing enter will advance the simulation. Currently the robot's movement is hardcoded to move just slowly to the right.

┌────────────────────────────────┐
│         ·                      │
│ ●     ·····                    │
│       ·····                    │
│      ···⊕···                   │
│       ·····                    │
│       ·····                    │
│         ·                      │
│                                │
│                                │
│                                │
│  ●                             │
│           ●                    │
│                                │
│                                │
│                                │
│                                │
└────────────────────────────────┘
x̂: [9, 3, 0, 0, 1.1639982, 1.0156813, 2.0108616, 9.93173, 11.211845, 10.725612]
P̂: [3.05, 3.05, 0.3, 0.3, 0.058541022, 0.058541022, 0.058541022, 0.058541022, 0.058541022, 0.058541022]
û: [1, 0]

Legend

  • is the most likely position of the robot, i.e. x̂[0..1] or the mean of the belief
  • . is other likely positions of the robot, i.e. inside the standard deviation ellipse of P̂[(0,0),(1,1)] (belief)
  • are obstacles in the world which are measured by the robot with a certain uncertainty
  • is the edge of the world (no obstacle)

State Space

The state x is make up of the 2D robot's position, velocity and the 2D positions of K landmarks (currently still hardcoded in main.rs)

References

TODOs

  • Make the controls configurable in the TUI, e.g. by pressing arrow keys
  • Show the belief of the landmarks, i.e. with next to their actual position in the world
  • Make the world configurable
You might also like...
A TUI for your todos built in Rust with full CLI support.

todui TUI Features This app allows for almost anythig you would need when dealing with todos: Create, edit, and delete tasks Add links to tasks Add du

 TUI interface for LLMs written in Rust  🔥
TUI interface for LLMs written in Rust 🔥

Tenere TUI interface for LLMs written in Rust 📸 Demo 💎 Supported LLMs Only ChatGPT is supported for the moment. But I'm planning to support more mod

HTTP client/libcurl TUI front end in Rust, with request + key storage
HTTP client/libcurl TUI front end in Rust, with request + key storage

Rust TUI HTTP Client with API Key Management This project is still in active development and although it is useable, there may still be bugs and signi

A simple TUI password manager made in Rust.

IronKey IronKey is a Terminal User Interface (TUI) based password generator written in Rust. It leverages the power of Rust's performance and safety f

Api testing tool made with rust to use for api developement (Kind of Tui)
Api testing tool made with rust to use for api developement (Kind of Tui)

Api testing tool made with rust to use for api developement (Kind of Tui) This Rust project provides a simple yet powerful tool for making HTTP reques

Rust no-BS Dead Man's Switch TUI
Rust no-BS Dead Man's Switch TUI

Dead Man's Switch This is a simple implementation of a Dead Man's Switch. Use at your own risk. Check the f****(as in friendly) code. Dead man's switc

A universal load testing framework for Rust, with real-time tui support.
A universal load testing framework for Rust, with real-time tui support.

rlt A Rust Load Testing framework with real-time tui support. rlt provides a simple way to create load test tools in Rust. It is designed to be a univ

A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.
A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.

xplr A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf. [Quickstart] [Features] [Plugins] [Documentation] [Upgrade Guide] [

TUI image viewer
TUI image viewer

Picterm TUI image viewer install $ cargo install picterm or $ git clone https://github.com/ksk001100/picterm $ cd picterm $ cargo install --path . usa

Owner
Thore Goll
Thore Goll
🍥 Access the rust playground right in your terminal

rustycli — ?? Access the rust playground right in your terminal ?? rustycli is a tool, allowing you to access the rust playground right in the termina

Nabeen Tiwaree 29 Jul 31, 2023
Rust TUI client for steamcmd

Steam TUI About Just a simple TUI client for steamcmd. Allows for the graphical launching, updating, and downloading of steam games through a simple t

Dylan Madisetti 599 Jan 9, 2023
Another TUI based system monitor, this time in Rust!

Another TUI based system monitor, this time in Rust!

Caleb Bassi 2.1k Jan 3, 2023
A user-friendly TUI client for Matrix written in Rust!

Konoha A user-friendly TUI client for Matrix written in Rust! Notice: The client is currently not usable and is only hosted on GitHub for version cont

L3af 9 Jan 5, 2022
A tui to test regexes on the rust regex crate

regex-tui Structure src/ ├── app.rs -> holds the states and renders the widgets ├── event.rs -> handles the terminal events (key press, mouse cl

null 1 Oct 21, 2021
Lemurs - A lightweight TUI display/login manager written in Rust 🐒

Lemurs ?? A TUI Display/Login Manager written in Rust WIP: Whilst the project is working and installable, there are still a lot of bugs and limitation

Gijs Burghoorn 136 Jan 1, 2023
Rust TUI library - Clipping region is a set of min/max x/y values applied to the existing region

TinyBit Clipping region is a set of min/max x/y values applied to the existing region A TUI lib This is not yet production ready T O D O TODO: bugs: T

Togglebit 13 May 3, 2022
An easy-to-use TUI crate for Rust, based off of the Elm architecture.

Rustea An easy-to-use TUI crate for Rust, based off of the Elm architecture. This is a re-implementation of Go's Tea, created by TJ Holowaychuk. Featu

Laz 82 Dec 21, 2022
✨Sleek typing tui written in rust

thokr ✨ sleek typing tui written in rust Installation Cargo $ cargo install thokr Docker $ docker run -it coloradocolby/thokr Arch Linux Install thokr

Colby Thomas 440 Dec 30, 2022
Demo Rust Cursive crate for terminal user interface (TUI)

Demo Rust Cursive Demonstration of the Rust programming language and Cursvie crate for terminal user interface (TUI). Setup Create: cargo new demo Add

Joel Parker Henderson 5 Dec 27, 2022