I. Introduction
General-purpose robots that can manipulate everyday object could take on many useful tasks in human environments. However, programming such robots to robustly function in every possible environment, with every possible user is extremely challenging. Instead, our research seeks to develop robots that can be programmed by their end-users to function in their particular environment.