ROS机器人学习--ros_control

本文最后更新于:2022年5月29日 上午

ros_control是什么?

KX1ojJ.md.png

  • ROS为开发者提供的机器人控制中间件;
  • 包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等等;
  • 可以帮助机器人应用功能包快速落地,提高开发效率。

ros_control的总体框架

通过这样一种模块化的形式,将硬件和软件非常好的分隔开来,通过一些常用的接口来完成控制的实现。

KX1bH1.png

针对上层应用跟底层机器人之间,提供中间的一个接口部分。应对不同类型的控制器(底盘、机械臂等),它提供了许多类型的控制器插件。

这些控制器插件都是不直接接触硬件的,而是通过一个硬件抽象层来完成具体操作,所有硬件都是直接通过硬件抽象层来完成硬件交互的。硬件抽象层负责机器人硬件资源的管理,包括处理很多硬件之间的冲突,同时它需要将上层的controler发布的数据跟硬件做一些数据上的一个控制的交互。

这样做的好处就是将控制和硬件逻辑区别开来,让我们的控制逻辑不依赖于某一种硬件,而是可以通用于多种硬件之间,硬件抽象层来完成所有跟硬件上的资源上的一些管理工作。

ros_control的数据流图

KXa8c6.png

  1. 控制器管理器(Controller Manager)

    提供一种通用的接口来管理不同的控制器。

  2. 控制器(Controller)

    读取硬件状态,发布控制命令,完成每个joint的控制。

  3. 硬件资源(Hardware Rescource)

    为上下两层提供硬件资源的接口。

  4. 机器人硬件抽象(RobotHW)

    硬件抽象层和硬件直接打交道,通过write和read方法来完成硬件的操作。

  5. 真实机器人(Real Robot)

    执行接受到的命令。

更多参考:

  1. 古月居的ROS探索总结(三十一)——ros_control

  2. Ros wiki ros_control


ROS机器人学习--ros_control
https://kevinloongc.github.io/posts/57691.html
作者
Kevin Loongc
发布于
2019年4月27日
许可协议