当前位置: 首页 > news >正文

ROS理论与实践学习笔记——2 ROS通信机制之通信机制实践

5.1 话题发布

        需求描述:编码实现乌龟运动控制,让小乌龟做圆周运动。

        实现分析:

        ①乌龟运动控制实现,关键节点有两个,一个是乌龟运动显示节点 turtlesim_node,另一个是控制节点,二者是订阅发布模式实现通信的,乌龟运动显示节点直接调用即可,运动控制节点之前是使用的 turtle_teleop_key通过键盘 控制,现在需要自定义控制节点。

        ②控制节点自实现时,首先需要了解控制节点与显示节点通信使用的话题与消息,可以使用ros命令结合计算图来获取。

        ③通过 C++ 或 Python 编写运动控制节点,通过指定的话题,按照一定的逻辑发布消息。

        实现流程:

        ①通过计算图结合ros命令获取话题与消息信息。

        ②编码实现运动控制节点。

        ③启动 roscore、turtlesim_node 以及自定义的控制节点,查看运行结果。

(1)话题获取

 (2)消息获取

 (3)实现发布节点

创建功能包需要依赖的功能包: roscpp rospy std_msgs geometry_msgs

C++

 python

 5.2 话题订阅

        需求描述: 已知turtlesim中的乌龟显示节点,会发布当前乌龟的位姿(窗体中乌龟的坐标以及朝向),要求控制乌龟运动,并时时打印当前乌龟的位姿。

        实现分析:

        ①启动乌龟显示以及运动控制节点并控制乌龟运动。

        ②通过ROS命令,来获取乌龟位姿发布的话题以及消息。

        ③编写订阅节点,订阅并打印乌龟的位姿。

        实现流程:

        ①通过ros命令获取话题与消息信息。

        ②编码实现位姿获取节点。

        ③启动 roscore、turtlesim_node 、控制节点以及位姿订阅节点,控制乌龟运动并输出乌龟的位姿。

(1)话题与消息获取

 (2)实现订阅节点

创建功能包需要依赖的功能包: roscpp rospy std_msgs turtlesim

C++

python  

 5.3 服务调用

        需求描述:编码实现向 turtlesim 发送请求,在乌龟显示节点的窗体指定位置生成一乌龟,这是一个服务请求操作。

        实现分析:

        ①需要启动乌龟显示节点。

        ②通过ROS命令,来获取乌龟生成服务的服务名称以及服务消息类型。

        ③编写服务请求节点,生成新的乌龟。

        实现流程:

        ①通过ros命令获取服务与服务消息信息。

        ②编码实现服务请求节点。

        ③启动 roscore、turtlesim_node 、乌龟生成节点,生成新的乌龟。

(1)服务名称与服务消息获取

 (2)服务客户端实现

创建功能包需要依赖的功能包: roscpp rospy std_msgs turtlesim

 C++

python  

 5.4 参数设置

        需求描述: 修改turtlesim乌龟显示节点窗体的背景色,已知背景色是通过参数服务器的方式以 rgb 方式设置的。

        实现分析:

        ①启动乌龟显示节点。

        ②通过ROS命令,来获取参数服务器中设置背景色的参数。

        ③编写参数设置节点,修改参数服务器中的参数值。

        实现流程:

        ①通过ros命令获取参数。

        ②编码实现服参数设置节点。

        ③启动 roscore、turtlesim_node 与参数设置节点,查看运行结果。

(1)参数名获取

(2)参数获取

C++

python

相关文章:

ROS理论与实践学习笔记——2 ROS通信机制之通信机制实践

5.1 话题发布 需求描述:编码实现乌龟运动控制,让小乌龟做圆周运动。 实现分析: ①乌龟运动控制实现,关键节点有两个,一个是乌龟运动显示节点 turtlesim_node,另一个是控制节点,二者是订阅发布模…...

CDGA|数据治理:策略与价值的深度融合

在当今这个数据驱动的时代,企业数据治理的重要性日益凸显。数据不仅是企业的核心资产,更是驱动业务决策、优化运营流程、创新产品服务的关键力量。然而,要让数据治理真正发挥价值,企业需要采取一系列策略来确保数据的准确性、完整…...

49. 建模软件绘制3D场景(Blender)

这文章主要给大家科普一些三维模型创建、美术和程序员协作的相关问题。 三维建模软件作用 对于简单的立方体、球体等模型,你可以通过three.js的几何体相关API快速实现,不过复杂的模型,比如一辆轿车、一栋房子、一个仓库,一般需要…...

如何使用 DomCrawler 进行复杂的网页数据抓取?

