五、ROS的常用命令

http://wiki.ros.org/ROS/CommandLineTools

1、rosnode

rosnode 是用于获取节点信息的命令

rosnode ping    测试到节点的连接状态
rosnode list    列出活动节点
rosnode info    打印节点信息
rosnode machine    列出指定设备上节点
rosnode kill    杀死某个节点
rosnode cleanup    清除不可连接的节点
  • rosnode cleanup

    清除无用节点,启动乌龟节点,然后 ctrl + c 关闭,该节点并没被彻底清除,可以使用 cleanup 清除节点

2、rostopic

 rostopic包含rostopic命令行工具,用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。它还包含一个实验性Python库,用于动态获取有关主题的信息并与之交互。

rostopic bw     显示主题使用的带宽
rostopic delay  显示带有 header 的主题延迟
rostopic echo   打印消息到屏幕
rostopic find   根据类型查找主题
rostopic hz     显示主题的发布频率
rostopic info   显示主题相关信息
rostopic list   显示所有活动状态下的主题
rostopic pub    将数据发布到主题
rostopic type   打印主题类型

rostopic pub

可以直接调用命令向订阅者发布消息

为roboware 自动生成的 发布/订阅 模型案例中的 订阅者 发布一条字符串

rostopic pub /主题名称 消息类型 消息内容
rostopic pub /chatter std_msgs gagaxixi
Copy

为 小乌龟案例的 订阅者 发布一条运动信息

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist
 "linear:
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0"
//只发布一次运动信息

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: 2.0"
// 以 10HZ 的频率循环发送运动信息

 

  • rostpic echo

    获取指定话题当前发布的消息

 3、rosmsg

rosmsg是用于显示有关 ROS消息类型的 信息的命令行工具。

rosmsg 演示

rosmsg show    显示消息描述
rosmsg info    显示消息信息
rosmsg list    列出所有消息
rosmsg md5    显示 md5 加密后的消息
rosmsg package    显示某个功能包下的所有消息
rosmsg packages    列出包含消息的功能包

 

  • rosmsg package

    列出某个包下的所有msg

    //rosmsg package 包名 
    rosmsg package turtlesim
    Copy
  • rosmsg show

    显示消息描述

    //rosmsg show 消息名称
    rosmsg show turtlesim/Pose
    结果:
    float32 x
    float32 y
    float32 theta
    float32 linear_velocity
    float32 angular_velocity

 

  • rosmsg info

    作用与 rosmsg show 一样

4、rosservice 

 

rosservice包含用于列出和查询ROSServices的rosservice命令行工具。

调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash

rosservice args 打印服务参数
rosservice call    使用提供的参数调用服务
rosservice find    按照服务类型查找服务
rosservice info    打印有关服务的信息
rosservice list    列出所有活动的服务
rosservice type    打印服务类型
rosservice uri    打印服务的 ROSRPC uri
  • rosservice list

    列出所有活动的 service

    ~ rosservice list
    /clear
    /kill
    /listener/get_loggers
    /listener/set_logger_level
    /reset
    /rosout/get_loggers
    /rosout/set_logger_level
    /rostopic_4985_1578723066421/get_loggers
    /rostopic_4985_1578723066421/set_logger_level
    /rostopic_5582_1578724343069/get_loggers
    /rostopic_5582_1578724343069/set_logger_level
    /spawn
    /turtle1/set_pen
    /turtle1/teleport_absolute
    /turtle1/teleport_relative
    /turtlesim/get_loggers
    /turtlesim/set_logger_level
    Copy
  • rosservice args

    打印服务参数

    rosservice args /spawn
    x y theta name
    Copy
  • rosservice call

    调用服务

    为小乌龟的案例生成一只新的乌龟

    rosservice call /spawn "x: 1.0
    y: 2.0
    theta: 0.0
    name: 'xxx'"
    name: "xxx"
    
    //生成一只叫 xxx 的乌龟

 5、rossrv

 

ossrv是用于显示有关ROS服务类型的信息的命令行工具,与 rosmsg 使用语法高度雷同。

