ROS2常用命令

2021.08 Simon

体验测试

  • Turtle
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

Terminal 命令

ros2 COMMAND …

*ROS:rosrun * *ROS 2:ros2 run *

Commands: launch Run a launch file node Various node related sub-commands param Various param related sub-commands pkg Various package related sub-commands run Run a package specific executable service Various service related sub-commands srv Various srv related sub-commands topic Various topic related sub-commands

Node

  • 列出所有运行节点名称
ros2 node list
  • 在知道节点名称的前提下,可以通过node info获得有关节点的更多信息
ros2 node info <node_name>
  • Remapping 允许重新分配默认节点属性,像节点名, topic 名,service 名等,此时会出现两个节点名。 重新分配节点名 /turtlesim 的方式如下:对节点/turtlesim进行重映射,在终端中运行:
 ros2 run turtlesim_node --ros-args --remap __node:=my_turtle 

colcon编译

colcon build
colcon build --packages-select  PACKAGE_NAME

topic

  • rqt_graph, 用来可视化正在改变的 nodetopic
rqt_graph
  • topic list, 在新的终端下运行 ros2 topic list 命令会返回在系统内所有当前活跃的 topic
ros2 topic list
  • topic echo, 浏览数据在话题上发布
ros2 topic echo <topic_name>
  • topic pub , 该命令可以用来直接从命令行向一个 topic 内发布数据
ros2 topic pub <topic_name> <msg_type> '<args>'
  • topic hz, 使用该命令可以发布数据的速率
ros2 topic hz /turtle1/pose

service

service 是另一种节点通信方法。service 基于 call-response 模式,与 publisher-subscriber 模式相对。topic 允许节点 suscribe 数据流并获得持续更新,而 service 仅在被 client 指定调用时才会提供数据。 service 的使用方法与 topic 类似。

action

  • action list, 别在 ROS 中所有的 action,运行此命令
ros2 action list

bag

  • bag record, 记录发布到一个 topic 的消息可使用命令语句
ros2 bag record <topic_name>
  • Record multiple topics, 也可以同时记录多个话题
ros2 bag record -o subset /turtle1/cmd_vel /turtle1/pose

Package

  • 创建 package
ros2 pkg create --build-type ament_cmake <package_name>
ros2 pkg create --build-type ament_cmake --node-name my_node my_package

创建msg和srv

Launch

ament_cmake