LOU4026241254 L4 2020-05-08 10:14:40 理解ROS话题
299 0

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

理解ROS话题

1.1 roscore 首先确保roscore已经运行, 打开一个新的终端:$ roscore

image.png

1.2 turtlesim 在本教程中我们也会使用到turtlesim,请在一个新的终端中运行: rosrunturtlesimturtlesimnode1.3通过键盘远程控制turtle我们也需要通过键盘来控制turtle的运动,请在一个新的终端中运行: rosrun turtlesim turtlesim_node 1.3 通过键盘远程控制turtle 我们也需要通过键盘来控制turtle的运动,请在一个新的终端中运行: rosrun turtlesim turtle_teleop_key

image.png

2 ROS Topics turtlesim_node 节点和 turtle_teleop_key 节点之间是通过一个 ROS 话题来互相通信的。turtle_teleop_key 在一个话题上发布按键输入消息,而 turtlesim 则订阅该话题以接收该消息。下面让我们使用 rqt_graph 来显示当前运行的节点和话题。

注意:如果你使用的是 electric 或更早期的版本,那么 rqt 是不可用的,请使用 rxgraph 代替。

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

如果你没有安装,请通过以下命令来安装: sudoaptgetinstallrosindigorqt sudo apt-get install ros-indigo-rqt sudo apt-get install ros-indigo-rqt-common-plugins

在一个新终端中运行: rosrunrqtgraphrqtgraph2.2rostopic介绍rostopic命令工具能让你获取有关ROS话题的信息。你可以使用帮助选项查看rostopic的子命令: rosrun rqt_graph rqt_graph 2.2 rostopic介绍 rostopic命令工具能让你获取有关ROS话题的信息。 你可以使用帮助选项查看rostopic的子命令: rostopic -h

image.png

2.3 使用 rostopic echo rostopic echo可以显示在某个话题上发布的数据。 rostopicecho[topic] rostopic echo [topic] rostopic echo /turtle1/cmd_vel 按下向上方向键时应该会看到下面的信息:

image.png

image.png

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

让我们查看一下list子命令需要的参数,在一个新终端中运行:

$ rostopic list -h

$ rostopic list -v

image.png

3.1 使用 rostopic type rostopic type 命令用来查看所发布话题的消息类型。

用法:

$ rostopic type [topic]

$ rostopic type /turtle1/cmd_vel

你应该会看到:

geometry_msgs/Twist

$ rosmsg show geometry_msgs/Twist

image.png

4.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

turtle已经停止移动了。这是因为turtle需要一个稳定的频率为1Hz的命令流来保持移动状态。 $ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]' 这条命令以1Hz的频率发布速度命令到速度话题上

image.png

image.png

4.2 使用 rostopic hz rostopic hz命令可以用来查看数据发布的频率。 $ rostopic hz /turtle1/pose

$ rostopic type /turtle1/cmd_vel | rosmsg show

image.png

image.png

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

image.png

image.png

最新评论
暂无评论~