A method comprising: receiving, by a lidar sensor mounted on an autonomous vehicle, sensor data describing an environment surrounding the autonomous vehicle, the sensor data comprising a plurality of points, each point associated with a time of capture of the point by the lidar sensor; determining based on the plurality of points, a source point cloud and a target point cloud, wherein the two point clouds are captured at different times initializing a plurality of velocity parameters describing movement of the autonomous vehicle, the plurality of velocity parameters affecting determined respective positions of the plurality of points; repeating, for a plurality of iterations: determining a plurality of pairs of points, each pair of points comprising a point from the source point cloud and a corresponding point from the target point cloud; modifying the velocity parameter in association with movement of the vehicle during capturing of the source point cloud and the target point cloud, the velocity parameters being modified such that an aggregate measure of distance between corresponding points of the plurality of pairs of points is minimized; and adjusting a timestep representing a time difference between the source point cloud and the target point cloud based on a measure of error in computing the velocity parameters; and determining control signals associated with navigating the autonomous vehicle based on the velocity parameters. receiving, by a lidar sensor mounted on an autonomous vehicle, sensor data describing an environment surrounding the autonomous vehicle, the sensor data comprising a plurality of points, each point associated with a time of capture of the point by the lidar sensor; determining based on the plurality of points, a source point cloud and a target point cloud, wherein the two point clouds are captured at different times initializing a plurality of velocity parameters describing movement of the autonomous vehicle, the plurality of velocity parameters affecting determined respective positions of the plurality of points; repeating, for a plurality of iterations: determining a plurality of pairs of points, each pair of points comprising a point from the source point cloud and a corresponding point from the target point cloud; modifying the velocity parameter in association with movement of the vehicle during capturing of the source point cloud and the target point cloud, the velocity parameters being modified such that an aggregate measure of distance between corresponding points of the plurality of pairs of points is minimized; and adjusting a timestep representing a time difference between the source point cloud and the target point cloud based on a measure of error in computing the velocity parameters; and determining a plurality of pairs of points, each pair of points comprising a point from the source point cloud and a corresponding point from the target point cloud; modifying the velocity parameter in association with movement of the vehicle during capturing of the source point cloud and the target point cloud, the velocity parameters being modified such that an aggregate measure of distance between corresponding points of the plurality of pairs of points is minimized; and adjusting a timestep representing a time difference between the source point cloud and the target point cloud based on a measure of error in computing the velocity parameters; and determining control signals associated with navigating the autonomous vehicle based on the velocity parameters.