其他
终于有人把ROS机器人操作系统讲明白了
导读:机器人是多专业知识交叉的学科,通常涉及传感器、驱动程序、多机通信、机械结构、算法等,为了更高效地进行机器人的研究和开发,选择一个通用的开发框架非常必要,ROS(Robot Operating System,机器人操作系统)就是流行的框架之一。
本文将带领大家了解和使用ROS,掌握ROS的核心概念,为后续学习打好基础。
官网:www.ros.org 源码:github.com Wiki:wiki.ros.org 问答:answers.ros.org
src文件夹放置各个功能包和配置功能包的CMake配置文件CMakeLists.txt。这里说明一下,由于ROS中的源码采用catkin工具进行编译,而catkin工具又基于CMake技术,所以我们在src源文件空间和各个功能包中都会见到一个CMake配置文件CMakeLists.txt,这个文件起到配置编译的作用。 build文件夹放置编译CMake和catkin功能包时产生的缓存、配置、中间文件等。 devel文件夹放置编译好的可执行程序,这些可执行程序是不需要安装就能直接运行的。一旦功能包源码编译和测试通过后,可以将这些编译好的可执行文件直接导出与其他开发人员分享。
CMakeLists.txt是功能包配置文件,用于编译Cmake功能包编译时的编译配置。 package.xml是功能包清单文件,用xml的标签格式标记该功能包的各类相关信息,比如包的名称、开发者信息、依赖关系等,主要是为了使功能包的安装和分发更容易。 include/<pkg_name>是功能包头文件目录,可以把功能包程序中包含的*.h头文件放在这里。include目录之所以还要加一级路径<pkg_name>是为了更好地区分自己定义的头文件和系统标准头文件,<pkg_name>用实际功能包的名称替代。不过这个文件夹不是必要项,比如有些程序没有头文件。 msg、srv和action这三个文件夹分别用于存放非标准话题消息、服务消息和动作消息的定义文件。ROS支持用户自定义消息通信过程中使用的消息类型。这些自定义消息不是必要的,比如程序只使用标准消息类型。 scripts目录存放Bash、Python等脚本文件,为非必要项。 launch目录存放节点的启动文件,*.launch文件用于启动一个或多个节点,在含有多个节点的大型项目中很有用,为非必要项。 src目录存放功能包节点所对应的源代码,一个功能包中可以有多个节点程序来完成不同的功能,每个节点程序都可以单独运行。这里src目录存放的是这些节点程序的源代码,你可以按需创建文件夹和文件来组织源代码,源代码可以用C++、Python等编写。
本文摘编自《机器人SLAM导航:核心技术与实战》,经出版方授权发布。(ISBN:9787111697428)
推荐语:机器人SLAM导航的百科全书,真正打通软硬件,突破SLAM与导航技术壁垒,加速算法和机器人产品落地;全面剖析传感器、ROS、SLAM和导航核心算法,深入数学原理,解析热门框架,手把手带你从零构建真实机器人。
扫码关注【华章计算机】视频号
每天来听华章哥讲书
书讯 | 1月书讯(下)| 2022年的第一本书书讯 | 1月书讯(上)| 2022年的第一本书资讯 | 重磅!达摩院发布2022十大科技趋势书单 | 6本书,读懂2022年最火的边缘计算干货 | Flink1.14.2发布,除了log4j漏洞你还需要关注什么?收藏 | Docker冲顶技术热词,微服务应用热度不减,中国云原生开发者真实现状如何?上新 | 【新书速递】金融领域可解释机器学习模型与实践赠书 | 【第88期】这10本硬核技术书,带你读懂5G、物联网和边缘计算,玩转元宇宙