zoukankan      html  css  js  c++  java
  • catkin 工作空间

    package 是 ROS 软件的基本组织形式,ROS 就是由一个个的 package 组成的

    package 是 catkin 的编译基本单元

    一个 package 可以包含多个可执行文件(节点)

    package 下要包含这两个文件 CMakeLists.txt、package.xml

    CMakeLists.txt 规定 catkin 编译的规则,例如:源文件、依赖项、目标文件

    cmake_minimum_required()  # 指定 catkin 最低版本
    project()  # 指定软件包的名称
    find_package()  # 指定编译时需要的依赖项
    add_message_files()  # 添加消息文件
    add_service_files()  # 添加服务文件
    add_action_files()  # 添加动作文件
    generate_messages()  # 生成消息、服务、动作
    catkin_package()  # 指定 catkin 信息给编译系统生成 Cmake 文件
    add_library()  # 指定生成库文件
    add_executable()  # 指定生成可执行文件
    target_link_libraries()  # 指定可执行文件去链接哪些库
    catkin_add_gtest()  # 添加测试单元
    install()  # 生成可安装目标
    

    package.xml:定义 package 的属性,例如:包名、版本号、作者、依赖等

    <package>       <!--根标签-->
    	<name>      <!--包名-->
    	<version>   <!--版本号-->
    	<description>   <!--包描述-->
    	<maintainer>   <!--维护者-->
    	<license>   <!--软件许可-->
    	<buildtool_depend>   <!--编译工具-->
    	<build_depend>   <!--编译时的依赖-->
    	<run_depend>   <!--运行时的依赖-->  
    </package>      <!--根标签-->
    

    代码文件:

    package:CMakeLists.txt、package.xml、script(放 shell 脚本或 python 脚本)、include(放 C 的头文件 .h)、src(放 C 的源文件.cpp,也能放 python 的源文件)

    自定义通信格式:

    消息(msg)、服务(srv)、动作(action)

    package:CMakeLists.txt、package.xml、msg(存放 .msg 文件)、srv(存放 .srv 文件)、action(存放 .action 文件)

    launch 以及配置文件:

    launch文件(launch)、配置文件(yaml)

    package:CMakeLists.txt、package.xml、config(.yaml)、launch(.lanuch)

    常用的包管理指令:

    创建一个 package:catkin_creat_pkg <pkg_name> [deps]

    std_msgs 为通信的依赖,nav_msgs 为导航的依赖

    查找某个 package 的地址:rospack find package_name

    列出本地所有的 package:rospack list

    sch01ar@ubuntu:~$ rospack list
    

    跳转到某个 package 路径下:roscd package_name

    列举某个 package 下的文件信息:rosls package_name

    编辑 package 中的文件:rosed package_name file_name

    sch01ar@ubuntu:~$ rosed test CMakeLists.txt
    

     安装某个 package 所需的依赖:rosdep install [package_name]

  • 相关阅读:
    常用设计模式:装饰者模式
    常用数据结构算法 : 堆排序
    常用数据结构算法:二叉树的最近公共祖先
    java网络通信:HTTP协议 之 Sessions与Cookies
    java网络通信:HTTP协议
    常见的设计模式:工厂模式
    Java基础:类加载机制
    一个C++右值引用的问题
    剖析一个用C++写的行情交易系统
    C++ Coroutine简明教程
  • 原文地址:https://www.cnblogs.com/sch01ar/p/9085033.html
Copyright © 2011-2022 走看看