ROS的扩展
ROS除了本身框架性的东西以外,最大的特色就是能融合很多其他的东西,形成一个机器人开发生态圈,难怪ROS名为机器人操作系统,使命是powering the world‘s robots也是毫不夸张的。
ROS的扩展即ROS universe,是全球范围的代码,有不同国家的ROS社区组织开发和维护。
有的是库代码,如OpenCV、PCL等;库的上一层是从功能角度提供的代码,如人脸识别,导航等,调用下层的库;最上层的代码是应用级的代码,让机器人完成某一确定的功能。
ROS真的是包罗万象,各种库、功能性框架都能融入进来,使其越来越强大。
使用第三方库一般有两种方法:
一种是通过cmake方法添加,有些库比如Qt、OpenCV、PCL等,可能直接下载ROS的时候就已经嵌套进去了,直接通过ROS的环境变量就能依赖到这些库。
但我更倾向于ROS框架保持不变,其他库再另外下载安装。
因为通过ROS下载的第三方库一般不完整或者版本不对导致开发受限等,最好直接安装第三方库然后通过cmake找第三方库在本机所安装的位置(find_package),这样库和库之间相对关系就很明确,ROS的基本框架也没被填充太多,也能保持得比较干净,更不会被找不到环境变量所困扰。
ROS和第三方库相互依赖的问题,估计困扰过不少人,我经常被花大量的时间在库依赖问题上。
另一种是让第三方库增加一些接口来适配ROS框架,也就是做成ROS包。
有些厂商比如激光雷达或者一些CAN总线协议,直接就提供了ROS接口,可以很方便的使用。可以说,基本上大部分成熟的算法(机械臂正逆解、SLAM导航、点云、图像处理等),传感器接口(sick、kinect等),通信协议(EarthCAT、CANOpen、USB等)都可以在ROS wiki和GitHub上找到。
全部0条评论
快来发表一下你的评论吧 !