How to customize the robot

RL-friendly Interface

We follow the agent-environment interaction model to design the interface. User can re-define the state space, action space and reward function in the env.py file.

api

Initialize the RL-based Model

Specify the RL method in the main.py.

from algorithms.ippo import IPPO
mappo = IPPO.init_from_env(agent_alg=config.agent_alg,
                              tau=config.tau,
                              lr=config.lr,
                              hidden_dim=config.hidden_dim)

Configuration of the Training

User can configure the trainig parameters before start the training.

parser = argparse.ArgumentParser()
parser.add_argument("--env_id", help="Name of environment", default="Autodriving")
parser.add_argument("--model_name",
                    help="Name of directory to store " +
                         "model/training contents", default="DQN")
parser.add_argument("--seed",
                    default=1, type=int,
                    help="Random seed")
parser.add_argument("--n_rollout_threads", default=1, type=int)
parser.add_argument("--n_training_threads", default=12, type=int)
parser.add_argument("--buffer_length", default=int(1e5), type=int)
parser.add_argument("--n_episodes", default=30000, type=int)
parser.add_argument("--episode_length", default=24, type=int)
parser.add_argument("--steps_per_update", default=100, type=int)
parser.add_argument("--batch_size",
                    default=1024, type=int,
                    help="Batch size for model training")
parser.add_argument("--n_exploration_eps", default=3000, type=int)
parser.add_argument("--init_noise_scale", default=0.3, type=float)
parser.add_argument("--final_noise_scale", default=0.0, type=float)
parser.add_argument("--save_interval", default=200, type=int)
parser.add_argument("--hidden_dim", default=64, type=int)
parser.add_argument("--lr", default=0.01, type=float)
parser.add_argument("--tau", default=0.01, type=float)
parser.add_argument("--agent_alg",
                    default="PPO", type=str,
                    choices=['PPO', 'PPO'])
parser.add_argument("--adversary_alg",
                    default="PPO", type=str,
                    choices=['PPO', 'PPO'])
parser.add_argument("--discrete_action", default=True, type=bool)

config = parser.parse_args()
run(config)