# qiBullet [![ci](https://github.com/softbankrobotics-research/qibullet/workflows/ci/badge.svg?branch=master)](https://github.com/softbankrobotics-research/qibullet/actions?query=workflow%3Aci) [![codecov](https://codecov.io/gh/softbankrobotics-research/qibullet/branch/master/graph/badge.svg)](https://codecov.io/gh/softbankrobotics-research/qibullet) [![pypi](https://img.shields.io/pypi/v/qibullet.svg)](https://pypi.org/project/qibullet/) [![Downloads](https://pepy.tech/badge/qibullet)](https://pepy.tech/project/qibullet) [![Github discussions](https://img.shields.io/github/discussions/softbankrobotics-research/qibullet?color=blue&logo=github)](https://github.com/softbankrobotics-research/qibullet/discussions) [![docs](https://img.shields.io/badge/docs-online-success?logo=githubpages)](https://softbankrobotics-research.github.io/qibullet/)
__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:
```bash
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](https://github.com/softbankrobotics-research/qibullet/tree/master/qibullet/robot_data/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](https://github.com/softbankrobotics-research/qibullet/wiki).
## Usage
A robot can be spawned via the SimulationManager class:
```python
import sys
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)
# This snippet is a blocking call, just to keep the simulation opened
if sys.version_info[0] >= 3:
input("Press a key to end the simulation")
else:
raw_input("Press a key to end the simulation")
# Stop the simulation
simulation_manager.stopSimulation(client_id)
```
Or using loadRobot from the PepperVirtual class if you already have a simulated environment:
```python
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](https://github.com/softbankrobotics-research/qibullet/tree/master/examples), or on the [wiki](https://github.com/softbankrobotics-research/qibullet/wiki)
> :warning: The camera subscription system of qiBullet 1.4.0 (and lesser) is __deprecated__, use the [new system](https://github.com/softbankrobotics-research/qibullet/wiki/Tutorials:-Virtual-Robot#cameras)
## Documentation
The qiBullet __API documentation__ can be found [here](https://softbankrobotics-research.github.io/qibullet/). In order to build the documentation, the __doxygen__ package has to be installed beforehand and the docs folder has to exist. The submodules should also be checked out:
```bash
git submodule init
git submodule update
```
The documentation can then be generated via the following command:
```bash
cd docs
doxygen Doxyfile
```
The repository also contains a [wiki](https://github.com/softbankrobotics-research/qibullet/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](LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/softbankrobotics-research/qibullet",
"name": "qibullet",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "physics simulation,robotics,naoqi,softbank,pepper,nao,romeo,robot",
"author": "Maxime Busy, Maxime Caniot",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/21/db/d0682eaf0833952681cbfec89f2b86e2bab5d3efcafec15fb354e7048844/qibullet-1.4.6.tar.gz",
"platform": null,
"description": "# qiBullet [![ci](https://github.com/softbankrobotics-research/qibullet/workflows/ci/badge.svg?branch=master)](https://github.com/softbankrobotics-research/qibullet/actions?query=workflow%3Aci) [![codecov](https://codecov.io/gh/softbankrobotics-research/qibullet/branch/master/graph/badge.svg)](https://codecov.io/gh/softbankrobotics-research/qibullet) [![pypi](https://img.shields.io/pypi/v/qibullet.svg)](https://pypi.org/project/qibullet/) [![Downloads](https://pepy.tech/badge/qibullet)](https://pepy.tech/project/qibullet) [![Github discussions](https://img.shields.io/github/discussions/softbankrobotics-research/qibullet?color=blue&logo=github)](https://github.com/softbankrobotics-research/qibullet/discussions) [![docs](https://img.shields.io/badge/docs-online-success?logo=githubpages)](https://softbankrobotics-research.github.io/qibullet/)\n\n__Bullet-based__ python simulation for __SoftBank Robotics'__ robots.\n\n\n\n## Installation\n\nThe following modules are required:\n* __numpy__\n* __pybullet__\n\nThe qiBullet module can be installed via pip, for python 2.7 and python 3:\n```bash\npip install --user qibullet\n```\n\nAdditional 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:\n* `/home/username/.qibullet` on Linux and macOS\n* `C:\\Users\\username\\.qibullet` on Windows\n\nThe 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](https://github.com/softbankrobotics-research/qibullet/tree/master/qibullet/robot_data/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](https://github.com/softbankrobotics-research/qibullet/wiki).\n\n## Usage\nA robot can be spawned via the SimulationManager class:\n```python\nimport sys\nfrom qibullet import SimulationManager\n\nif __name__ == \"__main__\":\n simulation_manager = SimulationManager()\n\n # Launch a simulation instances, with using a graphical interface.\n # Please note that only one graphical interface can be launched at a time\n client_id = simulation_manager.launchSimulation(gui=True)\n\n # Selection of the robot type to spawn (True : Pepper, False : NAO)\n pepper_robot = True\n\n if pepper_robot:\n # Spawning a virtual Pepper robot, at the origin of the WORLD frame, and a\n # ground plane\n pepper = simulation_manager.spawnPepper(\n client_id,\n translation=[0, 0, 0],\n quaternion=[0, 0, 0, 1],\n spawn_ground_plane=True)\n else:\n # Or a NAO robot, at a default position\n nao = simulation_manager.spawnNao(\n client_id,\n spawn_ground_plane=True)\n\n # This snippet is a blocking call, just to keep the simulation opened\n if sys.version_info[0] >= 3:\n input(\"Press a key to end the simulation\")\n else:\n raw_input(\"Press a key to end the simulation\")\n \n # Stop the simulation\n simulation_manager.stopSimulation(client_id)\n \n```\n\nOr using loadRobot from the PepperVirtual class if you already have a simulated environment:\n```python\n pepper = PepperVirtual()\n\n pepper.loadRobot(\n translation=[0, 0, 0],\n quaternion=[0, 0, 0, 1],\n physicsClientId=client_id)\n```\n\nMore snippets can be found in the [examples folder](https://github.com/softbankrobotics-research/qibullet/tree/master/examples), or on the [wiki](https://github.com/softbankrobotics-research/qibullet/wiki)\n\n> :warning: The camera subscription system of qiBullet 1.4.0 (and lesser) is __deprecated__, use the [new system](https://github.com/softbankrobotics-research/qibullet/wiki/Tutorials:-Virtual-Robot#cameras)\n\n## Documentation\nThe qiBullet __API documentation__ can be found [here](https://softbankrobotics-research.github.io/qibullet/). In order to build the documentation, the __doxygen__ package has to be installed beforehand and the docs folder has to exist. The submodules should also be checked out:\n```bash\ngit submodule init\ngit submodule update\n```\n\nThe documentation can then be generated via the following command:\n```bash\ncd docs\ndoxygen Doxyfile\n```\n\nThe repository also contains a [wiki](https://github.com/softbankrobotics-research/qibullet/wiki), providing some tutorials.\n\n## Citations\nPlease cite qiBullet if you use this repository in your publications:\n```\n@article{busy2019qibullet,\n title={qiBullet, a Bullet-based simulator for the Pepper and NAO robots},\n author={Busy, Maxime and Caniot, Maxime},\n journal={arXiv preprint arXiv:1909.00779},\n year={2019}\n}\n```\n\n## Troubleshooting\n\n### OpenGL driver\nIf you encounter the message:\n> Workaround for some crash in the Intel OpenGL driver on Linux/Ubuntu\n\nYour computer is using the Intel OpenGL driver. Go to __Software & Updates__, __Additional Drivers__, and select a driver corresponding to your GPU.\n\n## License\nLicensed under the [Apache-2.0 License](LICENSE)\n",
"bugtrack_url": null,
"license": "",
"summary": "Bullet-based simulation for SoftBank Robotics' robots",
"version": "1.4.6",
"split_keywords": [
"physics simulation",
"robotics",
"naoqi",
"softbank",
"pepper",
"nao",
"romeo",
"robot"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "5e08a70f35e53571558d4e61698a48ec",
"sha256": "8f4a24be3b36aff6166ca8ba68e3ab2c5342ea5f25069ae8a18e9b9294e6170e"
},
"downloads": -1,
"filename": "qibullet-1.4.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5e08a70f35e53571558d4e61698a48ec",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5765473,
"upload_time": "2022-12-30T10:50:56",
"upload_time_iso_8601": "2022-12-30T10:50:56.994360Z",
"url": "https://files.pythonhosted.org/packages/c5/54/ed020b1d74cabaaf637423af073e086290b3761edfd5f91c71d609c65178/qibullet-1.4.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "4300fe0adabed7f3b7f9e01e0ccdf23a",
"sha256": "88b1ccf77b82d317e4ad21f6f054f8731f65e4b06087e04ba01b02e3e3d03614"
},
"downloads": -1,
"filename": "qibullet-1.4.6.tar.gz",
"has_sig": false,
"md5_digest": "4300fe0adabed7f3b7f9e01e0ccdf23a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5721212,
"upload_time": "2022-12-30T10:50:58",
"upload_time_iso_8601": "2022-12-30T10:50:58.736057Z",
"url": "https://files.pythonhosted.org/packages/21/db/d0682eaf0833952681cbfec89f2b86e2bab5d3efcafec15fb354e7048844/qibullet-1.4.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-30 10:50:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "softbankrobotics-research",
"github_project": "qibullet",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "qibullet"
}