def METHOD_NAME(self):
    ######## LAUNCH GAZEBO ########
    args = ["/opt/ros/noetic/bin/roslaunch",
            "/RoboticsAcademy/exercises/static/exercises/" +
            EXERCISE + "/launch/ros1_noetic/gazebo.launch",
            "--wait",
            "--log"
            ]
    attempt = 1
    while True:
        spawn_process(args, insert_vglrun=self.acceleration_enabled)
        if self.test.gazebo() == True:
            break
        if attempt == MAX_ATTEMPT:
            rospy.logerr("[GAZEBO] Launch Failed")
            return
        attempt = attempt + 1
    ######## LAUNCH PX4 ########
    args = ["/opt/ros/noetic/bin/roslaunch",
            "/RoboticsAcademy/exercises/static/exercises/" +
            EXERCISE + "/launch/ros1_noetic/px4.launch",
            "--log"
            ]
    attempt = 1
    while True:
        spawn_process(args, insert_vglrun=self.acceleration_enabled)
        if self.test.px4() == True:
            break
        if attempt == MAX_ATTEMPT:
            rospy.logerr("[PX4] Launch Failed")
            return
        attempt = attempt + 1
    ######## LAUNCH MAVROS ########
    args = ["/opt/ros/noetic/bin/roslaunch",
            "/RoboticsAcademy/exercises/static/exercises/" +
            EXERCISE + "/launch/ros1_noetic/mavros.launch",
            "--log"
            ]
    attempt = 1
    while True:
        spawn_process(args, insert_vglrun=self.acceleration_enabled)
        if self.test.mavros() == True:
            break
        if attempt == MAX_ATTEMPT:
            rospy.logerr("[MAVROS] Launch Failed")
            return
        attempt = attempt + 1