All notable changes to RobotLib will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Robot Simulation & Visualization System
units_simulation.h- 2D physics simulation for differential drive robotsunits_visualization.h- Real-time SDL2-based visualization- Three simulation examples: basic obstacle avoidance, PID navigation, line follower
- Complete simulation documentation and build system (CMake + Makefile)
- Zero overhead - completely optional, does not affect embedded/production code
-
Clean Output Utilities (
units_output.h)- Cross-platform output API:
print(),println(),printHeader() - Works on Arduino (Serial) and desktop (std::cout)
- Automatic platform detection
- Variadic template support for easy output
- Cross-platform output API:
-
Platform-Specific Robot Examples
- Arduino IDE examples (
.inoformat) - PlatformIO examples with
platformio.ini - ESP32-specific examples with WiFi/Bluetooth
- Teensy 4.x examples with high-speed peripherals
- STM32 examples with HAL integration
- Desktop C++ examples
- Arduino IDE examples (
-
Documentation
- AI-assisted development disclaimer (DISCLAIMER.md)
- Comprehensive simulation guide (simulation/README.md)
- Standalone repository structure
-
All 20+ examples refactored to use clean output utilities
- Removed
std::coutclutter (1,505 occurrences → 0) - Improved code readability
- Better cross-platform compatibility
- Removed
-
Library structure optimized for standalone repository
- Added
library.jsonfor PlatformIO - Updated GitHub Actions CI/CD workflows
- Reorganized documentation
- Added
- C++11 constexpr compatibility issues in
units_physics.h - Clangd C++14 warnings with editor configurations (.clangd, .editorconfig)
- Include path issues for various platforms
- Complete robot control system
- PID controllers with anti-windup
- Sensor fusion algorithms
- Path planning utilities
- Full FRC competition robot examples
- Improved header-only architecture
- Better constexpr support
- Initial public release
- Core units library (length, velocity, acceleration, angle)
- Physics units (force, torque, energy, power)
- Robotics units (motor control, odometry, kinematics)
- Fluent API for readable code
- 15+ comprehensive examples
RobotLib follows Semantic Versioning:
- MAJOR version: Incompatible API changes
- MINOR version: New functionality (backward-compatible)
- PATCH version: Bug fixes (backward-compatible)
- Update version in
library.json - Update this CHANGELOG.md
- Create git tag:
git tag -a v2.2.0 -m "Release v2.2.0" - Push tag:
git push origin v2.2.0 - GitHub Actions automatically creates release