Skip to main content

Magentic robotics simulation including reinforcement learning environments based on MuJoCo

Project description

MagBotSim (Magnetic Robotics Simulation)

MagBotSim is a library for physics-based simulation environments for motion planning and object manipulation in the field of Magnetic Robotics. The main component of every environment is a magnetic levitation (MagLev) system, which consists of two basic components, as shown in the Figure above. Firstly, dynamically actuated shuttles as passive motor modules, so-called movers, consist of a housing and a complex permanent magnet structure based on Halbach arrays on the lower side of the mover. Secondly, static motor modules, so-called tiles, are the active component of the drive system. As shown in the Figure above, the tiles enable the coil-induced emission of electromagnetic fields (yellow) that interact with the mover's field (blue). During operation, the movers hover above the tiles and can be controlled in six dimensions by adjusting the currents in the coils contained in the tiles.

MagBotSim is designed to match real-world applications, so that control policies can be transferred to real MagLev systems without further training or calibration. Since the library is based on the MuJoCo physics engine, MagBotSim enables users to perform object manipulation tasks with MagLev systems. In addition, as reinforcement learning (RL) is frequently used in multi-agent path finding and object manipulation, MagBotSim includes basic environments with single-agent (Gymnasium) and multi-agent (PettingZoo Parallel API) RL APIs that can serve as starting points for developing new research-specific environments. However, MagBotSim can also be used without RL and provides several utilities, such as impedance control for the movers.

Installation

The MagBotSim package can be installed via PIP:

pip install magbotsim

To install optional dependencies, to build the documentation, or to run the tests, use:

pip install magbotsim[docs, tests]

Note: Depending on your shell (e.g. when using Zsh), you may need to use additional quotation marks:

pip install "magbotsim[docs, tests]"

Documentation

The documentation is available at: https://ubi-coro.github.io/MagBotSim/

License

MagBotSim is published under the GNU General Public License v3.0.

Reinforcement Learning Example

The following example shows how to use a trained policy with an environment that follows the Gymnasium API:

import gymnasium as gym
import magbotsim

gym.register_envs(magbotsim)

mover_params = {
    'shape': 'mesh',
    'mesh': {'mover_stl_path': 'beckhoff_apm4220_mover', 'bumper_stl_path': 'beckhoff_apm4220_bumper'},
    'mass': 0.639 - 0.034,
    'bumper_mass': 0.034,
}
env_kwargs = {
    'mover_params': mover_params,
    'initial_mover_zpos': 0.002,
    'render_mode': 'human',
    'render_every_cycle': True,
}

env = gym.make("StateBasedPushTEnv-v0", **env_kwargs)
observation, info = env.reset(seed=42)

for _ in range(0,100):
    terminated, truncated = False, False
    while not terminated and not truncated:
        action = env.action_space.sample()  # use custom policy instead
        observation, reward, terminated, truncated, info = env.step(action)

    observation, info = env.reset()
env.close()

Paper & Citation

If you use MagBotSim for your research, please cite our paper (https://arxiv.org/abs/2511.16158) as follows:

@aricle{bergmann_magbotsim_2025,
    title = {{MagBotSim}: {Physics}-{Based} {Simulation} and {Reinforcement} {Learning} {Environments} for {Magnetic} {Robotics}},
    author = {Bergmann, Lara and Grothues, Cedric and Neumann, Klaus},
    journal = {arXiv preprint arXiv:2511.16158},
    year = {2025},
    doi = {10.48550/ARXIV.2511.16158}
}

Maintainer

MagBotSim is currently maintained by Lara Bergmann (@lbergmann1).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

magbotsim-1.0.1.tar.gz (7.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

magbotsim-1.0.1-py3-none-any.whl (7.5 MB view details)

Uploaded Python 3

File details

Details for the file magbotsim-1.0.1.tar.gz.

File metadata

  • Download URL: magbotsim-1.0.1.tar.gz
  • Upload date:
  • Size: 7.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for magbotsim-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d6ed10d7c2fa41918bd3b4b25adbfbca2644a6aae9acd58e5e989899ba8ffad7
MD5 e9b146140374b6cb5c2ee20b603b7494
BLAKE2b-256 3d51b08af70988eb05c6ad2982f39863ea3854ee508208e3b54e67befc6f4bc9

See more details on using hashes here.

File details

Details for the file magbotsim-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: magbotsim-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for magbotsim-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc6bcdfe38956a3ed850e5ab9f08fced39e8d4865eb909fa9a6f26a09a6f1840
MD5 99704d91ba17c213da8b10a20c85a13f
BLAKE2b-256 1f30537c63ebd131cada1e78c9711b7499f4c2f9cbd0397c12a6a91c5470c858

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page