ROS学习总结

节点之间是通过一个ROS话题来互相通信的

rosrun rqt_graph rqt_graph(使用rqt_graph来显示当前运行的节点和话题)

如下图所示,teleop_turtle节点是因为运行了tuetle_teleop_key这一个节点来实现键盘的远程控制

$ rosrun turtlesim turtle_teleop_key
turtlesim这一节点是因为运行了turtlesim_node这一节点

$ rosrun turtlesim turtlesim_node
rostopic_5104_15......是因为我们查看了 turtle_teleop_key 节点在 /turtle1/cmd_vel 话题上发布的信息

$ rostopic echo /turtle1/cmd_vel


例如:/turtle1/cmd_vel   就是一个话题


rostopic echo可以显示在某个话题上发布的数据。

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

$ rostopic type /turtle1/cmd_vel
你应该会看到:
geometry_msgs/Twist
我们可以使用 rosmsg 命令来查看消息的详细情况

$ 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



rostopic pub可以把数据发布到当前某个正在广播的话题上。

用法:

rostopic pub [topic] [msg_type] [args]

$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

以上命令会发送一条消息给turtlesim,告诉它以2.0大小的线速度和1.8大小的角速度开始移动。

同时在RQT_GRAPG界面增加了一个节点(ROSTOPIC_5917_150...),其实就是刚刚手动发送命令让小乌龟移动的作用




rostopic hz命令可以用来查看数据发布的频率。

用法:

rostopic hz [topic]

运行新的终端,输入信的命令,rostopic hz /turtle1/cmd_vel,查看 /turtle1/cmd_vel话题上的数据传送速率,返回如下

average rate: 0.999
min: 1.001s max: 1.001s std dev: 0.00000s window: 2


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值