Functionalities
- Modular framework in 3 layers: core, hardware platforms, application (state machine based)
- Programmatic CAN Object Dictionary for compile time setup of CAN network PDOs
- ROS 1 and ROS 2 connectivity
- RT network communication (socket based) for external communication
- Logging capability via spdlog
- Self-contained without external dependencies (cross-compilation ready)
- Support and code examples for: Fourier Intelligence X2, ArmMotus M1, M2, M2Pro, EMU and ULS Robotics FIT-HV exoskeleton
- Support code for common CANOpen motor drives (EPOS, Copley and Kinco) and several IO generic, CAN and I2C peripherals
- Tested on Linux x64, BeagleBone and Raspberry Pi platforms
What's Changed
- M2 Pro Updates and Fixes in #73
- More accurate main loop timing at the expense of CPU usage in #76
- Fix bug (#78) and add Analog In option in Drive in #79
- State machine template and State machine creation script in #80
- Addition of FIT-HV exoskeleton support in #83
- Addition of EPOS drive support in #84
- Added I2C generic device, BNO055 and restructured devices hierarchy in #85
- Documentation formatting
Important note
Every robot (platform) constructor should now use addJoint(), addInput() and addOtherCAN() methods to add new joints and inputs for proper management. Existing platforms have been updated appropriately.