My research focuses on creating algorithms that allow robots to interact with the world. These general-purpose learning, motion planning, and manipulation algorithms can be applied to robots that work in homes, factories, and operating rooms. I am interested in all aspects of algorithm development; including creating efficient algorithms, proving their theoretical properties, validating them on real-world robots and problems, integrating them with sensing and higher-level reasoning, and distributing them to open-source communities. I draw on ideas in search, optimization, machine learning, control theory, and topology to develop these planning algorithms and to prove their properties. I also seek to develop algorithms which can generalize to many types of practical tasks and application areas.