【ROS教程demo】用C++创建一个ROS节点,发布指令使得小海龟做圆周运动

news2024/12/23 18:05:58

ROS创建节点发布命令使得小海龟做圆周运动

  • 1.任务需求
  • 2.任务分析
    • 2.1发布方topic和msg
    • 2.2接收方topic和msg
    • 2.3目标明确!
  • 3.创建ROS节点
    • 3.1创建发布方节点pub_pose
    • 3.2创建订阅方节点sub_pose

1.任务需求

  创建一个节点,在其中实现一个订阅者和一个发布者,完成以下功能:

  • 发布者:发布海龟速度指令,让海龟做圆周运动;
  • 订阅者:订阅海龟的位置信息,并在终端中周期打印输出;

2.任务分析

  要发布海龟速度指令,我们得先知道海龟速度指令对应的话题名称和数据格式是什么,首先生成一只小海龟,并用键盘控制其运动。打开roscore
在这里插入图片描述

  启动小海龟rosrun turtlesim turtlesim_node
在这里插入图片描述

2.1发布方topic和msg

  查看当前有那些话题rostopic list
在这里插入图片描述

  其中 cmd_vel 是速度指令话题,获取这个话题的消息类型rostopic type /turtle1/cmd_vel如下:
在这里插入图片描述

  可以看到,发布速度信息的消息名称是 geometry_msgs/Twist,我们继续用指令rosmsg info geometry_msg/Twist查看这个消息的具体格式,分别由 xyz 方向上的线速度和 xyz 方向的角速度组成。
在这里插入图片描述

2.2接收方topic和msg

  pose 是小海龟当前姿态话题,用rostopic type /turtle1/pose获取这个话题的消息类型为turtlesim/Pose如下:
在这里插入图片描述

  同样查看该topic的消息类型rosmsg info turtlesim/Pose
在这里插入图片描述

2.3目标明确!

  因此我们的目的便明确了:

  • 建立一个发布方节点,发布的话题名称是/turtle1/cmd_vel/turtle1/cmd_vel的消息格式是 geometry_msgs/Twist,具体的数值可以设置为 x 方向线速度为1,z 方向角速度为1;
  • 建立一个订阅方的节点,订阅的话题为/turtle1/pose/turtle1/pose的数据格式为turtlesim/Pose

3.创建ROS节点</

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打造中国汽车出海新名片,比亚迪亮相东京车展

作为全球知名的国际车展&#xff0c;东京车展向来都被业界人士誉为“亚洲汽车风向标”。2023年10月25日&#xff0c;第47届东京车展&#xff08;自2023年更名为“日本移动出行展”&#xff09;在东京国际展览中心如期揭幕。 作为中国车企的代表品牌&#xff0c;比亚迪携海豹、海…

40基于MATLAB,使用模板匹配法实现车牌的识别。

基于MATLAB&#xff0c;使用模板匹配法实现车牌的识别。具体包括将原图灰度化&#xff0c;边缘检测&#xff0c;腐蚀操作&#xff0c;车牌区域定位&#xff0c;车牌区域矫正&#xff0c;二值化&#xff0c;均值滤波&#xff0c;切割&#xff0c;字符匹配&#xff0c;最终显示车…

【数据库】Python脚本实现数据库批量插入事务

背景介绍 在工作中可能会遇到需要批量插入的场景, 而批量插入的过程具有耗时长的特点, 再此过程很容易出现程序崩溃的情况.为了解决插入大量数据插入后崩溃导致已插入数据无法清理及未插入数据无法筛出的问题, 需要编写一个脚本记录已插入和未插入的数据, 并可以根据记录的数据…

阿里云服务linux系统CentOs8.5安装/卸载nginx1.15.9

说明&#xff1a;尝试使用CentOs8.5安装nginx1.9.9失败&#xff0c;make的时候报错了&#xff0c;后面降低版本为CentOs7.5安装成功了&#xff0c;参考文章:【精选】centos7安装nginx-1.9.9_linx centos nginx 1.9.9版本 nginx error log file: "/-CSDN博客 一、安装ngin…

Animator中Has Exit Time,融合时间

写这篇文章的原因是&#xff0c;发现有时候SetTrigger后动画没有切换&#xff0c;做实验找到了原因。 一、勾选了Has Exit Time 动画一定会在设定的时间才可能会切换到下个动画片段。 NormalAttack1-->NormalAttack2,结束时间设置0.5 NormalAttack1-->NormalAttack3,结…

什么是Immutable.js?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Flask-SQLAlchemy事件钩子介绍

一、前言 前几天在搜资料的时候无意中看到有介绍SQLAlchemy触发器&#xff0c;当时感觉挺奇怪的&#xff0c;触发器不是数据库层面的概念吗&#xff0c;怎么flask-SQLAlchemy这个ORM框架会有这玩意。 二、SQLAlchemy触发器一个简单例子 考虑到效率博客表中有两个字段&#xf…

【设计模式】第15节:行为型模式之“职责链模式”

