Hands-On ROS for Robotics Programming