服务:服务包含有客户端与服务端,基于主题的呼叫与响应模型。
ros2 service list 后面加上-t会返回所有的服务的类型,
ros2 service type <service_name> 会显示出服务的类型
其中Empty类型表示服务调用在发出请求时不发送任何数据,在接受响应时也不接受任何数据。
ros2 service find <type_name> 可以寻找特定类型的所有服务。
ros2 interface show <type_name>.srv 此命令会返回服务类型的数据结构
---
上面为调用服务/spawn
的类型turtlesim/srv/Spawn
的需要的数据结构
位置:x,y;角度:theta。
ros2 service call <service_name> <service_type> <args> 可以采用此命令调用服务。
ros2 service call /spawn turtlesim/srv/Spawn "{x:2, y:2, theta:0.2, name:''}"
参数:用于节点的配置,
ros2 param list 可以列出节点的所有参数。
ros2 param get <node_name> <parameter_name> 获取参数的类型与当前值。
ros2 param get turtlesim background_b
ros2 param get <node_name> <parameter_name> <value> 运行中的过程中更改参数的值。
ros2 param get turtlesim background_b 150
ros2 param dump turtlesim 将当前节点的参数保存到当前工作目录下的`./turtlesim.yaml`中,
ros2 param load <node_name> <parameter_file> 将文件加载在节点参数中
ros2 param load turtlesim ./turtlesim.yaml
节点启动时加载参数的命令为:
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
添加`--ros-args`与`--param-file`后面加上要加载的`.yaml`文件。
动作:适用于长时间的任务,由三个部分组成:目标、反馈、结果。基于主题与服务构建,功能类似于服务但可以进行抢占。还能提供稳定的反馈和结果。
ros2 action list -t 会返回所有动作以及其类型。
ros2 action info <action_name> 会返回动作的客户端与服务端。
ros2 interface show <action_type_name> 会返回动作类型的数据结构。
其中---
最上面为请求的结构,中间的为结果的结构,最后为反馈的结构。
ros2 action send_goal <action_name> <type_name> <value> 其中value需要采用`yaml`格式,此命令可以通过动作发送目标。
delta
为到起始位置的位移,添加--deedback
会额外返回反馈,不断反馈之间的差距。
动作通常用于导航。