开始学习使用 turtlesim, ros2, and rqt

news2025/1/10 10:36:43

目标:使用turtlesim软件包和rqt工具

Background

Turtlesim是一个用于学习ROS 2的轻量级模拟器。它说明了ROS 2在最基本的层面上所做的事情,让我们学习知道以后你将如何处理真实的机器人或机器人模拟。

ros2工具是用户如何管理、检查和与ROS系统交互的。它支持针对系统及其操作的不同方面的多个命令。可以使用它来启动节点、设置参数、收听主题等等。ros2工具是核心ros2安装的一部分。

rqt是ROS2的图形用户界面(GUI)工具。rqt中所做的一切都可以在命令行上完成,但rqt提供了一种更用户友好的方式来操作ROS2元素。

Prerequisites

需要安装配置好ROS2的开发环境,具体见 (Ubuntu22.04 Jammy)安装ROS 2 Iron Irwini

Start turtlesim

要启动turtlesim,请在终端中输入以下命令:

ros2 run turtlesim turtlesim_node

模拟器窗口应该出现,中间有一只随机的乌龟。

在这里插入图片描述

在终端中,在命令下,将看到来自节点的消息:

[INFO] [1685160202.691763002] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [1685160202.777406110] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]

可以看到默认乌龟的名字和它出生的坐标。

Use turtlesim

打开一个新的终端,输入与以下命令
现在,将运行一个新节点来控制第一个节点中的乌龟:

ros2 run turtlesim turtle_teleop_key

此时,打开三个窗口:运行turtlesim_node的终端、运行turtle_teleop_key的终端和turtlesim窗口。排列这些窗口,这样就可以看到turtlesim窗口,也可以激活运行turtle_teleop_key的终端,这样就能控制turtlesim中的乌龟。
使用键盘上的箭头键来控制乌龟。它将在屏幕上移动,使用其附带的“笔”绘制迄今为止所遵循的路径。

在这里插入图片描述

可以使用相应命令的列表子命令来查看节点及其关联的topics、services和操actions:

ros2 node list
ros2 topic list
ros2 service list
ros2 action list

在这里插入图片描述
在这里插入图片描述

Use rqt

另外打开一个新的终端:

rqt

在这里插入图片描述

第一次运行rqt时,窗口将为空白。不用担心;只需从顶部的菜单栏中选择Plugins > Services > Service Caller

使用“Service”下拉列表左侧的刷新按钮,确保您的turtlesim节点的所有服务都可用。

在这里插入图片描述

单击“Service”下拉列表以查看turtlesim的服务,然后选择/spown服务。

要生成turtle2,需要通过单击rqt窗口右上角的call按钮来调用该服务。
如果服务调用成功,应该会看到一只新的海龟(同样是随机设计的)在为x和y输入的坐标处开始。
如果你刷新rqt中的服务列表,你还会看到现在有与新海龟相关的服务,/turtle2/…,除了/turtle1/…

Try the set_pen service

现在,让我们使用set_pen Service 为turtle1提供一支独特的钢笔:

在这里插入图片描述

r、g和b的值介于0和255之间,用于设置turtle1绘制的颜色,width用于设置线条的厚度。
要让turtle11画一条明显的红线,请将r值更改为255,将width值更改为5。不要忘记在更新值后调用服务。
如果您返回运行turtle_teleop_key的终端并按下箭头键,您将看到turtle1的笔已更改。

在这里插入图片描述

在这里插入图片描述

注意到,没有办法移动turtle2。这是因为对于turtle2来说没有目的节点。

重新映射

需要第二个遥控器节点来控制turtle2。但是,如果尝试运行与以前相同的命令,会注意到这个命令也控制turtle1。更改此行为的方法是重新映射cmd_vel主题。
在新的终端中运行:

ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel

本次因call了两次,所以有三只小乌龟:

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

涨粉秘籍 | 如何快速涨粉并转化为铁粉?

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【封装那些事】 缺失封装

缺失封装 没有将实现变化封装在抽象和层次结构中时,将导致这种坏味。 表现形式通常如下: 客户程序与其需要的服务变种紧密耦合,每当需要支持新变种或修改既有变种时,都将影响客户程序。每当需要在层次结构中支持新变种时,都添加…

港联证券投资前瞻:核电订单重回历史高位 C919圆满完成商业首航

上周五,沪指盘中弱势震荡下探,午后反弹拉升,科创50指数表现强势。截至收盘,沪指涨0.35%报3212.50点,深成指涨0.12%报10909.65点,创业板指跌0.66%报2229.27点,科创50指数涨1.66%;两市…

干货!详解playwright实现自动等待的原理

playwright在执行操作之前对元素执行一系列可操作性检查,以确保这些行动按预期运行。它会自动等待(auto-wait)所有相关检查通过,然后才执行请求的操作。如果所需的检查未在给定的范围内通过timeout,则操作将失败并显示…

vue项目中详情页向下滚动,导航选中;点击导航,详情页跳到指定区域

