Using ROS in complex real-world applications