Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (2024)

\addbibresource

references.bib

Zhiang Chen, Devin Keating, Yash Shethwala, Aravind Adhith Pandian Saravanakumaran,
Ramon Arrowsmith, Albert Kottke, Christine Wittich, Jnaneshwar Das

Abstract

Shake tables serve as a critical tool for simulating earthquake events and testing the response of structures to seismic forces. However, existing shake tables are either expensive or proprietary. This paper presents the design and implementation of a low-cost, open-source shake table named Shakebot for earthquake engineering research and education, built using Robot Operating System (ROS) and principles of robotics. The Shakebot adapts affordable and high-accuracy components from 3D printers, particularly a closed-loop stepper motor for actuation and a toothed belt for transmission. The stepper motor enables the bed to reach a maximum horizontal acceleration of 11.8 m/s2๐‘šsuperscript๐‘ 2m/s^{2}italic_m / italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT (1.2 ๐ ๐ \mathbf{g}bold_g), and velocity of 0.5 m/s๐‘š๐‘ m/sitalic_m / italic_s, with a 2 kโขg๐‘˜๐‘”kgitalic_k italic_g specimen. The Shakebot is equipped with an accelerometer and a high frame-rate camera for bed motion estimation. The low cost and easy use make the Shakebot accessible to a wide range of users, including students, educators, and researchers in resource-constrained settings.

The Shakebot, along with its digital twinโ€“a virtual shake robotโ€“has showcased significant potential in advancing ground motion research. Specifically, this study examines the dynamics of precariously balanced rocks. The Shakebot provides an approach to validate the simulation through physical experiments. The ROS-based perception and motion software facilitates the code transition from our virtual shake robot to the physical Shakebot. The reuse of the control programs ensures that the implemented ground motions are consistent for both the simulation and physical experiments, which is critical to validate our simulation experiments.

I Introduction

For decades, researchers have used shake tables to simulate the effects of earthquakes on structures, systems, and materials, which provides a critical approach to earthquake research and education[jacobsen1929vibration, lu2008shake]. Simulated earthquake conditions can help civil engineers identify potential weaknesses in the design and suggest ways to improve the structureโ€™s resilience[bogdanovic2019shake, rakicevic2021hybrid]. In a controlled laboratory setting, shake tables can also be used to study the behavior of fragile geological features, which aids seismologists in finding upper-bound constraints on ground motions[purvance2008freestanding]. By simulating earthquakes in the classroom, students can better understand the forces involved and the factors that influence the behavior of structures[elgamal2005line], inspiring the next generation of engineers and seismologists.

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (1)
Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (2)

An important application of shake tables is to examine the dynamics of precariously balanced rocks (PBRs), which are free-standing rocks balanced on, but not attached to sub-horizontal pedestals[brune1996precariously, shi1996rocking, anooshehpoor2004methodology]. Because an earthquake ground motion of sufficient amplitude and duration may topple PBRs, the fragile configurations of PBRs provide upper-bound constraints on ground motions, refining probabilistic seismic hazard analysis[anderson2014precarious, rood2020earthquake]. The dynamics of the PBR overturning process are non-linear [yim_rocking_1980, purvance2008freestanding]. Purvance et al. [purvance2008freestanding] used a shake table to study the PBR overturning dynamics. However, difficulties can arise when using conventional shake tables to repeat overturning experiments. For example, when analyzing PBR fragility, shake experiments would involve accurate and repeated positioning of a large boulder on the shake table to record the overturning responses given ground motions. These boulders are often so heavy that the use of a crane or forklift is needed, and repositioning them precisely is difficult (e.g., [saifullah2022seismic]), complicating experiment repeatability.

Open sourceCost (USD)Payload (kโขg๐‘˜๐‘”kgitalic_k italic_g)Vel (m/s๐‘š๐‘ m/sitalic_m / italic_s)Acc (๐ ๐ \mathbf{g}bold_g)SoftwareProgrammableTransmission
Quanser [web:qanser_st2]ร—\timesร—30k7.50.42.5NAโœ“ball screw
CUSHAKE [baran2011construction]ร—\timesร—45k35000.011DEPSIMโœ“threaded rod
Kelvin [web:kelvin_es]ร—\timesร—1.3kNANANANAร—\timesร—reciprocating arm
SARSAR [damci2019]โœ“1.8k200 (0.4 ๐ ๐ \mathbf{g}bold_g)0.351.5NAโœ“ball screw
Shao and Enyart [shao2014development]ร—\timesร—NA228NA4NAโœ“hydraulic actuators
Kฤฑnay [kinay2006construction]โœ“NA800.252Scilabโœ“ball screw
QuakeLogic [web:testbox_shaketable]ร—\timesร—15k500.51TESTLABโœ“ball screw
Shakebot (ours)โœ“1.3k20.51.2ROSโœ“toothed belt
Note: Shakebot cost does not include camera or logistics. The cost of SARSAR is estimated based on available items in the United States.
The Specifications of payload, velocity, and acceleration are the maximum values. SARSAR has 200 kโขg๐‘˜๐‘”kgitalic_k italic_g maximum payload at 0.4 ๐ ๐ \mathbf{g}bold_g acceleration.

