The current architecture can be recapped as follows:
Robot: abstracts getting and setting robot values and references
Task: works on a generic Robot object and implements the environment logic (how to process the action, how to form the observation, computes the reward)
Task Wrapper (e.g. GazeboEnv): wraps the Task and steps the physics with the simulator
Pybullet is probably the main open-source alternative to the Mujoco simulator. There's a quite big community for robotic applications that chose pybullet. Waiting that Ignition Gazebo supports bullet as a backend (coming! :tada:), it might be a good idea adding the support of pybullet for benchmarking purpose. Only two components need to be developed:
PyBulletRobot: A new implementation of the Robot interface to interface with the bullet simulator
PyBulletEnv: A Task Wrapper that steps the physics using pybullet
If everything is developed correctly, the Tasks object should work on both simulators.
The current architecture can be recapped as follows:
Robot
: abstracts getting and setting robot values and referencesTask
: works on a genericRobot
object and implements the environment logic (how to process the action, how to form the observation, computes the reward)GazeboEnv
): wraps theTask
and steps the physics with the simulatorPybullet is probably the main open-source alternative to the Mujoco simulator. There's a quite big community for robotic applications that chose pybullet. Waiting that Ignition Gazebo supports bullet as a backend (coming! :tada:), it might be a good idea adding the support of pybullet for benchmarking purpose. Only two components need to be developed:
PyBulletRobot
: A new implementation of theRobot
interface to interface with the bullet simulatorPyBulletEnv
: A Task Wrapper that steps the physics using pybulletIf everything is developed correctly, the
Task
s object should work on both simulators.