Programming Robots with ROS: A Practical Introduction to the Robot Ope System