In an effort to reduce variability, explore a broad parameter space of ground motions, and automate PBR overturning analyses, our previous study developed a virtual shake robot in simulation [chen2024virtual], which is a digital twin of the Shakebot. The virtual shake robot utilized core technologies in robotics, such as Robot Operating System (ROS), Gazebo simulation toolbox, and Bullet physics engine. Although the virtual shake robot allows us to conduct overturning experiments in simulation, the results need to be validated through physical experiments. To complete this validation, we designed and built a low-cost, small-scale shake table, called Shakebot (Fig.1).

The Shakebot provides a reverse method for simulation validation. Physics engines have been used for robotic development. However, when robotic systems are transitioned from simulations to the real world, simulation gaps may cause critical failures (e.g., in the arena of reinforcement learning[zhao2020sim, ding2020challenges]). When using a physics engine for scientific studies, we also need to address the simulation gap to calibrate and scale-up the simulation experiments. Using the Shakebot, we test the overturning dynamics of down-scaled, 3D-printed PBRs. We build the same PBR models in simulation and validate the overturning dynamics using our virtual shake robot. Following this approach, we are able to compare the overturning patterns obtained from the Shakebot and the virtual shake robot, further allowing us to quantify the uncertainty in simulation. The Shakebot serves as a validation tool for simulation studies, aiding in learning more about the real-time dynamics of the PBRs and potentially calibrating physics engine parameters to reduce the simulation gaps.

The Shakebot demonstrates interdisciplinary research in the use of automated robotic systems for geoscience studies, and enhances the impact of robotics in the natural sciences. Besides its contribution to seismology, the key contributions of this study include:

  • โ€ข

    Shakebot is the first tabletop shake table developed based on robotic concepts (perception and motion systems) and tools (ROS). Because of using ROS, the control systems are reused from our previous virtual shake robot, ensuring that the ground motions (the motion of the bed) are consistent in physical and simulation experiments. This consistency is vital for simulation validation.

  • โ€ข

    The hardware mechanism is simplified by design. The Shakebot adopts a closed-loop stepper motor with a toothed belt and pulley transmission mechanism. Most of the mechanical parts and components are off-the-shelf, and only a few parts are 3D-printed. The simplified design lowers costs and expedites prototyping. Additionally, for safety anticipation, we employ a double-emergency mechanism to allow system override in case of malfunction.

  • โ€ข

    Compared with traditional tabletop shake tables that only use accelerometers, our Shakebot also leverages a top-down view camera to estimate ground motion. The perception system provides an option of fusing accelerations and camera-based displacements for ground velocity estimation.

  • โ€ข

    For the perception system, we have developed a calibration method that samples measurements to construct an overdetermined system. This system is then solved using the Moore-Penrose inverse, enabling the precise estimation of the calibration parameters.

  • โ€ข

    We have open-sourced our hardware and software to promote robotic applications in seismic research and education: https://github.com/DREAMS-lab/asu_shake_table. Despite focusing on PBR dynamics in this study, the Shakebot provides an affordable and accessible platform for other earthquake research and education.

The paper is structured as follows. In Sec.II, we discuss commercial and academic shake tables available for civil engineering and seismology, and highlight a few of their capabilities and limitations. From Sec.III to Sec.VI, we describe the mechanical design, the perception system, the motion system, and the calibration system. In Sec.VII, we discuss the results of our experiments, followed by our conclusions and future directions in Sec.VIII.

II Related Work

Full- or large-scale shake tables and tabletop shake tables have different applications for research and education. Full-scale shake tables are designed to simulate earthquakes on full-scale buildings, bridges, and other large structures [gavridou2017shake]. Full-scale shake tables, which usually incorporate acceleration and displacement sensors for ground motion estimations, are expensive to build and maintain. The high cost limits their availability in research and education. Full-scale shake tables may also involve safety considerations in operation and damage prevention.

Tabletop shake tables, on the other hand, are typically used to test smaller models and structure components. Because of their low cost, these tables are also useful in educational settings to teach students about the behavior of structures under earthquake conditions. TABLE I compares existing tabletop shake tables and the Shakebot. Existing tabletop shake tables are comparatively expensive [web:qanser_st2, baran2011construction, web:testbox_shaketable] or only allow a fixed ground motion pattern [web:kelvin_es]. None of the existing tabletop shake tables have open-sourced their hardware. Another limitation of existing shake tables is that they solely employ accelerometers to measure ground motions.

III System Description

In this section, we discuss the mechanical design, motor selection strategy, and safety mechanism. The system is designed to satisfy the ground motion requirementsโ€”maximum dynamic acceleration of 11.8 m/s2๐‘šsuperscript๐‘ 2m/s^{2}italic_m / italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT (1.2 ๐ ๐ \mathbf{g}bold_g), maximum velocity of 0.5 m/s๐‘š๐‘ m/sitalic_m / italic_s, and maximum displacement of 0.45 m๐‘šmitalic_m, with maximum specimen (e.g., PBR) payload mass of 2 kโขg๐‘˜๐‘”kgitalic_k italic_g.

III-A Hardware Mechanism

