Custom environment
A customized environment is the junction of a task and a robot. You can choose to define your own task, or use one of the tasks present in the package. Similarly, you can choose to define your own robot, or use one of the robots present in the package.
Then, you have to inherit from the RobotTaskEnv
class, in the following way.
from panda_gym.envs.core import RobotTaskEnv
from panda_gym.pybullet import PyBullet
class MyRobotTaskEnv(RobotTaskEnv):
"""My robot-task environment."""
def __init__(self, render_mode):
sim = PyBullet(render_mode=render_mode)
robot = MyRobot(sim)
task = MyTask(sim)
super().__init__(robot, task)
That’s it.
Test it
You can now test your environment by running the following code.
env = MyRobotTaskEnv(render_mode="human")
observation, info = env.reset()
for _ in range(1000):
action = env.action_space.sample() # random action
observation, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
observation, info = env.reset()