AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
kornia-slam: Rust 기반 시각-관성 SLAM, 카메라 추적 및 매핑
kornia-slam: visual-inertial SLAM in Rust, built on kornia-rs. Tracks a camera, stereo pair or stereo + IMU and maps the space around it, standalone or as Copper tasks.
개발 도구Rust · ShellGitHub @kornia온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Real-time visual-inertial SLAM in Rust, built on kornia-rs.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Real-time visual-inertial SLAM in Rust, built on kornia-rs.
v0.1 — early release. The API will change between minor versions.
EuRoC MH_01_easy
EuRoC V1_01_easy
Stereo + IMU at 2× speed. Each shows the map and trajectory, the left camera with its ORB
keypoints, and a follow view.
• Monocular, stereo, and visual-inertial ORB SLAM
• Local bundle adjustment, including visual-inertial BA
• Place recognition (DBoW2) and loop closure with pose-graph optimization
• Sources: EuRoC, Hilti, MCAP, OAK-D, UVC webcams
• Terminal UI, Rerun streaming, ATE/RPE evaluation
See ROADMAP.md for what's next.README 전문 보기 ↗Real-time visual-inertial SLAM in Rust, built on kornia-rs.
v0.1 — early release. The API will change between minor versions.
Stereo + IMU at 2× speed. Each shows the map and trajectory, the left camera with its ORB keypoints, and a follow view.
See ROADMAP.md for what's next.
Linux x86_64 and aarch64 builds need glibc 2.35+ (Ubuntu 22.04+, Jetson JetPack 6):
TARGET=x86_64-unknown-linux-gnu # or aarch64-unknown-linux-gnu
NAME=kornia-slam-v0.1.0-$TARGET
curl -L --remote-name-all https://github.com/kornia/kornia-slam/releases/download/v0.1.0/$NAME.tar.gz{,.sha256}
sha256sum -c $NAME.tar.gz.sha256
tar -xzf $NAME.tar.gz
# stereo + IMU on an EuRoC sequence, with evaluation against ground truth
./$NAME/kornia-slam euroc --data /path/to/MH_01_easy --stereo --imu --evaluate
The archive holds the binary, README.md, CHANGELOG.md and LICENSE.
The v0.1.0 binary predates run files: it takes a source subcommand and flags
(kornia-slam --help, kornia-slam euroc --help) rather than the --config
run files described below. Global options go before the subcommand, e.g. loop
closing with the vocabulary from Quick start:
kornia-slam --vocab /path/to/ORBvoc.txt --apply-pgo euroc ….
It is built with the default features: Rerun streaming (--rerun-stream, which
needs the rerun 0.29.2 viewer on PATH, e.g. pip install rerun-sdk==0.29.2)
is in, live OAK-D and UVC cameras are not. Build from source with
--features oakd or --features uvc for those; OAK-D has extra prerequisites,
see apps/kornia-slam-app.
The app needs Rust 1.91+ (the libraries 1.89+). Build and run with Cargo as in Quick start, or with Pixi, which provides the toolchain:
pixi run rust-run -- --config configs/euroc.ron
pixi run rust-lint
pixi run rust-test
Download a EuRoC
sequence (ASL format) to data/euroc/MH_01_easy, or edit the data path in
the run file, then:
# monocular
cargo run --release -p kornia-slam-app -- --config configs/euroc.ron
# stereo + IMU with loop closing, with evaluation against ground truth
cargo run --release -p kornia-slam-app -- --config configs/euroc-stereo-imu-loop.ron --evaluate
Loop closing needs ORB-SLAM3's vocabulary: extract Vocabulary/ORBvoc.txt.tar.gz
from ORB-SLAM3 to weights/ORBvoc.txt.
A run file names the source and the system to run on it; see apps/kornia-slam-app.
More sources and options: apps/kornia-slam-app.
A system configuration and the source's calibrated rig build a SlamSystem,
which then takes IMU samples and images as they arrive and returns poses. Feature extraction,
stereo matching and frame history are the system's; sources supply
synchronized, calibrated (and, for stereo, rectified) images.
use kornia_slam::{CameraSelection, SensorSelection, SlamSystem, SystemConfig};
let config = SystemConfig {
sensors: SensorSelection { cameras: CameraSelection::Stereo, imu: true },
..SystemConfig::default()
};
let mut system = SlamSystem::build(config, rig)?; // rig: kornia_slam::SensorRig
for (idx, frame) in frames.enumerate() {
system.process_imu(&frame.imu);
let result = system.process_stereo(frame.timestamp_sec, &frame.left, &frame.right)?;
println!("{idx}: {:?} {:?}", result.status, result.pose_world_to_cam);
}
With the serde feature, SystemConfig::from_ron_file reads the same settings
from a RON file, the system section of a run file.
With Pixi, which sets up the toolchain for you:
pixi run rust-lint # fmt + clippy + check
pixi run rust-test # workspace tests
pixi shell # drop into the environment
Or with a Rust toolchain (1.91+; the library crates alone need 1.89) installed yourself:
cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test --workspace
Kornia-SLAM: An End-to-End Visual-Inertial SLAM System in Rust
Christie J. Purackal, Edgar Riba, Astik Srivastava.
Rust for Robotics workshop at IROS 2026 (preprint).
Paper (PDF) · Poster (PDF)
The paper's EuRoC results come from the August 2026 code, before v0.1.0. To cite kornia-slam, use GitHub's "Cite this repository" button, which reads CITATION.cff.
Apache-2.0