您的位置:首页 > 游戏 > 手游 > 商城设计_杭州行业网页设计公司_百度网站管理员工具_湖南网站设计外包哪家好

商城设计_杭州行业网页设计公司_百度网站管理员工具_湖南网站设计外包哪家好

2024/12/23 9:05:58 来源:https://blog.csdn.net/weixin_43297891/article/details/144201752  浏览:    关键词:商城设计_杭州行业网页设计公司_百度网站管理员工具_湖南网站设计外包哪家好
商城设计_杭州行业网页设计公司_百度网站管理员工具_湖南网站设计外包哪家好

ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)

在这里插入图片描述
code review!

参考笔记
1.ROS基本框架1——编写简单的发布者和订阅者(C++和Python版本)
2.ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)

文章目录

  • ROS基本框架2——在ROS开发中创建并使用自定义消息(C++版本)
    • 1. 一个简单的完整流程
      • 1.1 创建工作空间和功能包
      • 1.2 定义自定义消息
      • 1.3 修改 CMakeLists.txt
      • 1.4 修改 package.xml
      • 1.5 生成代码
      • 1.6 使用自定义消息
        • 1.6.1 发布节点(publisher.cpp)
        • 1.6.2 订阅节点(subscriber.cpp)
      • 1.7 编译代码
      • 1.8 运行节点
      • 1.9 运行结果
      • 1.10 总结
    • 2. 独立开发自定义消息功能包
      • 2.1 实现目标
      • 2.2 创建消息定义功能包
      • 2.3 修改 CMakeLists.txt
      • 2.4 修改 package.xml
      • 2.5 编译消息定义功能包
      • 2.6 修改发布节点功能包
        • 2.6.1 修改 package.xml
        • 2.6.2 修改 CMakeLists.txt
        • 2.6.3 使用自定义消息
      • 2.7 修改订阅节点功能包
        • 2.7.1 修改 package.xml
        • 2.7.2 修改 CMakeLists.txt
        • 2.7.3 使用自定义消息
      • 2.8 编译和运行
        • 2.8.1 分别编译功能包
        • 2.8.2 运行功能包
      • 2.9 总结
    • 3. 发布和订阅节点在同一个功能包中
      • 3.1 创建消息定义功能包
      • 3.2 修改 `my_package`
        • 3.2.1 修改 package.xml
        • 3.2.2 修改 CMakeLists.txt
      • 3.3 编写发布和订阅节点
      • 3.4 编译和运行
        • 3.4.1 编译功能包
        • 3.4.2 运行功能包
      • 3.5 总结

1. 一个简单的完整流程

在 ROS(Robot Operating System)中,自定义消息类型(msg)是指用户根据需求创建的消息,用于节点之间的数据通信。以下是一个完整的流程,展示如何在 ROS C++ 开发中创建并使用自定义消息。

1.1 创建工作空间和功能包

# 创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws# 初始化工作空间
catkin_make# 创建功能包
cd src
catkin_create_pkg my_package std_msgs roscpp

1.2 定义自定义消息

在功能包 my_package 中创建 msg 文件夹,并定义消息类型。

cd ~/catkin_ws/src/my_package
mkdir msg

创建自定义消息文件 MyMessage.msg

# 文件路径: my_package/msg/MyMessage.msg
int32 id
string name
float32 value

1.3 修改 CMakeLists.txt

编辑 my_packageCMakeLists.txt 文件,添加自定义消息的支持。

# 添加消息生成依赖
find_package(catkin REQUIRED COMPONENTSstd_msgsroscppmessage_generation
)# 添加消息文件
add_message_files(FILESMyMessage.msg
)# 生成消息
generate_messages(DEPENDENCIESstd_msgs
)# 包含生成的消息头文件
catkin_package(CATKIN_DEPENDS message_runtime roscpp std_msgs
)

1.4 修改 package.xml

确保在 package.xml 中添加了对 message_generationmessage_runtime 的依赖。

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>

1.5 生成代码

在工作空间根目录下编译生成代码。

cd ~/catkin_ws
catkin_make

1.6 使用自定义消息

1.6.1 发布节点(publisher.cpp)
#include "ros/ros.h"
#include "my_package/MyMessage.h"int main(int argc, char** argv) {ros::init(argc, argv, "my_publisher");ros::NodeHandle nh;ros::Publisher pub = nh.advertise<my_package

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com