从零搭建ros间的通信,各功能包、节点之间的通信

新建消息类型

catkin_create_pkg car_interfaces roscpp rospy std_msgs message_generation message_runtime

书写自定义的msg:
比如我写一个GlobalPathPlanningInterface.msg:

float64  timestamp  #时间戳
float32[]  startpoint   #起点位置,先经后纬
float32[]   endpoint    #终点位置,先经后纬
float32[]   routedata   #路径集合(所有途径点的集合)
float32  process_time    # 进程处理时间

接着再处理编译文件CMakeLists.txt:

add_message_files(FILESGlobalPathPlanningInterface.msg# Message2.msg
)generate_messages(DEPENDENCIESstd_msgs  
)catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES car_interfacesCATKIN_DEPENDS message_generation message_runtime roscpp rospy std_msgs
#  DEPENDS system_lib
)

修改package.xml文件:
添加上:

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

这样就定义好了。
rosmsg show msg包/msg类型
请添加图片描述

新建一个功能包

catkin_create_pkg planning roscpp rospy std_msgs
catkin_make # 编译一次即可
接着就能直接新建py写了,比cpp简单太多了。

global_path_planning.py文件:

#!/usr/bin/env python3
#coding=utf-8import rospy
from car_interfaces.msg import GlobalPathPlanningInterfaceif __name__ == "__main__":rospy.init_node("chao_node")  # 节点名称rospy.logwarn("我的枪去而复返")pub = rospy.Publisher("global_path_planning_data", GlobalPathPlanningInterface, queue_size = 10) # 话题名称rate = rospy.Rate(10)while not rospy.is_shutdown():rospy.loginfo("我要开始刷屏了")  #发一次显示一个,不是实际的消息,只是一个infomsg = GlobalPathPlanningInterface()msg.timestamp = 2.7msg.startoint = [1.0, 2.0, 3.0]msg.endpoint = []msg.routedata = []msg.process_time = 3.1pub.publish(msg)rate.sleep()

注意
(这样的话其实也可以直接再创建的时候添加,就不用改这两个文件了)

catkin_create_pkg self_start roscpp rospy std_msgs car_interfaces

如果没有动car_interfaces,那就添加就好了
修改CMakeLists.txt:
find_package:
增加car_interfaces

修改package.xml:
<build_depend>car_interfaces</build_depend>
<exec_depend>car_interfaces</exec_depend>
测试效果还可以
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse调整系统字体(亲测)

1. 打开eclipse的菜单栏windows->preferences 2. 选择General->Appearance->colors and fonts 3. 选择字号&#xff0c;Apply&#xff0c;ok 建议选择常规18号&#xff0c;这样对眼睛友好一些&#xff0c;不易太大太小 为了大家更好的学习交流&#xff0c;博主新建了v…

MCSM面板一键搭建我的世界服务器 - 外网远程联机【内网穿透工具】

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 前言 MCSManager是一个…

华为发布大模型时代AI存储新品

7月14日&#xff0c;华为发布大模型时代AI存储新品&#xff0c;为基础模型训练、行业模型训练&#xff0c;细分场景模型训练推理提供存储最优解&#xff0c;释放AI新动能。 企业在开发及实施大模型应用过程中&#xff0c;面临四大挑战&#xff1a; 首先&#xff0c;数据准备时…

2、用phpMyAdmin修改mysql的密码

用phpMyAdmin登录mysql服务器&#xff0c;默认的用户名密码为 Username: root Password: [null] 在账户中修改密码

css3的新特性

动画效果 过渡 transition 鼠标放上去瞬间变大 过渡是变大的过程慢慢变化 第一个参数&#xff1a;对哪些值进行过渡。all为hover中所有&#xff0c;也可以指定属性 第二个参数&#xff1a;让动画过渡多长时间。要添加单位&#xff08;s秒&#xff09; 第三个参数&#xff1…

光速吟唱,Clibor ,批量多次复制依次粘贴工具 快捷输入软件教程

批量多次复制依次粘贴工具 批量复制粘贴工具0.81.exe https://www.aliyundrive.com/s/3sbBaGmHkb8 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需下载极速在线查看&#xff0c;视频原画倍速播放。 青县solidworks钣金设计培训 …

超级详细的 Docker Desktop 安装 GitLab

一、GitLab介绍 GitLab 分为 社区版&#xff08;Community Edition&#xff0c;缩写为 CE&#xff09;和 企业版&#xff08;Enterprise Edition&#xff0c;缩写为 EE&#xff09;。社区版是免费的&#xff0c;而企业版包含一些收费服务&#xff0c;一般来说个人开发者用社区版…

听GPT 讲K8s源代码--pkg(二)

在 Kubernetes&#xff08;K8s&#xff09;项目中&#xff0c;pkg/controller 目录是用于存放控制器&#xff08;Controller&#xff09;相关的代码的目录。控制器是 Kubernetes 的核心组件之一&#xff0c;用于管理和控制集群中的资源对象的状态和行为。 pkg/controller 目录的…

windows上安装Vmware及Linux系统

Linux系统的安装 一、windows上安装Vmware 第一步&#xff1a;复制VMware软件包到Windows系统中 第二步&#xff1a;双击VMware安装包&#xff0c;进行软件的安装 第三步&#xff1a;勾选软件的许可协议 第四步&#xff1a;设置VMware安装路径以及勾选增强型的键盘程序 第五步…

深度挖掘文物价值,VR博物馆讲好文物故事

文物不言&#xff0c;自有春秋。丝绸、字画、瓷器、古玩等&#xff0c;铺陈的是传奇&#xff0c;激荡的是灵魂。历史文物珍贵的莫过于其历史与文化的价值&#xff0c;倘若不能被更多的人欣赏、研究、传承&#xff0c;那么这些文物就很难实现“价值外溢”。 单纯的去读历史课本&…

【国产复旦微FMQL45教程】-Procise应用流程

本教程采用 FMQL7045 FPGA开发板来完成整个试验&#xff0c;板卡照片如下&#xff1a; 具有丰富的接口资源&#xff0c;系统框图如下&#xff1a; 本教程用于完成基于Vivado的FMQL45的LED实验&#xff0c;目标是能够将这款开发板PL端先跑起来。 2 Procise工程建立 &#xff0…

基于 FFmpeg 的跨平台视频播放器简明教程(六):使用 SDL 播放音频和视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;一&#xff09;&#xff1a;FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;二&#xff09;&#xff1a;基础知识和解封装&#xff08;demux&#xff09;基于 FFmpeg 的跨平台视频…