Planning and Verification Techniques for the high level programming and monitoring of autonomous robotic devices