A method, comprising: generating, using a dynamic vision sensor, DVS, a current DVS image; generating, using an inertial measurement unit, IMU, inertial data; retrieving, using a processor, at least a portion of a 3-dimensional, 3D, map of a known 3D environment from a memory, wherein the 3D map includes keyframes with corresponding camera poses and the keyframes are Red, Green, and Blue, RGB, keyframes with overlapping fields of view; and determining, using the processor, a current camera pose for the DVS based on the current DVS image, the inertial data, the 3D map, and a prior camera pose, wherein the determining the current camera pose comprises: determining motion by performing optical flow of sparse feature points in a plurality of consecutive DVS images including the current DVS image; tracking features within the plurality of consecutive DVS images; and comparing the current DVS image with a synthesized DVS image generated based on the keyframes of the 3D map, wherein the current camera pose is determined based on the motion, the tracked features, and the comparing of the current DVS image with the synthesized DVS image, wherein the comparing the current DVS image with the synthesized DVS image comprises: selecting a keyframe from the 3D map based on the prior camera pose; and generating the synthesized DVS image based on the selected keyframe and the inertial data. generating, using a dynamic vision sensor, DVS, a current DVS image; generating, using an inertial measurement unit, IMU, inertial data; retrieving, using a processor, at least a portion of a 3-dimensional, 3D, map of a known 3D environment from a memory, wherein the 3D map includes keyframes with corresponding camera poses and the keyframes are Red, Green, and Blue, RGB, keyframes with overlapping fields of view; and determining, using the processor, a current camera pose for the DVS based on the current DVS image, the inertial data, the 3D map, and a prior camera pose, wherein the determining the current camera pose comprises: determining motion by performing optical flow of sparse feature points in a plurality of consecutive DVS images including the current DVS image; tracking features within the plurality of consecutive DVS images; and comparing the current DVS image with a synthesized DVS image generated based on the keyframes of the 3D map, wherein the current camera pose is determined based on the motion, the tracked features, and the comparing of the current DVS image with the synthesized DVS image, wherein the comparing the current DVS image with the synthesized DVS image comprises: selecting a keyframe from the 3D map based on the prior camera pose; and generating the synthesized DVS image based on the selected keyframe and the inertial data. determining motion by performing optical flow of sparse feature points in a plurality of consecutive DVS images including the current DVS image; tracking features within the plurality of consecutive DVS images; and comparing the current DVS image with a synthesized DVS image generated based on the keyframes of the 3D map, wherein the current camera pose is determined based on the motion, the tracked features, and the comparing of the current DVS image with the synthesized DVS image, wherein the comparing the current DVS image with the synthesized DVS image comprises: selecting a keyframe from the 3D map based on the prior camera pose; and generating the synthesized DVS image based on the selected keyframe and the inertial data. selecting a keyframe from the 3D map based on the prior camera pose; and generating the synthesized DVS image based on the selected keyframe and the inertial data.