softbankrobotics-research / Qibullet

Licence: apache-2.0
Bullet simulation for SoftBank Robotics robots

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Qibullet

Visualnes
Visual NES simulates the CPU & PPU of a NES at the transistor level.
Stars: ✭ 55 (-42.11%)
Mutual labels:  simulator
Emus
Start the Android Emulator and the iOS Simulator from the command line
Stars: ✭ 78 (-17.89%)
Mutual labels:  simulator
Card Game Simulator
Create, Share, and Play
Stars: ✭ 87 (-8.42%)
Mutual labels:  simulator
Habitat Sim
A flexible, high-performance 3D simulator for Embodied AI research.
Stars: ✭ 1,098 (+1055.79%)
Mutual labels:  simulator
Logisim
Logisim Italian Fork
Stars: ✭ 61 (-35.79%)
Mutual labels:  simulator
Virtualhome
API to run VirtualHome, a Multi-Agent Household Simulator
Stars: ✭ 80 (-15.79%)
Mutual labels:  simulator
Plankton
Open source simulator for maritime robotics researchers
Stars: ✭ 51 (-46.32%)
Mutual labels:  simulator
Rinsim
RinSim is a logistics simulator written in Java. RinSim supports (de)centralized algorithms for dynamic pickup-and-delivery problems (PDP). The simulator is developed at the imec-DistriNet group at the dept. of Computer Science, KU Leuven, Belgium.
Stars: ✭ 91 (-4.21%)
Mutual labels:  simulator
Pypownet
A power network simulator with a Reinforcement Learning-focused usage.
Stars: ✭ 69 (-27.37%)
Mutual labels:  simulator
Simulator
A ROS/ROS2 Multi-robot Simulator for Autonomous Vehicles
Stars: ✭ 1,260 (+1226.32%)
Mutual labels:  simulator
Mcusim
MCUSim is an XSPICE library with microcontrollers.
Stars: ✭ 59 (-37.89%)
Mutual labels:  simulator
Digital
A digital logic designer and circuit simulator.
Stars: ✭ 1,108 (+1066.32%)
Mutual labels:  simulator
Project Dollhouse
A project aiming to rebuild TSO (The Sims Online) from the ground up. Inspired by CorsixTH.
Stars: ✭ 83 (-12.63%)
Mutual labels:  simulator
Termly.js
Simple, Extensible, Hackable and Lightweight Javascript Browser Terminal Simulator!
Stars: ✭ 56 (-41.05%)
Mutual labels:  simulator
Ghdl
VHDL 2008/93/87 simulator
Stars: ✭ 1,285 (+1252.63%)
Mutual labels:  simulator
I8086.js
16bit Intel 8086 / 80186 + X87 emulator written in TypeScript with REPL assembly compiler and tiny C compiler
Stars: ✭ 54 (-43.16%)
Mutual labels:  simulator
Vulcan
RISC-V Instruction Set Simulator (Built for education).
Stars: ✭ 80 (-15.79%)
Mutual labels:  simulator
Webots
Webots Robot Simulator
Stars: ✭ 1,324 (+1293.68%)
Mutual labels:  simulator
Ets2 Local Radio
Radio from wherever you are in ETS2/ATS
Stars: ✭ 88 (-7.37%)
Mutual labels:  simulator
Drc Sim
Wii U Gamepad Simulator Backend
Stars: ✭ 85 (-10.53%)
Mutual labels:  simulator

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

⚠️ 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].