ROS的扩展有哪些方法

描述

  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上找到。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分