第七章建模与仿真分为上、中、下三节。
一、ROS_Control
针对不同机器人,ros_control提供多种类型控制器。控制器接口不相同,所以ros_control提供一个硬件抽象层,专门管理机器人硬件资源。control从抽象层请求资源,并不直接与硬件打交道。
1. 概念
Controller Manager
提供通用接口来管理不同的控制器。
Controller
使用控制器(比如PID)完成对每个关节的控制。他读取硬件资源接口中的真实状态,再发布控制命令。形成闭环控制。
RobotHW
机器人硬件抽象,通过读写方法直接与机器人硬件打交道。
Real robot
真实机器人上的嵌入式控制器,将接受到的命令传递到执行器。同时机器人身体上的传感器(编码器)将机器人当前状态传递回RobotHW
2. 控制器
目前功能包提供的控制器包括:
-
effort_controllers: 控制关节的力或者力矩
- joint_effort_controller:输入为力,输出为力
- joint_position_controller:输入为位置,输出为力(PID)
- joint_velocity_controller:输入为速度,输出为力(PID)
-
joint_state_controller: 发布所有注册在RobotHW上的硬件关节状态. 数据格式如下图
-
position_controllers: 一次性设置一到多个关节位置
- joint_position_controller
- joint_group_position_controller
-
velocity_controllers: 一次性设置一到多个关节的速度
- joint_velocity_controller
- joint_group_velocity_controller
-
joint_trajectory_controllers:控制整条轨迹
- position_controller
- velocity_controller
- effort_controller
- position_velocity_controller
- position_velocity_acceleration_controller
上述官方提供的控制器不合你意的话,可以自己通过Control manager实现自己的控制器。
3. 硬件接口
以上说的控制器,在收发命令的时候,需要用到与之对应的硬件接口。通过硬件接口来与RobotHW打交道。官方提供的接口有如下几种,具体就不再细说,
评论(0)
您还未登录,请登录后发表或查看评论