concepts.simulator.pybullet.client.BulletClient#

class BulletClient[source]#

Bases: object

A wrapper for the pybullet client.

Methods

absolute_timeout(duration)

add_nonphysics_step_callback(cb)

connect([suppress_warnings])

disable_rendering([disable_rendering, ...])

disable_stdout([activate])

disable_world_update()

Temporarily disable the world update.

disconnect()

get_mouse_events()

has_gui()

is_connected()

load_mjcf(xml_path[, pos, quat, body_name, ...])

load_sdf(xml_path[, scale, notify_world_update])

load_urdf(xml_path[, pos, quat, body_name, ...])

load_urdf_template(xml_path, replaces[, ...])

loads_mjcf(xml_content[, pos, quat, save_to])

perform_collision_detection()

remove_body(body_id)

remove_nonphysics_step_callback(cb)

reset_world()

set_enable_realtime_rendering([...])

set_rendering_fps([render_fps])

step([steps, realtime_rendering])

timeout(duration)

update_viewer()

wait_for_duration(duration)

wait_for_user([message])

wait_forever()

with_fps([fps, render_fps, realtime_rendering])

Attributes

__init__(assets_root=None, is_gui=False, *, fps=None, render_fps=None, gravity=None, connect=True, client_id=-1, width=960, height=960, additional_title=None, save_video=None, enable_realtime_rendering=None, enable_debug_gui=False, engine_parameters=None)[source]#

Initialize the BulletClient.

Parameters:
  • assets_root (str | None) – the root directory of the assets (by default it is the assets directory in the concepts package).

  • is_gui (bool) – whether to enable the GUI.

  • fps (int | None) – the physics simulation FPS (default: 120).

  • render_fps (int | None) – the rendering FPS (default: 120).

  • gravity (Tuple[float] | float | None) – the gravity vector (default: (0, 0, -9.8)).

  • connect (bool) – whether to connect to the server immediately.

  • client_id (int) – the client id to connect to. If this is set to -1, a new client id will be created.

  • save_video (str | None) – the path to save the video.

  • width (int | None) – the width of the window.

  • height (int | None) – the height of the window.

  • additional_title (str | None) – the additional title of the window.

  • enable_debug_gui (bool) – whether to enable the debug GUI.

  • enable_realtime_rendering (bool | None) – whether to enable realtime rendering (default: True if render_fps is set, otherwise False).

  • engine_parameters (Dict[str, Any] | None) – additional engine parameters.

__new__(**kwargs)#
absolute_timeout(duration)[source]#
Parameters:

duration (float)

add_nonphysics_step_callback(cb)[source]#
connect(suppress_warnings=True)[source]#
Parameters:

suppress_warnings (bool)

disable_rendering(disable_rendering=True, reset=False, suppress_stdout=False)[source]#
Parameters:
  • disable_rendering (bool)

  • reset (bool)

  • suppress_stdout (bool)

disable_stdout(activate=True)[source]#
Parameters:

activate (bool)

disable_world_update()[source]#

Temporarily disable the world update. Specifically, when loading a new model, the world object self.w will not be updated. This function also disables rendering of the pybullet debug renderer. Thus, this functionality is useful when loading a large number of models.

disconnect()[source]#
get_mouse_events()[source]#
Return type:

List[MouseEvent]

has_gui()[source]#
is_connected()[source]#
load_mjcf(xml_path, pos=(0, 0, 0), quat=(0, 0, 0, 1), body_name=None, group='__UNSET__', static=False, notify_world_update=True)[source]#
Return type:

int

load_sdf(xml_path, scale=1.0, notify_world_update=True)[source]#
Return type:

int

load_urdf(xml_path, pos=(0, 0, 0), quat=(0, 0, 0, 1), body_name=None, group='__UNSET__', static=False, scale=1.0, rgba=None, notify_world_update=True)[source]#
Parameters:
  • body_name (str | None)

  • group (str | None)

  • scale (float)

Return type:

int

load_urdf_template(xml_path, replaces, pos=None, quat=None, **kwargs)[source]#
Parameters:
Return type:

int

loads_mjcf(xml_content, pos=None, quat=None, save_to=None, **kwargs)[source]#
Return type:

int

perform_collision_detection()[source]#
remove_body(body_id)[source]#
remove_nonphysics_step_callback(cb)[source]#
reset_world()[source]#
set_enable_realtime_rendering(enable_realtime_rendering=None)[source]#
Parameters:

enable_realtime_rendering (bool | None)

set_rendering_fps(render_fps=None)[source]#
Parameters:

render_fps (int | None)

step(steps=1, realtime_rendering=None)[source]#
Parameters:

realtime_rendering (bool | None)

timeout(duration)[source]#
Parameters:

duration (float)

update_viewer()[source]#
wait_for_duration(duration)[source]#
wait_for_user(message='Press enter to continue...')[source]#
wait_forever()[source]#
with_fps(fps=None, render_fps=None, realtime_rendering=None)[source]#
Parameters:
  • fps (int | None)

  • render_fps (int | None)

  • realtime_rendering (bool | None)

DEFAULT_ASSETS_ROOT = '/Users/jiayuanm/Projects/Concepts/concepts/assets'#
DEFAULT_ENGINE_PARAMETERS = {'numSolverIterations': 10}#
DEFAULT_FPS = 120#
DEFAULT_GRAVITY = (0, 0, -9.8)#
property world#

Alias for self.w.