The two main components of the Shakebot are a chassis and a control box, as shown in Fig.1. The chassis is constructed of an extruded aluminum T-slot frame that supports two linear shafts (625 mโขm๐‘š๐‘šmmitalic_m italic_m length for each shaft). A carriage is mounted on the linear shafts with ball bearings, which reduce the friction between the linear shafts and the carriage. A flatbed (pedestal) is attached to the carriage to hold specimens. A stepper motor (i.e., NEMA 34) actuates the carriage through a toothed belt and pulley transmission. The stepper motor driver (CL86T), contained in the control box, drives the stepper motor. The control box also houses the power supply (S-350-60), an emergency stop button, a touchscreen for the user interface, and a Raspberry Pi that handles trajectory generation and low-level system control.

III-B Motor Selection

To select a stepper motor, we considered the stepper motor torque at its maximum angular velocity to satisfy the required ground motion acceleration and velocity. Because stepper motor torque decreases with velocity, if the torque at the maximum velocity satisfies the acceleration requirement, the stepper motor can also achieve so at any smaller velocities. We selected Nema 34HS31, a closed-loop stepper motor (with an encoder) with a torque output of 1.56 Nโขm๐‘๐‘šNmitalic_N italic_m at the maximum speed of 1200 RPM. The maximum translational force is calculated from the torque,

F=mโขa=ฯ„r๐น๐‘š๐‘Ž๐œ๐‘Ÿ\displaystyle F=ma=\frac{\tau}{r}italic_F = italic_m italic_a = divide start_ARG italic_ฯ„ end_ARG start_ARG italic_r end_ARG(1)

where F๐นFitalic_F is the translational force, r๐‘Ÿritalic_r is the outside radius of the toothed pulley, m๐‘šmitalic_m is the maximum payload mass (including carriage and specimen), a๐‘Žaitalic_a is the maximum translational acceleration, and ฯ„๐œ\tauitalic_ฯ„ is the stepper motor torque. We select a toothed pulley with an outside radius of 25.91 mโขm๐‘š๐‘šmmitalic_m italic_m. The translational force at the maximum speed is 60.21 N๐‘Nitalic_N. Considering a maximum total payload mass m๐‘šmitalic_m of 4 kโขg๐‘˜๐‘”kgitalic_k italic_g (including a 2 kโขg๐‘˜๐‘”kgitalic_k italic_g carriage and 2 kโขg๐‘˜๐‘”kgitalic_k italic_g specimen), the corresponding acceleration produced from the translational motion is 15.1 m/s2๐‘šsuperscript๐‘ 2m/s^{2}italic_m / italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT (1.54 ๐ ๐ \mathbf{g}bold_g). The ratio of the calculated acceleration to the required acceleration is 1.28, which is adequate empirically to compensate for the friction and energy losses in transmission. Additionally, at the maximum stepper motor speed of 1200 RPM, the translational speed can reach 0.52 m/s๐‘š๐‘ m/sitalic_m / italic_s, which also satisfies our design requirement for PBR studies. Note that we used the outside radius on the specifications of the toothed pulley for the calculation here. The outside radius value is appropriate for the stepper motor selection. We conducted a calibration process that uses a camera and several fiducial markers to estimate this radius precisely for accurate control. The calibration process is discussed in Sec.VI-B.

The stepper motor driver reads signals from the encoder attached to the stepper motor, forming a closed-loop system to control the stepper motor. The microstepping technology in the stepper motor driver allows a higher step resolution (1.8ยฐ/2000 per step), which achieves smooth motions at low speeds (as low as 0.001 m/s๐‘š๐‘ m/sitalic_m / italic_s in our implementation).

III-C Safety Mechanism

The design incorporates two levels of safety features. The first level consists of a pair of limit emergency switches situated at either end of the carriageโ€™s range of motion, as shown in Fig. 2. These switches link to the emergency stop function on the stepper motor driver. Once either of these switches is triggered, the stepper motor is disabled. The second level of protection is supplied by an emergency push button in the control box, which disconnects the power supply from the stepper motor driver. The emergency push button can be manually activated by the Shakebotโ€™s operator. Fig. 2 shows a top-down view of the Shakebot.

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (3)

IV Perception System

