# 2.7 其他常見文件類型
在ROS的pacakge中,還有其他許多常見的文件類型,這里做個總結。
## 2.7.1 launch文件
launch文件一般以.launch或.xml結尾,它對ROS需要運行程序進行了打包,通過一句命令來啟動。一般launch文件中會指定要啟動哪些package下的哪些可執行程序,指定以什么參數啟動,以及一些管理控制的命令。
launch文件通常放在軟件包的`launch/`路徑中中。
launch文件的具體寫法見3.2節。
## 2.7.2 msg/srv/action文件
ROS程序中有可能有一些自定義的消息/服務/動作文件,為程序的發者所設計的數據結構,這類的文件以`.msg`,`.srv`,`.action`結尾,通常放在package的`msg/`,`srv/`,`action/`路徑下。
msg文件寫法見3.4節,srv文件寫法見3.6節。
## 2.7.3 urdf/xacro文件
urdf/xacro文件是機器人模型的描述文件,以.urdf或.xacro結尾。它定義了機器人的連桿和關節的信息,以及它們之間的位置、角度等信息,通過urdf文件可以將機器人的物理連接信息表示出來。并在可視化調試和仿真中顯示。
urdf文件的寫法見第七章。
## 2.7.4 yaml文件
yaml文件一般存儲了ROS需要加載的參數信息,一些屬性的配置。通常在launch文件或程序中讀取.yaml文件,把參數加載到參數服務器上。通常我們會把yaml文件存放在`param/`路徑下
## 2.7.5 dae/stl文件
dae或stl文件是3D模型文件,機器人的urdf或仿真環境通常會引用這類文件,它們描述了機器人的三維模型。相比urdf文件簡單定義的性狀,dae/stl文件可以定義復雜的模型,可以直接從solidworks或其他建模軟件導出機器人裝配模型,從而顯示出更加精確的外形。
## 2.7.6 rviz文件
rviz文件本質上是固定格式的文本文件,其中存儲了RViz窗口的配置(顯示哪些控件、視角、參數)。通常rviz文件不需要我們去手動修改,而是直接在RViz工具里保存,下次運行時直接讀取。
- 前言
- 第一章 ROS簡介
- 機器人時代的到來
- ROS發展歷程
- 什么是ROS
- 安裝ROS
- 安裝ROS-Academy-for-Beginners教學包
- 二進制與源碼包
- 安裝RoboWare Studio
- 單元測試一
- 第二章 ROS文件系統
- Catkin編譯系統
- Catkin工作空間
- Package軟件包
- CMakeLists.txt
- package.xml
- Metapacakge軟件元包
- 其他常見文件類型
- 單元測試二
- 第三章 ROS通信架構(一)
- Node & Master
- Launch文件
- Topic
- Msg
- 常見msg類型
- 單元測試三
- 第四章 ROS通信架構(二)
- Service
- Srv
- Parameter server
- Action
- 常見srv類型
- 常見action類型
- 單元測試四
- 第五章 常用工具
- Gazebo
- RViz
- Rqt
- Rosbag
- Rosbridge
- moveit!
- 單元測試五
- 第六章 roscpp
- Client Library與roscpp
- 節點初始、關閉與NodeHandle
- Topic in roscpp
- Service in roscpp
- Param in roscpp
- 時鐘
- 日志與異常
- 第七章 rospy
- Rospy與主要接口
- Topic in rospy
- Service in rospy
- Param與Time
- 第八章 TF與URDF
- 認識TF
- TF消息
- tf in c++
- tf in python
- 統一機器人描述格式
- 附錄:TF數學基礎
- 三維空間剛體運動---旋轉矩陣
- 三維空間剛體運動---歐拉角
- 三維空間剛體運動---四元數
- 第九章 SLAM
- 地圖
- Gmapping
- Karto
- Hector
- 第十章 Navigation
- Navigation Stack
- move_base
- costmap
- Map_server & Amcl
- 附錄:Navigation工具包說明
- amcl
- local_base_planner
- carrot_planner
- clear_costmap_recovery
- costmap_2d
- dwa_local_planner
- fake_localization
- global_planner
- map_server
- move_base_msg
- move_base
- move_slow_and_clear
- navfn
- nav_core
- robot_pose_ekf
- rotate_recovery