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文件夹

  1. src源工作空间(source space)储存package源代码
  2. build编译空间(build space)放置cmake&catkin缓存和中间文件
  3. devel开发空间(development space)放置目标文件

第三层 src下的package

package,功能包,是ROS软件的基本组织形式,也是catkin编译的基本单元,一个package可以包含多个可执行文件(节点node)

package下的文件

  1. CMakeList.txt
    catkin的编译规则(还不会cmake,就不详解了)
  2. package.xml
    功能包清单 定义了package的一些属性信息,例如包名、版本号、作者、依赖项等,模板如下:
    package的模板
    有如上两个文件的package是最简单package
  3. 代码文件
    脚本(shell、python)和C++(头文件、源文件)
  4. 自定义通信格式 msg、srv、action等,
    message是一个进程发送到其他进程的消息,
    src是ROS中每个进程提供的服务定义请求和响应数据结构
    (后面会详细讲)
  5. launch以及配置文件(yaml)

常用指令

ROS提供了一些与linux命令类似的指令,下面把常用的列举如下:

  1. rospack
    查找某个pkg的地址

     rospack find package_name
    

    列出本地所有pkg

     rospack list
    
  2. roscd
    跳转到某个pkg路径下

     roscd package_name
    
  3. rosls
    列举某个pkg下的文件信息

     rosls package_name
    
  4. rosed
    编辑pkg中的文件

     rosed package_name file_name
    
  5. catkin_create
    创建一个pkg

     catkin_create_pkg <pkg_name> [deps]
    
  6. rosdep
    安装某个pkg所需的依赖

     rosdep install [pkg_name]
    
posted @ 2020-11-09 21:51  知舟  阅读(311)  评论(0)    收藏  举报