系列文章目录
[ROS基础-1] Linux系统介绍与ubuntu安装(virtualbox)
[ROS基础-2] Ubuntu系统基本操作与基本命令讲解
[ROS基础-3] ROS系统安装与基本配置
[ROS基础-4] ROS系统框架
[ROS基础-5] Turtlesim和键盘控制节点实验
前言
Turtlesim是用于学习ROS的轻量级模拟器。它展示了ROS在最基本的层次上所做的工作,先熟悉Turtlesim可以对以后ROS机器人运行原理理解更深厚。
一、Turtlesim
ROS 1 在运行程序之前需要运行节点管理器,不然会报错,这边就直接使用命令启动节点管理器,后续会有其他方法启动节点管理器。
# 启动节点管理器
roscore
打开新的终端,使用命令启动Turrtlesim
# 启动Turrtlesim
rosrun turtlesim turtlesim_node
至此,海龟模拟器已经启动成功,但是还没有能实现控制,此时我们需要运行控制节点
rosrun turtlesim turtle_teleop_key
这就是运行了控制节点的截图,注意,需要点击最后的那个终端才能实现控制。
二、 扩展
1. rostopic
在ROS学习中,经常需要查看节点,下面这个命令可以在终端中显示目前ROS运行的所有节点
rostopic list
通过后缀加"-v"可以分开发布话题和订阅话题
rostopic不单单可以查看当前节点,还有其他功能,可以使用命令后加"-h"阅读帮助手册
rostopic -h
显示的为英文,这边作者直接翻译好
命令 | 详细说明 |
---|---|
rostopic list | 实时显示指定话题的消息内容 |
rostopic echo [话题名称] | 实时显示指定话题的消息内容 |
rostopic find [类型名称] | 显示使用指定类型的消息的话题 |
rostopic type [话题名称] | 显示指定话题的消息类型 |
rostopic bw [话题名称] | 显示指定话题的消息带宽(bandwidth) |
rostopic hz [话题名称] | 显示指定话题的消息数据发布周期 |
rostopic info [话题名称] | 显示指定话题的信息 |
rostopic pub [话题名称] [消息类型] [参数] | 用指定的话题名称发布消息 |
实时显示海龟姿态消息命令
rostopic echo /turtle1/pose
查看使用[rosgraph_msga/Log]和[none](瞎编的)消息类型的话题
rostopic find rosgraph_msgs/Log
显示[/turtle1/pose]这个话题的话题类型
rostopic type /turtle1/pose
显示[/turtle1/pose]话题的数据带宽
rostopic bw /turtle1/pose
显示[/turtle1/color_sensor]的发布周期
显示[turtle1/cmd_vel]的详细信息,包括数据类型、发布者、订阅者
使[/turtle1/cmd_vel]话题名称发布类型为[geometry_msgs/Twist]的消息控制小海龟运动。
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 1.0"
可以后缀加"-r 10",以10的频率无限发送,可以使用ctrl+c结束命令。
2. rqt
在上面海龟运行的同时新建终端,输入命令会出现窗口,可以直观的查看各个话题节点之间的关系
rqt_graph
为了方便我们查看节点输出日志,在终端中输入命令。
rqt_console
rqt工具是ROS中强大的工具之一,除了能显示直观的计算图之外,还有其他功能,由于篇幅问题,这边就不多介绍了,
总结
博客以启动Turtlesim并实现控制为切入口,初步了解ROS的运行机制,并介绍了rostopic和rqt工具,为熟练掌握ROS打下基础。这部分带有一定操作,可能在其中会遇到一些问题,不过可以上网查找相关的问题。
ROS学习并非一朝一夕可以完成,接下来我也会坚持发表关于ROS学习的笔记,如有哪里不对的,也可以请各位指正。
祝大家变得更强!