ROS机器人学习--ros_control
本文最后更新于:2022年5月29日 上午
ros_control是什么?
- ROS为开发者提供的机器人控制中间件;
- 包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等等;
- 可以帮助机器人应用功能包快速落地,提高开发效率。
ros_control的总体框架
通过这样一种模块化的形式,将硬件和软件非常好的分隔开来,通过一些常用的接口来完成控制的实现。
针对上层应用跟底层机器人之间,提供中间的一个接口部分。应对不同类型的控制器(底盘、机械臂等),它提供了许多类型的控制器插件。
这些控制器插件都是不直接接触硬件的,而是通过一个硬件抽象层来完成具体操作,所有硬件都是直接通过硬件抽象层来完成硬件交互的。硬件抽象层负责机器人硬件资源的管理,包括处理很多硬件之间的冲突,同时它需要将上层的controler发布的数据跟硬件做一些数据上的一个控制的交互。
这样做的好处就是将控制和硬件逻辑区别开来,让我们的控制逻辑不依赖于某一种硬件,而是可以通用于多种硬件之间,硬件抽象层来完成所有跟硬件上的资源上的一些管理工作。
ros_control的数据流图
控制器管理器(Controller Manager)
提供一种通用的接口来管理不同的控制器。
控制器(Controller)
读取硬件状态,发布控制命令,完成每个joint的控制。
硬件资源(Hardware Rescource)
为上下两层提供硬件资源的接口。
机器人硬件抽象(RobotHW)
硬件抽象层和硬件直接打交道,通过write和read方法来完成硬件的操作。
真实机器人(Real Robot)
执行接受到的命令。
更多参考:
Ros wiki ros_control
ROS机器人学习--ros_control
https://kevinloongc.github.io/posts/57691.html