Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions data/.lfs/yam_description.tar.gz
Git LFS file not shown
4 changes: 2 additions & 2 deletions dimos/robot/manipulators/openyam/blueprints/teleop.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def _eef_twist_task(*, priority: int = 10) -> TaskConfig:
type="eef_twist",
joint_names=list(OPENYAM_ARM_JOINTS),
priority=priority,
params={"robot_model": _openyam_model, "target_frame": "yam_hand_tcp"},
params={"robot_model": _openyam_model, "target_frame": "gripper_tip"},
)


Expand Down Expand Up @@ -107,7 +107,7 @@ def _gripper_task() -> TaskConfig:
bindings=[
{
"hand": "right",
"target_frame": "yam_hand_tcp",
"target_frame": "gripper_tip",
}
],
params={
Expand Down
16 changes: 10 additions & 6 deletions dimos/robot/manipulators/openyam/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
OPENYAM_GRIPPER_JOINT = "arm/gripper"
OPENYAM_JOINTS = [*OPENYAM_ARM_JOINTS, OPENYAM_GRIPPER_JOINT]
OPENYAM_PACKAGE = LfsPath("yam_description")
OPENYAM_MODEL_PATH = OPENYAM_PACKAGE / "urdf/yam_gripper.urdf.xacro"
OPENYAM_MODEL_PATH = OPENYAM_PACKAGE / "i2rt/yam.urdf"
OPENYAM_PACKAGE_PATHS: dict[str, Path] = {"yam_description": OPENYAM_PACKAGE}


Expand Down Expand Up @@ -79,18 +79,22 @@ def make_openyam_model_config(
*,
home_joints: list[float] | None = None,
) -> RobotModelConfig:
"""Build a planning config for the gripper-equipped OpenYAM."""
"""Build the canonical visualization and planning config for OpenYAM."""
model_joint_names = joint_names(OPENYAM_DOF, prefix="yam_joint")
model = RobotModel.from_file(
OPENYAM_MODEL_PATH,
package_paths=OPENYAM_PACKAGE_PATHS,
).with_renamed_joints(dict(zip(joint_names(OPENYAM_DOF), model_joint_names, strict=True)))
return RobotModelConfig(
model=RobotModel.from_file(OPENYAM_MODEL_PATH, package_paths=OPENYAM_PACKAGE_PATHS),
model=model,
joint_names=model_joint_names,
base_link="yam_base_link",
base_link="base",
planning_groups=[
PlanningGroupDefinition(
name="manipulator",
joint_names=tuple(model_joint_names),
base_link="yam_base_link",
tip_link="yam_hand_tcp",
base_link="base",
tip_link="gripper_tip",
)
],
auto_convert_meshes=True,
Expand Down
9 changes: 6 additions & 3 deletions dimos/robot/manipulators/openyam/test_openyam.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
OPENYAM_GRIPPER_JOINT,
OPENYAM_HARDWARE_ID,
OPENYAM_JOINTS,
OPENYAM_MODEL_PATH,
make_openyam_model_config,
openyam_hardware,
)
Expand All @@ -56,9 +57,11 @@ def _coordinator_kwargs(blueprint: Blueprint) -> dict[str, Any]:
def test_make_openyam_model_config_uses_canonical_arm_joints() -> None:
config = make_openyam_model_config()

assert OPENYAM_MODEL_PATH.parts[-2:] == ("i2rt", "yam.urdf")
assert config.model.source_path == OPENYAM_MODEL_PATH
assert config.joint_names == OPENYAM_ARM_JOINTS
assert config.base_link == "yam_base_link"
assert config.planning_groups[0].tip_link == "yam_hand_tcp"
assert config.base_link == "base"
assert config.planning_groups[0].tip_link == "gripper_tip"
assert config.gripper_hardware_id == "arm"


Expand Down Expand Up @@ -186,6 +189,6 @@ def test_quest_teleop_routes_pose_and_gripper_to_separate_tasks() -> None:
teleop = next(task for task in tasks if task.type == "teleop_ik")
gripper = next(task for task in tasks if task.type == "gripper")

assert teleop.params["bindings"] == [{"hand": "right", "target_frame": "yam_hand_tcp"}]
assert teleop.params["bindings"] == [{"hand": "right", "target_frame": "gripper_tip"}]
assert gripper.joint_names == [OPENYAM_GRIPPER_JOINT]
assert gripper.stream_bind == {"gripper_command": "right_gripper_command"}
Loading