def run_controller(self): """Start controller in a distinguish process """ self.process = Process(target=self.vel_control) self.process.start() while not self.process.is_alive(): continue def shutdown_controller(self): """Terminate process and clear other stuff """ self.process.terminate() self.log.debug("Controller process was terminated") if __name__ == '__main__': controller = VelocityController() controller.run_controller() planner_data = Manager().Namespace() planner_data.Xd = [1.0, 2.0, 3.0] planner_data.dXd = [0, 0, 1] robot_data = Manager().Namespace() robot_data.X_cur = [1, 5, 3, 4, 5, 6] controller.set_cur_state(planner_data, robot_data) sleep(2) print(controller.get_new_velocity()) controller.shutdown_controller() print("Done")