A method comprising; automatically navigating a vehicle from a current location to a target location using a computer system , wherein the navigating includes: selecting a set of linear paths for the vehicle to travel between the current location and the target location , the selecting including, for each linear path in the set of linear paths: identifying a current linear path between the current location and the target location ; evaluating a set of cells along the current linear path for a presence of an obstacle ; instructing the vehicle to travel along the current linear path in response to evaluating all cells between the current location and the target location along the current linear path as not including an obstacle ; and in response to evaluating a cell in the set of cells as including an obstacle : determining a center of mass corresponding to an extent of the obstacle ; identifying a set of potential locations based on the center of mass, a line through the center of mass and perpendicular to the current linear path , and the extent of the obstacle ; selecting a potential location in the set of potential locations as the intermediate location based on the extent of the obstacle and the current linear path ; and instructing the vehicle to travel along a distinct linear path from the current location to the intermediate location . selecting a set of linear paths for the vehicle to travel between the current location and the target location , the selecting including, for each linear path in the set of linear paths: identifying a current linear path between the current location and the target location ; evaluating a set of cells along the current linear path for a presence of an obstacle ; identifying a current linear path between the current location and the target location ; evaluating a set of cells along the current linear path for a presence of an obstacle ; instructing the vehicle to travel along the current linear path in response to evaluating all cells between the current location and the target location along the current linear path as not including an obstacle ; and in response to evaluating a cell in the set of cells as including an obstacle : determining a center of mass corresponding to an extent of the obstacle ; identifying a set of potential locations based on the center of mass, a line through the center of mass and perpendicular to the current linear path , and the extent of the obstacle ; selecting a potential location in the set of potential locations as the intermediate location based on the extent of the obstacle and the current linear path ; and instructing the vehicle to travel along a distinct linear path from the current location to the intermediate location . determining a center of mass corresponding to an extent of the obstacle ; identifying a set of potential locations based on the center of mass, a line through the center of mass and perpendicular to the current linear path , and the extent of the obstacle ; selecting a potential location in the set of potential locations as the intermediate location based on the extent of the obstacle and the current linear path ; and instructing the vehicle to travel along a distinct linear path from the current location to the intermediate location . <EOS>