基本概念
1.节点Node
执行具体任务的独立文件
不同节点可以使用不同的编程语言
节点在系统中的名称唯一
2.节点管理器 ROS Master
完成节点的命名、注册
辅助节点之间的查找、连接、通信
储存参数,供节点调用
3.参数 Parameter
节点可通过网络访问Master的参数服务器
适合存储静态、配置类的参数
4.通信
类型① 话题 Topic
异步通信机制,单向传输
由发布者Publisher发布给订阅者Subscriber
同一话题的发布者与订阅者不唯一
消息 Message
话题所传输的数据
具有类型和数据结构
由无关编程语言的.msg文件定义
类型② 服务 Service
同步通信机制,双向传输
客户端/服务器模型 请求与应答 request&response
由无关编程语言的.srv文件定义请求与应答的数据结构
5.功能包 Package
ROS中的基本单元 包含源码、配置文件、数据定义等
功能包清单Package Manifest 包含功能包的相关信息,包括对其他功能包的依赖信息等
元功能包 Meta Packages
6.命名空间
整不明白 详见ROS机器人开发实践P52
7.命名重映射
整不明白 详见ROS机器人开发实践P54
基本命令
1.rosnode
rosnode is a command-line tool for printing information about ROS Nodes.
rosnode
可获取有关rosnode的相关指令
Commands:
rosnode ping test connectivity to node
rosnode list 获取列表 list active nodes
rosnode info 获取节点信息 print information about node
rosnode machine list nodes running on a particular machine or list machines
rosnode kill kill a running node
rosnode cleanup purge registration information of unreachable nodes
例子1:获取节点相关信息
rosnode info /turtlesim
2.rostopic
rostopic is a command-line tool for printing information about ROS Topics.
rostopic
Commands:
rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic echo print messages to screen
rostopic find find topics by type
rostopic hz display publishing rate of topic
rostopic info print information about active topic
rostopic list 获取话题列表 list active topics
rostopic pub 发布话题数据 publish data to topic
rostopic type print topic or field type
例子1:发布话题数据
rostopic pub -r 频率 话题名 话题数据类型 具体数据
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 0.0
y: 1.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
rosmsg
rosservice
工具 rqt_graph
工具rosbag
例子2:记录所有发布的数据
rosbag record -a -O rosbag_rocrd_test
例子3:分类查看所有话题
-v可以分为被pub和被sub查看所有的Topic
rostopic list -v
3.rossrv
rossrv
rossrv is a command-line tool for displaying information about ROS Service types.
Commands:
rossrv show Show service description
rossrv info Alias for rossrv show
rossrv list List all services
rossrv md5 Display service md5sum
rossrv package List services in a package
rossrv packages List packages that contain services
例子1:查看数据类型定义
以srv中的std_srvs/Trigger类型为例
rossrv show std_srvs/Trigger
结果:
---
bool success
string message
—之上的为request要求的格式
下面的为feedback要求的格式
4.rosservice
rosservice
Commands:
rosservice args print service arguments
rosservice call 提供所需参数并请求某服务 call the service with the provided args
rosservice find find services by service type
rosservice info print information about service
rosservice list list active services
rosservice type print service type
rosservice uri print service ROSRPC uri
例子1:请求服务
将海龟背景色的GREEN值修改为144
并请求服务,重新加载背景图
rosparam set /turtlesim/background_g 144
rosservice call /clear "{}"
5.rosparam
rosparam
rosparam is a command-line tool for getting, setting, and deleting parameters from the ROS Parameter Server.
Commands:
rosparam set 修改参数值 set parameter
rosparam get 获取参数 get parameter
rosparam load 加载参数文件 load parameters from file
rosparam dump 将参数保存到文件 dump parameters to file
rosparam delete delete parameter
rosparam list 显示当前的参数表 list parameter names
例子1:修改参数
将海龟背景色的GREEN值修改为144
并重新加载背景图
rosparam set /turtlesim/background_g 144
rosservice call /clear "{}"
例子2:访问参数
访问ROS的当前版本类型参数
rosparam get /rosdistro
rosparam get /rosversion
结果:
'noetic ’
'1.15.14 ’
例子3:保存参数到文件
以yaml格式(一种参数保存格式)保存参数
保存位置为当前终端窗口运行的位置
rosparam dump param_test.yaml
例子4:加载参数文件
从当前终端运行位置的目录下调用参数文件
rosparam load param_test.yaml
例子5:删除参数
rosparam delete /turtlesim/background_g
6.roslaunch
roslaunch packageName launchFileName
启动launch文件