![d494f8d93a0cc6cfbc0485651543affa.png](https://i-blog.csdnimg.cn/blog_migrate/482bb9417288bfc07a893064bcaeea35.jpeg)
0. 前言
我们要用 ROS 功能包来控制真实的机器人或者仿真机器人,需要中间的控制环节,比如控制器接口、传动装置接口、硬件接口等,而 ros-control 就是 ROS 为开发者提供的机器人控制中间件。
![c7002462f56fd8a0f870352d30f9b201.png](https://i-blog.csdnimg.cn/blog_migrate/9b3258dde91ebc3bf52a41244e29e46f.png)
1. ros_control 架构
- Controller Manager 控制器管理器:管理不同控制器的通用接口
- Controller 控制器:读取硬件资源接口中的状态,发布控制指令。不直接接触硬件,从硬件抽象层请求资源
- RobotHW 机器人硬件抽象:直接和硬件资源交互,通过 write 和 read 方法完成硬件操作。管理硬件资源,处理硬件冲突
- Hardware Resource 硬件资源:提供硬件资源的接口
![a9d6e52c676c05b1f663d5d842407caa.png](https://i-blog.csdnimg.cn/blog_migrate/96d2c798ebc919da00106c59ca593a30.jpeg)
![975d45c901ffea0a16c7ab10982eae3e.png](https://i-blog.csdnimg.cn/blog_migrate/c0a0dec5410cf0d09ef49ad0111f1bd1.jpeg)
![80f210f0402a3f77a256f5b25dc8a559.png](https://i-blog.csdnimg.cn/blog_migrate/eb01a16f03767eb2873bb8d118648913.jpeg)
2. 控制器 Controllers
ros_control 功能包提供的控制器种类如下: