Depth sensing is important for robotics systems for both navigation and manipulation tasks. We here present a learning-based system which predicts accurate scene depth and can take advantage of many types of sensor supervision. We develop an algorithm which combines both supervised and unsupervised constraints to produce high quality depth and which is robust to the presence of noise, sparse sensing, and missing information. Our system is running onboard in realtime, is easy to deploy, and is applicable to a variety of robot platforms.