The perception system estimates the status of the bed using a camera and an accelerometer. Four fiducial markers are affixed to the corners of the bed (Fig.1(b) and Fig.2). A top-down view camera (FLIR Chameleonยฎ3 Color Camera CM3-U3-13Y3C-CS 1/2") captures the position and orientation of the bed using the ROS package apriltag_ros [malyuta2017mt, Wang2016]. Additionally, an accelerometer (Wit Motion HWT905-TTL) attached underneath the bed measures acceleration (ground motion acceleration). We directly obtain ground motion displacement and acceleration from the fiducial marker detection and accelerometer, respectively. We additionally estimate the ground motion velocities by fusing the information from the fiducial marker detection and accelerometer.

IV-A Displacement Estimation

The camera estimates ground motion displacement by detecting the fiducial markers at each corner of the bed. The apriltag_ros package provides the pose of each visible marker in the camera coordinates. When the bed moves from one position to another, we obtain the relative pose of a marker attached to the bed,

Hij=Hcjโ‹…Hic=[Hjc]โˆ’1โ‹…Hicsuperscriptsubscript๐ป๐‘–๐‘—โ‹…superscriptsubscript๐ป๐‘๐‘—superscriptsubscript๐ป๐‘–๐‘โ‹…superscriptdelimited-[]superscriptsubscript๐ป๐‘—๐‘1superscriptsubscript๐ป๐‘–๐‘H_{i}^{j}=H_{c}^{j}\cdot\ H_{i}^{c}=[H_{j}^{c}]^{-1}\cdot\ H_{i}^{c}italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT = italic_H start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT โ‹… italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT = [ italic_H start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT โ‹… italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT(2)

where i๐‘–iitalic_i and j๐‘—jitalic_j indicate marker positions at two time stamps, c๐‘citalic_c indicates the camera coordinates, Habsuperscriptsubscript๐ป๐‘Ž๐‘H_{a}^{b}italic_H start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT is the transformation matrix for position a๐‘Žaitalic_a with respect to position b๐‘bitalic_b. Hjcsuperscriptsubscript๐ป๐‘—๐‘H_{j}^{c}italic_H start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT and Hicsuperscriptsubscript๐ป๐‘–๐‘H_{i}^{c}italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT are obtained using the apriltag_ros package.

We extract the translation vector from Hijsuperscriptsubscript๐ป๐‘–๐‘—H_{i}^{j}italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT as the relative displacement of the fiducial marker at two positions. We estimate ground motion displacement by averaging the relative displacements from all visible fiducial marker detections. When a fiducial marker is obstructed by a specimen, the ground motion displacement estimation only relies upon the remaining visible fiducial markers. Note that the relative displacement from apriltag_ros is inaccurate despite intrinsic camera calibration. To address this issue, perception calibration is performed (Sec.VI-A).

IV-B Acceleration Estimation

The accelerometer installed beneath the bed measures the ground motion acceleration vector in three dimensions. However, the bedโ€™s motion is limited to one degree-of-freedom prismatic movement. To obtain the acceleration along the bed movement direction, we align the accelerometerโ€™s x-axis with the bedโ€™s direction of motion. However, the manual alignment is not perfect. We additionally calculate the absolute value (Euclidean distance) of the acceleration vector, because the absolute acceleration value is the same value of the acceleration vector along the bed movement direction. To eliminate high-frequency vibration, we apply a low-pass filter to the raw acceleration data.

IV-C Velocity Estimation

We estimate ground motion velocity by fusing the derived velocities from the fiducial marker detection and accelerometer data. Fig.3 illustrates the velocity fusion process. During a shake experiment, the timestamped ground motion displacements and accelerations are recorded. After the shake experiment, we implement numerical derivation to obtain velocity vdโข(t)subscript๐‘ฃ๐‘‘๐‘กv_{d}(t)italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_t ) from the ground motion displacements d(t).From the ground motion accelerations aโข(t)๐‘Ž๐‘กa(t)italic_a ( italic_t ), we conduct numerical integration to obtain velocity vaโข(t)subscript๐‘ฃ๐‘Ž๐‘กv_{a}(t)italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_t ).

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (4)

From the recordings of fiducial markers and acceleremeter, we obtain two sets of derived velocities: ๐ฏ๐={vdโข(t1),โ€ฆ,vdโข(tM)}subscript๐ฏ๐subscript๐‘ฃ๐‘‘subscript๐‘ก1โ€ฆsubscript๐‘ฃ๐‘‘subscript๐‘ก๐‘€\mathbf{v_{d}}=\{v_{d}(t_{1}),...,v_{d}(t_{M})\}bold_v start_POSTSUBSCRIPT bold_d end_POSTSUBSCRIPT = { italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , โ€ฆ , italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) } and ๐ฏ๐š={vaโข(t1),โ€ฆ,vaโข(tN)}subscript๐ฏ๐šsubscript๐‘ฃ๐‘Žsubscript๐‘ก1โ€ฆsubscript๐‘ฃ๐‘Žsubscript๐‘ก๐‘\mathbf{v_{a}}=\{v_{a}(t_{1}),...,v_{a}(t_{N})\}bold_v start_POSTSUBSCRIPT bold_a end_POSTSUBSCRIPT = { italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , โ€ฆ , italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ) }. We phrase the ground motion velocity estimation as a regression problem with an objective function that minimizes the square of errors between estimated and derived velocities,

argโกminฮธโขโ€–v^โข(t;ฮธ)โˆ’๐ฏ๐ฌโข(t)โ€–subscript๐œƒnorm^๐‘ฃ๐‘ก๐œƒsubscript๐ฏ๐ฌ๐‘ก\arg\min_{\theta}||\hat{v}(t;\theta)-\mathbf{v_{s}}(t)||roman_arg roman_min start_POSTSUBSCRIPT italic_ฮธ end_POSTSUBSCRIPT | | over^ start_ARG italic_v end_ARG ( italic_t ; italic_ฮธ ) - bold_v start_POSTSUBSCRIPT bold_s end_POSTSUBSCRIPT ( italic_t ) | |(3)

