> 文章列表 > 【ros2】ros2常用命令汇总

【ros2】ros2常用命令汇总

【ros2】ros2常用命令汇总

序言

  • ros常用命令汇总

  • 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. 服务service的相关命令

  • 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

 


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

created by shuaixio, 2023.04.09