准备

在之前的文章中完成了ROS的安装并且启用了小乌龟。链接如下:

https://blog.csdn.net/sf9898/article/details/105290198

这次同样先启用小乌龟,先roscore启用ros master,之后再开一个terminal输入rosrun turtlesim turtlesim_node启用小乌龟,再开一个terminal输入rosrun turtlesim turtle_teleop_key启用键盘控制。

格式
rosrun 功能包 节点
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

效果如图

分析

关于roscore

通过上面的代码,可以启用turtlesim里面的两个节点。首先先看下roscore 的terminal,之前仅是启用ros master但是没有去分析terminal里面的信息的含义。打印的信息基本上是版本信息。其中有比较重要的信息,如图,有个http,由于ROS是分布式的,因此ros master可能存在于任一主机中,因此需要标记下。ROS分布式的优点就是可以使得不同的功能模块在不同的主机上面运行,可以节省计算资源,提高效率等。

关于计算图和节点

用rqt_graph查看一下计算图,可以看到有两个节点。图中两种输入方式皆可。


找一个terminal输入以下信息(此时已经把计算图关掉了)

rosnode list
rostopic list


跟之前的计算图对比,可以注意到两个椭圆内的是节点,箭头上的是topic名称。
重新打开计算图,如果在rqt_graph里面把debug的√取消,那么效果如下,可以发现多出了点奇怪的东西。
此时上图terminal打印出的/rosout就出现了。其实这几个多出来的也不需要关注。/rosout是必然存在的一个节点,从名字可以看出这节点关乎输出,是一个管理日志信息的节点,每个节点都可以通过/rosout的话题将信息传到/rosout节点。

另一个gui的节点是因为rqt_graph的存在,打开一个新的terminal验证,输入rosnode list,结果如下


可以用以下命令查看节点信息

rosnode info 节点名

关于turtlesim

再看乌龟,这个turtlesim 对应的文件是在哪?里面的节点有哪些?之前安装完ROS的时候说过它的位置。点:计算机-opt-ros。


进去之后可以看到很多文件夹和脚本,注意到有setup.bash,之前安装和配置的时候有用到。

其中后面三个文件夹是最重要的,include类似于C语言里面的include,里面存的头文件,lib存一些包,里面有节点(可执行文件)和Python文件等,比如这里的turtlesim,运行节点就可以启用相应的功能包里面的功能。



这里就可以看到有之前调用的turtlesim_node 和 turtle_teleop_key,同理,可以验证下其他的节点,比如draw_square。(另一个不了解,有兴趣的可以研究)

rosrun turtlesim draw_square

share里面可以看到很多的功能包,打开一看是有cmake 的配置文件和msg,srv的定义等等

打开images文件夹,可以看到好多的小乌龟logo,这就解释了为什么每次调用乌龟节点出现的乌龟长得不一定一样了。

关于turtle控制信息

通过以下命令实现监听,打印出的信息是乌龟的运动信息,键盘控制时会有相应的数值变化

rostopic echo /turtle1/cmd_vel

其他

发布话题、新增turtle的操作可以参考

https://www.cnblogs.com/chendeqiang/p/10190821.html

小海龟的坐标变换和RVIZ可视化可以参考

https://blog.csdn.net/sf9898/article/details/105350138

