1. Node 节点
节点: 完成具体功能的模块
相关命令
#运行命令
ros2 run <package_name> <executable_name>
#当前节点查询查询
ros2 node list
#重映射 Remapping
ros2 run <package_name> <executable_name> --ros-args --remap __node:=<node_name>
#节点信息查询
ros2 node info <node_name>
2. Topic 话题
一个节点可以通过多个话题向外发布数据,也可以同时订阅多个其他节点发布的话题,相当于话题是一个多对多的订阅/发布模型。
rqt_graph工具可用于可视化node和topic之间的连接关系
#话题查询
ros2 topic list
#查看话题完整信息
ros2 topic list -t
#查看话题数据内容
ros2 topic echo <topic_name>
#topic详细信息查询
ros2 topic info <topic_name>
#查询消息类型数据结构
ros2 interface show <msg_type>
#命令行发布消息
ros2 topic pub <topic_name> <msg_type> '<args>'
#话题发布频率查询
ros2 topic hz <topic_name>
3. Service 服务
基于客户端/服务器模型的通信机制,服务器端只在接收到客户端请求时才会提供反馈数据。
#查看已开启的service,添加 -t 参数可查看完整信息
ros2 service list
#查看service服务类型
ros2 service type <service_name>
#查找提供某类型数据的所有服务
ros2 service find <type_name>
#查看服务数据类型的具体结构
ros2 interface show <type_name>.srv
#通过终端发送服务请求
ros2 service call <service_name> <service_type> <arguments>
4. Parameter 参数
配置节点功能,可以用整型数、浮点数、布尔型数、字符串和列表来描述
#查看系统中的参数列表
ros2 param list
#获取参数值
ros2 param get <node_name> <parameter_name>
#参数值设置
ros2 param set <node_name> <parameter_name> <value>
#保存参数
ros2 param dump <node_name>
#加载参数文件
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
5. Action 动作
由底层的三个话题和服务组成:一个任务目标(Goal,服务),一个执行结果(Result,服务),周期数据反馈(Feedback,话题)
具有可抢占的特性
action是一个客户端/服务器的通信模型,客户端发送一个任务目标,服务器端根据收到的目标执行并周期反馈状态,执行完成后反馈一个执行结果。
#action查看
ros2 node info <node_name>
ros2 action list
#查看详细数据类型
ros2 action list -t
#查看action的信息
ros2 action info <action_name>
#查看action数据类型
ros2 interface show turtlesim/action/RotateAbsolute.action
#命令行发送action目标
ros2 action send_goal <action_name> <action_type> <values>