Package: qibullet
qiBulletBullet-basedpython simulation forSoftBank Robotics'robots.InstallationThe following modules are required:numpypybulletThe qiBullet module can be installed via pip, for python 2.7 and python 3:pipinstall--userqibulletAdditional 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/.qibulleton Linux and macOSC:\Users\username\.qibulleton WindowsThe 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 specificlicense, you will need to agree to that license in order to install them. More details on the installation process can be found on thewiki.UsageA robot can be spawned via the SimulationManager class:importsysfromqibulletimportSimulationManagerif__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 timeclient_id=simulation_manager.launchSimulation(gui=True)# Selection of the robot type to spawn (True : Pepper, False : NAO)pepper_robot=Trueifpepper_robot:# Spawning a virtual Pepper robot, at the origin of the WORLD frame, and a# ground planepepper=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 positionnao=simulation_manager.spawnNao(client_id,spawn_ground_plane=True)# This snippet is a blocking call, just to keep the simulation openedifsys.version_info[0]>=3:input("Press a key to end the simulation")else:raw_input("Press a key to end the simulation")# Stop the simulationsimulation_manager.stopSimulation(client_id)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 theexamples folder, or on thewiki:warning: The camera subscription system of qiBullet 1.4.0 (and lesser) isdeprecated, use thenew systemDocumentationThe qiBulletAPI documentationcan be foundhere. In order to build the documentation, thedoxygenpackage has to be installed beforehand and the docs folder has to exist. The submodules should also be checked out:gitsubmoduleinit
gitsubmoduleupdateThe documentation can then be generated via the following command:cddocs
doxygenDoxyfileThe repository also contains awiki, providing some tutorials.CitationsPlease 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}
}TroubleshootingOpenGL driverIf you encounter the message:Workaround for some crash in the Intel OpenGL driver on Linux/UbuntuYour computer is using the Intel OpenGL driver. Go toSoftware & Updates,Additional Drivers, and select a driver corresponding to your GPU.LicenseLicensed under theApache-2.0 License