ROS turtlesim小乌龟的使用与分析相关推荐

  1. ROS入门 小乌龟跟随示例

    一.不使用TF转换的方法 #include <ros/ros.h> #include <geometry_msgs/Twist.h> #include<math.h> ...

  2. ROS修改小乌龟程序背景颜色

    我们在之前的编程中可以发现,小乌龟程序的背景颜色是蓝色,可能大家看的比较眼乏了,那我们接下来可以编程修改小乌龟程序的背景颜色. 首先,我们输入rosparam list,可以看到三个关于小乌龟程序背景 ...

  3. Udacity机器人软件工程师课程笔记(八)-ROS Turtlesim 包的相关命令

    Turtlesim 包的相关命令 这个部分包含五个子主题,分别是 列出所有活动节点 列出所有主题 获取有关主题的信息 显示消息信息 实时回应消息 1.列出所有的活动节点 为了获取所用的活动且向ROS ...

  4. 借助CatGPT让turtlesim小乌龟画曲线

    注意这里是CatGPT,不等同OpenAI的ChatGPT,但是用起来十分方便,效果也还行. 详细说明ROS机器人turtlesim绘制曲线需要注意哪些 ROS机器人turtlesim绘制曲线需要注意 ...

  5. 阅读笔记(ROS书籍⑤)《ROS机器人开发:实用案例分析》卡罗尔·费尔柴尔德 托马斯·L.哈曼

    这本书是在微信读书上发现的,它在语言描述上比较容易让人理解,同时也有与无人机相关的案例,这是我比较关注的. 以下摘自我的微信读书笔记. ◆ 1.6.1 ROS节点 >> 一般而言,节点就是 ...

  6. 系统架构图怎么画_基于ROS的移动机器人上层系统架构分析

    看过网上不少博客,介绍ROS系统架构的,基本上都是在介绍ROS自身系统架构,很少有介绍特定机器人的系统架构的.个人觉得,入门一个系统,首先需要从整体开始把握,而不必在意细节,整体把握好了,细节自然水到 ...

  7. ROS底盘控制节点 源码分析

    先在机器人端通过launch文件启动底盘控制. @robot:~$ roslaunch base_control base_control.launch ... logging to /home/jy ...

  8. ros中的velocity smoother详细分析

    smoother : 是一个速度平滑控制器,用来防止robot navigation的速度/转速过快,加速度/快减速过大 smoother针对navigation或者其他一些例子,robot有一个命令 ...

  9. ROS知识:分析和改写小乌龟代码【01】

    ROS之游戏手柄控制乌龟和机器人_u014587147的专栏-CSDN博客 本篇对小乌龟的项目进行分析,看看一个普通的ROS项目到底如何构建,才能算完整合法工程:学完后,期望可以开发我们自己的项目. ...

最新文章

  1. 机器学习入门(05)— 使用 NumPy 实现 3 层简单神经网络
  2. 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全
  3. SVN中各种符号箭头含义
  4. java程序设计颜志军_JSP 自定义标签之一 简单实例
  5. matplotlib与seaborn的一些使用
  6. 使用Python+md5删除本地重复(同一张不重名)的照片
  7. 超越 Windows 时代!微软 Build 大会都透露了啥?
  8. 【Oracle】ORA-55610: Invalid DDL statement on history-tracked table
  9. Excel word PDF导入导出 Easy POI
  10. 微信支付java后台
  11. GNS3 添加思科交换机
  12. 报 刊 集 锦(转载)
  13. YUI 3 Cookbook 中文版
  14. 论文解读:Prediction of Protein–Protein Interaction Sites Using Convolutional Neural Network
  15. 【协议森林】基于DPDK的原生态协议栈DPDK-ANS
  16. C语言 写一个函数求两个数的较大值
  17. 车牌识别,车辆检测,车牌检测和识别,与车相关的点点滴滴
  18. Android Studio 设置打开layout.xml文件的默认视图
  19. adc0809c语言编程,单片机C语言程序设计之ADC0809数模转换与显示
  20. 随机森林(RandomForest,RF)网格搜索法调参

热门文章

  1. 非常【刑】又可【拷】的fiddler抓包实战 涵盖使用教程/下载安装/抓取手机app
  2. 算法基础(五)| 差分算法及模板详解
  3. Docker部署爬虫实战
  4. 图像变换及频域滤波(高斯滤波,巴特沃兹滤波器,高斯滤波器)
  5. 肖臻公开课(六)——比特币中的网络
  6. ubuntu18.04 muduo编译安装
  7. 白山云科技java_SpringBoot——04SSM
  8. 计算机中寄存器的定义,通用寄存器
  9. ------------------------3
  10. 智慧垃圾焚烧发电厂Web3D可视化管理系统