rossrv show    显示服务消息详情
rossrv info    显示服务消息相关信息
rossrv list    列出所有服务信息
rossrv md5    显示 md5 加密后的服务消息
rossrv package    显示某个包下所有服务消息
rossrv packages    显示包含服务消息的所有包

 

  • rossrv package

    列出某个包下的所有msg

    //rossrv package 包名 
    rossrv package turtlesim
    Copy
  • rossrv show

    显示消息描述

    //rossrv show 消息名称
    rossrv show turtlesim/Spawn
    结果:
    float32 x
    float32 y
    float32 theta
    string name
    ---
    string name
    Copy
  • rossrv info

    作用与 rossrv show 一致

6、rosparam

 

2.4.6 rosparam

rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数。

rosparam set    设置参数
rosparam get    获取参数
rosparam load    从外部文件加载参数
rosparam dump    将参数写出到外部文件
rosparam delete    删除参数
rosparam list    列出所有参数
  • rosparam list

    列出所有参数

    rosparam list
    
    //默认结果
    /rosdistro
    /roslaunch/uris/host_helloros_virtual_machine__42911
    /rosversion
    /run_id
    Copy
  • rosparam set

    设置参数

    rosparam set name huluwa
    
    //再次调用 rosparam list 结果
    /name
    /rosdistro
    /roslaunch/uris/host_helloros_virtual_machine__42911
    /rosversion
    /run_id
    Copy
  • rosparam get

    获取参数

    rosparam get name
    
    //结果
    huluwa
    Copy
  • rosparam delete

    删除参数

    rosparam delete name
    
    //结果
    //去除了name
    Copy
  • rosparam load(先准备 yaml 文件)

    从外部文件加载参数

    rosparam load xxx.yaml
    Copy
  • rosparam dump

    将参数写出到外部文件

    rosparam dump yyy.yaml

 

### ROS2 常用命令及使用方法 #### 创建功能包 为了创建一个新的ROS2功能包,可以利用`ros2 pkg create`命令。此命令允许指定编译方式以及依赖项等内容。例如,要创建一个名为`example_package`的功能包,并设置其构建类型为Python,则可执行如下命令[^3]: ```bash ros2 pkg create --build-type ament_python example_package ``` #### 克隆特定分支的仓库 当需要从GitHub克隆某个项目并指定期望获取的具体版本或分支时,可以通过附加`-b`参数给`git clone`命令实现这一目标。比如想要下载`examples`库中的`galactic`分支到本地路径下的`src/examples`目录中,应运行下面这条语句[^2]: ```bash git clone https://github.com/ros2/examples src/examples -b galactic ``` #### 启动节点与查看状态 启动单个节点可以直接通过调用该节点对应的可执行文件完成。而监控当前系统内所有活动节点的状态则需要用到`ros2 node list`命令。这有助于开发者了解哪些进程正在运行以及它们之间的通信情况。 对于更详细的节点信息查询,如订阅的话题、发布的服务等,有专门设计好的子命令可供选用,像这样: ```bash ros2 node info /node_name ``` 上述命令会打印出关于指定名称节点的信息概览[^1]。 #### 发布话题消息 如果希望向某话题发布一条测试消息,那么就可以借助于`ros2 topic pub`这个便捷工具来做这件事。它支持多种数据类型的序列化对象发送操作,只需按照提示输入相应字段即可达成目的。举个例子来说,假设有一个叫作`chatter`的标准字符串型话题,现在打算往里面塞入一段文字内容,那么应该这样做: ```bash ros2 topic pub /chatter std_msgs/msg/String "data: 'hello world'" ``` #### 订阅话题监听器 相反地,在另一端设立接收者来捕获来自选定主题的数据流也是十分必要的。为此提供了`ros2 topic echo`指令帮助我们轻松建立这样的连接关系。只要给出感兴趣的主题名就能实时跟踪最新到达的消息体了。 ```bash ros2 topic echo /chatter ``` #### 查看可用的服务列表 除了常规的消息传递机制之外,ROS还定义了一套完善的服务接口体系用于处理请求响应式的交互逻辑。因此有必要掌握如何罗列现有的远程过程调用选项——即运用`ros2 service list`来进行检索工作。 进一步深入探究每一个单独服务的操作细节同样重要,这时就要依靠`ros2 service type`配合具体的service id才能获得完整的签名描述。 ```bash ros2 service type /add_two_ints ``` 最后还可以尝试实际发起一次RPC呼叫看看效果怎样,这就得靠`ros2 service call`加上完整的目标地址连同所需携带的有效载荷一起构成了整个动作表达式。 ```bash ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 1, b: 2}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值