DARwIn-OP Framework - libdarwin

Git Project: https://gitlab.com/chrisib/libdarwin.git

Robotis, the company that manufactures the DARwIn-OP robots I used while working in the Autonomous Agents Lab provides an open-source framework for using these robots. The first year we used the Darwins at FIRA in 2011 we used an effectively unmodified version of this framework.

Our experience using the Darwin under competition conditions gave us insight into the limitations of the stock framework and ideas on how to improve it. Specifically, the built-in vision system was very primitive and ill-suited for the rigors of competition, there was no forward- or inverse-kinematics modules to control the motion of the limbs in three-dimensional space, and the build scripts were not designed with a standard Linux file structure in mind.

Over the next several years I was the primary (though not the only) person in the lab working to rectify some of these shortcomings. Our modified framework kept the basic core of the original, but added additional modules for more complex vision processing, kinematics for each limb, and a host of utility programs designed for editing keyframe motions in Linux (RoboPlus, Robotis' default tool is Windows-only), calibrating vision, and rendering 3D wireframe models of the robot for debugging purposes.

With the development of our new line of custom-built humanoids, done in collaboration with Amirkabir University of Technology in Iran, we are now migrating the Darwins over to an entirely new framework built entirely by researchers from UofM and AUT.

For posterity however, and out of a personal sense of accomplishment given how hard I worked on the old Darwin framework -- and given that we won the 2013 HuroCup championship with it -- I have created a project on GitLab with our modified Darwin framework. Feel free to clone the project if you are interested

Please note however that there are still bugs in the code. Notably, the motion editor has some rather severe bugs that I -- as of this writing -- have not fully fixed. However, the core framework and motion modules are stable and usable.