ROS | ros_control和arbotix_ros简介
1. ros_control
ros_control就是ROS为用户提供的应用与机器人之间的中间件,包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等等,可以帮助机器人应用快速落地,提高开发效率。

上图是ros_control的总体框架,可以看到对于不同类型的控制器(底盘、机械臂等),ros_control可以提供多种类型的控制器,但是这些控制器的接口各不相同,为了提高代码的复用率,ros_control还提供一个硬件的抽象层。

硬件抽象层负责机器人硬件资源的管理,而controller从抽象层请求资源即可,并不直接接触硬件。

上图是ros_control的数据流图,可以更加清晰的看到每个层次包含的功能:
- Controller Manager:每个机器人可能有多个controller,所以这里有一个控制器管理器的概念,提供一种通用的接口来管理不同的controller。controller manager的输入就是ROS上层应用的输出。
- Controller:controller可以完成每个joint的控制,请求下层的硬件资源,并且提供了PID控制器,读取硬件资源接口中的状态,在发布控制命令。
- Hardware Rescource:为上下两层提供硬件资源的接口。
- RobotHW:硬件抽象层和硬件直接打交道,通过write和read方法来完成硬件的操作,这一层也包含关节限位、力矩转换、状态转换等功能。
- Real Robot:实际的机器人上也需要有自己的嵌入式控制器,接收到命令后需要反映到执行器上,比如接收到位置1的命令后,那就需要让执行器快速、稳定的到达位置1。
1.1 Controller Manager
controller manager提供了一种控制多个controller的机制,可以加载、开始运行、停止运行、卸载不同的controller,并且提供了多种工具来完成这些操作。

1.2 Controller
ros_controllers这个功能包提供了已有的一些controllers,比较常用的是如下几个:
- effort_controllers - 直接控制关节的力/扭矩

本文介绍了ros_control和arbotix_ros相关知识。ros_control是ROS为用户提供的中间件,包含控制器管理器、控制器、硬件接口等,可提高机器人开发效率。还介绍了其各组件功能及使用方法。arbotix_ros是arbotix控制器的ROS软件包,可方便控制小车运动,并说明了其在ROS中的使用配置。
3976

被折叠的 条评论
为什么被折叠?



