Skip to main content

ROS2 Environment Manager using Virtualbox and Vagrant

Project description

ros2em - ROS2 Environment Manager

PyPI version Python License Platform

ros2em is a CLI tool to create and manage isolated ROS2 environments using VirtualBox and Vagrant.

Whether you're a robotics developer, student, or researcher, ros2em makes it easy to:

  • 🧠 Launch ROS2 in clean, isolated virtual machines
  • 🖥 Access GUIs like Rviz or Gazebo via browser
  • ✅ Support both amd64 and arm64 architectures
  • 🧰 Handle setup: VirtualBox, Vagrant, and box file download

🚀 Features

  • ⚡ One-line setup for fully functional ROS 2 VMs
  • 📦 Architecture-specific box handling (amd64, arm64)
  • 🖥 GUI access using browser
  • 🔐 No system pollution – nothing touches your host machine
  • 💡 Powered by Typer (CLI) and Rich (colored output)

📦 Installation

Recommended (via pipx)

pipx install ros2em

Or using pip

pip install ros2em

🛠 Commands

🔧 Setup dependencies

ros2em init

Installs VirtualBox and Vagrant (if not found).

⬇️ Download the correct ROS2 box

ros2em download-box

Auto-detects your architecture and downloads the appropriate .box file.

🐢 Create an environment

ros2em create myenv

Creates ~/.ros2em/myenv and spins up a VM.

📋 Manage environments

ros2em list        # List all environments
ros2em start myenv # Start a VM
ros2em stop myenv  # Stop a VM
ros2em delete myenv # Delete an environment

📁 Environment Structure

~/.ros2em/
├── boxes/
│   └── arm64/ or amd64/
│       └── ros2-humble.box
├── myenv/
│   └── Vagrantfile

🧩 Contributing

We welcome contributions, ideas, and feedback.

  • Open issues for bugs and enhancements
  • Fork and submit a pull request
  • Share your use case via Discussions

📄 License

MIT License — © 2025 Kodo Robotics

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

ros2em-0.1.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

ros2em-0.1.1-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file ros2em-0.1.1.tar.gz.

File metadata

  • Download URL: ros2em-0.1.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ros2em-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3358292fc65945b57882aebd8bffd0d863983e21c5357c10eef25284237f39f6
MD5 000a85623717025a80cb39f3d314f3e0
BLAKE2b-256 dca492825e7699129a3483bbb7b4515fb5cbd252900fd1846d6162e0af45f667

See more details on using hashes here.

File details

Details for the file ros2em-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ros2em-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ros2em-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 826dff9d74b28ae78c511697b8a2b38c6f876304b7646ab7493d2c78d07be82c
MD5 ea436dace27097c3953bd10598a03d65
BLAKE2b-256 766b32aeb05a3f72c074f78b838044d5fbcc90572c986f6fb47e7259a1cea101

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