Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.0] - 2024-12-XX
Added
Core Features
- Complete Elixir library for controlling Waveshare RoArm robot arms
- Support for RoArm M2, M2-Pro, M3, and M3-Pro models
- Registry-based multi-robot support
- UART serial communication with Circuits.UART
Robot Control
- High-level movement functions (
home/1,move_joints/2,move_to_position/2) - Position and joint angle control (degrees and radians)
- LED control with RGB support
- Torque control for manual teaching
- Emergency stop and safety features
Command System
- 3-layer command architecture (high-level → validation → raw communication)
- Comprehensive command validation with
Roarm.CommandValidator - Automatic parameter range clamping
- Symbolic value support (
:min,:mid,:max) - 25+ T-command types with full parameter schemas
Teaching and Missions
- Drag teaching mode for recording manual movements
- Mission recording and playback system
- Step-by-step movement recording
- Configurable playback speed and repetition
Advanced Features
- PID parameter tuning
- Dynamic force adaptation for compliant control
- Gripper control (M3 models)
- Position feedback and joint state monitoring
Multi-Robot Support
- Registry-based process naming
- Simultaneous control of multiple robot arms
- Independent communication channels
- Per-robot configuration and state management
Testing and Utilities
- Comprehensive test suite (74 tests)
- Demo and debug utilities
- Interactive control functions
- Hardware connection testing
Documentation
- Complete API documentation with ExDoc
- Getting Started guide
- Hardware Setup guide
- Command Reference guide
- Code examples and troubleshooting
Architecture
Modules
Roarm.Robot- High-level robot control GenServerRoarm.Communication- UART communication GenServerRoarm.CommandValidator- Command validation and schemasRoarm.Demo- Interactive demo functionsRoarm.Debug- Debugging and diagnostics
Function Signatures
- Consistent
function_name(params, opts \\ [])pattern :server_nameoption for multi-robot targeting:timeoutoptions for all operations- Backwards compatible defaults
Technical Details
Dependencies
circuits_uart ~> 1.5- Serial communicationjason ~> 1.4- JSON encoding/decodingex_doc ~> 0.34- Documentation generation (dev only)
Communication Protocol
- 115200 baud rate serial communication
- JSON command format with T-codes
- Automatic response handling and timeout management
- Connection state tracking and error recovery
Validation Features
- Parameter type checking and conversion
- Range validation with automatic clamping
- Required parameter enforcement
- Symbolic value resolution
- Schema-based command definitions
Breaking Changes
- None (initial release)
Deprecated
- None (initial release)
Removed
- None (initial release)
Fixed
- None (initial release)
Security
- Safe parameter validation prevents invalid commands
- No credential storage or network communication
- Local serial communication only