Skip to main content

Bullet-based simulation for SoftBank Robotics' robots

Project description

qiBullet unit-tests codecov pypi Downloads Gitter chat

Bullet-based python simulation for SoftBank Robotics' robots.

Installation

The following modules are required:

  • numpy
  • pybullet

The qiBullet module can be installed via pip, for python 2.7 and python 3:

pip install --user qibullet

Additional resources (robot meshes and URDFs) are required in order to be able to spawn a Pepper, NAO or Romeo robot in the simulation. These extra resources will be installed in your home folder:

  • /home/username/.qibullet on Linux and macOS
  • C:\Users\username\.qibullet on Windows

The installation of the additional resources will automatically be triggered if you try to spawn a Pepper, NAO or Romeo for the first time. If qiBullet finds the additional resources in your local folder, the installation won't be triggered. The robot meshes are under a specific license, you will need to agree to that license in order to install them. More details on the installation process can be found on the wiki.

Usage

A robot can be spawned via the SimulationManager class:

from qibullet import SimulationManager

if __name__ == "__main__":
    simulation_manager = SimulationManager()

    # Launch a simulation instances, with using a graphical interface.
    # Please note that only one graphical interface can be launched at a time
    client_id = simulation_manager.launchSimulation(gui=True)

    # Selection of the robot type to spawn (True : Pepper, False : NAO)
    pepper_robot = True

    if pepper_robot:
      # Spawning a virtual Pepper robot, at the origin of the WORLD frame, and a
      # ground plane
      pepper = simulation_manager.spawnPepper(
          client_id,
          translation=[0, 0, 0],
          quaternion=[0, 0, 0, 1],
          spawn_ground_plane=True)
    else:
      # Or a NAO robot, at a default position
      nao = simulation_manager.spawnNao(
          client_id,
          spawn_ground_plane=True)

Or using loadRobot from the PepperVirtual class if you already have a simulated environment:

    pepper = PepperVirtual()

    pepper.loadRobot(
      translation=[0, 0, 0],
      quaternion=[0, 0, 0, 1],
      physicsClientId=client_id)

More snippets can be found in the examples folder, or on the wiki

:warning: The camera subscription system of qiBullet 1.4.0 (and lesser) is deprecated, use the new system

Documentation

The qiBullet API documentation can be found here. The documentation can be generated via the following command (the doxygen package has to be installed beforehand, and the docs folder has to exist):

cd docs
doxygen

The repository also contains a wiki, providing some tutorials.

Citations

Please cite qiBullet if you use this repository in your publications:

@article{busy2019qibullet,
  title={qiBullet, a Bullet-based simulator for the Pepper and NAO robots},
  author={Busy, Maxime and Caniot, Maxime},
  journal={arXiv preprint arXiv:1909.00779},
  year={2019}
}

Troubleshooting

OpenGL driver

If you encounter the message:

Workaround for some crash in the Intel OpenGL driver on Linux/Ubuntu

Your computer is using the Intel OpenGL driver. Go to Software & Updates, Additional Drivers, and select a driver corresponding to your GPU.

License

Licensed under the Apache-2.0 License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qibullet-1.4.3.tar.gz (5.7 MB view details)

Uploaded Source

Built Distribution

qibullet-1.4.3-py3-none-any.whl (5.8 MB view details)

Uploaded Python 3

File details

Details for the file qibullet-1.4.3.tar.gz.

File metadata

  • Download URL: qibullet-1.4.3.tar.gz
  • Upload date:
  • Size: 5.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/2.7.12

File hashes

Hashes for qibullet-1.4.3.tar.gz
Algorithm Hash digest
SHA256 089d42a3ab8373579a9a07e89fd539e61b145866bf59bbc17c87f98efb76f8e2
MD5 b483b3b4fec56738a26f6c73c97f26f5
BLAKE2b-256 d58d31f2127840549442d83beef3435a1889eb2c0ab2c0270b16cb98d13ad142

See more details on using hashes here.

File details

Details for the file qibullet-1.4.3-py3-none-any.whl.

File metadata

  • Download URL: qibullet-1.4.3-py3-none-any.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/2.7.12

File hashes

Hashes for qibullet-1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 96fc13c920018a54d4ec16d842922f1d57a3841d1f33ce0b9decf3d5c91912fb
MD5 bd448042a8886795864960aa6d3d583d
BLAKE2b-256 b8d6f3b7a964c0e7c12d92e34a2bd5e3942c203e43e0589c609de6865b01d28c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page