A method of generating a 3D reconstruction of an environment around a monitoring-unit as that monitoring-unit is moved through the environment (110, 108), the method comprising: a) providing at least a stereoscopic pair of cameras (104, 106) and a LIDAR sensor, wherein the stereoscopic pair of cameras and the LIDAR sensor are provided at a fixed, predetermined, orientation relative to one another and are controlled by independent clocks; b) generating a stream of stereoscopic images (300,302) of the environment, using the stereoscopic pair of cameras (104, 106), as the monitoring-unit is moved through the environment; c) using the stream of stereoscopic images (300,302) to determine the trajectory of the monitoring-unit as it moves through the environment (110, 108) and determining a first time series using the clock of the stereoscopic pair of cameras (104, 106), where the first time series details when the monitoring-unit was at predetermined points of the trajectory; d) scanning the environment (110, 108) with the LIDAR sensor, recording the returns from the LIDAR sensor and determining a second time series using the clock of the LIDAR sensor, where the second time series details when each scan from the LIDAR sensor was taken; e) processing the first and second time series, using a timer to relate the first and second series in order to match the return from the LIDAR sensor to the point on the trajectory at which the return was received, wherein the timer is provided by a statistical method, using the TICsync algorithm, to relate the first time series and the second time series; and f) creating, using the fixed, predetermined, orientation between the stereoscopic pair of cameras and the LIDAR sensor, the 3D reconstruction based upon the LIDAR returns. a) providing at least a stereoscopic pair of cameras (104, 106) and a LIDAR sensor, wherein the stereoscopic pair of cameras and the LIDAR sensor are provided at a fixed, predetermined, orientation relative to one another and are controlled by independent clocks; b) generating a stream of stereoscopic images (300,302) of the environment, using the stereoscopic pair of cameras (104, 106), as the monitoring-unit is moved through the environment; c) using the stream of stereoscopic images (300,302) to determine the trajectory of the monitoring-unit as it moves through the environment (110, 108) and determining a first time series using the clock of the stereoscopic pair of cameras (104, 106), where the first time series details when the monitoring-unit was at predetermined points of the trajectory; d) scanning the environment (110, 108) with the LIDAR sensor, recording the returns from the LIDAR sensor and determining a second time series using the clock of the LIDAR sensor, where the second time series details when each scan from the LIDAR sensor was taken; e) processing the first and second time series, using a timer to relate the first and second series in order to match the return from the LIDAR sensor to the point on the trajectory at which the return was received, wherein the timer is provided by a statistical method, using the TICsync algorithm, to relate the first time series and the second time series; and f) creating, using the fixed, predetermined, orientation between the stereoscopic pair of cameras and the LIDAR sensor, the 3D reconstruction based upon the LIDAR returns.