From 2ebf12acbd9a5696577eee564863a4fed2be6b61 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya Date: Fri, 25 Jul 2025 09:58:09 +0200 Subject: [PATCH 01/11] made minimal requirements.txt which contains pip requirements from all packages --- Multiverse-Knowledge | 2 +- requirements.txt | 72 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 requirements.txt diff --git a/Multiverse-Knowledge b/Multiverse-Knowledge index 2218e4b02..7b5b11fd9 160000 --- a/Multiverse-Knowledge +++ b/Multiverse-Knowledge @@ -1 +1 @@ -Subproject commit 2218e4b028b684313239855d4f0a6d5ed44c3612 +Subproject commit 7b5b11fd94d3ab77253a00ecb676e5cb17c699c9 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..ac2c29184 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,72 @@ +# =============================== +# Dependency Resolution & Packaging +# =============================== +pip +setuptools # For building/installing Python packages +packaging # Handles version and package specifiers +typeguard # Runtime type checking +pyyaml # YAML parsing +attrs # Class attribute management +distro # Linux distro info +zipp # Zip file utilities +future # Python 2/3 compatibility + +# =============================== +# USD & GUI Dependencies +# =============================== +pyopengl # OpenGL interface +jinja2 # Templating engine (lowercase variant) +Jinja2 # Templating engine (capitalized variant — kept in case some tool uses it) +pyside6 # Qt for GUI +pyside2 # Qt for GUI (older version) +PyQt5 # Alternative Qt bindings +docutils # Used by Sphinx, documentation tools +tornado # Web server (used by some USD GUI tools) +wheel # For building wheels +empy==3.3.4 # Required for ROS build system (template system) + +# =============================== +# Knowledge & Ontology +# =============================== +owlready2 # Ontology management +rdflib # RDF graph handling +lxml # XML/HTML processing +lark-parser # Parsing tool (used in grammar-based systems) + +# =============================== +# Robotics/ROS Dependencies +# =============================== +urdf_parser_py # URDF parsing +rospkg # ROS package utility +rosdistro # ROS distro information + +# =============================== +# Mujoco & Physics Sim +# =============================== +mujoco==3.3.2 # Mujoco physics engine +mujoco-mjx==3.3.2 # Mujoco MJX for enhanced simulation + +# =============================== +# Data Science & ML Utilities +# =============================== +numpy +pandas +scipy +plotly +opencv-python +tqdm +requests +pillow +Pillow # Duplicate kept for compatibility — safe to keep one + +# =============================== +# Multiverse Parser / Custom Tools +# =============================== +#pyfactxx # Custom or lesser-known package (verify source) + +# =============================== +# Testing +# =============================== +pytest +pytest-cov +coverage From 519705368cf17154a01ff777b37d3fa4103c0798 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya Date: Fri, 25 Jul 2025 10:05:08 +0200 Subject: [PATCH 02/11] make it adapt to our environment --- Multiverse-Knowledge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Multiverse-Knowledge b/Multiverse-Knowledge index 7b5b11fd9..936c60d52 160000 --- a/Multiverse-Knowledge +++ b/Multiverse-Knowledge @@ -1 +1 @@ -Subproject commit 7b5b11fd94d3ab77253a00ecb676e5cb17c699c9 +Subproject commit 936c60d52b4dbdb2c6ba065d28051dd3cefe9afe From ee51ea2e02dbb6fe1bb89b889533e57a25e29eb1 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya Date: Fri, 25 Jul 2025 10:10:44 +0200 Subject: [PATCH 03/11] Fix submodule URL to point to fork --- .gitmodules | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index f075ff829..737c5b701 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,15 @@ [submodule "Multiverse-Launch"] path = Multiverse-Launch - url = https://github.com/Multiverse-Framework/Multiverse-Launch.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Launch.git [submodule "Multiverse-Resources"] path = Multiverse-Resources - url = https://github.com/Multiverse-Framework/Multiverse-Resources.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Resources.git [submodule "Multiverse-Utilities"] path = Multiverse-Utilities - url = https://github.com/Multiverse-Framework/Multiverse-Utilities.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Utilities.git [submodule "Multiverse-Knowledge"] path = Multiverse-Knowledge - url = https://github.com/Multiverse-Framework/Multiverse-Knowledge.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Knowledge.git [submodule "Multiverse-Parser"] path = Multiverse-Parser - url = https://github.com/Multiverse-Framework/Multiverse-Parser.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Parser.git From 0d579a062eb4ecc269726cbfb198d09b9d33f95c Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya Date: Fri, 25 Jul 2025 10:15:50 +0200 Subject: [PATCH 04/11] Fix submodule URLs to point to separate forked repos --- .gitmodules | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/.gitmodules b/.gitmodules index 737c5b701..b81a02c14 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,19 @@ [submodule "Multiverse-Launch"] - path = Multiverse-Launch - url = https://github.com/mitsav01/Multiverse/Multiverse-Launch.git + path = Multiverse-Launch + url = https://github.com/mitsav01/Multiverse-Launch.git + [submodule "Multiverse-Resources"] - path = Multiverse-Resources - url = https://github.com/mitsav01/Multiverse/Multiverse-Resources.git + path = Multiverse-Resources + url = https://github.com/mitsav01/Multiverse-Resources.git + [submodule "Multiverse-Utilities"] - path = Multiverse-Utilities - url = https://github.com/mitsav01/Multiverse/Multiverse-Utilities.git + path = Multiverse-Utilities + url = https://github.com/mitsav01/Multiverse-Utilities.git + [submodule "Multiverse-Knowledge"] - path = Multiverse-Knowledge - url = https://github.com/mitsav01/Multiverse/Multiverse-Knowledge.git + path = Multiverse-Knowledge + url = https://github.com/mitsav01/Multiverse-Knowledge.git + [submodule "Multiverse-Parser"] - path = Multiverse-Parser - url = https://github.com/mitsav01/Multiverse/Multiverse-Parser.git + path = Multiverse-Parser + url = https://github.com/mitsav01/Multiverse-Parser.git From f0815678ca631a05b396297972ccddce1326edb9 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya Date: Fri, 25 Jul 2025 11:26:10 +0200 Subject: [PATCH 05/11] Fix0 submodule URLs to my forks --- .gitmodules | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index b81a02c14..ad2a607a0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,19 +1,19 @@ [submodule "Multiverse-Launch"] path = Multiverse-Launch - url = https://github.com/mitsav01/Multiverse-Launch.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Launch.git [submodule "Multiverse-Resources"] path = Multiverse-Resources - url = https://github.com/mitsav01/Multiverse-Resources.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Resources.git [submodule "Multiverse-Utilities"] path = Multiverse-Utilities - url = https://github.com/mitsav01/Multiverse-Utilities.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Utilities.git [submodule "Multiverse-Knowledge"] path = Multiverse-Knowledge - url = https://github.com/mitsav01/Multiverse-Knowledge.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Knowledge.git [submodule "Multiverse-Parser"] path = Multiverse-Parser - url = https://github.com/mitsav01/Multiverse-Parser.git + url = https://github.com/mitsav01/Multiverse/Multiverse-Parser.git From b5d1cc7bf70fad2239f901a389d45a4fb51421d0 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya Date: Fri, 25 Jul 2025 11:28:40 +0200 Subject: [PATCH 06/11] Fix submodule URL --- .gitmodules | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.gitmodules b/.gitmodules index ad2a607a0..26b779c5e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,19 +1,15 @@ [submodule "Multiverse-Launch"] - path = Multiverse-Launch - url = https://github.com/mitsav01/Multiverse/Multiverse-Launch.git - + path = Multiverse-Launch + url = https://github.com/mitsav01/Multiverse-Launch.git [submodule "Multiverse-Resources"] - path = Multiverse-Resources - url = https://github.com/mitsav01/Multiverse/Multiverse-Resources.git - + path = Multiverse-Resources + url = https://github.com/mitsav01/Multiverse-Resources.git [submodule "Multiverse-Utilities"] - path = Multiverse-Utilities - url = https://github.com/mitsav01/Multiverse/Multiverse-Utilities.git - + path = Multiverse-Utilities + url = https://github.com/mitsav01/Multiverse-Utilities.git [submodule "Multiverse-Knowledge"] - path = Multiverse-Knowledge - url = https://github.com/mitsav01/Multiverse/Multiverse-Knowledge.git - + path = Multiverse-Knowledge + url = https://github.com/mitsav01/Multiverse-Knowledge.git [submodule "Multiverse-Parser"] - path = Multiverse-Parser - url = https://github.com/mitsav01/Multiverse/Multiverse-Parser.git + path = Multiverse-Parser + url = https://github.com/mitsav01/Multiverse-Parser.git \ No newline at end of file From 3e628a7ec3958bc1543e751f11ffeb0c8b741d26 Mon Sep 17 00:00:00 2001 From: mitsav01 Date: Fri, 25 Jul 2025 11:53:41 +0200 Subject: [PATCH 07/11] Update submodules to latest commit --- Multiverse-Knowledge | 2 +- Multiverse-Launch | 2 +- Multiverse-Parser | 2 +- Multiverse-Resources | 2 +- Multiverse-Utilities | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Multiverse-Knowledge b/Multiverse-Knowledge index 936c60d52..7fe6f8a68 160000 --- a/Multiverse-Knowledge +++ b/Multiverse-Knowledge @@ -1 +1 @@ -Subproject commit 936c60d52b4dbdb2c6ba065d28051dd3cefe9afe +Subproject commit 7fe6f8a68d4f3172407317a9b2227d281b52181b diff --git a/Multiverse-Launch b/Multiverse-Launch index 521945994..eabcfc5cf 160000 --- a/Multiverse-Launch +++ b/Multiverse-Launch @@ -1 +1 @@ -Subproject commit 5219459948735cd43f7765d1ea80a614eab6851e +Subproject commit eabcfc5cf012d1b5f6a2036bf7f7e3e884377a9d diff --git a/Multiverse-Parser b/Multiverse-Parser index 5c6045c92..00a284c9c 160000 --- a/Multiverse-Parser +++ b/Multiverse-Parser @@ -1 +1 @@ -Subproject commit 5c6045c9284f2b72caea5b0edb433cc4889f194d +Subproject commit 00a284c9c084f4b6efc0546b164f75556d10db8b diff --git a/Multiverse-Resources b/Multiverse-Resources index 8e2d1c4bc..2ac142d8c 160000 --- a/Multiverse-Resources +++ b/Multiverse-Resources @@ -1 +1 @@ -Subproject commit 8e2d1c4bcde53d87cfa21b6ca5509702c73610b9 +Subproject commit 2ac142d8c1419dfa3b6473b6ccafbfcc44c202a4 diff --git a/Multiverse-Utilities b/Multiverse-Utilities index bada6d93b..f53b2cf77 160000 --- a/Multiverse-Utilities +++ b/Multiverse-Utilities @@ -1 +1 @@ -Subproject commit bada6d93b8591796a4f30e2b14b5369f70e4f653 +Subproject commit f53b2cf77471aa54875598c5b5bbdc4654d09dae From ef26344da0549e38d99a55aaa20a2f60eda3fcc7 Mon Sep 17 00:00:00 2001 From: mitsav01 Date: Fri, 25 Jul 2025 14:16:13 +0200 Subject: [PATCH 08/11] modified readme with installation instruction --- Multiverse-Knowledge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Multiverse-Knowledge b/Multiverse-Knowledge index 7fe6f8a68..27cbad095 160000 --- a/Multiverse-Knowledge +++ b/Multiverse-Knowledge @@ -1 +1 @@ -Subproject commit 7fe6f8a68d4f3172407317a9b2227d281b52181b +Subproject commit 27cbad095d3967024b906208c56f955cfd57c853 From bcce91847169f5731565016993573850a7e050d9 Mon Sep 17 00:00:00 2001 From: mitsav01 Date: Fri, 25 Jul 2025 14:18:04 +0200 Subject: [PATCH 09/11] added installation instructions in readme.md --- README.md | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/README.md b/README.md index 3ff727cff..93d9779cd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,107 @@ # Multiverse +# Multiverse-Framework + +A powerful framework for robotics and 3D scene representation leveraging OpenUSD. + +--- + +## Features + +- Modular robotics control and simulation +- Integration with OpenUSD for advanced 3D scene handling +- Flexible architecture for extension and customization + +--- + +## Installation Guide + +Follow these steps to install the Multiverse-Framework and its dependencies, including OpenUSD. + +### Prerequisites + +Make sure you have the following installed: + +- Python 3.8+ and pip +- Git +- CMake (3.18 or higher) +- A C++ compiler (gcc/g++ recommended) +- Python development headers (e.g., `python3-dev` on Ubuntu) +- Additional dependencies like Boost, TBB, etc., required by OpenUSD (see below) + +--- + +### Step 0: Create a virtual environment (recommended) + +It is highly recommended to use virtual environment for Multiverse Framework. + +```bash +python3 -m venv venv +source path/to/venv/bin/activate +echo 'alias activate_venv='source path/to/venv/bin/activate' >> ~/.bashrc +``` + +### Step 1: Clone the repository + +```bash +git clone https://github.com/mitsav01/Multiverse-Framework.git --recursive +cd Multiverse-Framework +``` + +### Step 2: Install required Python packages + +```bash +pip install -r requirements.txt +``` + +### Step 3: Install OpenUSD + +Although, it is given in setup.sh file to clone and install OpenUSD repo. I've cloned and installed repo by myself. + +```bash +git clone https://github.com/PixarAnimationStudios/OpenUSD.git +mkdir OpenUSD/install +chmod -R +x OpenUSD +``` +To integrate Multiverse with OpenUSD, we need to specify OpenUSD's source and install directory. I did it by specifying them in `.bashrc` file. + +```bash +echo 'export USD_SRC_DIR=path/to/OpenUSD' >> ~/.bashrc +echo 'export USD_INSTALL_DIR=path/to/OpenUSD/install' >> ~/.bashrc +``` +### Step 4: Running Installation script + +Now, after following this steps. +We can go to any individual package of Multiverse and execute ```install.sh``` +I did it with ```Multiverse-Knowledge```. + +```bash +cd path/to/Multiverse/Multiverse-Knowledge +./install.sh +``` +The installation of ```OpenUSD``` will take really long (~15-20 minutes). At the end of installation, we'll have an output showing that Installation finished successfully and we'll get a message to add some stuffs to ```PATH``` and ```PYTHONPATH``` variable. + +```bash +echo 'export PATH=$PATH:path/to/OpenUSD/install/bin' >> ~/.bashrc +echo 'export PYTHONPATH=$PYTHONPATH:path/to/OpenUSD/install/lib/python' >> ~/.bashrc +``` +### Step 5: Verifying Installation + +After successful execution of ```install.sh```, we can verify the installation of 'Multiverse' framework using below command: + +```bash +cd path/to/Multiverse/Multiverse-Launch/bin +multiverse_launch +``` +You'll see four different windows showing an example of 'Table with ball and Square' in simulation. +Note: In order to save the time to write whole command to launch `multiverse_launch`, we can use following command. + +```bash +echo 'alias multiverse_launch='bash /home/akshay/Multiverse/Multiverse-Launch/bin/multiverse_launch'' >> ~/.bashrc +``` +Everytime, we can launch 'Multiverse' just by writing `multiverse_launch` in the terminal. + + ## Citation If you find this software helpful, please cite it as follows: From 2a9ee49670646be1c0e7832eac5f5baae825dc71 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya <135125057+mitsav01@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:51:18 +0200 Subject: [PATCH 10/11] changed path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 93d9779cd..9d2407582 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ You'll see four different windows showing an example of 'Table with ball and Squ Note: In order to save the time to write whole command to launch `multiverse_launch`, we can use following command. ```bash -echo 'alias multiverse_launch='bash /home/akshay/Multiverse/Multiverse-Launch/bin/multiverse_launch'' >> ~/.bashrc +echo 'alias multiverse_launch='bash /path/to/Multiverse/Multiverse-Launch/bin/multiverse_launch'' >> ~/.bashrc ``` Everytime, we can launch 'Multiverse' just by writing `multiverse_launch` in the terminal. From b673a5cbbb2503b2dbd413ab09ad28ce4001c160 Mon Sep 17 00:00:00 2001 From: Mitesh Savsaviya <135125057+mitsav01@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:48:18 +0200 Subject: [PATCH 11/11] Update README.md added instruction to build and source ros2_ws --- README.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d2407582..82bd898f1 100644 --- a/README.md +++ b/README.md @@ -85,12 +85,28 @@ The installation of ```OpenUSD``` will take really long (~15-20 minutes). At the echo 'export PATH=$PATH:path/to/OpenUSD/install/bin' >> ~/.bashrc echo 'export PYTHONPATH=$PYTHONPATH:path/to/OpenUSD/install/lib/python' >> ~/.bashrc ``` -### Step 5: Verifying Installation +### Step 5: Building workspace + +It is also important to build and source `ros_ws` or `ros2_ws` everytime, we use this framework. +We can build the `ros2_ws` with below command: + +```bash +cd /path/to/Multiverse/Multiverse-Launch/src/multiverse_connectors/multiverse_ros_connector/ros_ws/multiverse_ws2 +colcon build --symlink-install +source install/setup.bash +```` +In order to make it easy, we can add following line to `~/.bashrc`: + +```bash +source /path/to/Multiverse/Multiverse-Launch/src/multiverse_connectors/multiverse_ros_connector/ros_ws/multiverse_ws2/install/setup.bash +``` + +### Step 6: Verifying Installation After successful execution of ```install.sh```, we can verify the installation of 'Multiverse' framework using below command: ```bash -cd path/to/Multiverse/Multiverse-Launch/bin +cd /path/to/Multiverse/Multiverse-Launch/bin multiverse_launch ``` You'll see four different windows showing an example of 'Table with ball and Square' in simulation.