Object Interface

Object Interfaces for PyBullet simulations. They provide a convenient way to obtain object states and move objects in a simulation.

ObjectInterface

class perls2.objects.object_interface.ObjectInterface

Abstract interface to be implemented for each real and simulated robot.

BulletObjectInterface

class perls2.objects.bullet_object_interface.BulletObjectInterface(physics_id, obj_id, name='object')

Interface to objects in Pybullet.

physics_id

physicsClientId from Pybullet

Type

int

obj_id

bodyId from Bullet loadURDF

Type

int

name

identifer for the object, best to keep unique.

Type

str

position

xyz position in world space

Type

ndarray 3f

pose

x,y,z,qx,qy,qz,w pose of the object in world frame.

Type

ndarray 7f

linear_velocity

linear vel. of object in world frame. xdot, ydot, zdot

Type

ndarray 3f

angular_velocity

ang. vel. of object in world frame. wx, wy, wz.

Type

ndarray 3f

property angular_velocity

Get the angular velocity of the body.

Returns

A 3-dimensional float32 numpy array.

property linear_velocity

Get the lienar velocity of the body.

Parameters

body_uid – The body Unique ID.

Returns

Return type

A 3-dimensional float32 numpy array.

property orientation

Orientation of object in world frame expressed as quaternion.

place(new_object_pos=None, new_object_orn=None)

Places object in new position and orientation.

Parameters
  • new_object_pos (list) – 3f new positions for object in world frame.

  • new_object_orn (list) – 4f new object orientation as quaternion.

Notes

If new_object_pos is None, maintains original position. If new_object_orn is None, maintains original orientation. If both are None, does nothing.

property pose

Pose of object in world frame. Expressed as list 7f position + quaternion.

[x, y, z, qx, qy, qz, w]

property position

Get position of object in world frame.

Returns numpy array

reset()

Reset object to last placed pose.

set_angular_velocity(des_angular_vel)

Set linear velocity of object. Breaks physics

Parameters

des_angular_vel (list 3f) – Desired angular velocity as wx, wy, wz

set_linear_velocity(des_linear_vel)

Set linear velocity of object. Breaks physics

set_orientation(des_ori)

Set position of object in world frame.

Parameters

des_ori (list) – 4f orientation in world coordinates as quaternion.

Returns

None

Note: does not check for collisions

set_pose(des_pose)

Set pose of object in world frame.

Parameters

pose (list 7f) – [x,y,z,qx,qy,qz,w] pose in world coordinates

Returns

None

Note: does not check for collisions

set_position(des_position)

Set position of object in world frame.

Parameters

des_position (list 3f) – xyz position in world coordinates

Returns

None

Note: does not check for collisions