系列文章目录

[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学习的笔记,如有哪里不对的,也可以请各位指正。

祝大家变得更强!

Logo

更多推荐