机器人操作系统ROS
2014年我开始参与实验室的一个自然科学基金项目,从而接触了机器人操作系统(Robot Operating System, ROS),这真是个好东西,但在国内好像不是很普及。
我很有可能是我们学校第一个使用ROS的人,还给院里做相关方向的同学做了简单的介绍。我的硕士毕业论文和机器人路径规划算法有关,用的软件平台就是ROS,为我的算法验证提供了极大的方便。
准确来讲,ROS是一个标准化的机器人软件框架,是运行在操作系统上的一个库(library),提供类似于操作系统的功能,由此而得名。ROS的最主要目的是实现代码复用。我在做算法验证时,硬件驱动、基础算法都有现成的,我只是将全局路径规划器替换成我自己的算法,还能在图形化的调试界面上看到效果。总体来说,ROS有如下的优点:
- 有现成的硬件抽象和进程间通信机制,能将主要的精力放在算法实现上
- 硬件驱动、基础算法资源丰富,节省大量时间
- 同时支持运行效率高的C++和开发效率高的Python
- 包管理工具、图形化调试工具等一应俱全
也有很多不足:
- 对Ubuntu系统和软件库的版本依赖太重,经常出现编译错误
- bug很多,比如网络连接不稳定
- 网络上的软件包质量良莠不齐
- 学习门槛高,需掌握Linux、C++、Python、cmake等工具的使用
总体来看,ROS非常适合做算法验证,离工业应用还有很大的距离。国内高校的用户正在快速增加,生态也越来越好,是机器人方向必学的工具。ROS最好的入门材料是官方网站上的教程,进阶可以阅读ROS by Example这本书,网络上有pdf供下载。哪怕你以后不做机器人相关的方向,在使用过程中学习到的Linux/C++/Python知识也能够提高你的竞争力。