【ros2】ros2常用命令汇总

序言
1. 功能包package
  • 查看功能包列表

    ros2 pkg list
    
  • 创建一个新的功能包

    ros2 pkg create --build-type ament_cmake package_name
    
  • 创建功能包时添加依赖项

    ros2 pkg create --build-type ament_cmake package-name --dependencies [deps]
    
  • 编译所有功能包

    colcon build
    
  • 编译指定功能包

    colcon build –packages-select package_name
    
2. 节点Node运行
  • 查看所有运行节点

    ros2 node list
    
  • 查看某一个节点信息

    ros2 node info node_name
    
  • 节点运行方式1

    ros2 run package_name executable_file
    
  • 节点运行方式2

    ros2 launch package_name node_launch_file(.py文件等)
    
    • launch文件的写法和launch启动方式对工程install路径的要求在之后的文章中做总结
3. 显示话题topic信息
  • 查看系统内活跃topic

    ros2 topic list
    
  • 查看topic的消息类型

    ros2 topic type topic_name
    
  • 显示topic内容

    ros2 topic echo topic_name
    
  • 向特定topic发送数据

    ros2 topic pub topic_name msg_type 'args'
    
    • args是实际数据,需要以YAML格式输入
    ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
    
    • --once是可选参数,表示发布一个消息然后退出
    ros2 topic pub --rate 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
    
    • --rate 10代替--once选项,表示以10Hz稳定流发布消息
  • 查看发布数据的帧率

    ros2 topic hz topic name
    
4. 查看节点参数param
  • 查看节点的子命名空间和参数

    ros2 param list
    
  • 获取当前参数的值

    ros2 param get node_name param_name
    
    • 如 ros2 patam get /turtlesim background_g
  • 设置参数的值

    ros2 param set node_name param_name value
    
    • 如 ros2 param set /turtlesim background_r 150
  • 存储节点所有参数值:dump命令

    ros2 param dump node_name
    
    • 如 ros2 param dump /turtlesim,会得到 Saving to: ./turtlesim.yaml的yaml文件
  • 存储节点的所有参数值到指定路径

    ros2 param dump node_name --output-dir /保存路径
    
  • param load使用节点所保存的参数值

    ros2 run package_name executable_name --ros-args --params-file <file_name>
    
    • 如 ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
5. 播包/录包相关命令
  • 查看bag信息

    ros2 bag info bag_name
    
  • 正常播包命令

    ros2 bag play bag_dir_name
    
  • 倍速播包命令

    ros2 bag play bag_dir_name -r 2
    
  • 循环播包命令

    ros2 bag play bag_dir_name -l
    
  • 播放单个topic

    ros2 bag play bag_dir_name --topics /topic_name
    
  • 以上bag_dir_name也可以换成xxx.db3包的具体名字

  • 录制特定topic的包

    ros2 bag record topic_name
    
  • 录制多个topic的包

    ros2 bag record -o new_bag_name topic1_name topic2_name
    
  • 录制所有topic的包

    ros2 bag record -a
    
6. 服务service的相关命令
  • service是另一种ros通信机制(类似topic和action),CS模式,一个服务端,可以有多个客户端

在这里插入图片描述

  • 查看服务列表

    ros2 service list		# 加-t可显示服务消息类型
    
  • 查看服务的数据类型

    ros2 service type service_name
    
  • 查找使用指定数据类型的服务

    ros2 service find type_name
    
  • 通过命令行调用服务

    ros2 service call <service_name> <service_type> <args>
    
    • 如 ros2 service call /spawn turtlesim/srv/Spawn “{x: 2, y: 2, theta: 0.2, name: ‘’}”
7. 服务action的相关命令
  • action是一种类似service的问答通信机制,不同之处在于action带有连续反馈,可以不断反馈任务进度,也可以在任务过程中终止运行。
  • 使用action发布机器人的运动目标,机器人在收到action后就开始运动,在运动过程中不断反馈当前的运动状态;过程中也可以随时取消,让机器人停止;当机器人完成运动目标后,action返回任务完成的消息

在这里插入图片描述

  • 列出域内可用的动作列表

    ros2 action list	# 加 -t 可显示动作消息类型
    
  • 查看指定action的信息

    ros2 action info action_name
    
  • 模拟客户端手动发起动作请求

    ros2 action send_goal <action_name> <type_name> <goal_data> <--feedback>
    
    • --feedback指定是否显示反馈主题信息
    • 如 ros2 action send_goal /crossing_acton duckietown_interface/action/Crossing “{speed: 0.2, direction: ‘right’}” --feedback
8. lifecycle node节点控制命令
  • LCN = lifecycle node,生命周期节点,受控节点。ros2中LMN(lifecycle management node,控制节点)以CS模式对LCN节点进行控制

  • 查看有哪些lifecycle节点

    ros2 lifecycle nodes
    
  • 查看lifecycle节点所有可行的转换

    ros2 lifecycle list node_name -a
    

    通过终端命令进行状态转换如下

  • 查看节点接下来可以进入什么状态

    ros2 lifecycle list node_name
    
  • 获取节点状态

    ros2 lifecycle get node_name
    
  • 设置节点状态

    ros2 lifecycle set node_name configure
    
    • 可以设置的状态有如下几个:
      configure
      activate
      deactivate
      cleanup
      shutdown

    • 转换结果示例

      在这里插入图片描述

 


【参考文章】
ROS2命令行操作常用指令
ROS 2 services 概述
ROS 2 基本命令总结
ROS 2录包与播包

created by shuaixio, 2023.04.09

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值