Project Valkyrie

Project Details:

Valkyrie is a humaniod robot that was created by NASA JSC as an entry to the DARPA Robotics Challenge. She stands 6'2" and is, in many respects, one of the most advanced humanoid robots ever built, including proprietary NASA technology developed expressly for this project. As an expert in robotic walking, I joined the team in the last six months of the project before the Challenge to design and implement locomotion algorithms. The project required an incredible amount of work, with team members regularly working 16 hour days to complete the milestones necessary to take part in the contest.

The codebase for the system was vast and I worked on many different parts of it. The effort was well organized and, as a consequence, I gained substantial experience in working on large-scale software development. I worked with sensor interfacing as well as control algorithm design and implementation. I arrived on the scene with very little knowledge of the tools being used and was forced to adapt very quickly to these tools and technologies. I quickly became an expert in ROS (Robot Operating System) and programmed new modules to accomplish various tasks. It was a real learning experience and the team faced and overcame more hardships than anyone could have reasonably expected.

This project received considerable media attention:

Some of the tasks involved:

  • Designing and testing behaviors (path planning)
  • Piloting Valkyrie robot
  • Code development for ROS (C++, Python, Bash)
  • Interfacing with IMUs, force sensors, position sensors (C/C++, sensor fusion)
  • Database interfacing and design (MongoDB, YAML, JSON)
  • Making coffee
  • Debugging electronics and systems
  • Analyzing API and hardware interface specifications
  • Designing and verifying complex finite state machines
  • Software development with design patterns and objects (C++, Python)
  • Collaboration and source code management (Git, JIRA, Confluence)
  • GUI design for controlling locomotion (Python, C++, Qt)
  • Real-time identification of system model parameters (machine learning, C++, MATLAB)
  • Simulation of dynamical systems using Gazebo (C++, URDF)
  • Formulation of hybrid simulation model (MATLAB, Mathematica)
  • Design of non-linear hybrid controllers (control theory)
  • Publishing research papers (LaTeX)

additional information: