feat: 接入双 RM75 逆解模型

This commit is contained in:
2026-08-03 16:33:57 +08:00
parent 451de103b8
commit 56baabae7a
3 changed files with 16 additions and 7 deletions
+6 -7
View File
@@ -31,13 +31,12 @@ def _config_file(name: str) -> PathJoinSubstitution:
]) ])
def _rm75_urdf() -> PathJoinSubstitution: def _dual_rm75_urdf() -> PathJoinSubstitution:
return PathJoinSubstitution([ return PathJoinSubstitution([
FindPackageShare("xr_rm_teleop"), FindPackageShare("xr_rm_teleop"),
"models", "models",
"rm75_omnipicker", "dual_rm75",
"urdf", "Dual_arm.urdf",
"RM75-B_OmniPicker_fixed.urdf",
]) ])
@@ -75,7 +74,7 @@ def _single_arm_node(
_config_file(config_name), _config_file(config_name),
{ {
"use_mock": use_mock, "use_mock": use_mock,
"robot_urdf_path": _rm75_urdf(), "robot_urdf_path": _dual_rm75_urdf(),
"peripheral_config_file": _config_file("peripherals_rm75.yaml"), "peripheral_config_file": _config_file("peripherals_rm75.yaml"),
"peripheral_arm": arm, "peripheral_arm": arm,
"tool_command_topic": f"/xr_rm/{arm_name}/tool_enable", "tool_command_topic": f"/xr_rm/{arm_name}/tool_enable",
@@ -102,7 +101,7 @@ def _dual_arm_nodes(use_mock: bool) -> list[Node]:
config_file, config_file,
{ {
"use_mock": use_mock, "use_mock": use_mock,
"robot_urdf_path": _rm75_urdf(), "robot_urdf_path": _dual_rm75_urdf(),
"peripheral_config_file": _config_file("peripherals_rm75.yaml"), "peripheral_config_file": _config_file("peripherals_rm75.yaml"),
"peripheral_arm": "left", "peripheral_arm": "left",
"tool_command_topic": "/xr_rm/left_rm75/tool_enable", "tool_command_topic": "/xr_rm/left_rm75/tool_enable",
@@ -119,7 +118,7 @@ def _dual_arm_nodes(use_mock: bool) -> list[Node]:
config_file, config_file,
{ {
"use_mock": use_mock, "use_mock": use_mock,
"robot_urdf_path": _rm75_urdf(), "robot_urdf_path": _dual_rm75_urdf(),
"peripheral_config_file": _config_file("peripherals_rm75.yaml"), "peripheral_config_file": _config_file("peripherals_rm75.yaml"),
"peripheral_arm": "right", "peripheral_arm": "right",
"tool_command_topic": "/xr_rm/right_rm75/tool_enable", "tool_command_topic": "/xr_rm/right_rm75/tool_enable",
+9
View File
@@ -24,6 +24,15 @@ setup(
f"share/{package_name}/models/rm75/meshes", f"share/{package_name}/models/rm75/meshes",
glob("models/rm75/meshes/*.STL"), glob("models/rm75/meshes/*.STL"),
), ),
(
f"share/{package_name}/models/dual_rm75",
["models/dual_rm75/Dual_arm.urdf"],
),
(
f"share/{package_name}/models/dual_rm75/meshes",
glob("models/dual_rm75/meshes/*.STL")
+ glob("models/dual_rm75/meshes/*.stl"),
),
( (
f"share/{package_name}/models/rm75_omnipicker/urdf", f"share/{package_name}/models/rm75_omnipicker/urdf",
glob("models/rm75_omnipicker/urdf/*.urdf"), glob("models/rm75_omnipicker/urdf/*.urdf"),
@@ -325,6 +325,7 @@ class SingleArmVelocityTeleop(Node):
self._ik_solver = PlacoIkSolver( self._ik_solver = PlacoIkSolver(
str(self.get_parameter("robot_urdf_path").value), str(self.get_parameter("robot_urdf_path").value),
self._dt, self._dt,
peripheral_arm,
) )
self._adapter = self._make_adapter() self._adapter = self._make_adapter()
self._adapter.connect() self._adapter.connect()