Changelog

View Source

All 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

Function Signatures

  • Consistent function_name(params, opts \\ []) pattern
  • :server_name option for multi-robot targeting
  • :timeout options for all operations
  • Backwards compatible defaults

Technical Details

Dependencies

  • circuits_uart ~> 1.5 - Serial communication
  • jason ~> 1.4 - JSON encoding/decoding
  • ex_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