def add_body(self, filename, pose=None, scale=1.0, is_static=False, is_controllable=False, name=None):
    'Add a body to the simulation.\n\n        Args:\n            filename: The path to the URDF file to be loaded. If the path is\n                not absolute path, it will be joined with the assets directory.\n            pose: The initial pose as an instance of Pose.\n            scale: The scaling factor of the body.\n            is_static: If True, set the base of the body to be static.\n            is_controllable: If True, the body can apply motor controls.\n            name: Used as a reference of the body in this Simulator instance.\n\n        Returns:\n            An instance of Body.\n        '
    if os.path.isabs(filename):
        path = filename
    else:
        path = os.path.join(self._assets_dir, filename)
    if (pose is None):
        pose = [[0, 0, 0], [0, 0, 0]]
    if is_controllable:
        body = ControllableBody(simulator=self, filename=path, pose=pose, scale=scale, is_static=is_static, name=name)
    else:
        body = Body(simulator=self, filename=path, pose=pose, scale=scale, is_static=is_static, name=name)
    self._bodies[body.name] = body
    return body
Add a body to the simulation.

Args:
    filename: The path to the URDF file to be loaded. If the path is
        not absolute path, it will be joined with the assets directory.
    pose: The initial pose as an instance of Pose.
    scale: The scaling factor of the body.
    is_static: If True, set the base of the body to be static.
    is_controllable: If True, the body can apply motor controls.
    name: Used as a reference of the body in this Simulator instance.

Returns:
    An instance of Body.
def add_body(self, filename, pose=None, scale=1.0, is_static=False, is_controllable=False, name=None):
    'Add a body to the simulation.\n\n        Args:\n            filename: The path to the URDF file to be loaded. If the path is\n                not absolute path, it will be joined with the assets directory.\n            pose: The initial pose as an instance of Pose.\n            scale: The scaling factor of the body.\n            is_static: If True, set the base of the body to be static.\n            is_controllable: If True, the body can apply motor controls.\n            name: Used as a reference of the body in this Simulator instance.\n\n        Returns:\n            An instance of Body.\n        '
    if os.path.isabs(filename):
        path = filename
    else:
        path = os.path.join(self._assets_dir, filename)
    if (pose is None):
        pose = [[0, 0, 0], [0, 0, 0]]
    if is_controllable:
        body = ControllableBody(simulator=self, filename=path, pose=pose, scale=scale, is_static=is_static, name=name)
    else:
        body = Body(simulator=self, filename=path, pose=pose, scale=scale, is_static=is_static, name=name)
    self._bodies[body.name] = body
    return body