ROS2入门教程——4. 小海龟仿真器基础使用

706
0
2020年8月5日 10时14分

小海龟(Turtlesim)是ROS2中一个非常重要的入门级例程,通过海龟仿真,我们可以了解到很多ROS2的底层原理,涉及节点、话题、服务等核心概念。

 

1.安装海龟仿真器

Linux:

sudo apt update
sudo apt install ros-foxy-turtlesim

 

Windows:

默认已经安装好

 

ROS2入门教程——4. 小海龟仿真器基础使用插图

 

如果你不确定是否安装成功,可以使用该命令检查:

ros2 pkg executables turtlesim

 

看到如下内容说明安装成功:

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(1)

 

2. 启动海龟仿真器

 

终端中输入如下命令启动海龟仿真器:

ros2 run turtlesim turtlesim_node

 

很快可以看到一个打开的仿真器界面,里边会随机使用一个ROS2的logo作为显示海龟的位置:

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(2)

 

终端中可以看到海龟的名字和在仿真器坐标系下的位置:

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(3)

 

接下来让海龟动起来,打开一个新的终端,输入如下命令:

ros2 run turtlesim turtle_teleop_key

 

然后根据终端中的提示点击键盘按键,即可控制小海龟运动啦,注意一定要让键盘控制节点在激活状态:

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(4)

 

我们可以使用如下命令看看小海龟后台到底运行了哪些功能:

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

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(5)

 

3、安装rqt工具

 

Linux:

sudo apt update
sudo apt install ~nros-foxy-rqt*

 

Windows:

默认已经安装

 

安装完成后使用如下命令运行:

rqt

 

第一次打开的界面是空的,选择Plugins > Services > Service Caller

 

这个插件是用来发布服务请求的,点击刷新按键之后,可以看到系统当前的所有服务。

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(6)

 

选择/spawn服务,双击下边的数据项,填写新产生海龟的名字和位置,然后点击“Call”,即可发送服务请求。注意名字一定不能和已有的海龟名字一样,不然会有报错。

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(7)

 

很快就可以在海龟仿真器当中看到另外一只海龟啦!

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(8)

 

产生的不仅是一只新的海龟,还会有“turtle2”对应的话题、服务,可以说和turtle1是功能完全一样的两只海龟。

 

还可以尝试另外一个服务/set_pen,通过设置画笔,调整海龟轨迹的颜色。如下图所示,设置画笔的rgb值和宽度,点击“Call”之后,再运动海龟就可以看到全新的轨迹效果啦。

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(9)

 

大家一定会有一个问题,第二只海龟如何运动呢?仿真器默认的键盘控制节点只能发布turtle1的话题,但是通过ROS的重映射(remapping)机制,可以实现对话题的重新命名。

 

在一个新的终端中输入如下指令:

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

 

这里就把turtle1/cmd_vel这个话题名更改为了turtle2/cmd_vel,现在该节点就可以控制turtle2啦,不信在该终端中点击键盘试一下。

 

ROS2入门教程——4. 小海龟仿真器基础使用插图(10)

 

参考链接:

https://index.ros.org/doc/ros2/Tutorials/Turtlesim/Introducing-Turtlesim/

 

发表评论

后才能评论