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
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
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
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
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
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
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
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
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
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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