``rlenvscpp`` =============== ``rlenvscpp`` is an effort to provide implementations and wrappers of environments suitable for training reinforcement learning agents using C++. In addition, the library provides various utilities such as experiment tracking, representing trajectories via waypoints and simple implementation of popular dynamics such as quadrotor dynamics. Various RL algorithms using the environments can be found at `cuberl `_. Gymnasium environments ----------------------- Currently, ``rlenvscpp`` provides the following Gymnasium environments. Note that you will need to have Gymnasium installed. * FrozenLake 4x4 map: `example_1 `_ * FrozenLake 8x8 map: `example_1 `_ * Blackjack: `example_1 `_ * CliffWalking: `example_1 `_ * CartPole: TODO * MountainCar: TODO * Taxi: `example_1 `_ * Pendulum: `example_1 `_ * LunarLander: `box2d `_ * Acrobot: TODO * LunarLander: `https://github.com/pockerman/rlenvscpp/blob/master/examples/box2d/box2d_example.cpp`_ The Gymnasium (former OpenAI-Gym) environments utilise a REST API to communicate requests to/from the environment and ``rlenvscpp``. Gymnasium vector environments ----------------------------- Some environments have a vector implementation meaning multiple instances of the same environment. Currently, ``rlenvscpp`` provides the following vector environments: * AcrobotV: `example_8 `_ Webots environments -------------------------- In order to use the Webots environments, you need to have `webots `_ installed on your machine. You also need to set the variable ``ENABLE_WEBOTS`` to ``ON`` when configuring the library. * EpuckSimpleGridWorld: `world 1 `_ Working with webots-based environments is a bit different. See the dedicated instructions. Miscellaneous environments -------------------------- * GymWalk: TODO * gym-pybullet-drones: TODO * GridWorld: `example_5 `_ * Connect2: `example_7 `_ * MultiArmedBandits: TODO Dynamics --------- Apart from the exposed environments, ``rlenvscpp`` exposes classes that describe the dynamics of some popular rigid bodies: * Differential drive: `example_9 `_ * Quadrotor: `example_10 `_ * Bicycle vehicle: TODO Miscellaneous examples ---------------------- * Environment trajectory: `example_3 `_ * WaypointTrajectory : `example_11 `_ * TensorboardServer : `example 12 `_