where v^โข(t;ฮธ)^๐‘ฃ๐‘ก๐œƒ\hat{v}(t;\theta)over^ start_ARG italic_v end_ARG ( italic_t ; italic_ฮธ ) is a parametric ground motion velocity function, and ๐ฏ๐ฌ=๐ฏ๐โˆช๐ฏ๐šsubscript๐ฏ๐ฌsubscript๐ฏ๐subscript๐ฏ๐š\mathbf{v_{s}}=\mathbf{v_{d}}\cup\mathbf{v_{a}}bold_v start_POSTSUBSCRIPT bold_s end_POSTSUBSCRIPT = bold_v start_POSTSUBSCRIPT bold_d end_POSTSUBSCRIPT โˆช bold_v start_POSTSUBSCRIPT bold_a end_POSTSUBSCRIPT is a set of velocities derived from measurements. In this ground motion velocity estimation setting, {vdโข(t)}subscript๐‘ฃ๐‘‘๐‘ก\{v_{d}(t)\}{ italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_t ) } and {vaโข(t)}subscript๐‘ฃ๐‘Ž๐‘ก\{v_{a}(t)\}{ italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_t ) } need not be synchronized, simplifying the electronic hardware configuration of our Shakebot. The fiducial marker detection and accelerometer have different frame rates. The parametric regression function v^โข(t;ฮธ)^๐‘ฃ๐‘ก๐œƒ\hat{v}(t;\theta)over^ start_ARG italic_v end_ARG ( italic_t ; italic_ฮธ ) has many options. We use a 6rd order polynomial function for demonstration in Sec.VII.

V Motion System

The Shakebot has a hierarchical motion system and a user interface (UI) to facilitate shake experiments. The hierarchical motion system provides two options to emulate ground motions: single-pulse cosine displacement motion and realistic ground motion from seismogram acceleration recordings. The UI assists users in repeating the shake experiment where single-pulse cosine displacement motions are deployed with different ground motion parameters.

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (5)

V-A Motor Control

The Shakebot motion is enabled by a hierarchical motion planner in the Raspberry Pi, which outputs PWM signals to the closed-loop stepper motor driver. Fig.4 shows the hierarchical motion system. The first ground motion option is a single-pulse cosine displacement,

dโข(t)=Aโˆ’Aโขcosโก(2โขฯ€โขfโขt),๐‘‘๐‘ก๐ด๐ด2๐œ‹๐‘“๐‘กd(t)=A-A\cos(2\pi ft),italic_d ( italic_t ) = italic_A - italic_A roman_cos ( 2 italic_ฯ€ italic_f italic_t ) ,(4)

where dโข(t)๐‘‘๐‘กd(t)italic_d ( italic_t ) is the ground displacement function, A๐ดAitalic_A is the amplitude, f๐‘“fitalic_f is the frequency, and tโˆˆ[0,1/f]๐‘ก01๐‘“t\in[0,1/f]italic_t โˆˆ [ 0 , 1 / italic_f ] is time. A๐ดAitalic_A and f๐‘“fitalic_f are derived from ground motion parameters,

f=12โขฯ€โขฮบ๐‘“12๐œ‹๐œ…\displaystyle f=\frac{1}{2\pi\kappa}italic_f = divide start_ARG 1 end_ARG start_ARG 2 italic_ฯ€ italic_ฮบ end_ARG(5)
A=ฮฑโขg4โขฯ€2โขf2๐ด๐›ผ๐‘”4superscript๐œ‹2superscript๐‘“2\displaystyle A=\frac{\alpha g}{4\pi^{2}f^{2}}italic_A = divide start_ARG italic_ฮฑ italic_g end_ARG start_ARG 4 italic_ฯ€ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_f start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG(6)

where ฮฑ๐›ผ\alphaitalic_ฮฑ is the peak ground acceleration (PGA), ฮบ๐œ…\kappaitalic_ฮบ is the ratio of peak ground velocity to peak ground acceleration (PGV/PGA), and ๐ ๐ \mathbf{g}bold_g is the gravitational acceleration. As shown in Fig.4, the motion interpreter converts (PGV, PGA) to (A,f๐ด๐‘“A,fitalic_A , italic_f) using Eqs.5-6. With (A,f๐ด๐‘“A,fitalic_A , italic_f), the trajectory planner takes derivative of the cosine displacement function (Eq.4) to obtain ground velocity function,

vโข(t)=2โขฯ€โขAโขfโขsinโก(2โขฯ€โขfโขt)๐‘ฃ๐‘ก2๐œ‹๐ด๐‘“2๐œ‹๐‘“๐‘กv(t)=2\pi Af\sin(2\pi ft)italic_v ( italic_t ) = 2 italic_ฯ€ italic_A italic_f roman_sin ( 2 italic_ฯ€ italic_f italic_t )(7)

where vโข(t)๐‘ฃ๐‘กv(t)italic_v ( italic_t ) is the ground velocity function, and tโˆˆ[0,1/f]๐‘ก01๐‘“t\in[0,1/f]italic_t โˆˆ [ 0 , 1 / italic_f ] is time. From the ground velocity function, we uniformly sample velocity points {v}๐‘ฃ\{v\}{ italic_v } as the input of the velocity controller. The sampling frequency is a user-defined parameter (usually 200 Hz). Note that the velocity commands {v}๐‘ฃ\{v\}{ italic_v } are desired translational velocities of the bed. The velocity controller converts the translation velocity to the angular velocity of the stepper motor.The angular velocity commands are further converted to PWM signals for the input of the stepper motor driver. The stepper motor driver, stepper motor, and encoder attached to the stepper motor form a closed-loop control to execute the PWM signals.

