diff --git a/examples/random_pose_visualizer.py b/examples/random_pose_visualizer.py
index 535e47b3a..8eda6458a 100644
--- a/examples/random_pose_visualizer.py
+++ b/examples/random_pose_visualizer.py
@@ -41,9 +41,9 @@
parser.add_argument(
"--robot",
type=str,
- choices=["g1", "rigv1", "smpl"],
+ choices=["g1", "rigv1", "smpl", "kangaroo"],
default="g1",
- help="Robot to load (g1, rigv1, or smpl)",
+ help="Robot to load (g1, rigv1, smpl, or kangaroo)",
)
parser.add_argument("--num_envs", type=int, default=1, help="Number of environments")
parser.add_argument("--headless", action="store_true", help="Run in headless mode")
@@ -95,6 +95,16 @@ class RobotSpec:
"right_ankle_roll_link",
],
),
+ "kangaroo": RobotSpec(
+ viz_bodies=[
+ "base_link",
+ "pelvis_2_link",
+ "leg_left_knee_link",
+ "leg_right_knee_link",
+ "leg_left_5_link",
+ "leg_right_5_link",
+ ],
+ ),
"rigv1": RobotSpec(
viz_bodies=["Hips", "Spine2", "LeftLeg", "RightLeg", "LeftFoot", "RightFoot"],
),
@@ -202,10 +212,10 @@ def _gen_random_pose(self):
print("Generating new random pose")
- dof_limits_lower = self.robot_config.kinematic_info.dof_limits_lower.to(
+ dof_limits_lower = self.robot_cfg.kinematic_info.dof_limits_lower.to(
self.device
)
- dof_limits_upper = self.robot_config.kinematic_info.dof_limits_upper.to(
+ dof_limits_upper = self.robot_cfg.kinematic_info.dof_limits_upper.to(
self.device
)
print("dof_limits_lower=", dof_limits_lower)
diff --git a/protomotions/data/assets/mesh/KANGAROO/arm/arm1_link.STL b/protomotions/data/assets/mesh/KANGAROO/arm/arm1_link.STL
new file mode 100644
index 000000000..27bf3decb
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/arm/arm1_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/arm/arm2_link.STL b/protomotions/data/assets/mesh/KANGAROO/arm/arm2_link.STL
new file mode 100644
index 000000000..ac70f2178
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/arm/arm2_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/arm/arm3_link.STL b/protomotions/data/assets/mesh/KANGAROO/arm/arm3_link.STL
new file mode 100644
index 000000000..c83d656a4
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/arm/arm3_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/arm/arm_base_link.STL b/protomotions/data/assets/mesh/KANGAROO/arm/arm_base_link.STL
new file mode 100644
index 000000000..ce7e76db7
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/arm/arm_base_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/arm/fake_forearm_left_link.STL b/protomotions/data/assets/mesh/KANGAROO/arm/fake_forearm_left_link.STL
new file mode 100644
index 000000000..6b82e77aa
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/arm/fake_forearm_left_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/arm/fake_forearm_right_link.STL b/protomotions/data/assets/mesh/KANGAROO/arm/fake_forearm_right_link.STL
new file mode 100644
index 000000000..fde76c41c
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/arm/fake_forearm_right_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/base/base_link_with_pelvis.STL b/protomotions/data/assets/mesh/KANGAROO/base/base_link_with_pelvis.STL
new file mode 100644
index 000000000..589455151
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/base/base_link_with_pelvis.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/base/handle.STL b/protomotions/data/assets/mesh/KANGAROO/base/handle.STL
new file mode 100644
index 000000000..fee2fad46
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/base/handle.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_femur_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_femur_link.STL
new file mode 100644
index 000000000..195b2458b
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_femur_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_1_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_1_link.STL
new file mode 100644
index 000000000..75c6090d5
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_1_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_2_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_2_link.STL
new file mode 100644
index 000000000..833fd9184
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_2_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_3_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_3_link.STL
new file mode 100644
index 000000000..b6c12c77d
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_3_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_5_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_5_link.STL
new file mode 100644
index 000000000..52694e4db
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_5_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_6_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_6_link.STL
new file mode 100644
index 000000000..f7e82bc5d
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_6_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_7_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_7_link.STL
new file mode 100644
index 000000000..28e44a2c8
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_left_7_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_1_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_1_link.STL
new file mode 100644
index 000000000..9baf8a8dd
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_1_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_2_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_2_link.STL
new file mode 100644
index 000000000..31c6535b1
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_2_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_3_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_3_link.STL
new file mode 100644
index 000000000..126db41b5
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_3_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_6_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_6_link.STL
new file mode 100644
index 000000000..f7e82bc5d
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_6_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_7_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_7_link.STL
new file mode 100644
index 000000000..28e44a2c8
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_right_7_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/leg/leg_tibia_link.STL b/protomotions/data/assets/mesh/KANGAROO/leg/leg_tibia_link.STL
new file mode 100644
index 000000000..190aeca89
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/leg/leg_tibia_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_1_link.STL b/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_1_link.STL
new file mode 100644
index 000000000..62e3cc1c3
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_1_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_2_link.STL b/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_2_link.STL
new file mode 100644
index 000000000..849790174
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_2_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_base_link.STL b/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_base_link.STL
new file mode 100644
index 000000000..107b22652
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/pelvis/pelvis_base_link.STL differ
diff --git a/protomotions/data/assets/mesh/KANGAROO/torso/torso_link.STL b/protomotions/data/assets/mesh/KANGAROO/torso/torso_link.STL
new file mode 100644
index 000000000..a67ef5aab
Binary files /dev/null and b/protomotions/data/assets/mesh/KANGAROO/torso/torso_link.STL differ
diff --git a/protomotions/data/assets/mjcf/kangaroo.xml b/protomotions/data/assets/mjcf/kangaroo.xml
new file mode 100644
index 000000000..fb4aae633
--- /dev/null
+++ b/protomotions/data/assets/mjcf/kangaroo.xml
@@ -0,0 +1,298 @@
+