Skip to content

Commit a853b2a

Browse files
committed
feat(install): copy scene files into install folder
1 parent 88c60ab commit a853b2a

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

cmake/compile_scenes.cmake

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ foreach(scene_dir ${scene_dirs})
2929

3030
# Install scene files
3131
install(FILES ${scene_mjb} DESTINATION rcs/scenes/${scene_name} COMPONENT python_package)
32+
# Always copy robot.xml to build dir, dereferencing symlinks
33+
if(EXISTS ${scene_dir}/robot.xml)
34+
configure_file(${scene_dir}/robot.xml ${CMAKE_BINARY_DIR}/assets/scenes/${scene_name}/robot.xml COPYONLY)
35+
install(FILES ${CMAKE_BINARY_DIR}/assets/scenes/${scene_name}/robot.xml DESTINATION rcs/scenes/${scene_name} COMPONENT python_package)
36+
endif()
37+
if(EXISTS ${scene_dir}/robot.urdf)
38+
install(FILES ${scene_dir}/robot.urdf DESTINATION rcs/scenes/${scene_name} COMPONENT python_package)
39+
endif()
40+
if(EXISTS ${scene_dir}/scene.xml)
41+
install(FILES ${scene_dir}/scene.xml DESTINATION rcs/scenes/${scene_name} COMPONENT python_package)
42+
endif()
3243

3344
endforeach()
3445

python/rcs/__init__.py

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,41 +30,32 @@ class Scene:
3030
"""Type of the robot in the scene."""
3131

3232

33+
def get_scene_urdf(scene_name: str) -> str | None:
34+
urdf_path = os.path.join(site.getsitepackages()[0], "rcs", "scenes", scene_name, "robot.urdf")
35+
return urdf_path if os.path.exists(urdf_path) else None
36+
37+
3338
# available mujoco scenes
3439
scenes: dict[str, Scene] = {
3540
"fr3_empty_world": Scene(
3641
mjb=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "fr3_empty_world", "scene.mjb"),
37-
mjcf_scene=os.path.join(
38-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "fr3_empty_world", "scene.xml"
39-
),
40-
mjcf_robot=os.path.join(
41-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "fr3_empty_world", "robot.xml"
42-
),
43-
urdf=os.path.join(os.path.dirname(__file__), "..", "..", "assets", "scenes", "fr3_empty_world", "robot.urdf"),
42+
mjcf_scene=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "fr3_empty_world", "scene.xml"),
43+
mjcf_robot=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "fr3_empty_world", "robot.xml"),
44+
urdf=get_scene_urdf("fr3_empty_world"),
4445
robot_type=common.RobotType.FR3,
4546
),
4647
"fr3_simple_pick_up": Scene(
4748
mjb=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "fr3_simple_pick_up", "scene.mjb"),
48-
mjcf_scene=os.path.join(
49-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "fr3_simple_pick_up", "scene.xml"
50-
),
51-
mjcf_robot=os.path.join(
52-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "fr3_simple_pick_up", "robot.xml"
53-
),
54-
urdf=os.path.join(
55-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "fr3_simple_pick_up", "robot.urdf"
56-
),
49+
mjcf_scene=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "fr3_simple_pick_up", "scene.xml"),
50+
mjcf_robot=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "fr3_simple_pick_up", "robot.xml"),
51+
urdf=get_scene_urdf("fr3_simple_pick_up"),
5752
robot_type=common.RobotType.FR3,
5853
),
5954
"xarm7_empty_world": Scene(
6055
mjb=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "xarm7_empty_world", "scene.mjb"),
61-
mjcf_scene=os.path.join(
62-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "xarm7_empty_world", "scene.xml"
63-
),
64-
mjcf_robot=os.path.join(
65-
os.path.dirname(__file__), "..", "..", "assets", "scenes", "xarm7_empty_world", "robot.xml"
66-
),
67-
urdf=os.path.join(os.path.dirname(__file__), "..", "..", "assets", "scenes", "xarm7_empty_world", "robot.urdf"),
56+
mjcf_scene=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "xarm7_empty_world", "scene.xml"),
57+
mjcf_robot=os.path.join(site.getsitepackages()[0], "rcs", "scenes", "xarm7_empty_world", "robot.xml"),
58+
urdf=get_scene_urdf("xarm7_empty_world"),
6859
robot_type=common.RobotType.FR3,
6960
),
7061
}

0 commit comments

Comments
 (0)