撰写控制器配置文件
1. 准备
若希望使用TeleXperience的通用控制器,控制机器人的关节空间运动,则需要撰写控制器配置文件。
以OpenLoong为例:
首先在OpenLoong路径下找到vr_configs.yml,将其中的wo_controller设置为fasle。
继续在OpenLoong路径下,创建controller_v2.yml文件作为控制器配置文件。
2. 撰写配置文件
控制器配置文件主要包括三部分:
- ros节点设置,对应
control_ros,用来设置ros节点通信频率rate以及通信话题名称joint_target,joint_cmd,joint_state,ee_target,ee_state,sol_q。 - 模型参数设置,对应
model,用来设置urdf的加载路径urdf,选择可活动关节free_joints,基坐标系对应link名称base_name,跟踪目标对应link名称ee_name。 - 控制器参数设置,对应
controller,用来设置采样时间dt,跟踪目标各自由度误差优化权重ee_weight,各关节角度误差优化权重j_weight,跟踪目标比例控制增益x_p_gain,各关节比例控制增益j_p_gain,关节速度限制q_dot_limit,跟踪目标工作空间限制x_limit和跟踪目标速度限制x_dot_limit。
controller_v2.yml示例如下:
control_ros:
rate: 100
joint_target: "/io_teleop/target_joint_from_mocap"
joint_cmd: "/io_teleop/joint_cmd"
joint_state: "/io_teleop/joint_states"
ee_target: "/io_teleop/target_ee_poses"
ee_state: "/io_teleop/state_ee_poses"
sol_q: "/io_teleop/sol_q"
model:
urdf: azureloong_description/urdf/AzureLoong_sr.urdf
free_joints: [
"J_arm_l_01",
"J_arm_l_02",
"J_arm_l_03",
"J_arm_l_04",
"J_arm_l_05",
"J_arm_l_06",
"J_arm_l_07",
"J_arm_r_01",
"J_arm_r_02",
"J_arm_r_03",
"J_arm_r_04",
"J_arm_r_05",
"J_arm_r_06",
"J_arm_r_07",
]
base_name: ["base_link", "base_link"]
ee_name: ["Link_arm_r_07", "Link_arm_l_07"]
controller:
dt: 0.01
ee_weight: [[5, 5, 5, 1, 1, 1], [5, 5, 5, 1, 1, 1]]
j_weight: [0, 0.1, 0, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0]
x_p_gain: [10, 10, 10, 100, 100, 100]
j_p_gain: [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
q_dot_limit: [180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180]
x_limit: []
x_dot_limit: [[0.2, 0.2, 0.2, 90, 90, 90],[0.2, 0.2, 0.2, 90, 90, 90]]