ROS命令行工具

ros命令行工具

首先以小海龟为例:

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key 

没出错的话应该可以打开小海龟,并且可以使用键盘来控制小海龟的移动了。

rosrun命令后面加某个功能包和节点,就可以运行这个节点。

$ rqt_garph

这是一个可以显示计算图的工具。ros通讯过程是一个计算图,使用这个就可以查看节点之间的通信了。
在这里插入图片描述

rosnode

$ rosnode
rosnode is a command-line tool for printing information about ROS Nodes.

Commands:
	rosnode ping	test connectivity to node
	rosnode list	list active nodes
	rosnode info	print information about node
	rosnode machine	list nodes running on a particular machine or list machines
	rosnode kill	kill a running node
	rosnode cleanup	purge registration information of unreachable nodes

Type rosnode <command> -h for more detailed usage, e.g. 'rosnode ping -h'

终端里面输入rosnode可以查看node支持的命令,例如

$ rosnode list
/rosout
/teleop_turtle
/turtlesim

将所有运行的节点列出来

$ rosnode info /turtlesim
--------------------------------------------------------------------------------
Node [/turtlesim]
Publications: 
 * /rosout [rosgraph_msgs/Log]
 * /turtle1/color_sensor [turtlesim/Color]
 * /turtle1/pose [turtlesim/Pose]

Subscriptions: 
 * /turtle1/cmd_vel [geometry_msgs/Twist]

Services: 
 * /clear
 * /kill
 * /reset
 * /spawn
 * /turtle1/set_pen
 * /turtle1/teleport_absolute
 * /turtle1/teleport_relative
 * /turtlesim/get_loggers
 * /turtlesim/set_logger_level


contacting node http://devil-NH50-70RA:40587/ ...
Pid: 20354
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound (50957 - 127.0.0.1:48022) [28]
    * transport: TCPROS
 * topic: /turtle1/cmd_vel
    * to: /teleop_turtle (http://devil-NH50-70RA:37309/)
    * direction: inbound (47564 - devil-NH50-70RA:33877) [31]
    * transport: TCPROS

这个可以查看节点相关的信息

rostopic

$ rostopic list
/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

我们可以使用rostopic pub 命令来发布消息


$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 

可以看到小海龟运行了一段时间,很快就停止了。这是因为我们只发布了一次消息,要想持续的发布消息可以使用参数r,例如:

$ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 

10是发布的频率表示一秒钟发送100次。

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

可以查看消息的类型

rosservice

$ rosservice list
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn
/teleop_turtle/get_loggers
/teleop_turtle/set_logger_level
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level

我们注意到有一个spawn的服务,这是一个产生新海龟的服务。
可以使用call来请求一个发布新海龟的服务。
例如使用

$ rosservice call /spawn "x: 14.0
y: 12.0
theta: 1.0
name: 'tuetle2'" 
name: "tuetle2"

这样就可以在tuetlesim节点上看到一个新的海龟,并且可以通过使用以上的方法来控制新的海龟的移动。

rosbag

rosbag record 是记录数据的一个命令行工具。
rosbag play 可以复现记录数据。

$ rosbag record -a -O cmd_record
$ rosbag play cmd_record.bag

可以看到小海龟按照之前记录的消息进行移动。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值