## 4 Experiments
### Experimental Setup
#### 4.1.3 Systematic Workflow for Data Acquisition and Processing  
In each trial, we recorded the stair-climbing motion of the robot--fitted with a marker on the wheel's CoR--using a video camera. We then processed every dataset according to the workflow illustrated in Figure 11. \begin{table}
\begin{tabular}{c c c} \hline
**Item** & **Model** & **Specification/Setting** \\ \hline DC Motor & IG-GM52 (04 TYPE), D\&G & Rated voltage: 24 V \\  & WITH Co., Seoul, South Korea & Rated power: 48.6 W \\  & & Gear ratio: 1:53 \\ \hline MCU & Arduino Mega, Italy & \\ \hline Motor driver & BTS7960, China & Rated current: 43 A \\ \hline Li-Po Battery & PT-B2800N-FX50, Polytronics & \\  & technology Co., Hsinchu, & \\  & Taiwan & Rated voltage: 22.2 V \\ \hline Camera & Samsung Galaxy S23, & Camera resolution: UHD(4K) \\  & Samsung, Suwon, South Korea & Camera FOV : 85\({}^{\circ}\) \\  & & Frame rate : 60 fps \\ \hline \hline \end{tabular}
\begin{tabular}{c c} \hline  & Number of steps: 4 \\  & Dimensions: \\  & 300 mm (_tread_) \(\times\) \\  & 160 mm (_riser_) \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Experimental equipment and specifications. \begin{table}
\begin{tabular}{c c} \hline
**Stiffness Values** & **PWM Duty Ratio (\%)** \\ \hline S1 : basic experiment (No suspension) S2 : low-k & \\  & experiment (\(\text{k}_{t}=0.206\) N\(\cdot\)m/rad) & 20 \\ \hline S3 : middle k experiment (\(\text{k}_{t}=0.547\) N\(\cdot\)m/rad) & 40 \\ \hline S4 : high-k experiment (\(\text{k}_{t}=0.909\) N\(\cdot\)m/rad) & 60 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Four Stiffness and three drive angular velocity conditions. First, each trial was recorded on video as the robot ascended the stairs, and the video file was saved. Next, we used Blender 4.3 software to track the marker placed on the wheel's CoR through marker tracking techniques, extracting the \((x,y)\) position data for each tracked frame and saving them to a CSV file. We then imported these pixel-based \((x,y)\) data into MATLAB, where they were scaled to millimeters by leveraging the periodicity of the wheel's trajectory. To compute the velocity from these scaled discrete points, we performed numerical differentiation using a forward finite-difference method, yielding the raw velocity data \(v(i)\) as described below. \[v_{x}(t_{i})=\frac{\Delta x(t_{i})}{\Delta t}=\frac{x(t_{i+1})-x(t_{i})}{t_{i+ 1}-t_{i}} \tag{7}\]  
\[v_{y}(t_{i})=\frac{\Delta y(t_{i})}{\Delta t}=\frac{y(t_{i+1})-y(t_{i})}{t_{i+ 1}-t_{i}} \tag{8}\]  
\[v(t_{i})=\sqrt{v_{x}(t_{i})^{2}+v_{y}(t_{i})^{2}}\,where\ t_{i}\ is\ i^{th}\ sampling\ time \tag{9}\]  
Since the video was recorded at 60 frames per second (FPS), the sampling time was \(\Delta t=\frac{1}{60}(s)\). Due to the nature of finite differences, performing numerical differentiation at a sampling rate of 60 fps (about 0.016 s) can produce velocity data that appear noisy. To mitigate this, a filter must be applied to smooth the data. Among various filtering techniques, we selected the Savitzky-Golay filter because it preserves the original trend of the data while preventing large deviations from the actual values. After these processing  
Figure 11: Data processing pipeline for extracting CoR trajectory and velocity from marker tracking. steps, each experiment yielded two final outputs: an \((x,y)\) trajectory graph of the wheel's CoR and a corresponding time-velocity \((t,v)\) plot. Meanwhile, the process shown in Figure 11 can be viewed as converting pixel-based image coordinates into real-world coordinates measured in millimeters. However, camera-based image analysis inherently involves distortion errors, because lens-induced effects prevent perfect alignment between image coordinates and physical coordinates. Normally, correcting these errors requires determining the camera parameters and performing a camera calibration procedure. In this experiment, however, the robot was filmed from a distance of about 2 m, capturing its 2D motion.