action
ros2 action list -t
ros2 action info /compute_path_to_pose
1 | Action: /compute_path_to_pose |
ros2 action type /compute_path_to_pose
结果是nav2_msgs/action/ComputePathToPose
ros2 interface show nav2_msgs/action/ComputePathToPose
结果是 action 文件的详细信息
- ros2 action send_goal
1 | nvidiainterface show turtlesim/action/RotateAbsolute.action :~$ ros2 |
这三项依次是目标,结果,反馈
- 发送操作目标:
ros2 action send_goal <action_name> <action_type> <values>
比如 ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: 1.57}"
1 | nvidia@ubuntu:~$ ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: 1.57}" |
当然结果与目标有一定误差
要查看此目标的反馈,请在上次运行的命令中添加 --feedback
,会看到连续的打印输出,将继续收到反馈,直到目标完成。
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
显示服务的定义
- call命令比ROS1复杂了,需要指明service类型:
ros2 service call service_name service_type