/gym-ignition-models

Collection of robot models compatible with gym-ignition

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

gym-ignition-models

Robot models for gym-ignition

These models have been mainly tuned and tested to work in Ignition Gazebo.

Installation

This repository can be installed with the pip package manager as follows:

# From PyPI (release versions)
pip3 install gym-ignition-models

# From PyPI (pre-release versions)
pip3 install --pre gym-ignition-models

# From the repository
pip3 install git+https://github.com/robotology/gym-ignition-models.git

Only GNU/Linux distributions are currently supported.

Configuration

Standalone usage

If you use Ignition Gazebo, you need to specify where the models and their dependent resources are located in the filesystem. The simulator reads the IGN_GAZEBO_RESOURCE_PATH environment variable.

Execute the following commands from outside the directory where you cloned this repository to temporarily configure your environment:

PKG_DIR=$(python -c "import gym_ignition_models, inspect, os; print(os.path.dirname(inspect.getfile(gym_ignition_models)))")
export IGN_GAZEBO_RESOURCE_PATH=$PKG_DIR:$IGN_GAZEBO_RESOURCE_PATH

If you want to make this change persistent, add the lines above to your ~/.bashrc.

Note: waiting an upstream fix, you also need to add to IGN_GAZEBO_RESOURCE_PATH all the directories containing model's meshes.

Note: Alternatively, instead of using IGN_GAZEBO_RESOURCE_PATH, you can use SDF_PATH for the models and IGN_FILE_PATH for the meshes.

Python usage

The environment variables are automatically exported when the package is imported. If your application imports also the scenario package, make sure to import gym_ignition_models first.

Usage

You can use these models either with the standalone Ignition Gazebo simulator, or find and import them in your Python code. Here below a Python example of the utility functions provided by the package:

import gym_ignition_models as m

print(f"Models have been installed in: {m.get_models_path()}")
print(f"Available robots: {m.get_robot_names()}")
print()
print("Model files:")

for robot_name in m.get_robot_names():
    print(f"{robot_name}: {m.get_model_file(robot_name)}")

The package also includes a get_model_resource function that provides string, URDF, or SDF descriptions of the supported models. It converts the descriptions internally, if needed.

Supported models

Robot Name Screenshot
ground_plane
cartpole
pendulum
iCubGazeboV2_5
iCubGazeboSimpleCollisionsV2_5
panda
character

License

LGPL v2.1 or any later version.