《 无人驾驶原理与实践》一2.4ROS中的项目组织结构
2.4ROS中的项目组织结构
ROS软件使用包(package)进行组织,通常包含以下内容:
◆ /src:源代码。
◆ /msg:定义各种message文件。
◆ /srv:定义各种service文件。
◆ /launch:包含用于启动节点的launch文件。
◆ /config:包含配置文件,加载一些动态配置参数等。
◆ /test: ROS测试文件。
◆ /include/_package_name_: C++头文件。
◆ /doc:包含文档文件。
◆ packagexml: 编译、运行、版权等信息。
◆ CMakeListstxt: CMakefile构建文件。
1 packagexml
这个文件定义了包的属性,包括:
◆包的名称
◆版本号
◆作者
◆协议
◆ 对其他包的依赖
……
代码清单21一个简单的package信息
◆<?xml version="10"?>
◆<package format="2">
◆<name>ros_practice</name>
◆<version>001</version>
◆<description>The ros_practice package</description>
◆<maintainer email="your-email@gmailcom">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 CMakeListstxt
CMakeListstxt文件是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():安装规则。
- 点赞
- 收藏
- 关注作者
评论(0)