![]() |
MoveG 1.0.0
A modern C++ library for Robotics
|
A modern C++ library for 3D rotations, poses, and trajectories with comprehensive tooling. MoveG is designed for robotics and computer vision applications, providing a robust foundation for spatial transformations with strong type safety and error checking.
Provides representation and operations for 3D rotations using quaternions, rotation matrices, Euler angles, and axis-angle representations. Supports conversion between formats, composition of rotations, and angular velocity transformations.
Builds on the rotation library to represent 6-DOF poses (position and orientation). Supports transformation composition, inverse operations, and coordinate frame conversions with proper error handling.
Will provide capabilities for motion planning and trajectory generation.
-DENABLE_TESTING=ON/OFF: Enable/disable unit tests (default: ON)-DENABLE_COVERAGE=ON/OFF: Enable code coverage analysis (default: ON)-DENABLE_CLANG_TIDY=ON/OFF: Enable static analysis (default: ON)-DENABLE_SANITIZE_ADDR=ON/OFF: Enable address sanitizer (default: ON)-DENABLE_SANITIZE_UNDEF=ON/OFF: Enable undefined behavior sanitizer (default: ON)-DENABLE_SANITIZE_LEAK=ON/OFF: Enable memory leak sanitizer (default: ON)-DENABLE_LTO=ON/OFF: Enable link-time optimization (default: OFF, auto-ON for Release)-DENABLE_WARNINGS_AS_ERRORS=ON/OFF: Treat warnings as errors (default: OFF)-DUSE_CPM=ON/OFF: Use CPM for dependency management (default: ON)This project includes optimized configuration for VS Code:
Alt+S to delete CMake cache and reconfiguresrc/MoveG_Lib/ - Core library implementationrotation_lib.{h,cpp} - 3D rotation managementpose_lib.{h,cpp} - Pose (position + orientation) handlingtraj_lib.{h,cpp} - Trajectory planning (in development)app/ - Example applicationspose_example.cpp - Demonstration of pose library featuresrotation_example.cpp - Demonstration of rotation library featurestests/ - Unit tests with Catch2test_Pose.cpp - Comprehensive tests for pose functionalitytest_Rotation.cpp - Comprehensive tests for rotation functionalitycmake/ - Build system modulesCodeCoverage.cmake - Code coverage configurationSanitizer.cmake - Memory and behavior sanitizersLTO.cmake - Link-time optimizationdocs/ - Documentationtools/ - Development helper scriptsMoveG uses Eigen3 as its primary dependency for linear algebra and geometry operations. The required version is automatically installed via CPM during the build process.
Apache License 2.0
Contributions are welcome. Please format your code with clang-format and ensure all tests pass before submitting pull requests.