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 — © 2024 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.0.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.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ros2em-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 cf0bfc3ee7defc7d358f7bf5f638cfa51ac3791e4dc2cfd800ee87f06aaaec9c
MD5 67e7baff99d69bce1968a823a6e1d2fc
BLAKE2b-256 2d2cb20c6f6c07275af75c6b29fedd4a4c1e5aa0426ce4a79da4c3fd9c5fd78b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ros2em-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1c66195fec3d07a942e6133275acabd2ebe04026f44df9b7635a12e76d14330
MD5 e8135b04148d1fed3ff1bc29567ec964
BLAKE2b-256 08fd87800b0c007a4b3103fcdd25d640c780e2e6b6daa0c8dcb8fb1e37363282

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