ROS入门学习之工程结构
ROS的工程结构
文件系统级(filesystem) :ROS的内部结构、文件结构和所需的核心文件都在这一层里, 一个ROS程序的结构,是一些按不同功能进行区分的文件夹。
一般的文件夹结构如下:

第一层 catkin workspace
管理和组织ROS工程代码的地方,catkin是ROS定制的编译构建系统,是对CMake的扩展,更好的支持ROS。
工作空间的建立
mkdir -p ~/catkin_ws/src # 创建一个名为catkin——ws的文件夹
cd ~/catkin_ws/ # 要在工作空间编译
catkin_make # 编译
source ~/catkin_ws/devel/setup.bash # 编译后source刷新环境
第二层 src, build, devel文件夹
- src源工作空间(source space)储存package源代码
- build编译空间(build space)放置cmake&catkin缓存和中间文件
- devel开发空间(development space)放置目标文件
第三层 src下的package
package,功能包,是ROS软件的基本组织形式,也是catkin编译的基本单元,一个package可以包含多个可执行文件(节点node)
package下的文件
- CMakeList.txt
catkin的编译规则(还不会cmake,就不详解了) - package.xml
功能包清单 定义了package的一些属性信息,例如包名、版本号、作者、依赖项等,模板如下:
![package的模板]()
有如上两个文件的package是最简单package - 代码文件
脚本(shell、python)和C++(头文件、源文件) - 自定义通信格式 msg、srv、action等,
message是一个进程发送到其他进程的消息,
src是ROS中每个进程提供的服务定义请求和响应数据结构
(后面会详细讲) - launch以及配置文件(yaml)
常用指令
ROS提供了一些与linux命令类似的指令,下面把常用的列举如下:
-
rospack
查找某个pkg的地址rospack find package_name列出本地所有pkg
rospack list -
roscd
跳转到某个pkg路径下roscd package_name -
rosls
列举某个pkg下的文件信息rosls package_name -
rosed
编辑pkg中的文件rosed package_name file_name -
catkin_create
创建一个pkgcatkin_create_pkg <pkg_name> [deps] -
rosdep
安装某个pkg所需的依赖rosdep install [pkg_name]


浙公网安备 33010602011771号