Implement dual-arm teleoperation with RM75 QP controller and MuJoCo backend
This commit is contained in:
85
xr_rm_bringup/launch/dual_arm_qp_sim.launch.py
Normal file
85
xr_rm_bringup/launch/dual_arm_qp_sim.launch.py
Normal file
@ -0,0 +1,85 @@
|
||||
"""PICO/XR to dual-arm QP IK with a shared MuJoCo backend."""
|
||||
|
||||
from launch import LaunchDescription
|
||||
from launch.actions import DeclareLaunchArgument, SetEnvironmentVariable
|
||||
from launch.substitutions import (
|
||||
EnvironmentVariable,
|
||||
LaunchConfiguration,
|
||||
PathJoinSubstitution,
|
||||
)
|
||||
from launch_ros.actions import Node
|
||||
from launch_ros.substitutions import FindPackageShare
|
||||
|
||||
|
||||
def generate_launch_description() -> LaunchDescription:
|
||||
config_dir = PathJoinSubstitution(
|
||||
[FindPackageShare("xr_rm_bringup"), "config"]
|
||||
)
|
||||
return LaunchDescription(
|
||||
[
|
||||
DeclareLaunchArgument("mujoco_gl", default_value="glfw"),
|
||||
SetEnvironmentVariable(
|
||||
"MUJOCO_GL",
|
||||
LaunchConfiguration("mujoco_gl"),
|
||||
),
|
||||
SetEnvironmentVariable(
|
||||
"PYTHONPATH",
|
||||
[
|
||||
PathJoinSubstitution(
|
||||
[
|
||||
EnvironmentVariable("CONDA_PREFIX"),
|
||||
"lib/python3.10/site-packages",
|
||||
]
|
||||
),
|
||||
":",
|
||||
PathJoinSubstitution(
|
||||
[
|
||||
EnvironmentVariable("CONDA_PREFIX"),
|
||||
"lib/python3.10/site-packages/cmeel.prefix/lib/python3.10/site-packages",
|
||||
]
|
||||
),
|
||||
":",
|
||||
EnvironmentVariable("PYTHONPATH", default_value=""),
|
||||
],
|
||||
),
|
||||
DeclareLaunchArgument("udp_host", default_value="0.0.0.0"),
|
||||
DeclareLaunchArgument("udp_port", default_value="15000"),
|
||||
DeclareLaunchArgument("udp_timer_hz", default_value="200.0"),
|
||||
DeclareLaunchArgument("control_rate_hz", default_value="90.0"),
|
||||
DeclareLaunchArgument("show_viewer", default_value="true"),
|
||||
Node(
|
||||
package="xr_rm_input",
|
||||
executable="udp_controller_receiver",
|
||||
name="udp_controller_receiver",
|
||||
output="screen",
|
||||
parameters=[
|
||||
{
|
||||
"udp_host": LaunchConfiguration("udp_host"),
|
||||
"udp_port": LaunchConfiguration("udp_port"),
|
||||
"timer_hz": LaunchConfiguration("udp_timer_hz"),
|
||||
"left_topic": "/xr/left_controller",
|
||||
"right_topic": "/xr/right_controller",
|
||||
}
|
||||
],
|
||||
),
|
||||
Node(
|
||||
package="xr_rm_teleop",
|
||||
executable="dual_arm_qp_teleop",
|
||||
name="dual_arm_qp_teleop",
|
||||
output="screen",
|
||||
parameters=[
|
||||
{
|
||||
"robot_backend": "mujoco",
|
||||
"control_rate_hz": LaunchConfiguration("control_rate_hz"),
|
||||
"show_viewer": LaunchConfiguration("show_viewer"),
|
||||
"teleop_config_file": PathJoinSubstitution(
|
||||
[config_dir, "dual_arm_rm75.yaml"]
|
||||
),
|
||||
"peripheral_config_file": PathJoinSubstitution(
|
||||
[config_dir, "peripherals_rm75.yaml"]
|
||||
),
|
||||
}
|
||||
],
|
||||
),
|
||||
]
|
||||
)
|
||||
Reference in New Issue
Block a user