zoukankan      html  css  js  c++  java
  • ROS学习总结一ROS组织框架与几个关键词

    本人一个ROS学习初学者,在经过三天的学习基础教程,对ROS有了一个基本的了解,在此,笔者就自己的学习的理解做一个总结,如有错误还请各位指出。

    一、组织框架

    catkin_ws()

    --build

    --devel

    --src

    -----CMakeLists.txt

    -----Package1

    ----------CmakeLists.txt    

    ----------include

    ----------launch

    ----------package.xml 描述功能包的属性,包括功能包的名字、版本号、作者、维护者、通行证 以及所以来的功能包。   

    ----------src   存储你的此程序包下的程序源文件

    --------------1.cpp   程序源文件1

    --------------2.cpp   程序源文件2

    CmakeLists.txt 

    #1.cmake verson,指定cmake版本 
    cmake_minimum_required(VERSION 3.2)
    
    #2.project name,指定项目的名称,一般和项目的文件夹名称对应
    PROJECT(test_sqrt)
    
    #3.head file path,头文件目录
    INCLUDE_DIRECTORIES(
    include
    )
    
    #4.source directory,源文件目录
    AUX_SOURCE_DIRECTORY(src DIR_SRCS)
    
    #5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
    SET(TEST_MATH
    ${DIR_SRCS}
    )
    
    #6.add executable file,添加要编译的可执行文件
    ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
    
    #7.add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
    TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
    

    package.xml

    1、基本结构

    <package>
    
    </package>
    

    2、标签

    <name> - 功能包的名字
    <version> -功能包的版本
    <description> - 功能包内容的描述
    <maintainer> - 功能包的创建于维护者
    <license> - 软件发行版通行证 (例如: GPL, BSD, ASL)
    

    例子:

    <package>
      <name>foo_core</name>
      <version>1.2.4</version>
      <description>
      This package provides foo capability.
      </description>
      <maintainer email="ivana@willowgarage.com">Ivana Bildbotz</maintainer>
      <license>BSD</license>
    </package>
    

    3、依赖

    一共有四种依赖包

    <buildtool_depend> - 指定编译此功能包的编译系统工具
    
    <build_depend> - 指定编译此功能包需要的其他功能包,可以是功能包中的头文件、链接库、其他源文件。 
    
    <run_depend> - 指定运行此功能包代码需要的其他功能包。
    
    <test_depend> - 指定单元测试需要的其他功能包
    

    二、关键词

  • 相关阅读:
    基于《Hadoop权威指南 第三版》在Windows搭建Hadoop环境及运行第一个例子
    使用java发送HTTP请求
    关于centOS7的一些笔记
    关于netty的多个handler链式模式
    关于netty的简单实现
    EF---延迟加载技术
    Restful Api 最佳实践
    FlaskWeb开发
    python多线程/多进程
    Python网络编程
  • 原文地址:https://www.cnblogs.com/flyingjun/p/8830791.html
Copyright © 2011-2022 走看看