bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
cart_pole_env.h
Go to the documentation of this file.
1#ifndef CART_POLE_ENV_H
2#define CART_POLE_ENV_H
3
41#include "bitrl/bitrl_config.h"
42#include "bitrl/bitrl_types.h"
46#include "bitrl/extern/nlohmann/json/json.hpp"
48
49#include <any>
50#include <string>
51#include <vector>
52
53namespace bitrl
54{
55
57template <typename StateTp> class TimeStep;
58
59namespace envs
60{
61namespace gymnasium
62{
63
67class CartPole final
68 : public GymnasiumEnvBase<TimeStep<std::vector<real_t>>,
69 ContinuousVectorStateDiscreteActionEnv<4, 2, 0, real_t>>
70{
71
72 public:
76 static const std::string name;
77
81 static const std::string URI;
82
88 2, // end of action space
89 0, // start of action space
90 real_t // type of state
92
98
102 typedef typename base_type::state_space_type state_space_type;
103
107 typedef typename base_type::action_space_type action_space_type;
108
112 typedef typename base_type::action_type action_type;
113
117 typedef typename base_type::state_type state_type;
118
123
127 CartPole(const CartPole &other);
128
132 ~CartPole() override = default;
133
137 virtual void
138 make(const std::string &version, const std::unordered_map<std::string, std::any> &options,
139 const std::unordered_map<std::string, std::any> &reset_options) override final;
140
144 virtual time_step_type step(const action_type &action) override final;
145
149 uint_t n_actions() const noexcept { return action_space_type::size; }
150
151 protected:
155 virtual time_step_type
156 create_time_step_from_response_(const nlohmann::json &response) const override final;
157};
158
159} // namespace gymnasium
160} // namespace envs
161} // namespace bitrl
162
163#endif // CART_POLE_H
const std::unordered_map< std::string, std::any > & reset_options() const noexcept
Access the configuration options provided to make().
Definition env_base.h:104
TimeStepType time_step_type
Alias for the type returned when stepping the environment.
Definition env_base.h:41
std::string version() const noexcept
Get the environment version set during make().
Definition env_base.h:142
The CartPole class Interface for CartPole environment.
Definition cart_pole_env.h:70
base_type::state_space_type state_space_type
The type describing the state space for the environment.
Definition cart_pole_env.h:102
GymnasiumEnvBase< TimeStep< std::vector< real_t > >, ContinuousVectorStateDiscreteActionEnv< 4, 2, 0, real_t > >::base_type base_type
Base class type.
Definition cart_pole_env.h:91
static const std::string name
name
Definition cart_pole_env.h:76
virtual time_step_type create_time_step_from_response_(const nlohmann::json &response) const override final
Handle the reset response from the environment server.
Definition cart_pole_env.cpp:21
base_type::action_space_type action_space_type
The type of the action space for the environment.
Definition cart_pole_env.h:107
virtual void make(const std::string &version, const std::unordered_map< std::string, std::any > &options, const std::unordered_map< std::string, std::any > &reset_options) override final
make. Build the environment
Definition cart_pole_env.cpp:47
base_type::action_type action_type
The type of the action to be undertaken in the environment.
Definition cart_pole_env.h:112
virtual time_step_type step(const action_type &action) override final
step. Step in the environment following the given action
Definition cart_pole_env.cpp:66
~CartPole() override=default
~CartPole. Destructor
base_type::state_type state_type
The type of the state.
Definition cart_pole_env.h:117
uint_t n_actions() const noexcept
n_actions. Returns the number of actions
Definition cart_pole_env.h:149
base_type::time_step_type time_step_type
The time step type we return every time a step in the environment is performed.
Definition cart_pole_env.h:97
static const std::string URI
The URI for accessing the environment.
Definition cart_pole_env.h:81
Base class for all Gymnasium environment wrappers.
Definition gymnasium_env_base.h:41
Utility class to facilitate HTTP requests between the environments REST API and C++ drivers.
Definition rest_rl_env_client.h:29
Definition bitrl_consts.h:14
double real_t
real_t
Definition bitrl_types.h:23
std::size_t uint_t
uint_t
Definition bitrl_types.h:43