A method, comprising: capturing a camera image by a first camera of a robot in an environment; applying, by one or more processors of the robot, an edge detector to the camera image to detect camera image edges in the camera image; identifying, by the one or more of the processors, an estimated pose of the first camera in the environment; rendering, by the one or more of the processors, from an electronically stored three-dimensional model of the environment, a model image of the environment from a point of view of the estimated pose; applying, by the one or more of the processors, the edge detector to the model image of the environment to detect model image edges in the model image; determining, by the one or more of the processors, a current pose of the first camera in the environment based on comparing the camera image edges to the model image edges; capturing an additional camera image by a second camera of the robot, the second camera facing a different direction than the first camera, and the additional camera image being captured at or proximal to a time at which the camera image of the first camera was captured; applying, by the one or more processors of the robot, the edge detector to the additional camera image to detect second camera edges in the additional camera image; identifying, by the one or more of the processors, a second estimated pose of the second camera in the environment; rendering, by the one or more of the processors and from the electronically stored three-dimensional model of the environment, a second model image of the environment from a second point of view of the second estimated pose; applying, by the one or more of the processors, the edge detector to the second model image of the environment to detect second model image edges in the second model image; determining, by the one or more of the processors, a second current pose of the second camera in the environment based on comparing the second camera image edges to the second model image edges; and localizing, by one or more of the processors, the robot in the environment based on the current pose of the first camera and the second current pose of the second camera. capturing a camera image by a first camera of a robot in an environment; applying, by one or more processors of the robot, an edge detector to the camera image to detect camera image edges in the camera image; identifying, by the one or more of the processors, an estimated pose of the first camera in the environment; rendering, by the one or more of the processors, from an electronically stored three-dimensional model of the environment, a model image of the environment from a point of view of the estimated pose; applying, by the one or more of the processors, the edge detector to the model image of the environment to detect model image edges in the model image; determining, by the one or more of the processors, a current pose of the first camera in the environment based on comparing the camera image edges to the model image edges; capturing an additional camera image by a second camera of the robot, the second camera facing a different direction than the first camera, and the additional camera image being captured at or proximal to a time at which the camera image of the first camera was captured; applying, by the one or more processors of the robot, the edge detector to the additional camera image to detect second camera edges in the additional camera image; identifying, by the one or more of the processors, a second estimated pose of the second camera in the environment; rendering, by the one or more of the processors and from the electronically stored three-dimensional model of the environment, a second model image of the environment from a second point of view of the second estimated pose; applying, by the one or more of the processors, the edge detector to the second model image of the environment to detect second model image edges in the second model image; determining, by the one or more of the processors, a second current pose of the second camera in the environment based on comparing the second camera image edges to the second model image edges; and localizing, by one or more of the processors, the robot in the environment based on the current pose of the first camera and the second current pose of the second camera.