Edit and compile if you like:
% Author: Izaak Neutelings (October 2020)
\documentclass[border=3pt,tikz]{standalone}
\usepackage{physics}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{angles,quotes} % for pic
\usetikzlibrary{arrows.meta}
\usetikzlibrary{patterns}
\tikzset{>=latex} % for LaTeX arrow head
\colorlet{xcol}{blue!70!black}
\colorlet{vcol}{green!60!black}
\colorlet{myred}{red!65!black}
\colorlet{mypurple}{blue!60!red!80}
\colorlet{acol}{red!50!blue!80!black!80}
\tikzstyle{rvec}=[->,xcol,very thick,line cap=round]
\tikzstyle{vvec}=[->,vcol,very thick,line cap=round]
\tikzstyle{myarr}=[{Latex[length=3,width=3]}-,xcol]
\tikzstyle{force}=[->,myred,very thick,line cap=round]
\tikzstyle{mass}=[line width=0.6,draw=red!30!black, %rounded corners=1,
top color=red!40!black!30,bottom color=red!40!black!10,shading angle=30]
\tikzstyle{ground}=[preaction={fill,top color=black!10,bottom color=black!5,shading angle=20},
fill,pattern=north east lines,draw=none,minimum width=0.3,minimum height=0.6]
\tikzstyle{metal}=[fill,top color=black!40,bottom color=black!20,shading angle=10]
\begin{document}
% ROLLING
\begin{tikzpicture}
\def\W{4.8} % ground width
\def\H{3.2} % ground height
\def\D{0.3} % ground depth
\def\R{0.8} % disk radius
\def\d{1.0} % disks' distances from edge
\def\angb{{(2*\d-\W)*180/pi-90}} % angle point 2
\coordinate (A) at (\d,\R); % disk 1 origin
\coordinate (B) at (\W-\d,\R); % disk 2 origin
\coordinate (RA) at ($(A)+(-90:\R)$); % point 1
\coordinate (RB) at ($(B)+(\angb:\R)$); % point 2
\coordinate (BB) at ($(B)+(-90:\R)$); % point 2 bottom
% GROUND
\draw[ground] %(0,0) rectangle++ (-\D,\H) (-\D,\H) rectangle++ (\W,\D);
(0,0) rectangle++ (\W,-\D);
\draw (0,0) --++ (\W,0);
% DISK 1
\draw[mass] (A) circle(\R);
\draw[blue!50!black,fill=blue!90!black] (RA) circle(0.06*\R);
\draw[->] (A) -- (RA) node[midway,above=1,left=-1,scale=0.8] {$R$}; %node[right=3] {$M$}
\draw[vvec] (A) --++ (0.7*\R,0) node[below] {$\vb{v}$};
\draw[red!40!black,fill=red!80!black!80] (A) circle(0.08*\R) node[above=2,scale=0.8] {$M$}; %node[right=1,scale=0.8] {CM}
%\draw[force] (TD)++(0.08,0) --++ (0,0.8*\RD) node[right] {$\vb{T}$};
\draw[->] (A)++(30:1.2*\R) arc(30:-10:1.0*\R) node[midway,above right=-1] {$\omega$};
% DISK 2
\draw[mass] (B) circle(\R);
\draw[thick,blue!40!black] (BB) arc(-90:\angb:\R);
\draw[blue!50!black,fill=blue!90!black] (RB) circle(0.06*\R);
\draw[->] (B) -- (RB);
\draw[dashed] (B) --++ (0,-\R) --++ (0,-0.1*\R);
\draw[vvec] (B) --++ (0.7*\R,0) node[below] {$\vb{v}$};
\draw[red!40!black,fill=red!80!black] (B) circle(0.08*\R);
\draw pic[<-,scale=0.8,"$\theta$",draw,angle radius=8,angle eccentricity=1.6] {angle=RB--B--BB};
\draw[->,blue!50!black] (A)++(0,1.3*\R) --++ (\W-2*\d,0) node[midway,fill=white,inner sep=1,scale=0.8] {$s=R\theta$};
%\draw[->] (B)++(30:1.2*\R) arc(30:-10:1.0*\R) node[midway,above right=-1] {$\omega$};
\end{tikzpicture}
% INCLINED ground
\begin{tikzpicture}
\def\R{0.5} % disk radius
\def\W{3.2} % ground width
\def\ang{30} % ground angle
\def\mx{2.5} % mass x position
\coordinate (X) at (\ang:\mx); % wheel position
\coordinate (C) at ($(X)+(\ang+90:\R)$); % wheel center
\draw[thick,top color=blue!20!black!30,bottom color=white,shading angle=\ang+10]
(0,0) coordinate (O) -- (\ang:\W) coordinate (T) -- ({\W*cos(\ang)},0) coordinate (L) -- cycle;
\draw[mass] (C) circle(\R) node[myred!70!black] {$M$};
\draw pic["$\theta$",draw=black,angle radius=22,angle eccentricity=1.3] {angle=L--O--T};
\draw[<->] (X) --++ (0,{-\mx*sin(\ang)}) node[midway,right] {$h$};
\end{tikzpicture}
\end{document}
Click to download: dynamics_rolling.tex • dynamics_rolling.pdf
Open in Overleaf: dynamics_rolling.tex