Besides the cosine ground displacement function, the Shakebotalso supports ground motion from observed seismograms. As shown in Fig.4, we first implement a low-pass filter to remove the high-frequency noise in the raw acceleration data. Numerical integration computes velocities from the accelerations. Then we have a high-pass filter to remove the low-frequency noise in the velocities, because the low-frequency noise in velocities may cause accumulated displacement errors. The output of the high-pass filter is a set of velocities {v}๐‘ฃ\{v\}{ italic_v }, which have the same format as the output from the trajectory planner. Because both the trajectory planner and high-pass filter had the same output format, we share a velocity controller to process the desired velocity commands.

V-B Control User Interface

The UI is a portal through which users conduct shake experiments to study PBR overturning responses. Once initialized, the UI prompts the user to place a PBR on the bed. Then the user needs to input (PGV/PGA, PGA), which is converted to (PGV, PGA). The motion module (Fig.4) executes a single-pulse cosine displacement ground motion based on the (PGV, PGA). After the ground motion is completed, the UI prompts the user to input the overturning response of the PBR (i.e., being toppled or remaining balanced). The overturning responses with ground motion parameters and perception estimates are saved in a CSV file. Based on the userโ€™s input, the UI exits or continues to conduct a new overturning experiment.

VI System Calibration

The Shakebot needs to be calibrated before conducting the shake experiments. We first calibrate the camera intrinsics and fiducial marker detection, and this calibrated perception system is used to facilitate velocity controller calibration.

VI-A Perception System Calibration

The perception system requires intrinsic camera calibration and fiducial marker detection scaling. We used the camera_calibration ROS package [web:camera_calibration] to obtain the intrinsic camera parameters including scale factor, focal length, pixel dimension, and distortion. Despite the intrinsic camera calibration, the translation estimation from apriltag_ros was found to be inaccurate in our implementation. To calibrate this fiducial marker detection process, we estimate a multiplicative factor between the fiducial marker displacement and manually measured displacement,

D=ฯƒโขd๐ท๐œŽ๐‘‘D=\sigma ditalic_D = italic_ฯƒ italic_d(8)

where D๐ทDitalic_D is the manually measured displacement, ฯƒ๐œŽ\sigmaitalic_ฯƒ is the multiplication factor, and d๐‘‘ditalic_d is the displacement from fiducial marker detection.

To better estimate ฯƒ๐œŽ\sigmaitalic_ฯƒ, we have an overdetermined system by sampling a number of displacement points along the linear shaft {d}๐‘‘\{d\}{ italic_d },

๐‘ซ=ฯƒโข๐’…๐‘ซ๐œŽ๐’…\bm{D}=\sigma\bm{d}bold_italic_D = italic_ฯƒ bold_italic_d(9)

