一,开始实验
1、运行roscore,
$ roscore
2:turtlesim,在一个新的终端中运行:
$ rosrun turtlesim turtlesim_node
3:通过键盘来控制turtle的运动,在一个新的终端运行:
$ rosrun turtlesim turtle_teleop_key
可以使用键盘上的方向键来控制turtle运动了。如果不能控制,选中turtle_teleop_key所在的终端窗口以确保按键输入能够被捕获。
二:ROS Topics
turtlesim_node 节点和 turtle_teleop_key 节点之间是通过一个 ROS 话题来互相通信的。turtle_teleop_key 在一个话题上发布按键输入消息,而 turtlesim 则订阅该话题以接收该消息。
rqt_graph能够创建一个显示当前系统运行情况的动态图形。rqt_graph是rqt程序包中的一部分。运行程序
$ rosrun rqt_graph rqt_graph
3rostopic
rostopic命令工具能让你获取有关ROS话题的信息。 你可以使用帮助选项查看rostopic的子命令
4;使用 rostopic echo
rostopic echo可以显示在某个话题上发布的数据。 用法
$ rostopic echo [topic]
$ rostopic echo /turtle1/cmd_vel
按下向上方向键时应该会看到下面的信息
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大小的角速度开始移动。
2:使用 rostopic hz
rostopic hz命令可以用来查看数据发布的频率。
3:使用 rqt_plot
rqt_plot命令可以实时显示一个发布到某个话题上的数据变化图形。这里我们将使用rqt_plot命令来绘制正在发布到/turtle1/pose话题上的数据变化图形。首先,在一个新终端中运行rqt_plot命令: $ rosrun rqt_plot rqt_plot
小结:本章理解了ROS话题是如何工作的,比较复杂,内容也比较多,分为几个板块,每一个板块都围绕着ROS的工作条件来进行。
学习时间 72分钟
操作时间 14分钟
按键次数 109次
实验次数 3次
报告字数 1982字
是否完成 完成