For a PDF version, you can click here
JPL Robotics Techologist under Paul Backes, Pasadena, CA Feb 2017 - Present
- Developed flight software (C) that handles robot activity resource acquisition and constraint management for the Mars 2020 rover project, an extraterrestrial robotic Mars geologist to be launched in July of 2020
- Architected and implemented ground software (bash, Python) tools for Mars 2020 Sampling and Caching Subsystem testbeds. Tools revolved around optimizing data transfers, automation and improving operator user experience.
- Innovated hazard avoidance algorithms (C++) for Office of Naval Research and implemented them on 20m rigid hull boats in Virginia.
JPL Robotics Software Intern under Paul Backes and Jeff Hall, Pasadena, CA May 2013 – Aug 2015
- Incorporated Bullet collision detection software for non-convex geometries in a kinematic workspace analysis software as a data-driven approach to inform the Sample Retrieval and Launch (SRL) rover design
- Developed C/C++ kinematic workspace analysis software to determine workspace accessibility for a 5 / 6 DOF robotic arm. Results from this work led the Mars Program Office to adopt a new mission approach towards Mars Sample Return
- Refactored mobility software for Pluto Fetch Rover to add robot functionalities such as rotating the rover in place and driving the rover with a joystick
- Primary Robotic 6 DOF Arm software engineer for MSTT on both SRL and Fetch Rover platform and responsible for demonstrating robustness in computer-vision assisted sample tube pick up in a broad spectrum of regolith
Mechatronics Graduate Researcher with Professor Tomizuka, UC Berkeley May 2011 - Dec 2016
- Applied in simulation trajectory optimization, an optimal control technique, for motion planning for two satellites. Control goal is to have robust and precise tracking between the two satellites for free space optical communication
- Codeveloped state estimation technique, marginalized particle filter, for attitude estimation that offers faster convergence rates for less computation power
- Developed software in Arduino and LabVIEW to manage a wireless sensor network for human motion tracking
- Created and designed via Eagle various controller PCBs for Tailbot, a robot with inertial assisted control by an active tail inspired by lizards, which was a featured robot on the front page of Nature
Pioneers in Engineering (PiE) Advisor, UC Berkeley May 2011 – Present
- Board Member and former CEO for the nonprofit Pioneers in Engineering 501©3 Foundation, which promotes STEM education through an exciting, mentorship based process.
- Integral leader in an annual scholarship for high school students. I help raise funds, connect alumni to students, plan logistics for interviews, as well as set direction for the scholarship.
- Spearheaded efforts to recruit Berkeley undergraduates to become robotics mentors for underprivileged high school students in our annual 300+ robotics competition
- Managed a 10-person committee in robotics curriculum development for 90+ UC Berkeley undergraduates
- Organized the inaugural and well-received Robots vs Dinosaur Science Festival, a 100+ event, complete with 8 novel science activities in cooperation with Lawrence Hall of Science in Berkeley, CA
- CS 287 – Intro to Advanced Robotics, Professor Abbeel
- EE 215A – Introduction to Robotics, Professor Bajcsy
- CS 188/289A – Introduction to AI/Machine Learning, Professor Russell and Efros
- EE 192 – Mechatronics Design Lab, Professor Fearing
- EE C249A – Intro to Embedded Systems, Professor Seshia
- ME 232/233 – Advanced Control Systems, Professor Tomizuka
- ME 237 - Control of Nonlinear Dynamical Systems, Professor Hedrick
Projects (see Portfolio)
Vision-assisted Block Manipulation with Baxter for EE125, UC Berkeley
- Combined ROS ARTag vision tracking with ROS MoveIt on a Baxter platform to stack toy blocks. We were able to successfully vertically stack 10 blocks in succession
Line Following NATCAR for EE192, UC Berkeley
- Programmed a PID controller in C for a line-following car, with camera feedback, that placed 6th at NATCAR
Networked Swarm Robotics for ME102B, UC Berkeley
- Designed/manufactured electrical hardware (motor controller, XBee comms) for a swarm robot network. We placed 2nd for best project within the class.
Ball on a Plate for ME135, UC Berkeley
- Used LabVIEW to implement LQR and PID control to successfully stabilize a ball on a 2 axis plate
- Joonbum Bae; Haninger, K.; Wai, D.; Garcia, X.; Tomizuka, M., ”A network-based monitoring system for rehabilitation,” Advanced Intelligent Mechatronics (AIM), 2012 IEEE/ASME Interna- tional Conference on , vol., no., pp.232,237, 11-14 July 2012 IEEE Link
- Paul Backes; Wai, D et al. ”Sampling System Concepts for a Touch-and-Go Architecture Comet Surface Sample Return Mission.” American Institute of Aeronautics and Astronautics (AIAA), AIAA SPACE 2014 Conference and Exposition June 2014 AIAA Link
- Yizhou Wang; Wai, D.; Tomizuka, M., ”Steady-state Marginalized Particle Filter for Attitude Estimation” Dynamic Systems and Control Conference (DSCC) July 2014 ASME Link
- Kyle Edelberg; Wai, D; Reid, J; Kulczycki, E; Backes, P. “Workspace and Reachability Analysis of a Robotic Arm for Sample Cache Retrieval from a Mars Rover” American Institute of Aeronautics and Astronautics (AIAA), AIAA SPACE 2015 Conference and Exposition Sept 2015 AIAA Link
- Ryan McCormick; Wai, D et al. “Robotic Gripper Design and Testing for Potential Mars Sample Return” International Planetary Probe Workshop (IPPW)
Dennis’s research interests lies in robotics, mechatronics, and control.
Free Space Optical Communication
As a part of my Master’s Work, I worked on adapting trajectory optimization to prescribe a set of open loop controllers for free space optical communication. In free space optical communication, two terminals (usually LEO satellites) need to maintain a line of sight in order to data to be communicated from one end to the other. I summed up my work in this report and presentation
Attitude Estimation via Particle Filter
I worked with Yizhou Wang on attitude estimation through particle filters, a Monte Carlo method for stochastic estimation. The big idea here is to represent a state distribution for a system’s states by instantiating many particles that represents all of the states the system can be. Using Baye’s rule and sensor measurements, we can selectively breed/multiply the particles that probabilistically more accurately reflect the true state. In marginalized particle filters, we take advantage of the linear structure in the system to save computation when we propagate the particles supporting the state distribution. Our work is summarized in our conference paper here and my presentation at DSCC 2014 can be found here. For a slightly more in depth explanation of particle filters, you can read more here.
Tailbot became quite a celebrity in the robotics world because it demonstrated the insight biologists have gleaned from lizards. Lizards have an ability to right themselves in midair by actively using their tail to control its angular momentum. It was featured on the front cover of an edition of Nature and made headlines for UC Berkeley’s newcenter. Tailbot was the first robot in my career and I heavily contributed to its mechatronics design.
In classical gait rehabilitation therapy, there is no quantitative approach to base a diagnosis. Instead, much of therapy for a patient afflicted with a gait disorder is based on a therapist’s physical observations and intuition. More often than not, the level of care is proportional to the therapist’s experience. In addition, for patients with a gait disorder, it is often difficult to physically transport themselves to receive therapy as well. As a result, we created a system where a patient will wear a series of intelligently placed sensor nodes that will record Euler angles and transfer it wirelessly to a local computer, which will then transfer it via Internet to the therapist’s computer. With Kevin Haninger, I worked on developing the software required to calculate the Euler angles in Arduino using Varesano’s FreeIMU library and packet loss compensation and visualization in LabVIEW. Each sensor node on the patient calculates Euler angles in the onboard Arduino. When prompted by the local computer, the Arduino will respond and return a set of measurements to the local computer, where LabVIEW will parse it and process the data into useful information. We have since published our work into a conference paper at the 2012 IEEE/ASME International Conference on Advanced Intelligent Mechatronics and can be found here.
Pioneers in Engineering is a student organization on UC Berkeley campus dedicated to the promotion of STEM in the Bay Area through robotics outreach. I was a previous leadership member and am currently the CEO of the PiE Foundation, providing mentorship to current students and operating a scholarship fund for high school students.
Cal Band is the Pride of California and I am proud to have been a first trombone player during my undergrad experience at Cal. Go Bears!