在互联网时代,数据是宝贵的资源。无论是市场分析、客户洞察还是内容聚合,从网页中抓取数据都是一项关键技能。Symfony 的 DomCrawler 是一个强大的工具,可以帮助开发者从复杂的网页中提取所需的数据。本文将详细介绍如何使用 DomCrawler 进行…...

维修服务品牌小程序渠道客获

维修服务可覆盖家电电器、家具、手机电脑等多个细分类目,本地同城也有着不少目标用户且该行业客户有着一定粘性,比如服务完成递上一张名片/电话留存则有着较高复购率。 线上各行业便捷化程度提升,服务进店/上门都需要快捷完成,包…...

【全新课程】正点原子《基于GD32 ARM32单片机项目实战入门》培训课程上线!

正点原子《基于GD32 ARM32单片机项目实战入门》全新培训课程上线啦!正点原子工程师手把手教你学!彻底解决ARM32单片机项目入门难的问题! 一、课程介绍 本课程专为ARM32单片机的入门学习者设计,涵盖了环境搭建、编程软件使用、模…...

Kafka系列之:安装使用kafka_exporter详细步骤

Kafka系列之:安装使用kafka_exporter详细步骤 一、kafka_exporter二、下载kafka_exporter三、理解Topic Metrics指标四、理解Consumer Groups Metrics指标五、启动kafka_exporter六、查看页面七、systemctl托管服务一、kafka_exporter kafka_exporter源码kafka_exporter下载页…...

Paddlets时间序列集成模型回测实战:MLPRegressor、NHiTSModel与RNNBlockRegressor

好的,我们继续深入理解代码的每个部分。以下是每个主要模块的详细解释: 1. 导入模块和库 import json import os import glob import pandas as pd from tqdm import tqdm from paddlets.datasets import TSDataset from paddlets.transform import StandardScaler from pa…...

【anki】显示 “连接超时,请更换网络后重试” 怎么办

文章目录 前言一、问题描述二、解决方案 前言 在 anki同步 时遇到的问题 一、问题描述 二、解决方案 从电信换为了移动热点,电脑手机都同步成功了...

第一批学习大模型的程序员,已经碾压同事了,薪资差距都甩出一条街了...

前言 随着人工智能技术的突飞猛进,AI大模型已成为引领未来的核心技术。从ChatGPT的横空出世到GPT-4o的震撼发布,AI技术正以前所未有的速度改变着我们的生活和工作方式。 在这场AI革命中,企业对AIGC人才的需求正以指数级增长。据《AIGC就业趋…...

Unity NetCode 客户端连接不上服务器,局域网模式 Failed to connect to server.

报错代码: Failed to connect to server. 报错截图: 解决办法: 服务端:绑定127.0.0.1和端口 客户端:写好对应服务端ip和端口 如何查看服务端所在局域网IP,192.xxx.xxx.xx,就不用教了吧。 注意这个钩,得点下,默认不勾选。 意…...

C++远端开发环境安装(centos7)

使用VMWare安装centos7 启用网卡设备 修改文件/etc/sysconfig/network-scripts/ifcfg-ens33中的ONBOOTyes 重启网络服务 systemctl restart network 配置yum仓库 直接将如下内容覆盖原有的/etc/yum.repos.d/CentOS-Base.repo文件 清理yum缓存 yum clean all 刷新yum yu…...

LaTeX 编辑器-TeXstudio

TeXstudio 是一款开源跨平台 LaTeX 编辑软件,界面与 Texmaker 类似。TeXstudio 为用户提供互动式拼写检查、代码折叠、语法高亮、代码提示和自动完成等特性,功能丰富,界面美观,但软件本身不提供底层功能,需要使用者自行…...

[深度学习]循环神经网络

1 自然语言处理概述 语料:一个样本,句子/文章语料库:由语料组成词表:分词之后的词语去重保存成为词表 2 词嵌入层 import jieba import torch.nn as nn import torch # 文本数据 text北京东奥的进度条已经过半,不少外…...

景联文科技精准数据标注:优化智能标注平台,打造智能未来

景联文科技是一家致力于为人工智能提供全面数据标注解决方案的专业公司。 拥有一支由经验丰富的数据标注师和垂直领域专家组成的团队,确保数据标注的质量和专业性。 自建平台功能一站式服务平台,提供从数据上传、标注、审核到导出的一站式服务&#xff0…...

商场促销——策略模式

文章目录 商场促销——策略模式商场收银软件增加打折简单工厂实现策略模式策略模式实现策略与简单工厂结合策略模式解析 商场促销——策略模式 商场收银软件 时间:2月27日22点  地点:大鸟房间  人物:小菜、大鸟 “小菜,给你…...

万字长文,AIGC算法工程师的面试秘籍,推荐收藏!

