A C++ library for real-time metric-semantic SLAM, building semantically annotated 3D meshes from camera and IMU data.
Kimera is a C++ library for real-time metric-semantic simultaneous localization and mapping (SLAM). It uses camera images and inertial data to build semantically annotated 3D meshes of environments, enabling robots to perceive both geometry and object semantics. The library is modular, ROS-enabled, and designed to run on CPUs.
Robotics researchers, autonomous systems engineers, and computer vision developers working on SLAM, spatial perception, or semantic mapping for robots, drones, or augmented reality applications.
Developers choose Kimera for its real-time metric-semantic capabilities, modular design, and CPU-only operation, providing an open-source alternative to proprietary SLAM systems with integrated semantic understanding and ROS compatibility.
Index repo for Kimera code
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Fuses visual-inertial data to generate semantically annotated 3D meshes in real-time, enabling robots to understand both geometry and object semantics simultaneously, as shown in the provided GIFs.
Comprises independent modules like Kimera-VIO, RPGO, Mesher, and Semantics, allowing users to customize or replace components for specific SLAM pipelines.
Designed to run on standard CPUs without GPU hardware, making it accessible for embedded systems or cost-sensitive deployments, as emphasized in the README.
Fully compatible with the Robot Operating System, facilitating easy integration into existing robotic workflows and leveraging ROS tools.
Despite claims of ease, the modular setup requires installing multiple separate repositories (e.g., Kimera-VIO, Kimera-RPGO), which can be time-consuming and error-prone.
CPU-only operation may restrict processing speed and the ability to handle high-resolution inputs or complex semantic models compared to GPU-accelerated alternatives.
Targeted at research and advanced applications, it requires familiarity with SLAM concepts, C++, and ROS, with less beginner-friendly documentation or tutorials.