ROS学习笔记(六):ROS服务与参数 命令行总结

命令行总结

  1. roscore:为ROS提供名称服务+rosout+参数服务器
    Usage:
    $ roscore
  2. rosnode:用于获取节点信息的ros工具
    Usage:
    $ rosnode再根据提示输入命令行
  3. rosrun:从给定软件包中运行节点
    Usage:
    $ rosrun [package_name] [node_name]
  4. rqt_graph:能够创建一个显示当前系统运行情况的动态图形
    Usage:
    $ rosrun rqt_graph rqt_graph

ROS Topics:
通过键盘远程控制节点和node_name节点之间是通过一个ROS话题来互相通信的。通过键盘远程控制在一个话题上发布按键输入消息,而package_name则订阅该话题以接收该消息。下

  1. rostopic echo:可以显示在某个话题上发布的数据
    Usage:
    $ rostopic echo [topic]

  2. rostopic list:能够列出所有当前订阅和发布的话题
    Usage:
    $ rostopic list -h

  3. rostopic type:用来查看所发布话题的消息类型
    Usage:
    $ rostopic type [topic]

  4. rostopic pub:可以把数据发布到当前某个正在广播的话题上
    Usage:
    $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大小的角速度开始移动
    解释:
    rostopic pub:这条命令将会发布消息到某个给定的话题;
    -1 :(单个破折号)这个参数选项使rostopic发布一条消息后马上退出;
    /turtle1/command_velocity:这是消息所发布到的话题名称;
    turtlesim/Velocity:这是所发布消息的类型(rostopic type查看);
    “- -”:(双破折号)这会告诉命令选项解析器接下来的参数部分都不是命令选项。这在参数里面包含有破折号-(比如负号)时是必须要添加的;
    2.0 1.8:正如之前提到的,在一个turtlesim/Velocity消息里面包含有两个浮点型元素:linear和angular。在本例中,2.0是linear的值,1.8是angular的值。这些参数其实是按照YAML语法格式编写的,这在YAML文档中有更多的描述;

  5. rostopic pub -r:发布一个稳定的命令流;
    如果想维持一个运动状态,需要一个稳定的频率为1Hz的命令流来保持移动状态:
    Usage:

     $ rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0  -1.8
  1. rostopic hz:可以用来查看数据发布的频率
    Usage:
 $rostopic hz [topic]
  1. rqt_plot:可以实时显示一个发布到某个话题上的数据变化图形
    Usage:
$ rosrun rqt_plot rqt_plot

这会弹出一个新窗口,在窗口左上角的一个文本框里面你可以添加需要绘制的话题。在里面输入/turtle1/pose/x后之前处于禁用状态的加号按钮将会被使能变亮。

ROS Services:
服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response)

  1. rosservice:可以很轻松的使用 ROS 客户端/服务器框架提供的服务
    Usage:
rosservice list         输出可用服务的信息
rosservice call         调用带参数的服务
rosservice type         输出服务类型
rosservice find         依据类型寻找服务find services by service type
rosservice uri          输出服务的ROSRPC uri
  1. rosservice list : 输出可用服务的信息
    Usage:
$ rosservice list
  1. rosservice type:输出服务类型
    Usage:
rosservice type [service]
  1. rosservice call:调用带参数的服务
    Usage:
rosservice call [service] [args]

16.rosparam:使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据
Usage:

rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件读取参数
rosparam dump           向文件中写入参数
rosparam delete         删除参数
rosparam list           列出参数名

17.rosparam set and rosparam get
Usage:

rosparam set [param_name]
rosparam get [param_name]

示例:

修改背景颜色的红色通道:

$ rosparam set background_r 150

上述指令修改了参数的值,现在我们调用清除服务使得修改后的参数生效:

$ rosservice call clear

18.rosparam dump and rosparam load
Usage:

rosparam dump [file_name]
rosparam load [file_name] [namespace]

参考文献:官方教程

猜你喜欢

转载自blog.csdn.net/qq_42910179/article/details/106895728
今日推荐