ROS2的使用流程[1]

编译工作空间

$ sudo apt install python3-colcon-ros
$ cd ~/dev_ws/
$ colcon build

编译成功后,就可以在工作空间中看到自动生产的build、log、install文件夹
在这里插入图片描述
src:存放代码
build:编译的中间文件
log:日志文件
install:代码编译结果(一些节点的程序)

设置环境变量

$ source install/local_setup.sh # 仅在当前终端生效
$ echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效

功能包

把不同功能的代码划分到不同的功能包中

$ ros2 pkg create --build-type <build-type> <package_name>

pkg:表示功能包相关的功能;
create:表示创建功能包;
build-type:表示新创建的功能包是C++还是Python的,如果使用C++或者C,那这里就跟ament_cmake,如果使用Python,就跟ament_python;
package_name:新建功能包的名字。

分别创建c++和python版本的功能包

$ cd ~/dev_ws/src
$ ros2 pkg create --build-type ament_cmake learning_pkg_c               # C++
$ ros2 pkg create --build-type ament_python learning_pkg_python # Python

编译功能包:

$ cd ~/dev_ws
$ colcon build   # 编译工作空间所有功能包
$ source install/local_setup.bash

在ROS 2的功能包中,无论是C++还是Python版本,通常会包含一些常见的文件和目录,它们各自的作用如下:

  1. CMakeLists.txt:这是CMake构建系统的配置文件,用于指定编译选项、依赖项和生成目标等。

  2. package.xml:这是功能包的元数据文件,用于描述功能包的名称、版本、作者、依赖项等信息。

  3. src/:这个目录通常包含了实现功能包的源代码文件,可以是C++源文件或Python脚本文件。

  4. include/:如果是C++功能包,这个目录通常包含头文件(.h或.hpp),用于声明类、函数和常量等。

  5. launch/:这个目录通常包含用于启动节点和配置参数的launch文件,可以通过launch文件来启动多个节点和设置节点参数。

  6. msg/:这个目录通常包含消息定义文件(.msg),用于定义自定义消息类型。

  7. srv/:这个目录通常包含服务定义文件(.srv),用于定义自定义服务类型。

  8. action/:这个目录通常包含动作定义文件(.action),用于定义自定义动作类型。

  9. config/:这个目录通常包含配置文件,用于存储功能包的参数配置。

  10. scripts/:如果是Python功能包,这个目录通常包含一些Python脚本文件,用于实现功能包的逻辑。

  11. test/:这个目录通常包含用于功能包的单元测试和集成测试的测试文件。

  12. setup.py:这个文件是Python功能包特有的文件,用于构建和安装Python包的配置文件。它定义了包的元数据、依赖项和入口点等信息,以及构建和安装的相关配置。

这些文件和目录组成了一个完整的ROS 2功能包,用于实现特定的功能和节点。具体的文件和目录结构可能会因项目需求而有所不同,但以上列举的是常见的文件和目录。

需要注意的是,C++和Python功能包在性能方面可能存在差异,因此在选择时需要考虑到具体的应用场景和要求。同时,对于Python功能包,还需要包含setup.py文件来完成包的构建和安装。

节点

执行某些具体的任务,每个节点都是一个可以独立运行的可执行文件。每一个节点都需要有唯一的命名,可以通过节点的名称来做查询。

要实现一个节点,代码的实现流程是这样做:

1.编程接口初始化
2.创建节点并初始化
3.实现节点功能
4.销毁节点并关闭接口

$ ros2 run learning_node node_helloworld_class  #最后面是节点的名字

修改代码后一定要进行编译再运行节点,因为运行的是install中的代码编译结果
在工作空间的文件夹打开终端进行编译

$ colcon build

节点的命令

$ ros2 node list               # 查看节点列表
$ ros2 node info <node_name>   # 查看节点信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值