Robot Programming: A Guide to Controlling Autonomous Robots