|
Ocean
|
The Ocean SLAM Tracking Library provides a monocular visual SLAM implementation for real-time camera tracking and 3D environment reconstruction, optimized for mobile AR/VR applications. More...
Data Structures | |
| class | Ocean::Tracking::SLAM::BackgroundTask |
| This class implements a task which runs in the background while the caller is able to wait for the task to be finished. More... | |
| class | Ocean::Tracking::SLAM::CameraPose |
| This class holds the camera pose of a camera in relation to the world. More... | |
| class | Ocean::Tracking::SLAM::CameraPoses |
| This class implements a container for camera poses. More... | |
| class | Ocean::Tracking::SLAM::FramePyramidManager |
| This class manages a pool of frame pyramids for efficient reuse. More... | |
| class | Ocean::Tracking::SLAM::Gravities |
| This class implements a container for gravity vectors associated with frame indices. More... | |
| class | Ocean::Tracking::SLAM::LocalizedObjectPoint |
| This class implements a localized 3D object point. More... | |
| class | Ocean::Tracking::SLAM::LockManager |
| This class implements a singleton manager for collecting and reporting lock timing measurements. More... | |
| class | Ocean::Tracking::SLAM::LockTimer< tEnable > |
| This class implements a helper for timing lock acquisition and hold durations. More... | |
| class | Ocean::Tracking::SLAM::LockTimer< false > |
| Specialization of LockTimer for disabled timing. More... | |
| class | Ocean::Tracking::SLAM::ReadLock |
| This class implements a scoped read lock for a shared mutex. More... | |
| class | Ocean::Tracking::SLAM::WriteLock |
| This class implements a scoped write lock for a shared mutex. More... | |
| class | Ocean::Tracking::SLAM::Observation |
| This class implements an observation of a 3D feature point in a camera frame. More... | |
| class | Ocean::Tracking::SLAM::OccupancyArray |
| This class implements an occupancy array allowing to keep track of occupied and unoccupied bins in a camera image. More... | |
| class | Ocean::Tracking::SLAM::PointTrack |
| This class implements a point track which stores continuous 2D observations of a 3D object point over consecutive frames. More... | |
| class | Ocean::Tracking::SLAM::PoseCorrespondences |
| This class holds 2D-3D point correspondences for camera pose estimation. More... | |
| class | Ocean::Tracking::SLAM::SLAMDebugElements |
| The class extends DebugElements to provide visual debugging output for various SLAM components such as occupancy arrays, tracked image points, object points, and overall tracking results. More... | |
| class | Ocean::Tracking::SLAM::Tracker |
| This class implements the base class for all SLAM trackers. More... | |
| class | Ocean::Tracking::SLAM::TrackerMono |
| This class implements a monocular SLAM tracker. More... | |
| class | Ocean::Tracking::SLAM::TrackingCorrespondences |
| This class holds 2D-2D point correspondences for frame-to-frame tracking. More... | |
| class | Ocean::Tracking::SLAM::Utilities |
| This class implements utility functions for SLAM. More... | |
Typedefs | |
| using | Ocean::Tracking::SLAM::SharedCameraPose = std::shared_ptr< CameraPose > |
| Definition of a shared pointer holding a CameraPose object. | |
| using | Ocean::Tracking::SLAM::LocalizedObjectPointMap = std::unordered_map< Index32, LocalizedObjectPoint > |
| Definition of an unordered map mapping object point ids to localized object points. | |
| using | Ocean::Tracking::SLAM::Mutex = std::shared_mutex |
| Definition of a mutex supporting read and write locks. | |
| using | Ocean::Tracking::SLAM::Observations = std::vector< Observation > |
| Definition of a vector holding observations. | |
| using | Ocean::Tracking::SLAM::PointTrackMap = std::unordered_map< Index32, PointTrack > |
| Definition of an unordered map mapping object point ids to point tracks. | |
The Ocean SLAM Tracking Library provides a monocular visual SLAM implementation for real-time camera tracking and 3D environment reconstruction, optimized for mobile AR/VR applications.
The pipeline detects and tracks Harris corner features across image pyramids, estimates camera poses using P3P+RANSAC with optional IMU gravity constraints, and builds a 3D map through multi-view triangulation with background bundle adjustment. Core classes include TrackerMono (main tracker), LocalizedObjectPoint (3D map points with FREAK descriptors), CameraPoses (thread-safe pose storage), and TrackingCorrespondences (frame-to-frame feature tracking).
| using Ocean::Tracking::SLAM::LocalizedObjectPointMap = typedef std::unordered_map<Index32, LocalizedObjectPoint> |
Definition of an unordered map mapping object point ids to localized object points.
| using Ocean::Tracking::SLAM::Mutex = typedef std::shared_mutex |
Definition of a mutex supporting read and write locks.
The mutex is not recursive.
This mutex allows multiple concurrent read locks (shared access) but only one write lock (exclusive access). Use ReadLock for read-only operations and WriteLock when modifying shared data.
Example usage:
| using Ocean::Tracking::SLAM::Observations = typedef std::vector<Observation> |
Definition of a vector holding observations.
| using Ocean::Tracking::SLAM::PointTrackMap = typedef std::unordered_map<Index32, PointTrack> |
Definition of an unordered map mapping object point ids to point tracks.
| using Ocean::Tracking::SLAM::SharedCameraPose = typedef std::shared_ptr<CameraPose> |
Definition of a shared pointer holding a CameraPose object.