where ๐‘ซ=[D1,D2,โ‹ฏ,DN]T๐‘ซsuperscriptsubscript๐ท1subscript๐ท2โ‹ฏsubscript๐ท๐‘๐‘‡\bm{D}=[D_{1},D_{2},\cdots,D_{N}]^{T}bold_italic_D = [ italic_D start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_D start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , โ‹ฏ , italic_D start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is a vector of manually measured displacements, and ๐’…=[d1,d2,โ‹ฏ,dN]T๐’…superscriptsubscript๐‘‘1subscript๐‘‘2โ‹ฏsubscript๐‘‘๐‘๐‘‡\bm{d}=[d_{1},d_{2},\cdots,d_{N}]^{T}bold_italic_d = [ italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , โ‹ฏ , italic_d start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is a vector of fiducial marker displacements. The Mooreโ€“Penrose inverse is applied to solve the overdetermined system,

ฯƒ=๐‘ซโข๐’…Tโข[๐’…โข๐’…T]โˆ’1๐œŽ๐‘ซsuperscript๐’…๐‘‡superscriptdelimited-[]๐’…superscript๐’…๐‘‡1\sigma=\bm{D}\bm{d}^{T}[\bm{d}\bm{d}^{T}]^{-1}italic_ฯƒ = bold_italic_D bold_italic_d start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT [ bold_italic_d bold_italic_d start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT(10)

We utilize the limit switches at the ends of the linear shaft (i.e., bed position calibration switches shown in Fig.2) to facilitate the measurement of bed displacement, ๐‘ซ๐‘ซ\bm{D}bold_italic_D. To begin the perception system calibration, the bed moves to the left end until the left bed position calibration switch is triggered. At the same time, the fiducial marker detection at this position is recorded. The bed then moves to the right end, triggering the right calibration switch, and the fiducial marker detection is recorded again. We input the manually measured length between the two calibration switches. During the perception calibration, we have a position controller that rotates the motor shaft by one angular step given one PWM signal. As the bed moves from one end to the other, we count and record the motor steps, from which we calculate the bed displacement per angular step (translational step resolution). Then, the bed randomly moves along the linear shaft to sample data points, such as step counts (from the left calibration switch) and fiducial marker detections. Using the step counts and translation step resolution, we calculate the actual bed displacements. The samples of the actual bed displacements and fiducial marker displacements are used in Eq.10 to estimate ฯƒ๐œŽ\sigmaitalic_ฯƒ.

VI-B Velocity Controller Calibration

The velocity controller calibration aims to reduce the uncertainties from the toothed belt transmission. Because of the closed-loop stepper motor, we assume that the error between the actual angular velocity and the desired angular velocity of the stepper motor is diminished. Given a desired translational velocity of the bed, we calculate the corresponding desired angular velocity. However, the toothed pulley radius r๐‘Ÿritalic_r is close but not equal to the outside radius of the pulley. The uncertainty in r๐‘Ÿritalic_r comes from factors such as the tightness of the toothed belt, manufacturing imprecision, and tooth geometry. We correct for such uncertainty using a multiplicative factor,

ฯ‰โ€ฒโข(t)=ฮณโขvโข(t)rsuperscript๐œ”โ€ฒ๐‘ก๐›พ๐‘ฃ๐‘ก๐‘Ÿ\omega^{\prime}(t)=\frac{\gamma v(t)}{r}italic_ฯ‰ start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT ( italic_t ) = divide start_ARG italic_ฮณ italic_v ( italic_t ) end_ARG start_ARG italic_r end_ARG(11)

where ฮณ๐›พ\gammaitalic_ฮณ is a constant that captures the first-order systematic uncertainty in the toothed belt transmission. The velocity controller calibration needs to estimate a ฮณ๐›พ\gammaitalic_ฮณ that minimizes the error between the desired and actual translational velocities. Because ฮณ๐›พ\gammaitalic_ฮณ is a factor that calibrates velocity, we denote ฮณโขvโข(t)๐›พ๐‘ฃ๐‘ก\gamma v(t)italic_ฮณ italic_v ( italic_t ) as calibrated velocity. Instead of directly measuring translational velocity in real time, we conduct half-cosine displacement motions (i.e., tโˆˆ[0,1/(2โขf)]๐‘ก012๐‘“t\in[0,1/(2f)]italic_t โˆˆ [ 0 , 1 / ( 2 italic_f ) ] in Eq.4) and estimate ฮณ๐›พ\gammaitalic_ฮณ from displacement differences,

Dโ€ฒ=ฮณโขDsuperscript๐ทโ€ฒ๐›พ๐ทD^{\prime}=\gamma Ditalic_D start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT = italic_ฮณ italic_D(12)

where D๐ทDitalic_D is the desired half-cosine displacement, and Dโ€ฒsuperscript๐ทโ€ฒD^{\prime}italic_D start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT is the actual half-cosine displacement measured from the fiducial marker detection. Similarly, we randomly sample the half-cosine displacement motions and use the Mooreโ€“Penrose inverse to estimate ฮณ๐›พ\gammaitalic_ฮณ. Using displacement difference to estimate velocity difference has the advantage of easy implementation, because directly measuring translation velocity is challenging.

We briefly demonstrate that ฮณ๐›พ\gammaitalic_ฮณ estimated from the displacements is the same multiplicative factor for velocity calibration. Based on Eq.12, we have calibrated displacement function,

Dโ€ฒโข(t)=ฮณโขAโˆ’ฮณโขAโขcosโก(2โขฯ€โขfโขt).superscript๐ทโ€ฒ๐‘ก๐›พ๐ด๐›พ๐ด2๐œ‹๐‘“๐‘กD^{\prime}(t)=\gamma A-\gamma A\cos(2\pi ft).italic_D start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT ( italic_t ) = italic_ฮณ italic_A - italic_ฮณ italic_A roman_cos ( 2 italic_ฯ€ italic_f italic_t ) .(13)

Note that ฮณ๐›พ\gammaitalic_ฮณ here is estimated from the displacement differences described above. We take the derivative of Dโ€ฒโข(t)superscript๐ทโ€ฒ๐‘กD^{\prime}(t)italic_D start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT ( italic_t ) and obtain the calibrated velocity function,

vโ€ฒโข(t)=Dโ€ฒห™โข(t)=2โขฯ€โขฮณโขAโขfโขsinโก(2โขฯ€โขfโขt).superscript๐‘ฃโ€ฒ๐‘กห™superscript๐ทโ€ฒ๐‘ก2๐œ‹๐›พ๐ด๐‘“2๐œ‹๐‘“๐‘กv^{\prime}(t)=\dot{D^{\prime}}(t)=2\pi\gamma Af\sin(2\pi ft).italic_v start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT ( italic_t ) = overห™ start_ARG italic_D start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT end_ARG ( italic_t ) = 2 italic_ฯ€ italic_ฮณ italic_A italic_f roman_sin ( 2 italic_ฯ€ italic_f italic_t ) .(14)

We substitute Eq.7 into Eq.14,

vโ€ฒโข(t)=ฮณโขvโข(t).superscript๐‘ฃโ€ฒ๐‘ก๐›พ๐‘ฃ๐‘กv^{\prime}(t)=\gamma v(t).italic_v start_POSTSUPERSCRIPT โ€ฒ end_POSTSUPERSCRIPT ( italic_t ) = italic_ฮณ italic_v ( italic_t ) .(15)

Therefore, ฮณ๐›พ\gammaitalic_ฮณ estimated from displacements is also the factor that calibrates velocity.

VII Experiments and Discussion

We conducted experiments to demonstrate an application of the Shakebot in PBR fragility studies and to test its performance in validating simulation. These experiments focused on a PBR at the Double Rock site in coastal Central California [rood2020earthquake]. The PBR, as shown in Fig.5, was mapped by an unpiloted aerial vehicle and constructed using structure from motion and Poisson reconstruction algorithms [chen2024virtual].

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (6)
Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (7)

The first experiment demonstrates the Shakebot application in studying the fragility anisotropy of PBRs. We down-scaled the Double Rock PBR from 151.0 cm to 12.0 cm in height and 3D-printed it with PLA material. The resulting PBR, denoted as 3D-printed PBR(a), had a total mass of 105g. Because of the asymmetric geometry of 3D-printed PBR(a), the overturning responses were expected to vary with different ground motion directions. To investigate this fragility anisotropy idea, we placed the 3D-printed PBR(a) with two initial orientations (yaw angles of 0ยฐ and 270ยฐ, as shown in Fig.5) on the bed. Using the UI, we obtained the response diagrams from a set of ground motions, as shown in Fig.6. The response diagrams indicated that 3D-printed PBR(a) oriented at a yaw angle of 0ยฐ was more fragile than at yaw angle of 270ยฐ. This result is consistent with previous studies showing that PBRs with smaller minimal contact angles along the motion direction are more fragile [purvance2008freestanding, haddad2012estimating]. Addtionally, the resulting boundary curves closely resembled the simulation results of the Double Rock PBR with original shape [chen2024virtual].

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (8)
Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (9)

In the second experiment, we used the Shakebot to evaluate the overturning simulation. The Double Rock PBR was down-scaled to 12.8 cm in height and 3D-printed with the PETG material. The resulting PBR, denoted as 3D-printed PBR(b), had a total mass of 404 g. We imported the 3D model of the down-scaled PBR to Gazebo and conducted overturning experiments using the virtual shake robot [chen2024virtual]. To examine the simulation results, we used the Shakebot to overturn 3D-printed PBR(b). In both simulation and real-world experiments, the PBR had a yaw angle of 0ยฐ. As shown in Fig.7, the overturning boundary curves from the real-world and simulation experiments are similar. Future work should explore the causes of their difference. For example, we observed that Gazebo reduced the precision of configuration parameters when passing those parameters to the Bullet physics engine. The data from real-world experiments will aid in calibrating and improving the simulation experiments.

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (10)

Fig.8 shows the estimation results of acceleration, displacement, and velocity from the input PGA of 0.98 m/s2๐‘šsuperscript๐‘ 2m/s^{2}italic_m / italic_s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT and PGV/PGA of 0.1 s๐‘ sitalic_s. According to the PGA and PGV/PGA, the desired PGV and peak ground displacement are 0.1 m/s๐‘š๐‘ m/sitalic_m / italic_s and 0.01 m๐‘šmitalic_m, respectively. The acceleration estimation and displacement estimation can be improved with better measurement equipment such as a better-quality accelerator and motion capture system. Our velocity estimation method used the 6rd order polynomial function to fuse data from afford sensors, resulting in a PGV estimate of 0.12 m/s๐‘š๐‘ m/sitalic_m / italic_s. The resulting velocity estimation is better than individual velocities derived from the accelerometer and fiducial marker detection. Future work should quantify uncertainties in displacement, velocity, and acceleration estimates. Investigations on other regression models (e.g., Gaussian process regression) and real-time state estimation may also improve the ground motion estimation.

Because validating ground motion estimation requires future investment in expensive measurement equipment, we assumed that the actual ground motions were the same as the desired ground motions during the overturning experiment. This assumption is reasonable given our hierarchical control system and calibration processes. However, future work should verify this assumption. We also anticipate that the PBR response status registration can be automated by an object detection system and PBR placement can be implemented by a robotic arm. By automating the overturning experiments, we can save on human labor and ensure accurate PBR placement for reliable results.

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (11)

VIII Conclusion

We introduced a low-cost, open-source shake table named Shakebot for earthquake research and education. Leveraging concepts and tools from robotics, we simplified and advanced the hardware and software compared to the existing shake tables. We presented the technical details of the perception and motion systems, which are important for the open-source community to upgrade or customize the Shakebot. Experiments showed the applications of the Shakebot for PBR studies. Our work demonstrates an interdisciplinary method of using robotics for natural sciences, providing a step towards robotics-enabled automated geoscience [chen2022automated]. The Shakebot provides an affordable platform for education, outreach, and other ground motion experiments.

ACKNOWLEDGEMENTS

This research was supported by the Pacific Gas and Electric Company and Southern California Earthquake Center (Contribution No. 21137). SCEC is funded by NSF Cooperative Agreement EAR-1600087 and USGS Cooperative Agreement G17AC00047. Thank you to Chris Madugo for his support and advice in the research.

\printbibliography

Shakebot: A Low-cost, Open-source Robotic Shake Table for Earthquake Research and Education (2024)

References

Top Articles
Latest Posts
Article information

Author: Horacio Brakus JD

Last Updated:

Views: 5780

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Horacio Brakus JD

Birthday: 1999-08-21

Address: Apt. 524 43384 Minnie Prairie, South Edda, MA 62804

Phone: +5931039998219

Job: Sales Strategist

Hobby: Sculling, Kitesurfing, Orienteering, Painting, Computer programming, Creative writing, Scuba diving

Introduction: My name is Horacio Brakus JD, I am a lively, splendid, jolly, vivacious, vast, cheerful, agreeable person who loves writing and wants to share my knowledge and understanding with you.