Nestbox is a networked consensus coordinate system alignment tool. It provides a framework for aligning and optimizing multiple 3D coordinate systems across devices based on shared measurements and observations.
Nestbox is designed to solve the problem of aligning multiple coordinate systems in a distributed environment. It's particularly useful in scenarios where different sensors or systems are observing the same features but from different perspectives or with different levels of uncertainty.
-
Aligner: The core optimization engine that aligns multiple coordinate systems based on shared observations.
-
Coordinate Systems: Representations of different frames of reference, each with its own origin and orientation.
-
Measurements: Data points observed by devices, including position and uncertainty information.
-
Features: Identifiable points or objects in space that can be observed across multiple coordinate systems.
-
Daemon: A background process that manages the alignment process and handles communication between different parts of the system.
-
API: Interfaces for interacting with the Nestbox system, allowing for the creation of coordinate systems, addition of measurements, and retrieval of alignment results.
-
Visualizer: A 3D visualization tool for displaying the state of the system, including the alignments of coordinate systems and the measurements of shared features.
-
Simulator: A lightweight toolkit for creating uncertain measurement data, including an Environment and different types of Observers like cameras or 3D trackers, useful for setting up known geometry and testing.
- Create multiple coordinate systems, each representing a different frame of reference.
- Define features in the environment that can be observed in multiple coordinate systems.
- Feed measurements of shared features into the system, including position and uncertainty information.
- The aligner optimizes the relative positions and orientations of the coordinate systems to best fit all observations.
- Visualize the results to see how the different coordinate systems align.
- Use optimized numerical transformations between the aligned coordinate systems in your application.
python/: Contains the core Python implementation of Nestbox.csharp/: C# implementation for cross-platform support.protos/: Protocol buffer definitions for data structures.desktop/: Desktop application for Nestbox config, monitoring, and visualization.visualizer/: Browser-based visualization.ui-core/: Shared UI components and 3D visualization tools used by both web and desktop versions.docs/: Documentation and notes.
Nestbox is currently in development. The system is not yet ready for production use. The optimization algorithms, API, and visualization capabilities are being refined and expanded.
As Nestbox is still in active development, we welcome contributions and feedback. Please feel free to open issues for bugs or feature requests.