LOU4104639182 L8 2020-05-05 10:18:20 理解ROS话题
351 0

“ROS 机器人操作系统初级教程”实验报告

理解ROS话题

一,开始实验

1、运行roscore,

$ roscore

image.png

2:turtlesim,在一个新的终端中运行:

$ rosrun turtlesim turtlesim_node

image.png

3:通过键盘来控制turtle的运动,在一个新的终端运行:

$ rosrun turtlesim turtle_teleop_key

可以使用键盘上的方向键来控制turtle运动了。如果不能控制,选中turtle_teleop_key所在的终端窗口以确保按键输入能够被捕获。

image.png

二:ROS Topics

turtlesim_node 节点和 turtle_teleop_key 节点之间是通过一个 ROS 话题来互相通信的。turtle_teleop_key 在一个话题上发布按键输入消息,而 turtlesim 则订阅该话题以接收该消息。

rqt_graph能够创建一个显示当前系统运行情况的动态图形。rqt_graph是rqt程序包中的一部分。运行程序

$ rosrun rqt_graph rqt_graph image.png

3rostopic

rostopic命令工具能让你获取有关ROS话题的信息。 你可以使用帮助选项查看rostopic的子命令

4;使用 rostopic echo

rostopic echo可以显示在某个话题上发布的数据。 用法

$ rostopic echo [topic]

$ rostopic echo /turtle1/cmd_vel 按下向上方向键时应该会看到下面的信息 image.png

5:使用 rostopic list,rostopic list能够列出所有当前订阅和发布的话题。

三:ROS Messages

话题之间的通信是通过在节点之间发送ROS消息实现的。对于发布器(turtle_teleop_key)和订阅器(turtulesim_node)之间的通信,发布器和订阅器之间必须发送和接收相同类型的消息。

1:使用 rostopic type

rostopic type 命令用来查看所发布话题的消息类型,指令如下:

$ rostopic type [topic]

$ rostopic type /turtle1/cmd_vel

四:继续学习 rostopic

1 使用 rostopic pub。

rostopic pub可以把数据发布到当前某个正在广播的话题上,程序如下:

$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]' 以上命令会发送一条消息给turtlesim,告诉它以2.0大小的线速度和1.8大小的角速度开始移动。 image.png

2:使用 rostopic hz

rostopic hz命令可以用来查看数据发布的频率。

3:使用 rqt_plot

rqt_plot命令可以实时显示一个发布到某个话题上的数据变化图形。这里我们将使用rqt_plot命令来绘制正在发布到/turtle1/pose话题上的数据变化图形。首先,在一个新终端中运行rqt_plot命令: $ rosrun rqt_plot rqt_plot

小结:本章理解了ROS话题是如何工作的,比较复杂,内容也比较多,分为几个板块,每一个板块都围绕着ROS的工作条件来进行。

最新评论
暂无评论~