1.1 roscore 首先确保roscore已经运行, 打开一个新的终端:$ roscore
1.2 turtlesim 在本教程中我们也会使用到turtlesim,请在一个新的终端中运行: rosrun turtlesim turtle_teleop_key
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程序包中的一部分。
如果你没有安装,请通过以下命令来安装: sudo apt-get install ros-indigo-rqt-common-plugins
在一个新终端中运行: rostopic -h
2.3 使用 rostopic echo rostopic echo可以显示在某个话题上发布的数据。 rostopic echo /turtle1/cmd_vel 按下向上方向键时应该会看到下面的信息:
2.4 使用 rostopic list rostopic list能够列出所有当前订阅和发布的话题。
让我们查看一下list子命令需要的参数,在一个新终端中运行:
$ rostopic list -h
$ rostopic list -v
3.1 使用 rostopic type rostopic type 命令用来查看所发布话题的消息类型。
用法:
$ rostopic type [topic]
$ rostopic type /turtle1/cmd_vel
你应该会看到:
geometry_msgs/Twist
$ rosmsg show geometry_msgs/Twist
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大小的角速度开始移动。
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的频率发布速度命令到速度话题上
4.2 使用 rostopic hz rostopic hz命令可以用来查看数据发布的频率。 $ rostopic hz /turtle1/pose
$ rostopic type /turtle1/cmd_vel | rosmsg show
5 使用 rqt_plot rqt_plot命令可以实时显示一个发布到某个话题上的数据变化图形。这里我们将使用rqt_plot命令来绘制正在发布到/turtle1/pose话题上的数据变化图形。首先,在一个新终端中运行rqt_plot命令: $ rosrun rqt_plot rqt_plot
学习时间 23分钟
操作时间 18分钟
按键次数 280次
实验次数 2次
报告字数 3158字
是否完成 完成