A positioning filter based on uncertainty and observability analyses for nonholonomic robots