目录先行 AI绘画基础: 什么是DreamBooth技术?正则化技术在AI绘画模型中的作用? 深度学习基础: 深度学习中有哪些常用的注意力机制?如何寻找到最优超参数? 机器学习基础: 判别式模型和生成…...

一些超好用的 GitHub 插件和技巧

聊聊我平时使用 GitHub 时学到的一些插件、技巧。 ‍ ‍ 浏览器插件 在我的另一篇博客 浏览器插件推荐 里提到过跟 GitHub 相关的一些插件,这里重复下: Sourcegraph:在线打开项目,方便阅读,将 GitHub 变得和 IDE …...

记Flink SQL 将数据写入 MySQL时的一个优化策略

Flink SQL 将数据写入 MySQL 时,如果主分片数较少,可以通过调整 MySQL 的主分片数来提高读写性能 1. 检查当前的分片设置 在 MySQL 中,使用以下 SQL 查询来查看当前的分片情况: SHOW VARIABLES LIKE innodb_buffer_pool_size; …...

QT-自定义信号和槽对象树图形化开发计算器

1. 自定义信号和槽 核心逻辑: 需要有两个类,一个提供信号,另一个提供槽。 然后在窗口中将 信号和槽 链接起来。 示例目标: 创建一个 Teacher 类,提供信号。 创建一个 Student 类,提供槽。 实现步骤&…...

AssetStudio终极指南:5步解锁Unity游戏资源的完整解决方案

AssetStudio终极指南:5步解锁Unity游戏资源的完整解决方案 【免费下载链接】AssetStudio AssetStudio - Based on the archived Perfares AssetStudio, I continue Perfares work to keep AssetStudio up-to-date, with support for new Unity versions and additio…...

杰理之AutoDuck 闪避节点参数更新结构体【篇】

struct autoduck_update_parm{ int duck_amount; //背景音乐闪避的音量值(dB) int attack; //启动时间(ms) int release; //释放时间(ms) int hold_time; //闪避之后的保持时间 (ms) }; typedef struct AutoDuckParam_TOOL_SET { int is_bypass; struct aut…...

2026年阿里云部署OpenClaw/Hermes Agent 配置Token Plan怎么快速上手?看这

2026年阿里云部署OpenClaw/Hermes Agent 配置Token Plan怎么快速上手?看这。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token …...

上海软件定制开发技术路径深度拆解:PaaS云架构如何重构企业系统交付模式

摘要:本文围绕上海软件定制开发的核心技术路径展开分析,重点拆解PaaS云架构在企业软件交付中的实现机制、架构取舍与落地约束,并结合典型平台的工程实践,探讨不同开发模式在性能、兼容性与运维成本上的真实差异。企业在推进数字化…...

开源机械爪OpenClaw UBI:从3D打印到Arduino控制的低成本机器人抓取方案

1. 项目概述:一个基于开源硬件的机械爪设计与实现最近在整理工作室的物料时,翻出了几个闲置的步进电机和一堆3D打印件,这让我想起了几年前一个挺有意思的项目——OpenClaw UBI。这是一个在开源硬件社区里流传的、基于通用构建接口&#xff08…...

Steam创意工坊模组下载终极指南:轻松获取1000+游戏模组的完整解决方案

Steam创意工坊模组下载终极指南:轻松获取1000游戏模组的完整解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为无法下载Steam创意工坊模组而烦恼吗&…...

如何为 Claude Code 配置 Taotoken 的稳定 API 连接

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为 Claude Code 配置 Taotoken 的稳定 API 连接 Claude Code 作为一款强大的 AI 编程助手,其原生服务在某些地区可…...

SAP S/4HANA Cloud Public Edition 3-System Landscape 里的系统与 Tenant 设计

做 SAP S/4HANA Cloud Public Edition 项目时,最容易被低估的一件事,不是功能点本身,而是系统与 tenant 的边界。很多实施风险,并不是来自某个配置字段填错,也不是来自某段 ABAP 扩展代码写得不够优雅,而是项目一开始就没有把 Development、Test、Production、Customizin…...

从PCB走线到连接器:手把手教你用ADS仿真优化S参数(避坑SI/PI设计)

从PCB走线到连接器:用ADS仿真优化S参数的实战指南 在高速数字电路和射频设计中,S参数就像设计师的"体检报告",直观反映信号传输路径的健康状况。想象一下,当你设计的PCIe Gen4接口在实验室测试时出现信号完整性问题&am…...

Obsidian Projects:开源文本项目管理的终极解决方案

Obsidian Projects:开源文本项目管理的终极解决方案 【免费下载链接】obsidian-projects Plain text project planning in Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-projects 在当今信息爆炸的时代,高效的项目管理工具已成…...