ArUco markers are just visual markers that encode an ID. They are all predefined, meaning you can’t for example create an ArUco Marker with an arbitrary ID. There are hundreds of them already predefined and the supporting libraries (like OpenCV) already have the various ArUco Dictionaries implemented and ready to use in code.

The main use of the ArUco markers is for quick identification and pose estimation.

Check this link for more info.

Example of an ArUco Marker: 4x4 ID: 0

Example of a 3D Model correctly oriented in the scene using an ArUco marker