ROS2学习

一.体系框架 

WorkSpace --- 自定义的工作空间。
    |--- build:存储中间文件的目录,该目录下会为每一个功能包创建一个单独子目录。
    |--- install:安装目录,该目录下会为每一个功能包创建一个单独子目录。
    |--- log:日志目录,用于存储日志文件。
    |--- src:用于存储功能包源码的目录。
        |-- C++功能包
            |-- package.xml:包信息,比如:包名、版本、作者、依赖项。
            |-- CMakeLists.txt:配置编译规则,比如源文件、依赖项、目标文件。
            |-- src:C++源文件目录。
            |-- include:头文件目录。
            |-- msg:消息接口文件目录。
            |-- srv:服务接口文件目录。
            |-- action:动作接口文件目录。
        |-- Python功能包
            |-- package.xml:包信息,比如:包名、版本、作者、依赖项。
            |-- setup.py:与C++功能包的CMakeLists.txt类似。
            |-- setup.cfg:功能包基本配置文件。
            |-- resource:资源目录。
            |-- test:存储测试相关文件。
            |-- 功能包同名目录:Python源文件目录。

编写代码时推荐用继承的方式实现。

初始化与资源释放的作用:

答:1.前提:构建的程序可能由若干的步骤或阶段组成;

                如 初始化--->节点对象--->日志输出--->数据发布--->数据订阅--->。。。--->资源释放

        2.不同的步骤之间涉及到数据的传递

        3.怎么实现数据的传递呢?

        使用到Context对象,这是一个容器,可以存储数据,也可以从中读取数据。

        4.初始化实际就是创作Context对象,资源释放实质就是销毁Context对象。

二、操作命令

1.创建

新建功能包语法如下:

ros2 pkg create 包名 --build-type 构建类型 --dependencies 依赖列表 --node-name 可执行程序名称

2.编译

colcon build

3.查找

ros2 pkg executables [包名] # 输出所有功能包或指定功能包下的可执行程序。
ros2 pkg list # 列出所有功能包
ros2 pkg prefix 包名 # 列出功能包路径
ros2 pkg xml # 输出功能包的package.xml内容

4.执行

ros2 run 功能包 可执行程序 参数

你可能感兴趣的:(学习)