A non-linear, fuzzy logic controller was developed for an autonomous underwater crawler. Due to fuzzy rules based on linguistic variables, the controller is applicable to many autonomous applications.The controller is hierarchical in design with an obstacle avoidance, a path finding, and a supervisor model. An optimization procedure was developed using an algorithm based on the simplex method and simulations done in an autonomous vehicle simulator. Vehicle performance was quantified using a performance function designed to penalize a vehicle for colliding with obstacles and deviating from a straight line path. Optimization was performed using two different methods to determine the optimal numeric values to the linguistic variables. Both methods resulted in enhanced vehicle performance.