ROS官方教程学习笔记(1):节点、消息和话题

ROS节点:

一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。

roscore :是你在运行所有ROS程序前首先要运行的命令。

rosout: 这个节点用于收集和记录节点调试输出信息,所以它总是在运行的。

rosnode list :指令列出活跃的节点

rosrun [package_name] [node_name]:用包名直接运行一个包内的节点(而不需要知道这个包的路径)

关闭一个节点:

方法1:直接关闭运行的节点对话框;方法2:在运行节点的终端使用快捷操作“ctrl + c”。对于方法1,用rosnode list 命令

查看当前运行的节点发现已经关闭;但对于方法2,该节点仍然存在。

ROS话题

节点可以发布消息到话题,也可以订阅话题以接收消息。

  • 开启turtlesim_node节点:
rosrun turtlesim turtlesim_node
  • 开启键盘远程控制小龟节点:
rosrun turtlesim turtle_teleop_key

注:选中键盘远程控制节点的终端才能用键盘控制小龟。

rostopic命令可以获取话题的详细的信息,功能强大:

rostopic -h
rostopic bw     display bandwidth used by topic
rostopic echo   print messages to screen
rostopic hz     display publishing rate of topic
rostopic list   print information about active topics
rostopic pub    publish data to topic
rostopic type   print topic type
  • rostopic echo:可以显示在某个话题上发布的数据
rostopic echo /turtle1/cmd_vel

将弹出一个终端,显示小龟的速度(线速度和角速度)。

  • rostopic list:列出所有当前订阅和发布的话题
rostopic list -v

显示出有关所发布和订阅的话题及其类型的详细信息。

ROS消息

消息是一种ROS数据类型,用于订阅或发布到一个话题。

  • rostopic type

话题之间的通信是通过在节点之间发送ROS消息实现的。对于发布器(turtle_teleop_key)和订阅器(turtulesim_node)之间的通信,发布器和订阅器之间必须发送和接收相同类型的消息。这意味着话题的类型是由发布在它上面的消息类型决定的。使用rostopic type命令可以查看发布在某个话题上的消息类型

rostopic type /turtle1/cmd_vel

得到:

geometry_msgs/Twist

查看rostopic type的帮助说明,所得到的为 Topic or field name。

若想查看发布在话题上消息的类型,使用以下命令查看:

rosmsg show geometry_msgs/Twist

得到:

geometry_msgs/Vector3 linear
  float64 x
  float64 y
  float64 z
geometry_msgs/Vector3 angular
  float64 x
  float64 y
  float64 z

上面知道了turtlesim节点所期望的消息类型(发布器和订阅器之间必须发送和接收相同类型的消息),接下来我们就可以给turtle发布命令了。

  • rostopic pub

把数据发布到当前某个正在订阅的话题上。

用法:

rostopic pub [topic] [msg_type] [args]

示例:

 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大小的角速度开始移动。

注意上面的命令只发送了一条消息给turtlesim,若想保持小龟保持运动,需要不断的给turtlesim发送消息,设置发型频率为1hz:

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
发布了5 篇原创文章 · 获赞 4 · 访问量 234

猜你喜欢

转载自blog.csdn.net/hlhfhmt/article/details/104089430