Yay Robots!

PhD Candidate and researcher in the Correll Robotics Lab at CU Boulder.

Research interests include motion planning with 1) experience, 2) kinodynamics, 3) costs, 4) biped humanoids, and motion planning for robotic manipulation of non-rigid bodies. Additional side interests include control theory, robot simulation, and perception.

Contributes to the MoveIt! motion planning framework, Open Motion Planning Library, ROS Controls framework, and the Gazebo simulator.

Dave is also a crazy adventurer and loves the outdoors.

robots  |   notes

Humanoid Whole Body Motion Planning

Github

Description

Developing a motion planning state space that includes the discrete steps of foot placements in probabilistic motion planning.

Motivation

RA at the Correll Lab

 

Amazon Picking Challenge

Team Website

Description

I am currently leading a team at CU Boulder to particpate in a robotics pick-place task for Amazon warehouses. Our team name is PickNik

Motivation

RA at the Correll Lab

 

Experience-Based Planning with Sparse Roadmap Spanners

Publication

Description

Developed an experienced- based planning framework called Thunder that learns to reduce computation time required to solve high-dimensional problems in varying environments. The approach is especially suited for large configuration spaces that include many invariant constraints, such as those found with whole body humanoids.

Motivation

RA at the Correll Lab

 

Lightning Framework for Planning From Experience

Publication

Description

The Lightning Framework is an easy to understand experience-based planning method that combines two threads - a planning from scratch module that uses RRTConnect and a recall module that retrieves and repairs past paths if possible. I implemented this code for the Open Motion Planning Library, but the original approach is not mine.

Motivation

Google Summer of Code

 

Whole Body Inverse Kinematics Solver

Github

Description

Whole body (non-chain) IK solver for MoveIt! for any robot. Uses a weighted least-norm solution combined with the gradient projection method of the null space to avoid joint limits. Calculates the psuedo inverse using Lapack's singular value decomposition (SVD) implementation. Uses some componentes from KDL.

Motivation

Summer research collaboration with JSK Lab, University of Tokyo.

 

Robotic Manipulation for Identiļ¬cation of Flexible Objects

PDF

Description

Identifies the stiffness profile of a 'Y' shaped flexible object through dual arm robotic manipulation, point cloud perception using an Asus Xtion pro, and parameter optimization using variable integrators. My contribution was the perception and manipulation pipelines.

Motivation

RA at the Correll Lab

 

Optimal Parameter Identification of Flexible Objects via Manipulation

PDF

Description

A method for system identification of flexible objects by measuring forces and displacement during interaction with a manipulating arm. The object's structure and flexibility is modeled by a chain of rigid bodies connected by torsional springs.

Motivation

RA at the Correll Lab

 

HRP2 Biped Walking In MoveIt!

Announcement

Description

Added new humanoid/biped motion planning capabilities to MoveIt! including a whole body motion planner for the HRP2 robot that combines JSK's lisp-based footstep planners with the power of OMPL and MoveIt!.

Technology:

MoveIt!, constraint samplers, trajectory parameterization plugins, custom interpolator, whole body inversie kinematics

Motivation

Month-long internship at JSK at UTokyo

 

MoveIt! Motion Planning Library

Homepage Github

Description

MoveIt!'s current main use case is enabling a robot with arms to manipulate and interact with a real environment using sensor data and controller feedback. I am a major developer and community supporter.

Technology:

Motion planning, path planning, collision detection, controls, frames of reference.

Motivation

Internship at OSRF and Willow Garage

 

Baxter in Simulation

Gazebo Wiki Github

Description

Worked closely with Rethink Robotics to add the Baxter robot into Gazebo properly. Created simulated controllers, tweaked meshes and simulation properties.

Technology:

Controllers, transmissions, simulation, Gazebo, SDF

Motivation

Internship at OSRF

 

Gazebo-ROS Integration

ROS Wiki Gazebo Wiki

Description

I created the new interface for Gazebo with ROS, a catkinized version of simulator_gazebo stack that works with a stand-alone system-installed version of Gazebo. Over hauled much of the previous software, added new features, fixed bugs, and made it more "ROS" standard.

Technology:

ROS, Gazebo, Simulation, CMake, Bloom, debians

Motivation

Internship at OSRF

 

ROS Control in Simulation

Gazebo Wiki Github

Description

Integrated the ros_control and ros_controllers packages into Gazebo so that new users can quickly get basic controls running on their arbitrary robot. Added new features and did maintenance work on ros_control. Formalized an update to the transmission element in the URDF specification.

