只记录ROS2 和 ROS1 不同的命令
pkg
1 | # 列出某个包的所有可执行文件 |
topic
- ros2 topic info topic_name
现在必须加/
了1
2
3
4
5
6
7user :~$ ros2 topic info imu
Unknown topic 'imu'
user :~$ ros2 topic info /imu
Type: sensor_msgs/msg/Imu
Publisher count: 1
Subscription count: 1
- 输出话题的详细信息,包括发布订阅者: ros2 topic info /odom -v
1 | Type: nav_msgs/msg/Odometry |
- ros2 interface show msg_name
显示 Topic 发送的消息定义 ros2 interface show sensor_msgs/msg/Imu
- ros2 topic find msg_name
获知某个消息类型是谁在用1
2user :~$ ros2 topic find sensor_msgs/msg/Imu
/imu
- 手动发消息到话题
1 | ros2 topic pub /chatter std_msgs/msg/String 'data:"123" |
interface
- ros2 interface list
分类显示消息、动作、服务的所有类型
- ros2 interface package pkg_name
1 | userinterface package action_msgs :~$ ros2 |
获知某个消息类型是谁在用,可以这样查1
2
3
4
5
6
7
8userinterface packages | grep pendulum_msgs :~$ ros2
pendulum_msgs
user@robot:~$ ros2 interface package pendulum_msgs
pendulum_msgs/msg/RttestResults
pendulum_msgs/msg/JointState
pendulum_msgs/msg/JointCommand
user@robot:~$ ros2 topic find pendulum_msgs/msg/RttestResults
- 显示消息的成员
1 | userinterface proto std_msgs/msg/String :~$ ros2 |
service
- ros2 service type
可以看到服务的定义。
- ros2 service find
找出指定类型的所有服务
ros2 service find std_srvs/srv/Empty
ros2 interface show
显示服务的定义
param
- ros2 param list
- ros2 param describe
1 | ros2 param describe /turtlesim background_r |
- ros2 param get
1 | ros2 param get /turtlesim background_r |
ros2 param set (省略)
ros2 run + param
ros2 run
—ros-args —params-file
rqt_graph
能够可视化节点和主题之间的连接。这个命令和ROS1一样,也是ROS2为数不多的GUI可视界面
tf
- 可视化ROS2的tf树
ros2 run tf2_tools view_frames.py
ros2 run tf2_ros static_transform_publisher 1 2 3 0.5 0.1 -1.0 foo bar
ros2 run tf2_ros tf2_echo foo bar
运行结果:1
2
3
4
5
6
7
8
9
10At time 197.27000000
- Translation: [0.008, -0.000, 0.064]
- Rotation: in Quaternion [-0.000, -0.001, -0.010, 1.000]
- Rotation: in RPY (radian) [-0.000, -0.002, -0.020]
- Rotation: in RPY (degree) [-0.001, -0.092, -1.160]
- Matrix:
1.000 0.020 -0.002 0.008
-0.020 1.000 0.000 -0.000
0.002 -0.000 1.000 0.064
0.000 0.000 0.000 1.000