An overview of the advantages and constraints of coded pattern projection techniques for autonomous navigation