ros学习之ros文件系统级
一個ROS程序的不同組件要放在不同歐冠你的文件夾下,這些文件夾根據功能的不同來對文件組織
(1)、功能包(package)
功能包構成ROS中的原子級,一個功能包具有創建ROS程序的最小結構和最少內容。他可以包含ROS運行時進程(節點)、配置文件等,
由一種特定結構的文件和文件夾組合,結構有
·include/package_name/:此目錄包含了需要的庫的頭文件。 ·msg/:如果開發需要非標準的消息,請把文件放在這里。 ·scripts/:其中包括Bash、Python或任何其他腳本語言的可執行腳 本。 ·src/:這是存儲程序源文件的地方。你可能會為節點創建一個文件 夾或按照希望的方式組織它。 ·srv/:這表示服務(srv)類型。 ·CMakeLists.txt:這是CMake的生成文件。 ·package.xml:這是功能包清單文件
打開一個package.xml文件,可以看到包的名稱、依賴關系等信息。 功能包清單的作用就是為了方便安裝和分發這些功能包。
在package.xml文件中使用的兩個典型標記是<build_depend>和 <run_depend>。
<build_depend>標記會顯示當前功能包安裝之前必須先安裝哪些功 能包。這是因為新的功能包會使用其他包的一些功能。
<run_depend>標記顯示運行功能包中代碼所需要的包
(2)、功能包清單(package manifest)
功能包清單提供關于功能包、許可證、依賴關系、編譯標志等信息。包清單中有一個名為package.xml的文件管理
(3)、元功能包(metapackage)
元功能包是一些只有一個文件的特殊 包,這個文件就是package.xml,用于組織多個用于同一目的功能包。
(4)、消息類型(msg)
消息是ROS節點之間發布/訂閱的通信消息,可以使用ROS提供的消息類型,也可以使用.msg文件在功能包的msg文件夾下自定義需要的消息類型
消息類型必須具有兩個主要部分:字段(field)和常量 (constant)。字段定義了要在消息中傳輸的數據類型,例如int32、 float32、string或之前創建的新類型,如叫作type1和type2的新類型。常 量用于定義字段的名稱。
(5)、服務類型(service)
服務類型定義了ROS服務器/客戶端通信模型下的請求和應答數據類型,可以使用ROS系統提供的服務類型,也可以使用.srv文件在功能包的srv文件夾中定義
ROS中有一些在服務上執行某些操作的工具。rossrv工具能輸出服 務說明、.srv文件所在的包,并可以找到使用某一服務類型的源文件。 如果你想要在ROS中創建一個服務,可以使用服務生成器。這些工 具能夠從基本的服務說明中生成代碼。只需要在CMakeLists.txt文件中加 一行gensrv()命令。
(6)、代碼
放置功能包節點源代碼的文件夾
總結
以上是生活随笔為你收集整理的ros学习之ros文件系统级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery append()详解
- 下一篇: CSS实现太极图(3个div实现)