一、简介 职责链模式&#xff1a;将请求的发送和接收解耦&#xff0c;让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链&#xff0c;并沿着这条链传递这个请求&#xff0c;直到链上的某个接收对象能够处理它为止。 二、优点 分离发送者和接受者易于扩展和维护…

SIT1028Q内置高压 LDO 本地互联网络(LIN)收发器

SIT1028Q 是一款内部集成高压 LDO 稳压源的本地互联网络&#xff08; LIN &#xff09;物理层收发器&#xff0c;可为外 部 ECU &#xff08; Electronic Control Unit &#xff09;微控制器或相关外设提供稳定的 5V/3.3V 电源&#xff0c;该 LIN 收发器 符合 LIN 2…

如何构建 :毫末波 与 RIS 研究系统

入门系统 USRP 上下变频器 喇叭天线 可联系博主系统的具体情况&#xff1b; 系统详情 首先需要在USRP上运行一个通信系统&#xff0c;这个系统可以是简单的文本传输系统&#xff0c;用Simulink搭建一下就行了。更加复杂的系统可以用LabVIEW或者Simulink来搭建&#xff1b;…

力扣第968题 监控二叉树 c++ hard题 二叉树的后序遍历 + 模拟 + 贪心

题目 968. 监控二叉树 困难 相关标签 树 深度优先搜索 动态规划 二叉树 给定一个二叉树&#xff0c;我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1&#xff1a; …

Linux解决nvcc -V出现的-bash: nvcc command not found问题

两种解决办法&#xff1a; 1、第一种直接在bashrc文件中添加本地cuda路径&#xff1a; vim ~/.bashrc 定位到内容末尾&#xff0c;最末尾 添加命令&#xff1a; export LD_LIBRARY_PATH/usr/local/cuda/lib export PATH$PATH:/usr/local/cuda/bin添加后激活 source ~/.bashrc…

Java通过工具类判断前端给定的实体类属性中是否为空

目录 一、场景描述 二、实现过程 1、实体类 2、工具类 3、常量类 4、测试 一、场景描述 在Java开发过程中&#xff0c;当前端页面传递参数时&#xff0c;如果我们使用实体类进行接收&#xff0c;而一些属性的值是必须有值的&#xff0c;那么就需要对这些属性进行校验&…

ERP、CRM、SRM、PLM、HRM、OA……都是啥意思?

在企业里上班&#xff0c;经常会听说一些奇怪的系统或平台名称&#xff0c;例如ERP、CRM、SRM、PLM、HRM、OA、FOL等。 这些系统&#xff0c;都是干啥用的&#xff1f; █ ERP&#xff08;企业资源计划&#xff09; 英文全称&#xff1a;Enterprise Resource Planning 定义&…

NewStarCTF2023week5-隐秘的图片

下载附件解压得到两张图片 第一张二维码扫出来提示没有什么 第二张看到的第一直觉是修复&#xff0c;因为缺了三个定位符&#xff0c;比如下面这种&#xff0c;就是修复定位符&#xff1a; 但是这里这道题仔细看一下&#xff0c;修复好了也不像正常的二维码&#xff0c;并且这…

[SHCTF 2023新生赛] web题解

文章目录 [WEEK1]babyRCE1zzphpez_serialize登录就给flag飞机大战方法一方法二 ezphp生成你的邀请函吧~ [WEEK2]serializeno_wake_upMD5的事就拜托了Hashpumphash_ext_attack脚本 ez_sstiEasyCMS [WEEK3]sseerriiaalliizzeegogogo [WEEK1] babyRCE 源码 <?php$rce $_GE…

Vue的安装

----------------------------------------------------前置---------------------------------------------------- 1.node.js的下载安装、缓存路径的设置 ①安装 ②设置npm prefix, cache 2.NODE_PATH、PATH ①系统变量中加 ②PATH中加 3.配置镜像源 -----------------------…

华锐技术何志东:证券核心交易系统分布式改造将迎来规模化落地阶段

近年来&#xff0c;数字化转型成为证券业发展的下一战略高地&#xff0c;根据 2021 年证券业协会专项调查结果显示&#xff0c;71% 的券商将数字化转型列为公司战略任务。 在落地数字化转型战略过程中&#xff0c;证券业核心交易系统面临着不少挑战。构建新一代分布式核心交易…

Ansible自动化运维工具介绍与部属

Ansible自动化运维工具介绍与部属 一、ansible简介1.1、什么是Ansible1.2、Ansible的特点1.3、Ansible的架构 二、Ansible任务执行解析2.1、ansible任务执行模式2.2、ansible执行流程2.3、ansible命令执行过程 三、部署ansible管理集群3.1、实验环境3.2、安装ansible3.3、查看基…

[架构之路-246/创业之路-77]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 客户关系管理系统CRM

目录 前言&#xff1a; 一、企业信息化的结果&#xff1a;常见企业信息化软件 1.1 客户关系管理系统CRM 1.1.1 什么是客户关系管理系统 1.1.2 CRM总体架构 1.1.3 什么类型的企业需要CRM 1.1.4 创业公司在什么阶段需要CRM 1.1.5 研发型创业公司什么时候需要CRM 1.1.6 C…