Balancing a 3D Inverted Pendulum using Remote Magnetic Manipulation
<|reference_start|>Balancing a 3D Inverted Pendulum using Remote Magnetic Manipulation: Remote magnetic manipulation offers wireless control over magnetic objects, which has important medical applications, such as targeted drug delivery and minimally invasive surgeries. Magnetic manipulation systems are categorized into systems using permanent magnets and systems based on electromagnets. Electro-Magnetic Navigation Systems (eMNSs) are believed to have a superior actuation bandwidth, facilitating trajectory tracking and disturbance rejection. This greatly expands the range of potential medical applications and includes even dynamic environments as encountered in cardiovascular interventions. In order to highlight the dynamic capabilities of eMNSs, we successfully stabilize a (non-magnetic) inverted pendulum on the tip of a magnetically driven arm. Our method employs a model-based design approach, where we capture the dynamics that describe the interaction of the pendulum system and the magnetic field through Lagrangian mechanics. Using system identification we estimate the system parameters, the actuation bandwidth, and characterize the system's nonlinearity. We design a state-feedback controller to stabilize the inherently unstable dynamics, and compensate for errors arising from the calibration of the magnetic field and the angle measurement system. Additionally, we integrate an iterative learning control scheme that allows us to accurately track non-equilibrium trajectories while concurrently maintaining stability of the inverted pendulum. To our knowledge, this is the first effort to stabilize a 3D inverted pendulum through remote magnetic manipulation.<|reference_end|>
@article{zughaibi2024balancing,
    title={Balancing a 3D Inverted Pendulum using Remote Magnetic Manipulation},
    author={Jasan Zughaibi, Bradley J. Nelson, Michael Muehlebach},
    journal={arXiv preprint arXiv:2402.06012},
    year={2024},
    archivePrefix={arXiv},
    eprint={2402.06012},
    primaryClass={eess.SY cs.SY}
}