Difference with openai_ros

This package has been constructed following the blueprint of the openai_ros package, which was developed by the construct. Consequently, they share a foundational package structure. Both packages compartmentalize the Gym environments into distinct task, robot, and gazebo classes. Furthermore, they employ corresponding gazebo_connection and controllers_connection classes to establish communication with Gazebo and the controllers.

However, it’s important to note that while this common framework serves as the foundation, substantial deviations from the original openai_ros package have emerged. These modifications have led to a significant divergence in the codebase. Consequently, it’s essential to acknowledge that not all components maintain backward compatibility. To offer a more precise overview of the contrasting features, the table below highlights the most noteworthy differences between the two implementations:

openai_ros

ros_gazebo_gym

License

ILPG

MIT

Import behaviour

Uses StartOpenAI_ROS_Environment function

Direct environment imports, similarly to other gymnasium environments

Focus

Simulated systems

Simulated and real systems

ROS Noetic compatible

ROS EOL compatible

Uses black/flake8 conventions

Clones environment repository

Installs system dependencies

Builds catkin workspace

Sources catkin workspace

Starts roscore and runs rosinit

Uses failsafe subprocesses

Extensive documentation

Numpy docstrings

Google docstrings

Code API documentation

Welcomes contributions

Passes kwargs to environments

Panda environment

Cartpole environment

Fetch environment

Hopper environment

Husarion environment

Iriwam environment

Moving_cube environment

Parrotdrone environment

Sawyer environment

Shadow_tc environment

Sumit_xl environment

Turtlebot2 environment

Turtlebot3 environment

Wamv environment

As the table above shows, the ros_gazebo_gym package works in ROS noetic, is easier to work with, is fully open-source, and comes with extensive code API documentation. The openai_ros on the other hand, currently contains more robotics environments and is compatible with EOL ROS versions. Nevertheless, new environments can easily be added to the ros_gazebo_gym package by following this guide.

Important

Although the ros_gazebo_gym package diverged significantly from the openai_ros package with some effort, it can be back-ported into the openai_ros package under an MIT license. I’m happy to do this if this achieves enough support from the ROS community.