Technology:

Controllers, transmissions, simulation, joint limits, URDF

Motivation

Internship at OSRF

 

Block Grasp Generator

Github

Description

Generates grasp poses in the X and Y axis of a block, which can represent the bounding volume of many types of objects.

Technology:

Grasping, Coordinate transforms, Geometry, Rviz

Motivation

RA at the Correll Lab

 

OMPL Visual Tools

Github - Blog Post

Description

Developed ompl_visual_tools, a visualizer that shows cost maps in RViz along with all searched states, nodes and edges from a planner. It also serves as a good code example for anyone hoping to get started with OMPL.

Technology:

ROS, OMPL, Rviz, Eigen Library, C++

Motivation

Google Summer of Code and internship at Willow Garage

 

Transition-based RRT

Github - Documentation

Description

Contributed to OMPL by implementing a new planning algorithm, Transition-based RRT, that keeps random tree search in low cost regions of the config. space. This is convenient for minimizing objectives such as mechanical work over a trajectory, or taking probability of occupancy into account.

Technology:

OMPL, C++, Motion Planning Algorithms

Motivation

Internship at Willow Garage

 

MoveIt Setup Assistant

Github - Tutorial

Description

A graphical user interface for configuring any robot with a URDF to work with the MoveIt planning framework, the motion planning part of the Robotic Operating System. Its primary function is generating a Semantic Robot Description Format (SRDF) file for your robot. Additionally, it generates other necessary configuration files for use with the MoveIt pipeline.

Technology:

ROS, MoveIt, C++, Qt

Motivation

Internship at Willow Garage

 

Robotic Arm Manipulator: ClamArm

Website - Github

Description

Developer of ClamArm software including servo controllers, inverse kinematics, path planning and visualization of a 7-degree of freedom robotic arm located in the Correll Lab.

Technology:

Robotic Operating System, C++, Python, Table Top Manipulation

Motivation

RA at the Correll Lab

 

Block Perception

Github

Description

Perception of blocks on a table using a combination of both the Point Cloud Library (PCL) and OpenCV.

Technology:

OpenCV, PCL

Motivation

RA at the Correll Lab

 

Robotic Plant Manipulation

Mission Directorate

Description

NASA funded project to help astronauts feed themselves in space. Objective is to develop hardware and computer software for robotic gardening

Technology:

Non-rigid body manipulation, perception, ROS, path planning

Motivation

Grad school research funded by NASA in the Correll Lab

 

ScriptBots Evolutionary Simulator

Github

Description

Researched and added on to Andrej Karpathy's evolutionary artifical life simulator that uses Neural Networks to evolve intelligence in simple single-cell-like organisms. Added swarm intelligence aspects to simulator.

Technology:

C++, OpenGL, Recurrent Neural Networks

Motivation

Swarm Robotics class project with Dustin Reishus

 

Visibility Graph Algorithm

Github - Technical Paper

Description

Implementation and analysis of time, space and correctness of D.T. Lee's O(n^2 log n) algorithm for finding the visibility graph of a set of disjoint line segments in a plane.

Technology:

C++, CImg Library, Computational Geometry

Motivation

Advanced Algorithms class project with Aaron Clauset

 

Mixed Integer Path Planning and Obstacle Avoidance

Github - Technical Paper

Description

Linear programming-based optimization from a start to a goal point around arbitrarily shaped polygon obstacles in two dimensions. Solves for a series of time steps around the obstacles, with all points constraints to the polygon's edges.

Technology:

C++, OpenGL, Mixed Integer Linear Programming

Motivation

Grad class with Sriram Sankaranarayanan

 

Visual Simplex Solver

Github

Description

Simplistic solver for linear programs using the Simplex method. Using general form with an initialization phase. Uses Bland's rule to ensure termination. Made for a Linear Programming class project.

Technology:

C++, Armadillo Matrix Library, Linear Programming Optimization Theory

Motivation

Linear Programming class project with Sriram Sankaranarayanan

 

Twitter


LinkedIn


GitHub





Office

My office is ECCS 1B21A, located in the Correll Robotics Lab (Directions) at the Engineering Center at CU Boulder.


Consulting

Expert on many parts of the Robotic Operating System and can provide help with bug fixes, new feature requests, or integration issues. My consuting company is legally named PickNik LLC and I have experience working with all size companies.


Some of my areas of expertise include:



Email

dave@dav.ee | PGP public key