|
7 | 7 | from .util import Util
|
8 | 8 | from .bodies.body import Body
|
9 | 9 | from .bodies.panda import Panda
|
| 10 | +from .bodies.jaco import Jaco |
| 11 | +from .bodies.baxter import Baxter |
| 12 | +from .bodies.pr2 import PR2 |
| 13 | +from .bodies.stretch import Stretch |
| 14 | +from .bodies.kinova_gen3 import KinovaGen3 |
10 | 15 |
|
11 | 16 | envir = None
|
12 | 17 | directory = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'assets')
|
@@ -100,6 +105,31 @@ def __init__(self, position=[0, 0, 0], orientation=[0, 0, 0, 1], controllable_jo
|
100 | 105 | env = env if env is not None else envir
|
101 | 106 | super().__init__(env, position, get_quaternion(orientation), controllable_joints, fixed_base)
|
102 | 107 |
|
| 108 | + class Jaco(Jaco): |
| 109 | + def __init__(self, position=[0, 0, 0], orientation=[0, 0, 0, 1], controllable_joints=None, fixed_base=True, env=None): |
| 110 | + env = env if env is not None else envir |
| 111 | + super().__init__(env, position, get_quaternion(orientation), controllable_joints, fixed_base) |
| 112 | + |
| 113 | + class Baxter(Baxter): |
| 114 | + def __init__(self, position=[0, 0, 0], orientation=[0, 0, 0, 1], controllable_joints=None, fixed_base=True, env=None): |
| 115 | + env = env if env is not None else envir |
| 116 | + super().__init__(env, position, get_quaternion(orientation), controllable_joints, fixed_base) |
| 117 | + |
| 118 | + class PR2(PR2): |
| 119 | + def __init__(self, position=[0, 0, 0], orientation=[0, 0, 0, 1], controllable_joints=None, fixed_base=True, env=None): |
| 120 | + env = env if env is not None else envir |
| 121 | + super().__init__(env, position, get_quaternion(orientation), controllable_joints, fixed_base) |
| 122 | + |
| 123 | + class Stretch(Stretch): |
| 124 | + def __init__(self, position=[0, 0, 0], orientation=[0, 0, 0, 1], controllable_joints=None, fixed_base=True, env=None): |
| 125 | + env = env if env is not None else envir |
| 126 | + super().__init__(env, position, get_quaternion(orientation), controllable_joints, fixed_base) |
| 127 | + |
| 128 | + class KinovaGen3(KinovaGen3): |
| 129 | + def __init__(self, position=[0, 0, 0], orientation=[0, 0, 0, 1], controllable_joints=None, fixed_base=True, env=None): |
| 130 | + env = env if env is not None else envir |
| 131 | + super().__init__(env, position, get_quaternion(orientation), controllable_joints, fixed_base) |
| 132 | + |
103 | 133 | class Camera:
|
104 | 134 | def __init__(self, camera_pos=[0.5, -0.5, 1.5], look_at_pos=[0, 0, 0.75], fov=60, camera_width=1920//4, camera_height=1080//4, env=None):
|
105 | 135 | self.env = env if env is not None else envir
|
@@ -141,13 +171,14 @@ def get_point_cloud(self, body=None):
|
141 | 171 | pixels = np.stack([x, y, z, h], axis=1)
|
142 | 172 |
|
143 | 173 | # Filter point cloud to only include points on the target body
|
144 |
| - pixels = pixels[segmentation_mask == body.body] |
145 |
| - z = z[segmentation_mask == body.body] |
146 |
| - rgba = rgba[segmentation_mask == body.body] |
| 174 | + if body is not None: |
| 175 | + pixels = pixels[segmentation_mask == body.body] |
| 176 | + z = z[segmentation_mask == body.body] |
| 177 | + rgba = rgba[segmentation_mask == body.body] |
147 | 178 |
|
148 | 179 | # filter out "infinite" depths
|
149 |
| - pixels = pixels[z < 0.99] |
150 |
| - rgba = rgba[z < 0.99] |
| 180 | + pixels = pixels[z < 20] |
| 181 | + rgba = rgba[z < 20] |
151 | 182 | pixels[:, 2] = 2 * pixels[:, 2] - 1
|
152 | 183 |
|
153 | 184 | # turn pixels to world coordinates
|
@@ -182,7 +213,7 @@ def get_difference_quaternion(q1, q2, env=None):
|
182 | 213 | def quaternion_product(q1, q2, env=None):
|
183 | 214 | env = env if env is not None else envir
|
184 | 215 | # Return Hamilton product of 2 quaternions
|
185 |
| - return p.multiplyTransforms([0, 0, 0], get_quaternion(q1), [0, 0, 0], q2, physicsClientId=env.id)[1] |
| 216 | + return p.multiplyTransforms([0, 0, 0], get_quaternion(q1), [0, 0, 0], get_quaternion(q2), physicsClientId=env.id)[1] |
186 | 217 |
|
187 | 218 | def multiply_transforms(p1, q1, p2, q2, env=None):
|
188 | 219 | env = env if env is not None else envir
|
|
0 commit comments