电子说
小海龟(Turtlesim)是ROS2中一个非常重要的入门级例程,通过海龟仿真,我们可以了解到很多ROS2的底层原理,涉及节点、话题、服务等核心概念。
安装海龟仿真器
Linux:
sudo apt update
sudo apt install ros-foxy-turtlesim
Windows:
默认已经安装好
如果你不确定是否安装成功,可以使用该命令检查:
ros2 pkg executables turtlesim
看到如下内容说明安装成功:
启动海龟仿真器
终端中输入如下命令启动海龟仿真器:
ros2 run turtlesim turtlesim_node
很快可以看到一个打开的仿真器界面,里边会随机使用一个ROS2的logo作为显示海龟的位置:
终端中可以看到海龟的名字和在仿真器坐标系下的位置:
接下来让海龟动起来,打开一个新的终端,输入如下命令:ros2 run turtlesim turtle_teleop_key 然后根据终端中的提示点击键盘按键,即可控制小海龟运动啦,注意一定要让键盘控制节点在激活状态:
我们可以使用如下命令看看小海龟后台到底运行了哪些功能:
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
安装rqt工具
Linux:
sudo apt update
sudo apt install ~nros-foxy-rqt*
Windows:
默认已经安装 安装完成后使用如下命令运行:rqt 第一次打开的界面是空的,选择Plugins > Services > Service Caller 这个插件是用来发布服务请求的,点击刷新按键之后,可以看到系统当前的所有服务。
选择/spawn服务,双击下边的数据项,填写新产生海龟的名字和位置,然后点击“Call”,即可发送服务请求。注意名字一定不能和已有的海龟名字一样,不然会有报错。
很快就可以在海龟仿真器当中看到另外一只海龟啦!
产生的不仅是一只新的海龟,还会有“turtle2”对应的话题、服务,可以说和turtle1是功能完全一样的两只海龟。
还可以尝试另外一个服务/set_pen,通过设置画笔,调整海龟轨迹的颜色。如下图所示,设置画笔的rgb值和宽度,点击“Call”之后,再运动海龟就可以看到全新的轨迹效果啦。
大家一定会有一个问题,第二只海龟如何运动呢?仿真器默认的键盘控制节点只能发布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啦,不信在该终端中点击键盘试一下。
参考链接:
https://index.ros.org/doc/ros2/Tutorials/Turtlesim/Introducing-Turtlesim/
全部0条评论
快来发表一下你的评论吧 !