《 无人驾驶原理与实践》一2.4ROS中的项目组织结构

举报
华章计算机 发表于 2019/05/30 23:12:33 2019/05/30
【摘要】 本书摘自《 无人驾驶原理与实践》一第二章,第2.4节,编著是申泽邦 雍宾宾 周庆国 李良 李冠憬

2.4ROS中的项目组织结构
       ROS软件使用包(package)进行组织,通常包含以下内容:
         ◆ /src:源代码。
         /msg:定义各种message文件。
          /srv:定义各种service文件。
          /launch:包含用于启动节点的launch文件。
          /config:包含配置文件,加载一些动态配置参数等。
          /test: ROS测试文件。
          /include/_package_name_: C++头文件。
          /doc:包含文档文件。
          packagexml: 编译、运行、版权等信息。
          CMakeListstxt: CMakefile构建文件。

1 packagexml

       这个文件定义了包的属性,包括:
          包的名称
          版本号
          作者
          协议
           对其他包的依赖
              ……
        代码清单21一个简单的package信息

              ◆<?xml version="10"?>

              ◆<package format="2">

              ◆<name>ros_practice</name>

              ◆<version>001</version>

              ◆<description>The ros_practice package</description>

              ◆<maintainer email="your-email@gmailcom">Adam</maintainer>

              ◆<license>MIT</license>

              ◆<buildtool_depend>catkin</buildtool_depend>

              ◆<build_depend>roscpp</build_depend>

              ◆<build_depend>sensor_msgs</build_depend>

              ◆<build_export_depend>roscpp</build_export_depend>

              ◆<build_export_depend>sensor_msgs</build_export_depend>

              ◆<exec_depend>roscpp</exec_depend>

              ◆<exec_depend>sensor_msgs</exec_depend>

              ◆</package>


       在这个例子中,我们使用了roscpp的客户端库,同时使用了一个sensor_msgs消息。

2 CMakeListstxt

       CMakeListstxt文件是CMake构建系统的输入,在这里我们不会详细讨论CMake的写法(因为它本身可以很复杂),只需大致熟悉一下常用的CMake语法:
               cmake_minimum_required:需要的CMake最低版本。
               ◆project():包的名称。
               ◆ find_package():查找构建时需要的其他CMake/catkin包。
               ◆ add_message_files()/ add_service_files()/add_action_files():生成Message/Service/Action。
               ◆ generate_messages():调用消息生成。
               ◆ catkin_package():指定包的构建信息。
               ◆ add_library()/add_executable()/target_link_libraries():添加用于构建的库、可执行代码和目标链接库。
               ◆ install():安装规则。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。