huawei-noah / SMARTS

Scalable Multi-Agent RL Training School for Autonomous Driving
MIT License
908 stars 184 forks source link

Modularize SMARTS #1841

Open Gamenot opened 1 year ago

Gamenot commented 1 year ago

Is your feature request related to a problem? Please describe. The current version of smarts contains a lot of different components but these components can conflict and cause problems with other projects through dependencies and redundant utilities.

Describe the solution you'd like SMARTS should be split up into namespace packages (e.g., smarts.core, smarts.physics, smarts.scenarios)

The resource related packages:

smarts # Contains all default packages.
smarts.core # large codebase, low dependencies, fast
smarts.cli # should be a package
smarts.resources
smarts.env
smarts.env.core
smarts.env.gym
smarts.env.gymnasium
smarts.env.rllib
smarts.physics
smarts.physics.core # mainly utilities
smarts.physics.pybullet
smarts.rendering
smarts.rendering.default
smarts.agents # concrete resources
smarts.zoo
smarts.zoo.core # shared utilities
smarts.zoo.primative
smarts.zoo.traffic
smarts.zoo.algorithm
smarts.zoo.remote
smarts.sstudio
smarts.sstudio.core
smarts.sstudio.waymo
smarts.sstudio.sumo
smarts.sstudio.ngsim
smarts.sstudio.interaction
smarts.sstudio.open_scenario
smarts.scenarios # concrete resources
smarts.scenarios.sumo
smarts.scenarios.ngsim
smarts.scenarios.interaction
smarts.scenarios.open_scenario
smarts.scenarios.waymo
smarts.benchmark # concrete baselines
envision

Packages that exist just to install configured options:

smarts.rllib
smarts.ros
smarts.waymo
smarts.sumo # small
smarts.imitation
smarts.open_scenario
Gamenot commented 1 year ago

SMARTS_Packaging.md