ROS学习笔记1_ROS常用命令行

1.以小海龟为例的命令行使用

启动ROS Master,节点管理器,

  1. 为节点提供命名和注册服务
  2. 跟踪和记录话题/服务通信,辅助节点互相查找、建立连接
  3. 提供参数服务器,节点使用此服务器存储和检索运行时的参数(节点可以使用ROS Master处理后得到的数据)
roscore

启动小海龟仿真器,实际上是启动了一个节点

rosrun turtlesim turtlesim_node

启动键盘控制节点

rosrun turtlesim turtle_teleop_key

随后就可以通过键盘控制海龟的上下左右和转向运动

可以通过输入以下命令行(重要的命令行工具)了解其运作机制,包含其系统通信的节点信息和方式。

rqt_graph

 如图所示,其中椭圆形的代表系统中的节点,左侧是键盘控制海龟节点,右侧是海龟仿真节点,两个节点之间有一个/turtle1/cmd_vel的话题(topic)作为通讯。其中数据的内容是速度指令的内容。


上述小海龟的例子中出现了rosnode,显示的是系统中所有节点相关的指令。

在系统中输入:

rosnode

出现了和rosnode相关的指令

rosnode list

列出了当前系统中所有的节点,其中rosout是一个启动默认的节点,用于提交给上层做显示。

 rosnode info /turtlesim

显示当前节点包含的信息

 


rostopic相关的指令

输入rostopic

 rostopic list,列出系统中当前的话题

rostopic pub 可以通过命令行工具控制小海龟动起来。其中/turtle1/cmd_vel是话题名称,Twist是发布指令的消息数据结构。

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist

其中包含两个部分数据,linear和angular

可以通过rosmsg show geometry_msgs/Twist,后续Tab补全,来显示该message的数据结构。

 

 可以移动光标改变其中的值

(小海龟被怼到了墙上) ,但是pub指令只会发布一次,所以会随后停下来。

如果要持续发布需要更改指令,在pub后加 -r,表示rate,10表示10Hz,每秒发布10次。

rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist

 小海龟开始持续运动,并且撞了南墙也不回头,Ctrl+C停止。

 


rosservice相关的命令行

 

 rosservice list显示相关的服务

 其中的/spawn是用来诞生一只新的海龟的,可以通过调用该服务来同时产生两只海龟。通过call,后续可Tab补全

rosservice call /spawn

包含的数据内容是海龟的出生地点,角度和名字。

修改参数,调用服务

出现了第二只海龟(还挺萌)

 

 此时再次调用rostopic list,小海龟2号已赫然在目。

 按照刚刚控制海龟1的方式控制它。

龟龟,转起来了。

 

 


话题记录相关的工具rosbag

-a表示所有数据,-O表示保存成一个压缩包,后面跟的是名字。保存当前系统下的所有数据。

rosbag record -a -O cmd_record

信息中告诉我们订阅了相关的内容。

 移动龟龟后,Ctrl+C保存文件。

保存路径默认在/home/下。

 重启roscore和海龟仿真器节点,通过数据包复现之前记录的指令。通过play指令加文件名称。

rosbag play cmd_record.bag 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值