I am an active contributor to JuliaPOMDP, a collection of Julia packages for defining and solving POMDPs or Partially Observable Markov Decision Processes. POMDPs represent a very general framework for sequential decision making under uncertainty and can be used for a variety of problems in AI and robotics. The overarching interface in JuliaPOMDP is POMDPs.jl. The entire JuliaPOMDP ecosystem was created and is maintained by my lab SISL.
I was part of a large collaboration between my lab and Toyota Research, on robust multi-step manipulation tasks under uncertainty. I have contributed to several key aspects of the planning pipeline, specifically, multi-query planning, collision checker evaluation, and task planning strategies. Our work over the first year of my involvement in the project was published as a systems paper at ISER 2016.
Robot Perception Utilities
The perception stack for the robot HERB has a number of algorithms for different use cases - textured and well modeled objects (using point features); textureless surfaces (using templates) and transparent or not easily modeled objects (using fiducials). I helped design the software architecture of the perception system to coordinate the various algorithms. I have also written several utilities and tools for custom use cases. An example of a HERB demonstration to which I contributed is shown here:
Software for the Personal Robotics Lab
I have actively contributed to several of the C++ and Python packages that are used by the Personal Robotics Lab and which run on the lab's robots. A non-exhaustive list of the public repositories I have been involved in include aikido, prpy and offscreen_render. Additionally, I am now responsible for maintaining and examining additions to several key repositories of code for our lab's robots.
CMU-PRL Dataset for tabletop detection and pose estimation
We have prepared this dataset to help benchmark and advance research on perception algorithms for manipulation. Our dataset has several high-quality colour and depth images of a number of different household objects, obtained from a Microsoft Kinect One Sensor. To capture the challenges of tabletop manipulation in domestic settings, we vary the lighting conditions, depth in front of the camera, and the clutter around the object. We also provide object models and precise ground truth estimates, as well as software support.
Here is a video depicting the dataset.
I have enjoyed applying the concepts learned in my courses to the various course projects that I have submitted. They have all been a pleasure to present and were all well received by the course faculty. Here is a partial list:
- Math Fundamentals - The Weight-Constrained Shortest Path Problem
- Computer Vision - Sequential Human Activity Recognition
- Machine Learning - Content-based and Link-based methods for webpage classification
- Convex Optimization - Trajectory Optimization for Hybrid Control in Cluttered Environments
- Statistical Techniques in Robotics - Online Reinforcement Learning for Maximum Reward in an Amusement Park
- Decision Making Under Uncertainty - Sensor Selection for Energy-Efficient Path Planning Under Uncertainty
Undergraduate Thesis Project
For my undergraduate thesis I studied the multiple program allocation problem. This is a generalization of Gale-Shapley's college admissions problem to the case of multiple allotments on both sides. We described a new perspective on the candidate-optimal allotment. A draft technical report is attached here. [PDF].