diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f4962e5..40431a9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -72,10 +72,10 @@ jobs: - uses: actions/checkout@v4 - name: (CI) Run tests run: | - # pip install -e . + pip install -e . echo "Unit test Start" - # export HF_ENDPOINT=https://hf-mirror.com - # pytest tests + export HF_ENDPOINT=https://hf-mirror.com + pytest tests publish: if: github.event_name == 'push' && github.ref == 'refs/heads/main' diff --git a/.readthedocs.yaml b/.readthedocs.yaml deleted file mode 100644 index 0aa6b2f..0000000 --- a/.readthedocs.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Read the Docs configuration file -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details - -# Required -version: 2 - -# Set the OS, Python version, and other tools you might need -build: - os: ubuntu-22.04 - tools: - python: "3.10" - -# Build documentation in the "docs/" directory with Sphinx -sphinx: - configuration: docs/source/conf.py - -# Optionally, but recommended, -# declare the Python requirements required to build your documentation -# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -python: - install: - - requirements: docs/requirements.txt - - method: pip - path: . - \ No newline at end of file diff --git a/docs/source/quick_start/install.md b/docs/source/quick_start/install.md index 892e99c..58f0bb6 100644 --- a/docs/source/quick_start/install.md +++ b/docs/source/quick_start/install.md @@ -14,7 +14,6 @@ The following minimum system requirements are recommended to run EmbodiChain rel - Python: - Supported Python versions: - - Python 3.9 - Python 3.10 - Use a virtual environment (venv, virtualenv, or conda) to isolate dependencies diff --git a/embodichain/data/assets/demo_assets.py b/embodichain/data/assets/demo_assets.py index 656c6bf..71b390c 100644 --- a/embodichain/data/assets/demo_assets.py +++ b/embodichain/data/assets/demo_assets.py @@ -23,11 +23,15 @@ EMBODICHAIN_DEFAULT_DATA_ROOT, ) +demo_assets = "demo" + class ScoopIceNewEnv(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "demo/ScoopIceNewEnv.zip"), + os.path.join( + EMBODICHAIN_DOWNLOAD_PREFIX, demo_assets, "ScoopIceNewEnv.zip" + ), "e92734a9de0f64be33a11fbda0fbd3b6", ) prefix = "ScoopIceNewEnv" @@ -39,7 +43,7 @@ def __init__(self, data_root: str = None): class MultiW1Data(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "demo/multi_w1_demo.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, demo_assets, "multi_w1_demo.zip"), "984e8fa3aa05cb36a1fd973a475183ed", ) prefix = "MultiW1Data" diff --git a/embodichain/data/assets/eef_assets.py b/embodichain/data/assets/eef_assets.py index 7f52b9e..5da40a4 100644 --- a/embodichain/data/assets/eef_assets.py +++ b/embodichain/data/assets/eef_assets.py @@ -24,6 +24,9 @@ ) +eef_assets = "eef_assets" + + class DH_PGC_140_50(EmbodiChainDataset): """Dataset class for the DH Robotics PGC-140-50 end-effector gripper. @@ -44,7 +47,7 @@ class DH_PGC_140_50(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/DH_PGC_140_50.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "DH_PGC_140_50.zip"), "c2a642308a76e99b1b8b7cb3a11c5df3", ) prefix = "DH_PGC_140_50" @@ -73,7 +76,7 @@ class DH_PGI_140_80(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/DH_PGI_140_80.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "DH_PGI_140_80.zip"), "05a1a08b13c6250cc12affeeda3a08ba", ) prefix = "DH_PGI_140_80" @@ -103,7 +106,9 @@ class DH_PGC_140_50_M(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/DH_PGC_140_50_M.zip"), + os.path.join( + EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "DH_PGC_140_50_M.zip" + ), "3a9ab5f32639e03afb38dc033b44bb62", ) prefix = "DH_PGC_140_50_M" @@ -132,7 +137,7 @@ class ZH_CTM2F110(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/ZH_CTM2F110.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "ZH_CTM2F110.zip"), "0e7c3310425609797fe010b2a76fe465", ) prefix = "ZH_CTM2F110" @@ -164,7 +169,7 @@ class BrainCoHandRevo1(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/BrainCoHandRevo01.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "BrainCoHandRevo01.zip" ), "ff9ac77e7e1493fd32d40c87fecbee6c", ) @@ -200,7 +205,7 @@ class InspireHand(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/InspireHand.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "InspireHand.zip"), "c60132a6f03866fb021cca5b6d72845e", ) prefix = "InspireHand" @@ -229,7 +234,7 @@ class Robotiq2F85(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/Robotiq2F85.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "Robotiq2F85.zip"), "53ecbf2c953f43f1134aa7223e592292", ) prefix = "Robotiq2F85" @@ -258,7 +263,7 @@ class WheelTecFA2F(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "eef_assets/WheelTecFA2F.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, eef_assets, "WheelTecFA2F.zip"), "feaf13f25b1c6ce58d011b1f2fa72f58", ) prefix = "WheelTecFA2F" diff --git a/embodichain/data/assets/materials.py b/embodichain/data/assets/materials.py index c40369d..cd6a7f5 100644 --- a/embodichain/data/assets/materials.py +++ b/embodichain/data/assets/materials.py @@ -28,11 +28,14 @@ ) +material_assets = "materials" + + class SimResources(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "materials/embodisim_resources.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, material_assets, "embodisim_resources.zip" ), "53c054b3ae0857416dc52632eb562c12", ) @@ -101,7 +104,9 @@ def get_material_list(self) -> List[str]: class CocoBackground(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "materials/CocoBackground.zip"), + os.path.join( + EMBODICHAIN_DOWNLOAD_PREFIX, material_assets, "CocoBackground.zip" + ), "fda82404a317281263bd5849e9eb31a1", ) prefix = "CocoBackground" diff --git a/embodichain/data/assets/obj_assets.py b/embodichain/data/assets/obj_assets.py index 5d7a63f..30bbb66 100644 --- a/embodichain/data/assets/obj_assets.py +++ b/embodichain/data/assets/obj_assets.py @@ -24,11 +24,14 @@ ) +obj_assets = "obj_assets" + + class ShopTableSimple(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/shop_table_simple.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "shop_table_simple.zip" ), "e3061ee024de7840f773b70140dcd43f", ) @@ -42,7 +45,7 @@ class CircleTableSimple(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/circle_table_simple.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "circle_table_simple.zip" ), "42ad2be8cd0caddcf9bfbf106b7783f3", ) @@ -55,7 +58,7 @@ def __init__(self, data_root: str = None): class PlasticBin(o3d.data.DownloadDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/plastic_bin.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "plastic_bin.zip"), "21e00083689a4a3c4e4ae3fd89c61e55", ) prefix = "PlasticBin" @@ -67,8 +70,8 @@ def __init__(self, data_root: str = None): class Chair(o3d.data.DownloadDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/chair.zip"), - "df3d7d1a05731d45fb2c678a40a39cd4", + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "chair.zip"), + "2a971a92e0956e72f262308a1054dc73", ) prefix = "Chair" path = EMBODICHAIN_DEFAULT_DATA_ROOT if data_root is None else data_root @@ -79,7 +82,9 @@ def __init__(self, data_root: str = None): class ContainerMetal(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/container_metal.zip"), + os.path.join( + EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "container_metal.zip" + ), "ceafb87f8177609f87aaa6779fcbb9a3", ) prefix = "ContainerMetal" @@ -92,7 +97,7 @@ class SimpleBoxDrawer(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/simple_box_drawer.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "simple_box_drawer.zip" ), "966b648bca16823ee91525847c183973", ) @@ -105,7 +110,7 @@ def __init__(self, data_root: str = None): class AdrianoTable(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/adriano_table.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "adriano_table.zip"), "8453583a9a1a9d04d50268f8a3da554f", ) prefix = "AdrianoTable" @@ -117,7 +122,7 @@ def __init__(self, data_root: str = None): class CoffeeCup(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/CoffeeCup.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "CoffeeCup.zip"), "f05fce385826414c15e19df3b75dc886", ) prefix = "CoffeeCup" @@ -130,7 +135,7 @@ class SlidingBoxDrawer(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/SlidingBoxDrawer.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "SlidingBoxDrawer.zip" ), "b03d9006503d27b75ddeb06d31b2c7a5", ) @@ -140,22 +145,10 @@ def __init__(self, data_root: str = None): super().__init__(prefix, data_descriptor, path) -class AiLiMu_BoxDrawer(EmbodiChainDataset): - def __init__(self, data_root: str = None): - data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "AiLiMu_BoxDrawer_v3.zip"), - "9a2889151a23d482f95f602cce9900c6", - ) - prefix = "AiLiMu_BoxDrawer" - path = EMBODICHAIN_DEFAULT_DATA_ROOT if data_root is None else data_root - - super().__init__(prefix, data_descriptor, path) - - class AluminumTable(o3d.data.DownloadDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "AluminumTable.glb"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "AluminumTable.glb"), "02991d36ca9b70f019ed330a61143aa9", ) prefix = "AluminumTable" @@ -167,7 +160,7 @@ def __init__(self, data_root: str = None): class ToyDuck(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "ToyDuck.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "ToyDuck.zip"), "2f5c00ba487edf34ad668f7257c0264e", ) prefix = "ToyDuck" @@ -179,7 +172,7 @@ def __init__(self, data_root: str = None): class PaperCup(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "PaperCup.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "PaperCup.zip"), "359d13af8c5f31ad3226d8994a1a7198", ) prefix = "PaperCup" @@ -191,7 +184,7 @@ def __init__(self, data_root: str = None): class ChainRainSec(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/lianguijie.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "lianguijie.zip"), "2387589040a4d3f2676b622362452242", ) prefix = "ChainRainSec" @@ -203,7 +196,7 @@ def __init__(self, data_root: str = None): class TableWare(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/tableware.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "tableware.zip"), "403e340fc0e4996c002ee774f89cd236", ) prefix = "TableWare" @@ -215,7 +208,7 @@ def __init__(self, data_root: str = None): class ScannedBottle(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "obj_assets/ScannedBottle.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, obj_assets, "ScannedBottle.zip"), "d2b2d4deb7b463a734af099f7624b4af", ) prefix = "ScannedBottle" diff --git a/embodichain/data/assets/robot_assets.py b/embodichain/data/assets/robot_assets.py index 6c2d47e..5251621 100644 --- a/embodichain/data/assets/robot_assets.py +++ b/embodichain/data/assets/robot_assets.py @@ -24,6 +24,9 @@ ) +robot_assets = "robot_assets" + + class CobotMagicArm(EmbodiChainDataset): """Dataset class for the Cobot Magic Arm robot. @@ -51,7 +54,7 @@ class CobotMagicArm(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/CobotMagicArmV2.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "CobotMagicArmV2.zip" ), "14af3e84b74193680899a59fc74e8337", ) @@ -81,7 +84,7 @@ class RidgeBack(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/RidgeBack.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "RidgeBack.zip"), "f03e1a6f4c781ad8957a88bdb010e9b6", ) prefix = "RidgeBack" @@ -112,7 +115,7 @@ class UnitreeH1(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/UnitreeH1.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "UnitreeH1.zip"), "339417cef5051a912693f3c64d29dddc", ) prefix = "UnitreeH1" @@ -143,7 +146,7 @@ class ABB(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/ABB.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "ABB.zip"), "ea6df4983982606c43387783e5fb8c05", ) prefix = "ABB" @@ -174,7 +177,7 @@ class Motoman(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Motoman.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Motoman.zip"), "ee5f16cfce34d8e2cb996fcff8a25986", ) prefix = "Motoman" @@ -205,7 +208,7 @@ class KUKA(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/KUKA.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "KUKA.zip"), "da7a2dfd0db3f486e407f038d25c7537", ) prefix = "KUKA" @@ -236,7 +239,7 @@ class Fanuc(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Fanuc.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Fanuc.zip"), "0a1c562f4719f7cdc1b24545fec4a301", ) prefix = "Fanuc" @@ -276,7 +279,7 @@ class UniversalRobots(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/UniversalRobots.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "UniversalRobots.zip" ), "dbd12f7e36cef4e5025b82f748233b80", ) @@ -308,7 +311,7 @@ class Rokae(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Rokae.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Rokae.zip"), "fbfb852d6139e94b7c422771542f988f", ) prefix = "Rokae" @@ -341,7 +344,7 @@ class Franka(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Franka.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Franka.zip"), "c2de367fe1da02eeb45a8129f903d0b6", ) prefix = "Franka" @@ -370,7 +373,7 @@ class Agile(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Agile.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Agile.zip"), "fd47d7ab8a4d13960fd76e59544ba836", ) prefix = "Agile" @@ -401,7 +404,7 @@ class Hans(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Hans.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Hans.zip"), "c867c406e3dffd6982fd0a15e7dc7e29", ) prefix = "Hans" @@ -430,7 +433,7 @@ class Aubo(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/Aubo.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "Aubo.zip"), "2574649cd199c11267cc0f4aeac65557", ) prefix = "Aubo" @@ -459,7 +462,7 @@ class RainbowY1(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "robot_assets/RainbowY1.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, robot_assets, "RainbowY1.zip"), "5979a3aaadb5de6488b13765d523564f", ) prefix = "RainbowY1" diff --git a/embodichain/data/assets/scene_assets.py b/embodichain/data/assets/scene_assets.py index f1089bf..a715a7b 100644 --- a/embodichain/data/assets/scene_assets.py +++ b/embodichain/data/assets/scene_assets.py @@ -24,6 +24,9 @@ ) +scene_assets = "scene_assets" + + class SceneData(EmbodiChainDataset): """Dataset class for the Scene. @@ -44,7 +47,7 @@ class SceneData(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "scene_assets/SceneData.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, scene_assets, "SceneData.zip"), "fb46e4694cc88886fc785704e891a68a", ) prefix = "SceneData" @@ -55,7 +58,7 @@ def __init__(self, data_root: str = None): class EmptyRoom(o3d.data.DownloadDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "scene_assets/empty_room.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, scene_assets, "empty_room.zip"), "612ffead4fac95114bec2e3812469f96", ) prefix = "EmptyRoom" diff --git a/embodichain/data/assets/w1_assets.py b/embodichain/data/assets/w1_assets.py index c3aeab7..a3e7875 100644 --- a/embodichain/data/assets/w1_assets.py +++ b/embodichain/data/assets/w1_assets.py @@ -48,6 +48,9 @@ # ====================================================================== +w1_assets = "dexforce_w1" + + class DexforceW1V021(EmbodiChainDataset): """Dataset class for the Dexforce W1 V021. @@ -62,7 +65,7 @@ class DexforceW1V021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/DexforceW1V021.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "DexforceW1V021.zip"), "3cc3a0bfd1c50ebed5bee9dadeee6756", ) prefix = "DexforceW1V021" @@ -86,7 +89,8 @@ def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( EMBODICHAIN_DOWNLOAD_PREFIX, - "dexforce_w1/DexforceW1V021_INDUSTRIAL_DH_PGC_GRIPPER_M.zip", + w1_assets, + "DexforceW1V021_INDUSTRIAL_DH_PGC_GRIPPER_M.zip", ), "06ec5dfa76dc69160d7ff9bc537a6a7b", ) @@ -111,7 +115,8 @@ def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( EMBODICHAIN_DOWNLOAD_PREFIX, - "dexforce_w1/DexforceW1V021_ANTHROPOMORPHIC_BRAINCO_HAND_REVO1.zip", + w1_assets, + "DexforceW1V021_ANTHROPOMORPHIC_BRAINCO_HAND_REVO1.zip", ), "ef19d247799e79233863b558c47b32cd", ) @@ -124,9 +129,7 @@ def __init__(self, data_root: str = None): class DexforceW1ChassisV021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_Chassis_v021.zip" - ), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_Chassis_v021.zip"), "6b0517a4d92a572988641d46269d063f", ) prefix = "DexforceW1ChassisV021" @@ -138,7 +141,7 @@ def __init__(self, data_root: str = None): class DexforceW1TorsoV021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_Torso_v021.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_Torso_v021.zip"), "4f762a3ae6ef2acbe484c915cf80da7b", ) prefix = "DexforceW1TorsoV021" @@ -150,7 +153,7 @@ def __init__(self, data_root: str = None): class DexforceW1EyesV021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_Eyes_v021.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_Eyes_v021.zip"), "80e0b86ef2e934f439c99b79074f6f3c", ) prefix = "DexforceW1EyesV021" @@ -162,7 +165,7 @@ def __init__(self, data_root: str = None): class DexforceW1HeadV021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( - os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_Head_v021.zip"), + os.path.join(EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_Head_v021.zip"), "ba72805828c5fd62ad55d6a1458893d0", ) prefix = "DexforceW1HeadV021" @@ -175,7 +178,7 @@ class DexforceW1LeftArm1V021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_LeftArm_1_v021.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_LeftArm_1_v021.zip" ), "c3cacda7bd36389ed98620047bff6216", ) @@ -189,7 +192,7 @@ class DexforceW1RightArm1V021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_RightArm_1_v021.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_RightArm_1_v021.zip" ), "456c9495748171003246a3f6626bb0db", ) @@ -203,7 +206,7 @@ class DexforceW1LeftArm2V021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_LeftArm_2_v021.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_LeftArm_2_v021.zip" ), "b99bd0587cc9a36fed3cdaa4f9fd62e7", ) @@ -217,7 +220,7 @@ class DexforceW1RightArm2V021(EmbodiChainDataset): def __init__(self, data_root: str = None): data_descriptor = o3d.data.DataDescriptor( os.path.join( - EMBODICHAIN_DOWNLOAD_PREFIX, "dexforce_w1/W1_RightArm_2_v021.zip" + EMBODICHAIN_DOWNLOAD_PREFIX, w1_assets, "W1_RightArm_2_v021.zip" ), "d9f25b2d5244ca5a859040327273a99e", ) diff --git a/pyproject.toml b/pyproject.toml index 77f568c..9653c7b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ version = "0.0.1" description = "An end-to-end, GPU-accelerated, and modular platform for building generalized Embodied Intelligence." readme = "README.md" authors = [ { name = "EmbodiChain Developers" } ] -requires-python = ">=3.9" +requires-python = ">=3.10" # Core install dependencies (kept from requirements.txt). Some VCS links are diff --git a/tests/sim/objects/test_articulation.py b/tests/sim/objects/test_articulation.py index f159f2c..b3ecae8 100644 --- a/tests/sim/objects/test_articulation.py +++ b/tests/sim/objects/test_articulation.py @@ -29,7 +29,7 @@ from embodichain.data import get_data_path from dexsim.types import ActorType -ART_PATH = "AiLiMu_BoxDrawer/AiLiMu_BoxDrawer.urdf" +ART_PATH = "SlidingBoxDrawer/SlidingBoxDrawer.urdf" NUM_ARENAS = 10 diff --git a/tests/sim/sensors/test_camera.py b/tests/sim/sensors/test_camera.py index 8e57817..b899994 100644 --- a/tests/sim/sensors/test_camera.py +++ b/tests/sim/sensors/test_camera.py @@ -26,7 +26,7 @@ NUM_ENVS = 4 -ART_PATH = "AiLiMu_BoxDrawer/AiLiMu_BoxDrawer.urdf" +ART_PATH = "SlidingBoxDrawer/SlidingBoxDrawer.urdf" class CameraTest: @@ -113,6 +113,7 @@ def test_attach_to_parent(self): self.art: Articulation = self.sim.add_articulation( cfg=ArticulationCfg.from_dict(cfg_dict) ) + # from IPython import embed; embed() self.camera: Camera = self.sim.add_sensor( sensor_cfg=CameraCfg( uid="test", extrinsics=CameraCfg.ExtrinsicsCfg(parent="handle_xpos") @@ -151,3 +152,4 @@ def setup_method(self): if __name__ == "__main__": test = CameraTest() test.setup_simulation("cpu", enable_rt=False) + test.test_attach_to_parent()