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

本文介绍了如何在ROS2环境中使用turtlesim模拟器和rqt工具。启动turtlesim_node后,通过turtle_teleop_key节点控制乌龟移动,并利用rqt图形界面调用服务如/spawn创建新乌龟,以及set_pen服务改变乌龟绘图颜色。此外,还讲解了如何通过主题重映射控制多个乌龟。
摘要由CSDN通过智能技术生成

目标:使用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了两次,所以有三只小乌龟:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值