美文网首页
2. ROS工程结构

2. ROS工程结构

作者: Janeshurmin | 来源:发表于2019-08-25 20:28 被阅读0次

    2.1 ROS工程结构

    ROS工程结果图
    • catkin工作空间,组织和管理功能包的文件夹,以catkin工具编译构建

      • src,package源代码
      • build,cmake&catkin缓存和中间文件
      • devel,目标文件(头文件,动态链接库,静态链接库,可执行文件)

    2.1.1 catkin工作空间

    catkin,ros定制的编译构建系统,是对CMake的扩展,用于编译ros程序

    catkin工作空间,组织和管理功能包的文件夹,以catkin工具编译构建

    catkin_make,建立工作空间,编译,写完代码后catkin_make一下,系统帮忙自动构建,生成目标文件

    • 建立工作空间 catkin workspace
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make
    
    • 编译
    cd ~/catkin_ws #必须回到工作空间
    catkin_make
    source ~/catkin_ws/devel/setup.bash #编译完成后要source刷新环境,否则生成的可执行文件打不开
    

    2.2 package

    package,功能包

    src下的package是catkin编译的基本单元,ros软件的基本组织形式,一个package可以包含多个可执行文件(节点)

    package的最精简格式包括CMakeLists.txt和package.xml

    • CMakeLists.txt,规定了catkin编译的规则(e.g.,依赖性,源文件...)

    • package.xml,定义package属性(e.g.,包名,版本号,作者,依赖项)

    package可以放置的东东

    • 代码文件,脚本(shell、python)or C++(头文件、源文件)
    package结构
    • 自定义通信格式,消息msg,服务srv,动作action
    • launch以及配置文件yaml

    典型的package结构

    常用指令

    • rospack
    rospack find package_name #查找某个pkg地址
    rospack list #列出所有pkg
    e.g., rospack list | grep catkin_ws
    
    • roscd
    roscd package_name #跳转到某个pkg路径下
    
    • rosls
    rosls package_name #列出某个pkg下的文件信息
    
    • rosed
    roscd package_name file_name #编辑pkg中的文件
    
    • catkin_create_pkg
    catkin_create_pkg <pkg_name>[deps]
    
    • rosdep
    rosdep install [pkg_name]
    

    2.3 Metapackage

    虚包,将具有相似功能的软件包组织起来,安装更方便

    常见的metapackage

    相关文章

      网友评论

          本文标题:2. ROS工程结构

          本文链接:https://www.haomeiwen.com/subject/bjkkectx.html