def METHOD_NAME(self, goal_position):
    """
    Limits the length of the navigation, for example a goal given 2 meters will return a goal determined by
    the shorten_navigation_limit parameter, if it is 1 then 1 meter max navigation limit
    :param goal_position: [x, y, theta] of the robot's goal position
    """
    shorten_navigation_limit = rospy.get_param("shorten_navigation_limit", 2)
    distance_xy = np.linalg.norm(self.position[0:2] - goal_position[0:2])
    if distance_xy < shorten_navigation_limit:
        return goal_position
    diff = goal_position[0:2] - self.position[0:2]
    diff_unit = diff / np.linalg.norm(diff)
    diff_unit *= shorten_navigation_limit
    diff_angle = math.atan2(diff[1], diff[0])
    new_location = np.array([self.position[0] + diff_unit[0], self.position[1] + diff_unit[1], diff_angle])
    rospy.loginfo(f"Shortened Navigation Path: Original {goal_position} New {new_location}")
    return new_location