(五)ROS2学习--创建调用其它包接口的一个发布者

本文详细介绍了如何在ROS2环境下,在已有的ROS2项目基础上创建新的发布者和订阅者,包括构建步骤(创建项目包、创建消息接口、修改package.xml和CMakeLists.txt),以及编译和验证新包的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

主机:Ubuntu20.04
介绍:基于上一篇(四)ROS2学习–第一个ROS2项目(创建一个客制化接口),本片教程将会在新的包里面创建新的发布者publisher,发布到上一篇文章创建的topic,另外创建新的接收者subscriber也可以参考本篇文章。

二、构建步骤

1. 构建项目包

  • 首先打开上一篇文章所用到的源码目录
cd <Your project path>/ros2_01/src
  • 创建ROS2项目包及msg
ros2 pkg create --build-type ament_cmake car_publish_test
mkdir car_publish_test/msg

创建完成后项目目录结构如下

.
├── build.sh
└── src
    ├── car_publish_test
    │   ├── CMakeLists.txt
    │   ├── include
    │   │   └── car_publish_test
    │   ├── msg
    │   ├── package.xml
    │   └── src
    └── smart_car
        ├── CMakeLists.txt
        ├── include
        │   └── smart_car
        ├── msg
        │   └── Car.msg
        ├── package.xml
        └── src
            ├── publish_car.cpp
            └── subscriber_car.cpp

11 directories, 8 files

2. 创建消息接口

  • 创建msg文件
    既然要用到上一篇文章创建的接口,就必然与上一个包里的msg文件有所关联,所以我们在路径“ros2_01/src/car_publish_test/msg/”目录下创建一个.msg文件,命名为Car.msg,内容如下:
smart_car/Car[] car

3. 修改“package.xml”

在"package.xml"中添加项目编译时依赖rosidl_default_generators及运行时依赖rosidl_default_runtime及依赖所在的组别。同时,此包依赖上一篇文章中生成的"smart_car", 也要添加编译和运行依赖。添加后的文件内容如下(需要自行修改项目描述description,作者信息maintainer ,以及遵从的license) :

<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
  <name>car_publish_test</name>
  <version>0.0.0</version>
  <description>TODO: Package description</description>
  <maintainer email
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值