Deprecate robot catalog#2550
Conversation
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #2550 +/- ##
==========================================
+ Coverage 70.79% 70.89% +0.09%
==========================================
Files 862 851 -11
Lines 77504 77198 -306
Branches 6886 6850 -36
==========================================
- Hits 54872 54727 -145
+ Misses 20843 20669 -174
- Partials 1789 1802 +13
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 13 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Greptile SummaryThis PR removes the
Confidence Score: 5/5Safe to merge; the refactor is a mechanical substitution that produces equivalent hardware and planning configurations to the deleted catalog layer. Every changed blueprint was cross-checked against the deleted catalog. Gripper flags, joint names, adapter types, home positions, end-effector links, and coordinator task names all match their prior values. No functional regressions were found. dimos/manipulation/blueprints.py and dimos/robot/manipulators/xarm/blueprints.py each contain their own copy of XARM_GRIPPER_COLLISION_EXCLUSIONS and a private xArm model-config builder worth consolidating in a follow-up. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph OLD["Old Architecture"]
CAT["robot/catalog/*.py\n(RobotConfig / GripperConfig)"]
CAT -->|".to_hardware_component()"| HC1["HardwareComponent"]
CAT -->|".to_task_config()"| TC1["TaskConfig"]
CAT -->|".to_robot_model_config()"| RMC1["RobotModelConfig"]
end
subgraph NEW["New Architecture"]
HW["_hardware.py\nmanipulator / mock_arm / xarm7 / xarm6 / piper / a750"]
HW -->|"returns directly"| HC2["HardwareComponent"]
BPX["blueprint files"]
BPX -->|"TaskConfig(...)"| TC2["TaskConfig"]
LOCAL["per-manipulator blueprints\n_xarm_model_config() etc."]
LOCAL -->|"RobotModelConfig(...)"| RMC2["RobotModelConfig"]
end
HC2 --> COORD["ControlCoordinator"]
TC2 --> COORD
RMC2 --> PLAN["ManipulationModule / PickAndPlaceModule"]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
subgraph OLD["Old Architecture"]
CAT["robot/catalog/*.py\n(RobotConfig / GripperConfig)"]
CAT -->|".to_hardware_component()"| HC1["HardwareComponent"]
CAT -->|".to_task_config()"| TC1["TaskConfig"]
CAT -->|".to_robot_model_config()"| RMC1["RobotModelConfig"]
end
subgraph NEW["New Architecture"]
HW["_hardware.py\nmanipulator / mock_arm / xarm7 / xarm6 / piper / a750"]
HW -->|"returns directly"| HC2["HardwareComponent"]
BPX["blueprint files"]
BPX -->|"TaskConfig(...)"| TC2["TaskConfig"]
LOCAL["per-manipulator blueprints\n_xarm_model_config() etc."]
LOCAL -->|"RobotModelConfig(...)"| RMC2["RobotModelConfig"]
end
HC2 --> COORD["ControlCoordinator"]
TC2 --> COORD
RMC2 --> PLAN["ManipulationModule / PickAndPlaceModule"]
Reviews (2): Last reviewed commit: "address blueprint cleanup review comment..." | Re-trigger Greptile |
Problem
RobotConfig and catalogue was introduced in an effort to have a single source of truth for all modules that need to interface with hardware or need meta data of Robot. But it was not useful as pulling form lfs on import time
Closes DIM-1032
Solution
Removed all catalogue files and removed references. consolidated in hardware metadata into
_hardware.pyfactoryHow to Test
Contributor License Agreement