ROS学习笔记(四):ROS主题

来源:互联网 发布:视频播放器编程 编辑:程序博客网 时间:2024/04/30 03:39

一,准备工作

1.运行roscore

$ roscore
2.运行小乌龟(新terminal)
$ rosrun turtlesim turtlesim_node
3.控制小乌龟(新terminal)
$ rosrun turtlesim turtle_teleop_key
这样我们就可以通过控制方向键来控制小乌龟的运动了。


二,ROS主题初探
    在上面的过程中,小乌龟程序是一个节点,方向键控制程序是一个节点,两个节点通过一个ROS主题
进行通信。turtle_teleop_key每次将键盘的输入发布到该话题上,小乌龟通过订阅该话题接收这些数
据。我们通过rqt_graph来显示当前的节点和主题。
1.rqt_graph
    rqt_graph是rqt包的一部分,创建一个动态图来表示系统,我们先通过下述指令来安装它:
$ sudo apt-get install ros-<distro>-rqt$ sudo apt-get install ros-<distro>-rqt-common-plugins
同样,这里的distro为版本号,我选的是indigo。
之后运行
$ rosrun rqt_graph rqt_graph



这显示的就是两个节点的通信过程。
2.ros主题
    我们可以使用如下指令来帮助我们查看主题的信息。
$ rostopic -h
  • rostopic bw     display bandwidth used by topicrostopic echo   print messages to screenrostopic hz     display publishing rate of topic    rostopic list   print information about active topicsrostopic pub    publish data to topicrostopic type   print topic type
例如,我们使用echo来显示打印小乌龟的运动信息。
$ rostopic echo /turtle1/cmd_vel这时候还看不到任何信息,当你控制小乌龟的运动时,屏幕上会显示小乌龟的线速度和角速度。我们还可以利用list指令来查看当前发布和订阅的主题。
$ rostopic list -h
$ rostopic list -v


3.ROS主题再探

我们通过发布消息来改变小乌龟的线速度和角速度

$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'这里将小乌龟的线速度设为2.0,角速度为1.8,因此将作圆周运动。

在控制过程中,如果点击rqt图的refresh,就可以看见消息的传递和主题的发布己订阅了。

我们也可以使用下述指令来查看节点的通信速率。

$ rostopic hz /turtle1/pose





原创粉丝点击