This is a custom version of the [Darwin OP robot](http://emanual.robotis.com/docs/en/platform/op/getting_started/) firmware. It supports all the features of the original firmware:
*Dynamixelslavewiththecomputer.
*Dynamixelmasterwiththedynamixelservos.
*Gyroandaccelerometerinterface.
*HandleLED's and push buttons.
As a difference with the original firmware, this one performs all the motion functions, instead of only acting as a relay between the slave and master dynamixel interfaces. It supports all the orignal motion modules plus some additional ones:
* **Action**: execute a motion that is pre-stored in the memory.
* **Walk**: execute the parameterized walk function with a balance function.
* **Joints**: move up to 4 different servo groups with a desired angle, speed and acceleration.
* **Head tracking**: point the head to a desired position using PID controllers.
* **Gripper**: control a [custom gripper]() to open and close it, if available.
In addition, this firmware also supports a second dynamixel master port which can be used to connect additional sensors or servos without affecting to the performance of the existing master bus.
## Dependencies
This package requires of the following system libraries and packages
* [cmake](https://www.cmake.org "CMake'sHomepage"), a cross-platform build system.
* [git](https://git-scm.com/), opensource distributed version control system.
* [gcc-arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads), ARM GCC crosscompiler.
* [openocd](http://openocd.org/), general tool to download programs and debug them.
All this packages can be installed in Ubuntu using the apt-get install command.
This package also requires of the following STM32 libraries:
* [stm32_hal](https://gitlab.iri.upc.edu/humanoides/tools/stm32_hal), set of header and source files for the HAL (Hardware Abstraction Layer) library of the STM32 microcontrollers, as well as configuratin scripts.
* [stm32_libraries](https://gitlab.iri.upc.edu/humanoides/tools/stm32_libraries), a set of libraries for the STM32 family of microcontrollers.
This STM32 libraries are integrated as submodules in this GIT repository.
## Compilation and installation
Download this repository and checkout version *new_version*.
Initialize the submodules by executing the following command inside:
``` git submodule init ```
and update them with:
``` git submodule update --remote```
Create a build folder inside the main repository folder:
``` mkdir build ```
Inside the build folder execute the following commands:
``` cmake .. ```
``` make ```
In case no errors are reported, the generated file will be located in the build folder.
## Download
## Disclaimer
Copyright (C) 2009-2018 Institut de Robòtica i Informàtica Industrial, CSIC-UPC.
Mantainer IRI labrobotics (labrobotica@iri.upc.edu)
This package is distributed in the hope that it will be useful, but without any warranty. It is provided "asis"withoutwarrantyofanykind,eitherexpressedorimplied,including,butnotlimitedto,theimpliedwarrantiesofmerchantabilityandfitnessforaparticularpurpose.Theentireriskastothequalityandperformanceoftheprogramiswithyou.shouldtheprogramprovedefective,theGMRgroupdoesnotassumethecostofanynecessaryservicing,repairorcorrection.