怎么给Joint_state_controller 和 Joint_trajectory_controller 控制器编写相关配置文件
时间: 2024-05-06 17:17:31 浏览: 9
Joint_state_controller 和 Joint_trajectory_controller 是ROS中的控制器,需要在ROS的控制器配置文件中进行配置。
下面以Joint_trajectory_controller为例,介绍如何编写配置文件。
1. 创建控制器配置文件
在ROS工作空间中的src目录下创建一个新包,并在该包中创建一个名为“config”的文件夹。在config文件夹下创建一个名为“joint_trajectory_controller.yaml”的文件,该文件用来存储Joint_trajectory_controller的配置信息。
2. 配置文件内容
Joint_trajectory_controller配置文件中包含了若干个参数,可以根据具体需求进行配置。下面是一个典型的Joint_trajectory_controller配置文件:
```
joint_trajectory_controller:
type: "joint_trajectory_controller/JointTrajectoryController"
publish_state_rate: 50
joints:
- joint_1
- joint_2
- joint_3
- joint_4
- joint_5
- joint_6
constraints:
goal_time: 0.6
stopped_velocity_tolerance: 0.01
trajectory:
type: "joint_trajectory_controller/JointTrajectoryController"
state_publish_rate: 100
action_monitor_rate: 20
allow_partial_joints_goal: true
constraints:
goal_time: 0.6
stopped_velocity_tolerance: 0.01
```
3. 配置文件参数说明
- type: 控制器类型,这里使用的是JointTrajectoryController。
- publish_state_rate: 发布状态的频率。
- joints: 控制器控制的关节列表。
- constraints: 控制器的约束参数。
- goal_time: 控制器控制的关节到达目标位置所需的时间。
- stopped_velocity_tolerance: 控制器控制的关节停止时允许的最大速度。
- trajectory: 控制器的轨迹参数。
- state_publish_rate: 发布状态的频率。
- action_monitor_rate: 监控动作的频率。
- allow_partial_joints_goal: 是否允许控制其中一些关节。
4. 配置文件的使用
在launch文件或者控制器配置文件中,使用Joint_trajectory_controller的名称来调用该控制器。例如:
```
controller_manager:
# ...
controller_list:
- name: my_trajectory_controller
type: joint_trajectory_controller/JointTrajectoryController
joints:
- joint_1
- joint_2
- joint_3
- joint_4
- joint_5
- joint_6
action_ns: joint_trajectory_action
state_publish_rate: 100
action_monitor_rate: 20
allow_partial_joints_goal: true
constraints:
goal_time: 0.6
stopped_velocity_tolerance: 0.01
```
以上就是Joint_trajectory_controller配置文件的编写方式。对于Joint_state_controller的配置文件也类似,只需要根据具体需求进行配置即可。