Yay Robots!

Robotics consultant and CEO at PickNik Consulting, PhD from 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.

Thesis: Methods for Improving Motion Planning Using Experience

Thesis

Description

This thesis introduces new approaches to improve robotic motion planning by learning from past experiences especially suited for high-dimensional configuration spaces with many invariant constraints. This experience-based motion planning (EBMP) paradigm reduces query resolution time, improves the quality of paths, and results in more predictable motions than typical probabilistic methods.

Bolt: Hybrid Underconstrained Cartesian/Freespace Multimodal Planning

Github

Description

Demonstration of a multi-goal unified planning problem of free space, Cartesian, then freespace planning again. The Cartesian plan is under constrained. Solves a complex, overlapping path with two end effectors simultaneously. This work is built on top of the Thunder experience planner, MoveIt!, and OMPL.

Motivation

RA at the Correll Lab

Sparser Sparse Roadmaps

Publication | Github

Description

An approach for offline generation of sparse roadmap spanners that result in graphs 79% smaller than existing approaches while returning solutions of equivalent path quality. Pre-computing the roadmap offline results in more deterministic solutions, reduces the memory requirements by affording complex rejection criteria, and increases the speed of planning in high-dimensional spaces.

Motivation

RA at the Correll Lab

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

Description

Led a team at CU Boulder to compete in robot pick-place tasks for Amazon warehouses. Our team name was PickNik. While our team did not place due to onsite technical difficulties, we learned many valuable lessons about the need for reactive, close-loop control during in-hand manipulation and the importance of tightly-integrated planning and perception stacks.

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

Gazebo Wiki ROS 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

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

davetcoleman

Email

dave@dav.ee