ROS 简介
1. What is ROS
ROS (Robot Operating System, 机器人操作系统) 是一个适用于机器人的开源的元操作系统,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了操作系统应有的服务,包括硬件抽象、设备驱动、函数库、可视化工具、消息传递和包管理等诸多功能以及广泛的技术生态和项目应用。
需要注意的是,ROS 虽然字面意思是机器人操作系统,但是它并非经典意义上的操作系统,更准确的讲 ROS 是一个 SDK(Software Development Kit)即软件开发工具包。
2. How it do
ROS 是一个分布式的进程(也就是节点)框架,这些节点被封装在易于分享和发布的功能包中,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受 ROS 限制),同时所有的工程都可以被 ROS 的基础工具整合在一起。
ROS 的运行“蓝图”是一种基于 ROS 通信基础结构的松耦合点对点进程网络。ROS 实现了几种不同的通信方式,包括 服务(Services) 机制,话题(Topics) 机制以及 参数服务器(Parameter Server)。
3. 操作系统
ROS 目前基于 Unix/Linux 的平台上运行,主要在 Ubuntu 系统。
同时,基于 Windows、Mac OS 以及其他 Linux 的 ROS 已经实现,但并未开发完全。(不要尝试,谢谢)
4. 我们使用 ROS 做什么?
我们使用 ROS 作为顶层框架,将我们的各个功能模块链接组合在一起,实现松耦合、可替换、异步更新、快拆快修的便捷开发方式。
具体来说,我们使用 ROS 的分布式节点架构来管理各功能模块,使用 ROS 的通信机制实现模块的参数配置与模块间数据传输,使用 ROS 的 TF 库管理和维护坐标变换,同时 ROS 集成了许多非常实用的工具,对我们的调试工作很有帮助。此外,还有许多优秀的软件或库与 ROS 深度集成,例如 Gazebo、Foxglove 等。