\usepackage[%
    indexonlyfirst% Show only the first use page on the list of acronyms
]{glossaries}

% Set the list of acronyms style
\newglossarystyle{dots}{% From https://tex.stackexchange.com/a/327513
    \setglossarystyle{list}% Base style
    %
    \renewcommand*{\glossentry}[2]{%
        \item[%
                    \upshape\bfseries% Upright and bold
                    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}% The acronym
              ]%
        \glossentrydesc{##1}% The description
        \unskip\leaders\hbox to 2.9mm{\hss.}\hfill##2}% The pages
    %
    \renewcommand*{\glsgroupskip}{}% No gap between groups
}
\setglossarystyle{dots}

\makenoidxglossaries % Prepare the list of acronyms

% Define the acronyms
\newcommand{\acronym}[2]{% #1 = acronym, #2 = full name
    \newacronym{#1}{#1}{#2}%
    \expandafter\newcommand\csname #1\endcsname{% Create a command named after the acronym (call \#1)
        \gls{#1}%
    }%
}

\let\AE\undefined
\acronym{AE}{augmented environment}
\acronym{AR}{augmented reality}
\acronym{hAE}{haptic augmented environment}
\acronym{hAR}{haptic augmented reality}
\acronym{HMD}{head-mounted display}
\acronym{hRE}{haptic real environment}
\acronym{hVE}{haptic virtual environment}
\acronym{MR}{mixed reality}
\acronym{RE}{real environment}
\acronym{RV}{reality-virtuality}
\acronym{vAE}{visual augmented environment}
\acronym{VCA}{voice-coil actuator}
\acronym{VE}{virtual environment}
\acronym{vhAE}{visuo-haptic augmented environment}
\acronym{vhRE}{visuo-haptic real environment}
\acronym{vhVE}{visuo-haptic virtual environment}
\acronym{VO}{virtual object}
\acronym{VR}{virtual reality}
\acronym{vRE}{visual real environment}
\acronym{vVE}{visual virtual environment}