需求1:滚轮向下滚动的时候,导航选中 需求2:点击导航的时候,会跳转到目标区域 在生命周期中获取屏幕的高度 mounted() {//获取屏幕高度console.log(document.documentElement.clientHeight);//667}, 这里就考虑到项目优化防抖与…

2023年上半年软件设计师考试中级真题答案+解析(详细版)

目录 背景过程计算机组成原理产权保护结构化开发方法 总结 背景 2023年软考讲解 软考(软件技术人员职业资格考试)是中国的一项职业资格考试,主要针对软件行业从业人员。软考的主要目标是评估考生在软件开发、软件测试、软件项目管理等方面的…

音乐小白乐器选择,如何学一手才艺,推荐尤克里里

乐器难度说明 注意:这里的难度说明是音准的难度,就是能不能发出标准的声音 乐器按照演奏方式分类,分为 演奏方式乐器举例难度等级难度说明敲击木鱼,架子鼓,钢琴1敲击乐是音最准的,敲哪个地方就发什么音&…

MongoDB学习笔记三

目录 1.数据库增删 1.1数据库创建 1.2数据库删除 2.集合增删 2.1创建集合 2.2删除集合 3.文档增删改查 3.1查询文档 3.2创建文档 3.3删除文档 3.4更新/修改文档 1.数据库增删 1.1数据库创建 数据库创建语法格式: use DatabaseName 在mongodb中使用use与在m…

油猴配置教程

文章目录 目录 文章目录 前言 一. 安装油猴 二、使用步骤 三.安装插件 (ChatGPT) 四. 脚本推荐 前言 作者简介: zuiacsn 座右铭: 抱怨身处黑暗,不如提灯前行 内容介绍: 油猴 油猴(Tampermonkey)指的是一个流行的用户脚本管理器,它能使…

智能照明“暗潮涌动”

在技术持续升级、消费者观念发生转变等多方因素的共同影响下,与智能相关的设备销量逐渐走俏。能够为人们带来便捷、舒适的智能家居产品也逐渐走进千家万户,深入到人们的日常生活中。在此背景下,智能家居行业日渐火热,实现了飞速发…

SLMi331数明深力科带DESAT保护功能隔离驱动应用笔记

SLMi33X系列SLMi331数明深力科首款单通道带DESAT保护功能的IGBT/SiC隔离驱动器。内置快速去饱和(DESAT) 故障检测功能、米勒钳位功能、漏极开路故障反馈、软关断功能以及可选择的自恢复模式,兼容光耦隔离驱动器。 SLMi331的DESAT阈值为6.5V,其最大驱动电…

Facebook广告投放和海外品牌推广(KOL)哪个未来发展好一点?

在当今数字化时代,品牌推广和营销策略正不断演变和创新。在海外市场拓展和品牌推广方面,Facebook广告投放和海外品牌推广(KOL)已经成为两种备受关注的策略。 1.Facebook广告投放的优势: 广告定位精准:Faceb…

究诸经典,探寻大模型演变之踪迹

编者按:在仅仅五年的时间里,大语言模型、transformers几乎完全改变了自然语言处理领域。 为了便于快速、扎实、深入地学习大语言模型,本文整理一个简单的经典学术资料列表,供正在入门中的机器学习研究人员和开发者参考。 以下是译…

JAVA基础---集合

一、树结构 二叉树、二叉查找树、平衡二叉树、红黑树 1、数据结构遍历方式 1、前序遍历:当前节点、左子节点、右子节点 2、中序遍历:左子节点、当前节点、右子节点 3、后序遍历:左子节点、右子节点、当前节点 4、层序遍历:一层…

几个提高工作效率的 Python 自动化脚本,收藏!

在这个自动化时代,我们有很多重复无聊的工作要做。 想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。 那么在本文中,我将向您介绍 10 个 Python 自动化脚本,以使你的工作更加自动化&#…

javaWeb ssh小提琴管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh小提琴管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,…

TypeScript实现贪吃蛇游戏

TS实现贪吃蛇游戏 文章目录 TS实现贪吃蛇游戏[toc]1.项目效果2.项目梳理3.项目准备4.主体页面结构5.CSS样式6.TS逻辑6.1 食物逻辑6.2 蛇逻辑6.3 记分板逻辑6.4 游戏控制器逻辑6.5 程序入口ts 1.项目效果 项目体验 2.项目梳理 这个小游戏主要包括积分面板,食物&…

2023上半年软件设计师真题评析

2023年上半年软设是2018年改版后的一次考试,以下内容根据考完回忆结合网上暂时流传的真题(不保证完全正确)整理,主要侧重相关知识点罗列,少讲或不讲具体的答案,主要给自己的计算机基础查漏补缺,同时也希望对大家有帮助…

基于AI技术的APP外包开发流程

AI技术发展非常迅速,最近一年有了巨大的技术突破,一些专家认为可以基于现在的AI技术将APP再重做一遍,这无疑将给创业者带来巨大机会。今天和大家分享使用AI重做一个APP的步骤和注意事项,希望对大家有所帮助。 需要遵循以下步骤和注…

5601-RIO-MCM 消除Modbus网络上的通信错误

当端口配置为从端口时,此参数指定内部用作Holding的零地址或起点的数据库地址 寄存器(16位整数)数据。Modbus功能读取保持寄存器数据代码3命令(读取保持寄存器)和由功能代码6写入(预设单寄存器)…