ROS学习笔记(2)
2018-03-20 22:16
211 查看
1. 理解ROS节点
图概念概述:
Nodes:节点,一个节点为一个可执行文件,可以通过ROS与其他节点通信
Messages:消息,一种ROS数据类型,可以订阅或发布到一个话题
Topics:话题,节点可以发布消息到话题,也可以订阅话题接收消息
Master:节点管理器,ROS名称服务
rosout:相当于 stdout/stderr
roscore:主机 + rosout + 参数服务器
客户端库:
允许使用不同编程语言编写的节点之间进行通信
● rospy = python 客户端库
● roscpp = c++ 客户端库
使用 rosnode
查看当前正在运行的节点:
查看具体节点信息:
使用rosrun
使用包名直接运行一个包内的节点:
可以直接改变节点名称
改变节点名称后,可以再次通过rosnode list 查看运行的节点列表
并通过rosnode 命令 ping 测试节点
2. 理解ROS话题
任何时候,只需有一个roscore运行,否则会报错。
节点之间通过话题通信,一个节点在一个话题上发布消息,另一个节点订阅该话题以接收消息。
使用rqt_graph创建显示当前系统运行情况的动态图形。
使用rqt_plot 命令可以显示发布到某一话题上的数据变化情况。
使用 rostopic echo 命令行工具,可以查看话题发布的数据
使用 rostopic list 可以查看发布和订阅的话题及其类型的详细信息
发布器与订阅器之间的通信,必须发送和接收相同类型的消息,也就意味着话题类型是由发布在它上面的消息类型决定的。使用 rostopic type 命令可以查看发布在某个话题上的消息类型。
使用 rosmsg 命令查看消息的详细情况
使用 rostopic pub 命令可以发布数据到当前某个正在广播的话题上。
使用 rostopic hz 可以查看数据发布的频率
3. 理解ROS服务和参数
服务允许节点发送一个请求(request)并获得一个响应(response)
rosservice常用命令:
rosservice list —— 输出可用服务的信息
rosservice call —— 调用带参数的服务
rosservice type —— 输出服务类型
rosservice find —— 根据类型寻找服务
rosservice url —— 输出服务的ROSRPC url
可以使用 rosparam 存储和操作ROS参数服务器上的数据。
常用命令:
rosparam set —— 设置参数
rosparam get —— 获取参数
rosparam load —— 从文件读取参数
rosparam dump —— 向文件中写入参数
rosparam delete —— 删除参数
rosparam list —— 列出参数名
4. 使用 rqt_console 和 roslaunch 进行调试
rqt_console 属于ROS日志框架的一部分,用于显示节点的输出信息。
rqt_logger_level 允许修改节点运行时输出信息的日志等级。
使用 roslaunch 启动定义在 launch 文件中的多个节点。
在工作空间下创建 launch文件夹,在文件夹下创建 .launch 后缀的配置文件,然后运行。
可同时运行多个节点和模仿节点。
图概念概述:
Nodes:节点,一个节点为一个可执行文件,可以通过ROS与其他节点通信
Messages:消息,一种ROS数据类型,可以订阅或发布到一个话题
Topics:话题,节点可以发布消息到话题,也可以订阅话题接收消息
Master:节点管理器,ROS名称服务
rosout:相当于 stdout/stderr
roscore:主机 + rosout + 参数服务器
客户端库:
允许使用不同编程语言编写的节点之间进行通信
● rospy = python 客户端库
● roscpp = c++ 客户端库
使用 rosnode
查看当前正在运行的节点:
查看具体节点信息:
使用rosrun
使用包名直接运行一个包内的节点:
可以直接改变节点名称
改变节点名称后,可以再次通过rosnode list 查看运行的节点列表
并通过rosnode 命令 ping 测试节点
2. 理解ROS话题
任何时候,只需有一个roscore运行,否则会报错。
节点之间通过话题通信,一个节点在一个话题上发布消息,另一个节点订阅该话题以接收消息。
使用rqt_graph创建显示当前系统运行情况的动态图形。
使用rqt_plot 命令可以显示发布到某一话题上的数据变化情况。
使用 rostopic echo 命令行工具,可以查看话题发布的数据
使用 rostopic list 可以查看发布和订阅的话题及其类型的详细信息
发布器与订阅器之间的通信,必须发送和接收相同类型的消息,也就意味着话题类型是由发布在它上面的消息类型决定的。使用 rostopic type 命令可以查看发布在某个话题上的消息类型。
使用 rosmsg 命令查看消息的详细情况
使用 rostopic pub 命令可以发布数据到当前某个正在广播的话题上。
使用 rostopic hz 可以查看数据发布的频率
3. 理解ROS服务和参数
服务允许节点发送一个请求(request)并获得一个响应(response)
rosservice常用命令:
rosservice list —— 输出可用服务的信息
rosservice call —— 调用带参数的服务
rosservice type —— 输出服务类型
rosservice find —— 根据类型寻找服务
rosservice url —— 输出服务的ROSRPC url
可以使用 rosparam 存储和操作ROS参数服务器上的数据。
常用命令:
rosparam set —— 设置参数
rosparam get —— 获取参数
rosparam load —— 从文件读取参数
rosparam dump —— 向文件中写入参数
rosparam delete —— 删除参数
rosparam list —— 列出参数名
4. 使用 rqt_console 和 roslaunch 进行调试
rqt_console 属于ROS日志框架的一部分,用于显示节点的输出信息。
rqt_logger_level 允许修改节点运行时输出信息的日志等级。
使用 roslaunch 启动定义在 launch 文件中的多个节点。
在工作空间下创建 launch文件夹,在文件夹下创建 .launch 后缀的配置文件,然后运行。
可同时运行多个节点和模仿节点。
相关文章推荐
- ROS学习笔记一:基础教程(下)
- [ROS学习笔记]ROS中使用激光雷达(RPLIDAR)
- [ROS学习笔记]使用激光雷达(RPLIDAR)测试hector_mapping
- ROS学习笔记二:探索ROS文件系统
- ROS学习笔记(四):ROS 的一些常用命令行功能
- ROS学习笔记(三)- 分布式节点与laser数据可视化
- ROS学习笔记(二)- ROS驱动机器人实例
- Ubuntu14.04_ROS学习笔记(5)Zumy小车源码注释
- 在多台PC上进行ROS通讯-学习笔记
- 学习ROS笔记之TF——learning tf(二)
- ROS 进阶学习笔记(17):ROS导航2:关于 move_base Package(底盘移动包)
- ROS学习笔记(一)
- ROS学习笔记(一)ROS基础入门 — 参考创客制造
- Ubuntu14.04_ROS学习笔记(4.1)Zumy小车第二辆驱动及疑问
- ROS学习笔记十一:ROS中数据的记录与重放
- ROS学习笔记(三)- 分布式节点与laser数据可视化
- ROS学习笔记(二)- ROS驱动机器人实例
- ROS学习笔记
- ROS学习笔记1-Beginner level
- Ubuntu14.04_ROS学习笔记(1)ROS配置